Class: Jsonism::Resources::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonism/resources/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client: nil, properties: nil) ⇒ Base

Returns a new instance of Base.

Parameters:

  • client (Jsonism::Client) (defaults to: nil)
  • properties (Hash) (defaults to: nil)


16
17
18
19
# File 'lib/jsonism/resources/base.rb', line 16

def initialize(client: nil, properties: nil)
  @client = client
  @properties = properties
end

Class Method Details

.read_only_propertiesObject



9
10
11
# File 'lib/jsonism/resources/base.rb', line 9

def read_only_properties
  @read_only_properties ||= []
end

.read_only_property(name) ⇒ Object



5
6
7
# File 'lib/jsonism/resources/base.rb', line 5

def read_only_property(name)
  read_only_properties << name
end

Instance Method Details

#change(name, value) ⇒ Object



34
35
36
37
# File 'lib/jsonism/resources/base.rb', line 34

def change(name, value)
  changed_properties[name] = value
  @properties[name] = value
end

#changed?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/jsonism/resources/base.rb', line 25

def changed?
  !changed_properties.empty?
end

#changed_propertiesObject



39
40
41
# File 'lib/jsonism/resources/base.rb', line 39

def changed_properties
  @changed_properties ||= {}
end

#previously_changed_propertiesObject



43
44
45
# File 'lib/jsonism/resources/base.rb', line 43

def previously_changed_properties
  @previously_changed_properties ||= {}
end

#read_only_propertiesObject



47
48
49
# File 'lib/jsonism/resources/base.rb', line 47

def read_only_properties
  to_hash.slice(*self.class.read_only_properties)
end

#saveObject



29
30
31
32
# File 'lib/jsonism/resources/base.rb', line 29

def save
  @previously_changed_properties = changed_properties
  @changed_properties = {}
end

#to_hashObject



21
22
23
# File 'lib/jsonism/resources/base.rb', line 21

def to_hash
  @properties.clone
end