Class: Divan::Models::Revision

Inherits:
Base
  • Object
show all
Defined in:
lib/divan/models/revision.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

all, create, #delete, delete_all, find, find_all, #revision, #revision!, #revision_ids, #save, strategies

Constructor Details

#initialize(*args) ⇒ Revision

Returns a new instance of Revision.



6
7
8
9
10
11
# File 'lib/divan/models/revision.rb', line 6

def initialize(*args)
  super
  @revisioned_doc = @meta_attributes.delete :revision_of
  @revisioned_at  = @meta_attributes.delete :revisioned_at
  @revisioned_by  = @meta_attributes.delete :revisioned_by
end

Class Attribute Details

.revisioned_classObject

Returns the value of attribute revisioned_class.



19
20
21
# File 'lib/divan/models/revision.rb', line 19

def revisioned_class
  @revisioned_class
end

Instance Attribute Details

#revisioned_atObject (readonly)

Returns the value of attribute revisioned_at.



4
5
6
# File 'lib/divan/models/revision.rb', line 4

def revisioned_at
  @revisioned_at
end

#revisioned_byObject (readonly)

Returns the value of attribute revisioned_by.



4
5
6
# File 'lib/divan/models/revision.rb', line 4

def revisioned_by
  @revisioned_by
end

#revisioned_docObject (readonly)

Returns the value of attribute revisioned_doc.



4
5
6
# File 'lib/divan/models/revision.rb', line 4

def revisioned_doc
  @revisioned_doc
end

Class Method Details

.create_by_revisioned_doc(rev_doc, rev_by = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/divan/models/revision.rb', line 21

def create_by_revisioned_doc(rev_doc, rev_by = nil)
  self.new rev_doc.params
  self.id         = URI.encode "_revision/#{rev_doc.rev}"
  @revisioned_doc = rev_doc
  # parsed_time     = Date._parse rev_doc.last_request.headers[:date]
  # @revisioned_at  = Time.gm *[:year, :mon, :mday, :hour, :min, :sec].collect{ |k| parsed_time[k] }
  @revisioned_at  = Divan::Utils.parse_time rev_doc.last_request.headers[:date]
  @revisioned_by  = rev_by
  self.save
end

.inherithed(subclass) ⇒ Object



55
56
57
# File 'lib/divan/models/revision.rb', line 55

def inherithed(subclass)
  nil
end

.top_level_model!(*args) ⇒ Object



47
48
49
# File 'lib/divan/models/revision.rb', line 47

def top_level_model!(*args)
  raise "Can't modify revision top level"
end

.top_level_model?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/divan/models/revision.rb', line 51

def top_level_model?
  revisioned_class.top_level_model?
end

.type_fieldObject



43
44
45
# File 'lib/divan/models/revision.rb', line 43

def type_field
  revisioned_class.type_field
end

.type_nameObject



39
40
41
# File 'lib/divan/models/revision.rb', line 39

def type_name
  revisioned_class.type_name
end

Instance Method Details

#rollbackObject



13
14
15
16
# File 'lib/divan/models/revision.rb', line 13

def rollback
  revisioned_doc.attributes = @attributes.clone
  revisioned_doc.save :last_wins
end