Class: Orientea::ChangingCommand

Inherits:
Command
  • Object
show all
Defined in:
lib/orientea/changing_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Command

action, undo

Class Method Details

.build(record) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/orientea/changing_command.rb', line 5

def self.build(record)
  command = self.new
  command.data = Hash.new
  command.data['cls_str'] = record.class.to_s
  command.data['cls_id'] = record.id
  command.data['changes'] = record.changes.to_json
  # command.save!
  command
end

Instance Method Details

#get_record(old = false) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/orientea/changing_command.rb', line 19

def get_record(old = false)
  cls = self.data['cls_str'].constantize
  id = self.data['cls_id']
  object = cls.find(id)
  JSON.load(self.data['changes']).each do |key, value|
    object.send("#{key}=", (old ? value.first : value.last))
  end
  object
end

#record_changesObject



15
16
17
# File 'lib/orientea/changing_command.rb', line 15

def record_changes
  data['changes']
end