module Facile::Api::ForwardMethods

Public Class Methods

extended(base) click to toggle source
# File lib/facile/api/forward_methods.rb, line 7
def self.extended(base)
  base.instance_variable_set(:@response, nil)
  base.instance_eval { attr_accessor :response }
end

Public Instance Methods

create_delegators(class_instance) click to toggle source
# File lib/facile/api/forward_methods.rb, line 20
def create_delegators(class_instance)
  if class_instance.response && class_instance.response.respond_to?(:keys)
    class_instance.response.keys.each do |key|
      class_instance.class.def_delegator :@response, key.to_sym
      class_instance.class.def_delegator :@response, "#{key}=".to_sym
    end
  end
end
create_instance(body = nil) click to toggle source
# File lib/facile/api/forward_methods.rb, line 12
def create_instance(body = nil)
  class_instance = new
  class_instance.response = body

  create_delegators(class_instance)
  class_instance
end