Sha256: 0edbbcfd2a4052c242f99e86eaf8d5e90cec0d10e7881d1d141a396d9c231df9

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

module AFMotion
  module HTTPBuilder
    def self.included(base)
      AFMotion::HTTP_METHODS.each do |method|
        base.send(:define_singleton_method, method, -> (request_or_url, parameters = {}, &callback) do
          request = request_or_url
          if !request.is_a?(NSURLRequest)
            request = NSMutableURLRequest.requestWithURL(request_or_url.to_url)
            request.HTTPMethod = method.upcase
          end

          operation = (self.request_module.for_request(request) do |result|
            callback.call(result)
          end)

          operation.start
          operation
        end)
      end
    end
  end

  module HTTP
    include AFMotion::HTTPBuilder

    module_function
    def request_module
      AFMotion::Operation::HTTP
    end
  end

  module JSON
    include AFMotion::HTTPBuilder

    module_function
    def request_module
      AFMotion::Operation::JSON
    end
  end

  module XML
    include AFMotion::HTTPBuilder

    module_function
    def request_module
      AFMotion::Operation::XML
    end
  end

  module PLIST
    include AFMotion::HTTPBuilder

    module_function
    def request_module
      AFMotion::Operation::PLIST
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
afmotion-0.0.4 lib/afmotion/http.rb
afmotion-0.0.3 lib/afmotion/http.rb