Sha256: 83ee094b6f91820aa6d2272c72adf0f6750ba47bcf8a1b9132049f0e3363411f

Contents?: true

Size: 1.13 KB

Versions: 56

Compression:

Stored size: 1.13 KB

Contents

module Facebooker
  class BatchRequest
    instance_methods.each { |m| undef_method m unless m =~ /(^__|^nil\?$|^send$|proxy_|^respond_to\?$|^new|object_id$)/ }
    attr_reader :uri
    attr_reader :method
    class UnexecutedRequest < StandardError; end
    def initialize(params,proc)
      @exception  = nil
      @result     = nil
      @method     = params[:method]
      @uri        = params.map{|k,v| "#{k}=#{CGI.escape(v.to_s)}"}.join("&")
      @proc       = proc
    end

    def result=(result_object)
      @result = @proc.nil? ? result_object : @proc.call(result_object)
    end

    def exception_raised=(ex)
      @exception=ex
    end

    def exception_raised?
      @exception.nil? ? false : raise(@exception)
    end

    def respond_to?(name)
      super || @result.respond_to?(name)
    end

    def ===(other)
      other === @result
    end

    def method_missing(name,*args,&proc)
      if @exception
        raise @exception
      elsif @result.nil?
        raise UnexecutedRequest.new("You must execute the batch before accessing the result: #{@uri}")
      else
        @result.send(name,*args,&proc)
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 18 rubygems

Version Path
micahwedemeyer-facebooker-1.0.50 lib/facebooker/batch_request.rb
micahwedemeyer-facebooker-1.0.51 lib/facebooker/batch_request.rb
mmangino-facebooker-1.0.46 lib/facebooker/batch_request.rb
mmangino-facebooker-1.0.47 lib/facebooker/batch_request.rb
mmangino-facebooker-1.0.48 lib/facebooker/batch_request.rb
mmangino-facebooker-1.0.49 lib/facebooker/batch_request.rb
mmangino-facebooker-1.0.50 lib/facebooker/batch_request.rb
pomartel-facebooker-1.0.47 lib/facebooker/batch_request.rb
simianarmy-facebooker-1.0.50 lib/facebooker/batch_request.rb
simianarmy-facebooker-1.0.51 lib/facebooker/batch_request.rb
taweili-facebooker-1.0.47 lib/facebooker/batch_request.rb
taweili-facebooker-1.0.50 lib/facebooker/batch_request.rb
facebooker-1.0.75 lib/facebooker/batch_request.rb
sentientmonkey-facebooker-1.0.74 lib/facebooker/batch_request.rb
facebooker-micah-1.0.74 lib/facebooker/batch_request.rb
facebooker-1.0.74 lib/facebooker/batch_request.rb
facebooker-1.0.73 lib/facebooker/batch_request.rb
facebooker-1.0.72 lib/facebooker/batch_request.rb
facebooker-1.0.71 lib/facebooker/batch_request.rb
facebooker-1.0.70 lib/facebooker/batch_request.rb