Module: PaperTrail::VersionConcern::ClassMethods

Defined in:
lib/mongo_trails/version_concern.rb

Instance Method Summary collapse

Instance Method Details

#between(start_time, end_time) ⇒ Object



12
13
14
# File 'lib/mongo_trails/version_concern.rb', line 12

def between(start_time, end_time)
  where(:created_at.gt => start_time, :created_at.lt => end_time).order(timestamp_sort_order)
end

#object_changes_col_is_json?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/mongo_trails/version_concern.rb', line 24

def object_changes_col_is_json?
  true
end

#object_col_is_json?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/mongo_trails/version_concern.rb', line 20

def object_col_is_json?
  true
end

#preceding_by_id(obj) ⇒ Object



28
29
30
# File 'lib/mongo_trails/version_concern.rb', line 28

def preceding_by_id(obj)
  where(:integer_id.lt => obj.integer_id).order(integer_id: :desc)
end

#preceding_by_timestamp(obj) ⇒ Object



32
33
34
35
# File 'lib/mongo_trails/version_concern.rb', line 32

def preceding_by_timestamp(obj)
  obj = obj.send(:created_at) if obj.is_a?(self)
  where(:created_at.lt => obj).order(timestamp_sort_order('desc'))
end

#subsequent_by_id(version) ⇒ Object



37
38
39
# File 'lib/mongo_trails/version_concern.rb', line 37

def subsequent_by_id(version)
  where(:integer_id.gt => version.integer_id).order(integer_id: :asc)
end

#subsequent_by_timestamp(obj) ⇒ Object



41
42
43
44
# File 'lib/mongo_trails/version_concern.rb', line 41

def subsequent_by_timestamp(obj)
  obj = obj.send(:created_at) if obj.is_a?(self)
  where(:created_at.gt => obj).order(timestamp_sort_order)
end

#timestamp_sort_order(direction = 'asc') ⇒ Object



16
17
18
# File 'lib/mongo_trails/version_concern.rb', line 16

def timestamp_sort_order(direction = 'asc')
  { created_at: direction.downcase }
end

#with_item_keys(item_type, item_id) ⇒ Object



8
9
10
# File 'lib/mongo_trails/version_concern.rb', line 8

def with_item_keys(item_type, item_id)
  where(item_type: item_type, item_id: item_id)
end