Private method error while running NET::HTTP.post_form with Rake

Asked

Viewed 62 times

0

I’m trying to send a request using the NET::HTTP.post_form, but is returning this error:

Code:

module External
  module Connection
    module Export
      class Hawk
        require 'net/http'
        require 'uri'

        attr_accessor :hash

        def self.export!(*attr)
          new(*attr).export!
        end

        def initialize(options = {})
          self.hash = options.delete(:hash)
          @send_method = options.delete(:send_method)

          @uri = options.delete(:uri) { URI }
          @net_http = options.delete(:net_http) { Net::HTTP }
          @settings = options.delete(:settings) { ::Settings }
          @manager_repository = options.delete(:manager_repository) { ::Manager }
        end

        def export!
          begin
            manager = manager_repository.is_active.last
            self.hash[:token] = manager.token_importer

            url = uri.join manager.url_importer, send_method.to_s

            net_http.post_form(url, hash) if settings.connection_export
          rescue
            # TODO
          end
        end

        private

        attr_reader :settings, :send_method, :uri, :net_http, :manager_repository
      end
    end
  end
end

Error:

private method `methods' called for #<Net::HTTP my_url open=false>
["/home/duglas/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:576:in `start'",
"/home/duglas/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:507:in `post_form'",
"/home/duglas/sgc/app/business/external/connection/export/hawk.rb:31:in `export!'",
"/home/duglas/sgc/app/business/external/connection/export/hawk.rb:11:in `export!'",
"/home/duglas/sgc/app/business/external/export/hawk/balance.rb:27:in `send_balance!'",
"/home/duglas/sgc/app/business/external/export/hawk/balance.rb:7:in `send_balance!'",
"/home/duglas/sgc/lib/tasks/send_balance_control.rake:5:in `block (3 levels) in <top (required)>'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/activerecord-4.0.5/lib/active_record/relation/delegation.rb:13:in `each'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/activerecord-4.0.5/lib/active_record/relation/delegation.rb:13:in `each'",
"/home/duglas/sgc/lib/tasks/send_balance_control.rake:4:in `block (2 levels) in <top (required)>'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'",
"/home/duglas/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/bin/rake:23:in `load'",
"/home/duglas/.rvm/gems/ruby-2.1.0@sgc/bin/rake:23:in `<main>'"]

Rake:

namespace :send_balance_control do
  desc 'Send balance of actives associate lines'
  task(generate: :environment) do
    AssociateLine.voice_lines.active.each do |associate_line|
      External::Export::Hawk::Balance.send_balance!(associate_line)
    end
  end
end

Another thing: when I use Rails c (console) and rotate the code that is inside the rake works. But when I rotate the rake does not work.

  • Friend, this is Stackoverflow in English. Please translate your question so that it fits our standards and can be answered.

  • Sorry, updated.

  • 1

    Are you putting the rake inside the lib/tasks folder? Which version of Rails are you using?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.