Refactor actions with Action#setup

This commit is contained in:
Thibault Jouan
2014-10-09 01:06:42 +00:00
parent 336b43aaa7
commit 3c4bcc1a4b
6 changed files with 19 additions and 63 deletions

View File

@@ -2,27 +2,23 @@ module Producer
module Core
module Actions
class FileAppend < Action
def setup
@path, @content = arguments
end
def name
'file_append'
end
def apply
fs.file_write path, combined_content
end
def path
arguments[0]
end
def content
arguments[1]
fs.file_write @path, combined_content
end
def combined_content
original_content = fs.file_read(path)
original_content = fs.file_read(@path)
return content unless original_content
original_content + content
return @content unless original_content
original_content + @content
end
end
end

View File

@@ -2,28 +2,20 @@ module Producer
module Core
module Actions
class FileReplaceContent < Action
def setup
@path, @pattern, @replacement = arguments
end
def name
'file_replace_content'
end
def apply
fs.file_write path, replaced_content
end
def path
arguments[0]
end
def pattern
arguments[1]
end
def replacement
arguments[2]
fs.file_write @path, replaced_content
end
def replaced_content
fs.file_read(path).gsub pattern, replacement
fs.file_read(@path).gsub @pattern, @replacement
end
end
end

View File

@@ -2,11 +2,10 @@ module Producer
module Core
module Actions
class FileWriter < Action
def initialize(env, *args, **options)
super
@path, @content = arguments
@options[:permissions] = @options.delete :mode if @options.key? :mode
@options[:owner] = @options.delete :user if @options.key? :user
def setup
@path, @content = arguments
@options[:permissions] = @options.delete :mode if options.key? :mode
@options[:owner] = @options.delete :user if options.key? :user
end
def name

View File

@@ -2,8 +2,7 @@ module Producer
module Core
module Actions
class Mkdir < Action
def initialize(env, *args, **options)
super
def setup
@options[:permissions] = @options.delete :mode if @options.key? :mode
@options[:owner] = @options.delete :user if @options.key? :user
end