class Jsonism::Resources::Base

Public Class Methods

new(client: nil, properties: nil) click to toggle source

@param client [Jsonism::Client] @param properties [Hash]

# File lib/jsonism/resources/base.rb, line 16
def initialize(client: nil, properties: nil)
  @client = client
  @properties = properties
end
read_only_properties() click to toggle source
# File lib/jsonism/resources/base.rb, line 9
def read_only_properties
  @read_only_properties ||= []
end
read_only_property(name) click to toggle source
# File lib/jsonism/resources/base.rb, line 5
def read_only_property(name)
  read_only_properties << name
end

Public Instance Methods

change(name, value) click to toggle source
# File lib/jsonism/resources/base.rb, line 34
def change(name, value)
  changed_properties[name] = value
  @properties[name] = value
end
changed?() click to toggle source
# File lib/jsonism/resources/base.rb, line 25
def changed?
  !changed_properties.empty?
end
changed_properties() click to toggle source
# File lib/jsonism/resources/base.rb, line 39
def changed_properties
  @changed_properties ||= {}
end
previously_changed_properties() click to toggle source
# File lib/jsonism/resources/base.rb, line 43
def previously_changed_properties
  @previously_changed_properties ||= {}
end
read_only_properties() click to toggle source
# File lib/jsonism/resources/base.rb, line 47
def read_only_properties
  to_hash.slice(*self.class.read_only_properties)
end
save() click to toggle source
# File lib/jsonism/resources/base.rb, line 29
def save
  @previously_changed_properties = changed_properties
  @changed_properties = {}
end
to_hash() click to toggle source
# File lib/jsonism/resources/base.rb, line 21
def to_hash
  @properties.clone
end