class Smartfocus::Relation
Relation
is used for API-chained call
e.g. emv.get.campaign.last(:limit => 5).call
Public Class Methods
new(instance, request)
click to toggle source
# File lib/smartfocus/relation.rb, line 9 def initialize(instance, request) @instance = instance @request = request @uri = [] @options = {} end
Public Instance Methods
call(*args)
click to toggle source
Trigger the API call
@param [Object] parameters @return [Object] data returned from Smartfocus
# File lib/smartfocus/relation.rb, line 21 def call(*args) @options.merge! extract_args(args) @request.prepare(@uri.join('/'), @options) @instance.call(@request) end
method_missing(method, *args)
click to toggle source
# File lib/smartfocus/relation.rb, line 27 def method_missing(method, *args) @uri << method.to_s.camelize(:lower) @options.merge! extract_args(args) self end
Private Instance Methods
extract_args(args)
click to toggle source
# File lib/smartfocus/relation.rb, line 35 def extract_args(args) (args[0] and args[0].kind_of? Hash) ? args[0] : {} end