class Operationable::Operation
Attributes
params[R]
record[R]
result[R]
user[R]
Public Class Methods
new(record, user, params={})
click to toggle source
# File lib/operationable/operation.rb, line 6 def initialize(record, user, params={}) @record = record @user = user @params = params end
Public Instance Methods
process()
click to toggle source
# File lib/operationable/operation.rb, line 12 def process return false unless valid @result = build return false unless persist run record.reload end
Private Instance Methods
build()
click to toggle source
# File lib/operationable/operation.rb, line 38 def build "#{class_name}::Builder".constantize.new(record, user, params).build end
class_name()
click to toggle source
# File lib/operationable/operation.rb, line 46 def class_name self.class.name end
operation_name()
click to toggle source
# File lib/operationable/operation.rb, line 50 def operation_name self.class.to_s.split('::').last(2).map(&:underscore).join(':') end
persist()
click to toggle source
# File lib/operationable/operation.rb, line 30 def persist save_record(record) end
run()
click to toggle source
# File lib/operationable/operation.rb, line 42 def run "#{class_name}::Runner".constantize.new(record, params, result, user).run end
save_record(record)
click to toggle source
# File lib/operationable/operation.rb, line 34 def save_record(record) record end
valid()
click to toggle source
# File lib/operationable/operation.rb, line 26 def valid true end