Class: RailsWorkflow::Context
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsWorkflow::Context
- Defined in:
- app/models/rails_workflow/context.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
Instance Method Summary collapse
- #init_data ⇒ Object
- #prepare_body(body) ⇒ Object
- #prepare_data(data) ⇒ Object
- #serialize_data ⇒ Object
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
6 7 8 |
# File 'app/models/rails_workflow/context.rb', line 6 def data @data end |
Instance Method Details
#init_data ⇒ Object
17 18 19 |
# File 'app/models/rails_workflow/context.rb', line 17 def init_data self.data = prepare_body(body).with_indifferent_access end |
#prepare_body(body) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/models/rails_workflow/context.rb', line 21 def prepare_body(body) if body.is_a? Array body.map do |element| prepare_body element end elsif body.is_a? Hash if body.keys == %w[id class] body['class'].constantize.find(body['id']) else res = {} body.each_pair do |key, value| res[key] = prepare_body(value) end res end else body end end |
#prepare_data(data) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/models/rails_workflow/context.rb', line 43 def prepare_data(data) if data.is_a? ActiveRecord::Base { id: data.id, class: data.class.to_s } elsif data.is_a? Array data.map do |element| prepare_data element end elsif data.is_a? Hash res = {} data.each_pair do |key, value| res[key] = prepare_data(value) end res else data end end |
#serialize_data ⇒ Object
13 14 15 |
# File 'app/models/rails_workflow/context.rb', line 13 def serialize_data self.body = prepare_data(data) end |