Class: JSON::Pie::ResourceObject

Inherits:
Object
  • Object
show all
Defined in:
lib/json/pie/resource_object.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, **options) ⇒ ResourceObject

Returns a new instance of ResourceObject.



14
15
16
17
# File 'lib/json/pie/resource_object.rb', line 14

def initialize(data, **options)
  @data = data
  @options = options
end

Class Method Details

.parse(data, **options) ⇒ Object



10
11
12
# File 'lib/json/pie/resource_object.rb', line 10

def self.parse(data, **options)
  new(data, **options).tap(&:parse).instance
end

Instance Method Details

#instanceObject



26
27
28
29
30
# File 'lib/json/pie/resource_object.rb', line 26

def instance
  return nil if data.blank?

  @instance ||= JSON::Pie::ResourceIdentity.find_or_initialize(**data.slice(:id, :type), **options)
end

#parseObject



19
20
21
22
23
24
# File 'lib/json/pie/resource_object.rb', line 19

def parse
  case data
  when Hash then parse_as_object
  when Array then parse_as_array
  end
end