Sha256: 78708c547712d42943af293b1d66dc955e73e61e832825a39150843061d61e0e

Contents?: true

Size: 1.07 KB

Versions: 52

Compression:

Stored size: 1.07 KB

Contents

module Facebooker
  class BatchRequest
    instance_methods.each { |m| undef_method m unless m =~ /(^__|^nil\?$|^send$|proxy_|^respond_to\?$|^new$)/ }
    attr_reader :uri
    attr_reader :method
    class UnexecutedRequest < StandardError; end
    def initialize(params,proc)
      @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

52 entries across 52 versions & 11 rubygems

Version Path
al-facebooker-1.0.12.1 lib/facebooker/batch_request.rb
al-facebooker-1.0.12 lib/facebooker/batch_request.rb
al-facebooker-1.0.9 lib/facebooker/batch_request.rb
corey-facebooker-1.0.28.1 lib/facebooker/batch_request.rb
cwninja-facebooker-1.0.8 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.1 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.10 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.11 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.12 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.2 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.4 lib/facebooker/batch_request.rb
djanowski-facebooker-1.0.7 lib/facebooker/batch_request.rb
djanowski-mmangino-facebooker-1.0.4 lib/facebooker/batch_request.rb
hashrocket-clearance-0.4.0 test/rails_root/vendor/plugins/facebooker/lib/facebooker/batch_request.rb
hashrocket-clearance-0.4.1 test/rails_root/vendor/plugins/facebooker/lib/facebooker/batch_request.rb
hashrocket-clearance-0.4.2 test/rails_root/vendor/plugins/facebooker/lib/facebooker/batch_request.rb
hashrocket-clearance-0.4.3 test/rails_root/vendor/plugins/facebooker/lib/facebooker/batch_request.rb
mborromeo-facebooker-1.0.28 lib/facebooker/batch_request.rb
mborromeo-facebooker-1.0.29 lib/facebooker/batch_request.rb
mborromeo-facebooker-1.0.30 lib/facebooker/batch_request.rb