class Ocs::Resources::Base
Constants
- BOOLEAN
Attributes
client[R]
error[R]
Public Class Methods
all(client)
click to toggle source
# File lib/ocs/resources/base.rb, line 12 def all(client) list(client) end
downcased_name()
click to toggle source
# File lib/ocs/resources/base.rb, line 16 def downcased_name name.downcase end
find(client, conditions = {}, parameters = {})
click to toggle source
# File lib/ocs/resources/base.rb, line 20 def find(client, conditions = {}, parameters = {}) where(client, conditions, parameters).first end
inherited(sub_class)
click to toggle source
# File lib/ocs/resources/base.rb, line 24 def inherited(sub_class) sub_class.delegations = {} end
list(client, parameters = {})
click to toggle source
# File lib/ocs/resources/base.rb, line 40 def list(client, parameters = {}) response = client.call("list#{pluralized_name}", parameters) if response.empty? [] else response[downcased_name].map do |attributes| new(client, attributes) end end end
name()
click to toggle source
# File lib/ocs/resources/base.rb, line 28 def name to_s.split(/::/).last end
new(client, raw_hash = {})
click to toggle source
# File lib/ocs/resources/base.rb, line 72 def initialize(client, raw_hash = {}) @client = client @raw_hash = raw_hash update_attributes!(raw_hash) end
pluralized_name()
click to toggle source
# File lib/ocs/resources/base.rb, line 32 def pluralized_name name.pluralize end
underscored_name()
click to toggle source
# File lib/ocs/resources/base.rb, line 36 def underscored_name name.underscore end
where(client, conditions = {}, parameters = {})
click to toggle source
# File lib/ocs/resources/base.rb, line 51 def where(client, conditions = {}, parameters = {}) list(client, parameters).select do |instance| conditions.all? do |attribute, condition| value = instance.public_send(attribute) case condition when Regexp condition =~ value when Range condition.include?(value) else condition == value end end end end
Public Instance Methods
reload!()
click to toggle source
# File lib/ocs/resources/base.rb, line 78 def reload! response = client.call("list#{self.class.pluralized_name}", id: id)[self.class.downcased_name] if response && !response.empty? update_attributes!(response.first) end self end
Private Instance Methods
resource_class(class_name)
click to toggle source
# File lib/ocs/resources/base.rb, line 88 def resource_class(class_name) "ocs/resources/#{class_name}".camelize.constantize end
send_and_update(api, parameters)
click to toggle source
# File lib/ocs/resources/base.rb, line 92 def send_and_update(api, parameters) response = client.send(api, parameters) if response.success? @error = nil update_attributes!(response.content) self else @error = ApiError.new(api, parameters, response) false end end
update_attributes!(hash)
click to toggle source
# File lib/ocs/resources/base.rb, line 104 def update_attributes!(hash) hash.each do |key, value| if delegations.has_key?(key.to_sym) public_send(delegations[key.to_sym], value) else public_send(:"#{key}=", value) end end end