class Telerivet::Entity
Public Class Methods
new(api, data, is_loaded = true)
click to toggle source
# File lib/telerivet/entity.rb, line 5 def initialize(api, data, is_loaded = true) @api = api @vars = nil @dirty = {} @data = {} set_data(data) @is_loaded = is_loaded end
Public Instance Methods
get(name)
click to toggle source
# File lib/telerivet/entity.rb, line 37 def get(name) if @data.has_key?(name) return @data[name] elsif @is_loaded return nil end load() return @data[name] end
get_base_api_path()
click to toggle source
# File lib/telerivet/entity.rb, line 80 def get_base_api_path() abstract end
load()
click to toggle source
# File lib/telerivet/entity.rb, line 24 def load() if !@is_loaded @is_loaded = true set_data(@api.do_request('GET', get_base_api_path())) @data.merge!(@dirty) end self end
save()
click to toggle source
# File lib/telerivet/entity.rb, line 54 def save() dirty_props = @dirty if @vars != nil dirty_vars = @vars.get_dirty_variables() @dirty['vars'] = dirty_vars if dirty_vars.length() > 0 end @api.do_request('POST', get_base_api_path(), @dirty) @dirty = {} @vars.clear_dirty_variables() if @vars != nil end
set(name, value)
click to toggle source
# File lib/telerivet/entity.rb, line 49 def set(name, value) @data[name] = value @dirty[name] = value end
set_data(data)
click to toggle source
# File lib/telerivet/entity.rb, line 14 def set_data(data) @data = data if data.has_key?('vars') @vars = CustomVars.new(data['vars']) else @vars = CustomVars.new({}) end end
to_s()
click to toggle source
# File lib/telerivet/entity.rb, line 68 def to_s() res = self.class.name if not @is_loaded res += " (not loaded)" end res += " JSON: " + JSON.dump(@data) return res end
vars()
click to toggle source
# File lib/telerivet/entity.rb, line 33 def vars @vars end