Refactor actions with Action#setup
This commit is contained in:
parent
336b43aaa7
commit
3c4bcc1a4b
@ -2,27 +2,23 @@ module Producer
|
|||||||
module Core
|
module Core
|
||||||
module Actions
|
module Actions
|
||||||
class FileAppend < Action
|
class FileAppend < Action
|
||||||
|
def setup
|
||||||
|
@path, @content = arguments
|
||||||
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
'file_append'
|
'file_append'
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply
|
def apply
|
||||||
fs.file_write path, combined_content
|
fs.file_write @path, combined_content
|
||||||
end
|
|
||||||
|
|
||||||
def path
|
|
||||||
arguments[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
def content
|
|
||||||
arguments[1]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def combined_content
|
def combined_content
|
||||||
original_content = fs.file_read(path)
|
original_content = fs.file_read(@path)
|
||||||
|
|
||||||
return content unless original_content
|
return @content unless original_content
|
||||||
original_content + content
|
original_content + @content
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,28 +2,20 @@ module Producer
|
|||||||
module Core
|
module Core
|
||||||
module Actions
|
module Actions
|
||||||
class FileReplaceContent < Action
|
class FileReplaceContent < Action
|
||||||
|
def setup
|
||||||
|
@path, @pattern, @replacement = arguments
|
||||||
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
'file_replace_content'
|
'file_replace_content'
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply
|
def apply
|
||||||
fs.file_write path, replaced_content
|
fs.file_write @path, replaced_content
|
||||||
end
|
|
||||||
|
|
||||||
def path
|
|
||||||
arguments[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
def pattern
|
|
||||||
arguments[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
def replacement
|
|
||||||
arguments[2]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def replaced_content
|
def replaced_content
|
||||||
fs.file_read(path).gsub pattern, replacement
|
fs.file_read(@path).gsub @pattern, @replacement
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,11 +2,10 @@ module Producer
|
|||||||
module Core
|
module Core
|
||||||
module Actions
|
module Actions
|
||||||
class FileWriter < Action
|
class FileWriter < Action
|
||||||
def initialize(env, *args, **options)
|
def setup
|
||||||
super
|
|
||||||
@path, @content = arguments
|
@path, @content = arguments
|
||||||
@options[:permissions] = @options.delete :mode if @options.key? :mode
|
@options[:permissions] = @options.delete :mode if options.key? :mode
|
||||||
@options[:owner] = @options.delete :user if @options.key? :user
|
@options[:owner] = @options.delete :user if options.key? :user
|
||||||
end
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
|
@ -2,8 +2,7 @@ module Producer
|
|||||||
module Core
|
module Core
|
||||||
module Actions
|
module Actions
|
||||||
class Mkdir < Action
|
class Mkdir < Action
|
||||||
def initialize(env, *args, **options)
|
def setup
|
||||||
super
|
|
||||||
@options[:permissions] = @options.delete :mode if @options.key? :mode
|
@options[:permissions] = @options.delete :mode if @options.key? :mode
|
||||||
@options[:owner] = @options.delete :user if @options.key? :user
|
@options[:owner] = @options.delete :user if @options.key? :user
|
||||||
end
|
end
|
||||||
|
@ -20,18 +20,6 @@ module Producer::Core
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#path' do
|
|
||||||
it 'returns the file path' do
|
|
||||||
expect(action.path).to eq path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#content' do
|
|
||||||
it 'returns the content to append' do
|
|
||||||
expect(action.content).to eq added_content
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#combined_content' do
|
describe '#combined_content' do
|
||||||
it 'returns original content and added content combined' do
|
it 'returns original content and added content combined' do
|
||||||
expect(action.combined_content).to eq 'some content added'
|
expect(action.combined_content).to eq 'some content added'
|
||||||
|
@ -21,24 +21,6 @@ module Producer::Core
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#path' do
|
|
||||||
it 'returns the file path' do
|
|
||||||
expect(action.path).to eq path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#pattern' do
|
|
||||||
it 'returns the pattern' do
|
|
||||||
expect(action.pattern).to eq pattern
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#replacement' do
|
|
||||||
it 'returns the replacement' do
|
|
||||||
expect(action.replacement).to eq replacement
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#replaced_content' do
|
describe '#replaced_content' do
|
||||||
it 'returns content with pattern occurrences pattern replaced' do
|
it 'returns content with pattern occurrences pattern replaced' do
|
||||||
expect(action.replaced_content).to eq 'some other content'
|
expect(action.replaced_content).to eq 'some other content'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user