Class: Scim::Kit::V2::Meta

Inherits:
Object
  • Object
show all
Includes:
Templatable
Defined in:
lib/scim/kit/v2/meta.rb

Overview

Represents a meta section

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Templatable

#as_json, #render, #template_name, #to_h, #to_json

Constructor Details

#initialize(resource_type, location) ⇒ Meta

Returns a new instance of Meta.



14
15
16
17
18
19
# File 'lib/scim/kit/v2/meta.rb', line 14

def initialize(resource_type, location)
  @resource_type = resource_type || 'Unknown'
  @location = location
  @created = @last_modified = Time.now
  @version = @created.to_i
end

Instance Attribute Details

#createdObject



10
11
12
# File 'lib/scim/kit/v2/meta.rb', line 10

def created
  @created
end

#last_modifiedObject



10
11
12
# File 'lib/scim/kit/v2/meta.rb', line 10

def last_modified
  @last_modified
end

#locationObject (readonly)



11
12
13
# File 'lib/scim/kit/v2/meta.rb', line 11

def location
  @location
end

#resource_typeObject (readonly)



12
13
14
# File 'lib/scim/kit/v2/meta.rb', line 12

def resource_type
  @resource_type
end

#versionObject



10
11
12
# File 'lib/scim/kit/v2/meta.rb', line 10

def version
  @version
end

Class Method Details

.from(hash) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/scim/kit/v2/meta.rb', line 25

def self.from(hash)
  meta = Meta.new(hash[:resourceType], hash[:location])
  meta.created = parse_date(hash[:created])
  meta.last_modified = parse_date(hash[:lastModified])
  meta.version = hash[:version]
  meta
end

.parse_date(date) ⇒ Object



33
34
35
36
37
# File 'lib/scim/kit/v2/meta.rb', line 33

def self.parse_date(date)
  DateTime.parse(date).to_time
rescue StandardError
  nil
end

Instance Method Details

#disable_timestampsObject



21
22
23
# File 'lib/scim/kit/v2/meta.rb', line 21

def disable_timestamps
  @version = @created = @last_modified = nil
end