Sha256: 82a9b5f194a083403baea994c7635cf111e047321291e9b64e41727db5a1709a

Contents?: true

Size: 936 Bytes

Versions: 1

Compression:

Stored size: 936 Bytes

Contents

module GoshrineBot

  class GoshrineRequest
    
    def self.base_url=(url)
      @@base_url = url
    end
    
    def initialize(path)
      @url = "#{@@base_url}#{path}"
      @conn = EventMachine::HttpRequest.new(@url)
      @cookie_persist = CookiePersist.new
    end
    
    def do_http(verb,options)
      options[:head] = 
        {'Accept' => 'application/json', 
         'cookie' => @cookie_persist.cookie_hash.to_cookie_string}
  
      http = @conn.send verb, options
      
      defer = EM::DefaultDeferrable.new
      http.callback {
        @cookie_persist.cookies << http.response_header[EM::HttpClient::SET_COOKIE]
        defer.succeed(http)
      }
      http.errback {
        puts "failed goshrine request"
        defer.fail(http)
      }
      defer
    end
    
    def post(options = {})
      do_http(:post, options)
    end
    
    def get(options = {})
      do_http(:get, options)
    end
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
goshrine_bot-0.2.0 lib/goshrine_bot/goshrine_request.rb