Module: Ork::Timestamps

Defined in:
lib/ork/timestamps.rb

Constant Summary collapse

VERSION =
'0.0.2'

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

Raises:

  • (Ork::NotOrkObject)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ork/timestamps.rb', line 5

def self.included(klass)
  raise Ork::NotOrkObject unless klass.include? Ork::Document

  klass.class_eval do |base|
    attribute :created_at, accessors: :reader
    attribute :updated_at, accessors: :reader

    def created_at=(a)
      @attributes[:created_at] = Time.parse a.to_s
    end

    def updated_at=(a)
      @attributes[:updated_at] = Time.parse a.to_s
    end

    def save_with_timestamps
      self.created_at = Time.now if self.new?
      self.updated_at = Time.now

      save_without_timestamps
    end

    alias :save_without_timestamps :save
    alias :save :save_with_timestamps
  end
end