Module: Mongoid::History::Trackable::MyInstanceMethods

Defined in:
lib/mongoid/history/trackable.rb

Instance Method Summary collapse

Instance Method Details

#create_embedded(name, value) ⇒ Object



103
104
105
# File 'lib/mongoid/history/trackable.rb', line 103

def create_embedded(name, value)
  send("create_#{self.class.embedded_alias(name)}!", value)
end

#get_embedded(name) ⇒ Object



99
100
101
# File 'lib/mongoid/history/trackable.rb', line 99

def get_embedded(name)
  send(self.class.embedded_alias(name))
end

#history_tracksObject



70
71
72
# File 'lib/mongoid/history/trackable.rb', line 70

def history_tracks
  @history_tracks ||= Mongoid::History.tracker_class.where(scope: history_trackable_options[:scope], association_chain: association_hash)
end

#redo!(modifier = nil, options_or_version = nil) ⇒ Object



88
89
90
91
92
93
94
95
96
97
# File 'lib/mongoid/history/trackable.rb', line 88

def redo!(modifier = nil, options_or_version = nil)
  versions = get_versions_criteria(options_or_version).to_a
  versions.sort! { |v1, v2| v1.version <=> v2.version }

  versions.each do |v|
    redo_attr = v.redo_attr(modifier)
    attributes.merge!(redo_attr)
  end
  save!
end

#undo!(modifier = nil, options_or_version = nil) ⇒ Object

undo :from => 1, :to => 5

undo 4
undo :last => 10


77
78
79
80
81
82
83
84
85
86
# File 'lib/mongoid/history/trackable.rb', line 77

def undo!(modifier = nil, options_or_version = nil)
  versions = get_versions_criteria(options_or_version).to_a
  versions.sort! { |v1, v2| v2.version <=> v1.version }

  versions.each do |v|
    undo_attr = v.undo_attr(modifier)
    attributes.merge!(undo_attr)
  end
  save!
end