class OrchestrateIo::Request
Attributes
client[R]
http_method[R]
version[R]
Public Class Methods
new(args, &block)
click to toggle source
# File lib/orchestrate.io/request.rb, line 7 def initialize(args, &block) @client = args[:client] @http_method = args[:http_method] @uri = args[:uri] @options = args[:options] @version = client.version instance_eval &block if block_given? end
Public Instance Methods
method_missing(method, *args, &block)
click to toggle source
# File lib/orchestrate.io/request.rb, line 42 def method_missing(method, *args, &block) args = args.first self.class.class_eval do define_method method do |value| instance_variable_set("@#{method}", value) end end self.__send__(method, args) end
parse_options(options)
click to toggle source
# File lib/orchestrate.io/request.rb, line 27 def parse_options(options) options.each {|k,v| if v.is_a? Hash parse_options(v) else if value = instance_variable_get("@#{v}") options[k] = value else options.delete(k) end end } options.delete_if {|k,v| v.empty? if v.is_a? Hash } end
perform()
click to toggle source
# File lib/orchestrate.io/request.rb, line 17 def perform client.request(http_method, uri, parse_options(@options)) end
uri()
click to toggle source
# File lib/orchestrate.io/request.rb, line 21 def uri @uri.split(/\//).map {|str| str =~ /^:/ ? instance_variable_get("@" + str.gsub!(/:/,'')) : str }.join("/") end