Class: Masheri::ApiObjectBase

Inherits:
Object
  • Object
show all
Defined in:
lib/masheri/api_object_base.rb

Direct Known Subclasses

Key, Member, Role

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ ApiObjectBase

Returns a new instance of ApiObjectBase.



23
24
25
26
# File 'lib/masheri/api_object_base.rb', line 23

def initialize(data)
  # XXX: use setter methods
  data.each_pair {|k, v| instance_variable_set("@#{k}".to_sym, v)}
end

Class Method Details

.create(fields = {}) ⇒ Object



5
6
7
8
# File 'lib/masheri/api_object_base.rb', line 5

def self.create(fields = {})
  # XXX: only send fields that aren't read-only
  new(Masheri.client.call_remote(method('create'), fields))
end

.delete(id) ⇒ Object



15
16
17
# File 'lib/masheri/api_object_base.rb', line 15

def self.delete(id)
  Masheri.client.call_remote(method('delete'), id)
end

.fetch(id) ⇒ Object



10
11
12
13
# File 'lib/masheri/api_object_base.rb', line 10

def self.fetch(id)
  data = Masheri.rpc.call_remote(method('fetch'), id)
  data.nil?? nil : new(data)
end

.method(basename) ⇒ Object



19
20
21
# File 'lib/masheri/api_object_base.rb', line 19

def self.method(basename)
  "#{name.split(/\:\:/).last.downcase}.#{basename}"
end