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