lib/jiralicious/session.rb in jiralicious-0.4.3 vs lib/jiralicious/session.rb in jiralicious-0.5.0

- old
+ new

@@ -1,61 +1,61 @@ -# encoding: utf-8 -require 'jiralicious/configuration' - -module Jiralicious - ## - # The Session class handles the interactions with the Jira Rest API - # Through the HTTParty gem. - # - class Session - include HTTParty - - # Sets the default format to JSON for send and return - format :json - # Sets the default headers to application/json for send and return - headers 'Content-Type' => 'application/json' - - ## - # Main access method to request data from the Jira API - # - # [Arguments] - # :method (required) http method type - # - # :options (required) request specific options - # - def request(method, *options) - if options.last.is_a?(Hash) && options.last[:handler] - response_handler = options.last.delete(:handler) - else - response_handler = handler - end - - self.class.base_uri Jiralicious.uri - before_request if respond_to?(:before_request) - response = self.class.send(method, *options) - after_request(response) if respond_to?(:after_request) - - response_handler.call(response) - end - - private - - ## - # Configures the default handler. This can be overridden in - # the child class to provide additional error handling. - # - def handler - Proc.new do |response| - case response - when 200..204 - response.body - else - message = response.body - if message.is_a?(Hash) - message = message['errorMessages'].join('\n') - end - Jiralicious::JiraError.new(message) - end - end - end - end -end +# encoding: utf-8 +require 'jiralicious/configuration' + +module Jiralicious + ## + # The Session class handles the interactions with the Jira Rest API + # Through the HTTParty gem. + # + class Session + include HTTParty + + # Sets the default format to JSON for send and return + format :json + # Sets the default headers to application/json for send and return + headers 'Content-Type' => 'application/json' + + ## + # Main access method to request data from the Jira API + # + # [Arguments] + # :method (required) http method type + # + # :options (required) request specific options + # + def request(method, *options) + if options.last.is_a?(Hash) && options.last[:handler] + response_handler = options.last.delete(:handler) + else + response_handler = handler + end + + self.class.base_uri Jiralicious.uri + before_request if respond_to?(:before_request) + response = self.class.send(method, *options) + after_request(response) if respond_to?(:after_request) + + response_handler.call(response) + end + + private + + ## + # Configures the default handler. This can be overridden in + # the child class to provide additional error handling. + # + def handler + Proc.new do |response| + case response + when 200..204 + response.body + else + message = response.body + if message.is_a?(Hash) + message = message['errorMessages'].join('\n') + end + Jiralicious::JiraError.new(message) + end + end + end + end +end