class Apitizer::Base
Public Class Methods
new(options = {}, &block)
click to toggle source
# File lib/apitizer/base.rb, line 7 def initialize(options = {}, &block) @options = Helper.deep_merge(Apitizer.defaults, options) @block = block end
Public Instance Methods
process(*arguments)
click to toggle source
# File lib/apitizer/base.rb, line 12 def process(*arguments) request = build_request(*arguments) response = dispatcher.process(request) Result.new(request: request, response: response) end
Private Instance Methods
build_request(*arguments)
click to toggle source
# File lib/apitizer/base.rb, line 35 def build_request(*arguments) action, method, steps, parameters = prepare(*arguments) Connection::Request.new(method: method, path: map.trace(action, steps), parameters: parameters) end
dispatcher()
click to toggle source
# File lib/apitizer/base.rb, line 30 def dispatcher @dispatcher ||= Connection::Dispatcher.new(format: @options[:format], adaptor: @options[:adaptor], headers: @options[:headers]) end
map()
click to toggle source
# File lib/apitizer/base.rb, line 26 def map @map ||= Routing::Map.new(&@block) end
prepare(action, *path)
click to toggle source
# File lib/apitizer/base.rb, line 41 def prepare(action, *path) action = action.to_sym method = @options[:dictionary][action] or raise Error, 'Unknown action' parameters = Helper.extract_hash!(path) steps = path.flatten.map(&:to_sym) [ action, method, steps, parameters ] end