class GrapeClient::Base
Attributes
attributes[R]
password[RW]
prefix[RW]
site[RW]
user[RW]
attributes[R]
Public Class Methods
attr_accessor(*names)
click to toggle source
# File lib/grape_client/base.rb, line 23 def attr_accessor(*names) names.each do |name| attributes << name.to_sym end end
cache()
click to toggle source
# File lib/grape_client/base.rb, line 33 def cache Cache.instance end
connection()
click to toggle source
# File lib/grape_client/base.rb, line 29 def connection @connection ||= Connection.new(user, password) end
endpoint()
click to toggle source
# File lib/grape_client/base.rb, line 41 def endpoint site + prefix + entity_name.pluralize end
entity_name()
click to toggle source
# File lib/grape_client/base.rb, line 37 def entity_name name.split('::').last.underscore end
inherited(child)
click to toggle source
# File lib/grape_client/base.rb, line 15 def inherited(child) child.instance_variable_set('@attributes', attributes.try(:dup) || []) child.instance_variable_set('@site', GrapeClient.configuration.site) child.instance_variable_set('@user', GrapeClient.configuration.user) child.instance_variable_set('@password', GrapeClient.configuration.password) child.instance_variable_set('@prefix', GrapeClient.configuration.prefix) end
new(attrs = {})
click to toggle source
# File lib/grape_client/base.rb, line 46 def initialize(attrs = {}) self.attributes = attrs end
Public Instance Methods
[](name)
click to toggle source
# File lib/grape_client/base.rb, line 59 def [](name) name = name.to_sym raise NameError, name unless self.class.attributes.include? name @attributes[name] end
[]=(name, value)
click to toggle source
# File lib/grape_client/base.rb, line 65 def []=(name, value) name = name.to_sym raise NameError, name unless self.class.attributes.include? name @attributes[name] = value end
attributes=(attrs)
click to toggle source
# File lib/grape_client/base.rb, line 50 def attributes=(attrs) @attributes = {} attributes = self.class.attributes attrs.each do |name, value| next unless attributes.include?(name.to_sym) || methods.include?(name.to_sym) send("#{name}=", value) end end
method_missing(m, *args)
click to toggle source
# File lib/grape_client/base.rb, line 71 def method_missing(m, *args) m = m.to_s if m.last == '=' name = m[0..-2] self[name] = args.first else self[m] end end
respond_to?(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/grape_client/base.rb, line 81 def respond_to?(method_name, *args, &block) super || begin name = method_name.to_s name = name[0..-2] if name.last == '=' self.class.attributes.include?(name.to_sym) end end
to_post()
click to toggle source
# File lib/grape_client/base.rb, line 90 def to_post list = self.class.attributes filtered_attributes = attributes.select { |key, _value| list.include? key } entity_name = self.class.entity_name filtered_attributes.transform_keys { |key| "#{entity_name}[#{key}]" } end
Private Instance Methods
class_from_name(name)
click to toggle source
# File lib/grape_client/base.rb, line 99 def class_from_name(name) name.to_s.camelcase.constantize end