Sha256: c49678efbc5b1aa6b58afd47a2aa7c3e99851b073512415d6029eae23ea8040a

Contents?: true

Size: 1.37 KB

Versions: 14

Compression:

Stored size: 1.37 KB

Contents

#!/usr/bin/env ruby

# httpclient shell command.
#
# Usage: 1) % httpclient get https://www.google.co.jp/ q=ruby
# Usage: 2) % httpclient
#
# For 1) it issues a GET request to the given URI and shows the wiredump and
# the parsed result.  For 2) it invokes irb shell with the binding that has a
# HTTPClient as 'self'.  You can call HTTPClient instance methods like;
# > get "https://www.google.co.jp/", :q => :ruby
require 'httpclient'

method = ARGV.shift
if method == 'version'
  puts HTTPClient::VERSION
  exit
end

url = ARGV.shift
if method && url
  client = HTTPClient.new
  if method == 'download'
    print client.get_content(url)
  else
    client.debug_dev = STDERR
    $DEBUG = true
    require 'pp'
    pp client.send(method, url, *ARGV)
  end
  exit
end

require 'irb'
require 'irb/completion'

class Runner
  def initialize
    @httpclient = HTTPClient.new
  end

  def method_missing(msg, *a, &b)
    debug, $DEBUG = $DEBUG, true
    begin
      @httpclient.send(msg, *a, &b)
    ensure
      $DEBUG = debug
    end
  end

  def run
    IRB.setup(nil)
    ws = IRB::WorkSpace.new(binding)
    irb = IRB::Irb.new(ws)
    IRB.conf[:MAIN_CONTEXT] = irb.context

    trap("SIGINT") do
      irb.signal_handle
    end

    begin
      catch(:IRB_EXIT) do
        irb.eval_input
      end
    ensure
      IRB.irb_at_exit
    end
  end

  def to_s
    'HTTPClient'
  end
end

Runner.new.run

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
vagrant-compose-yaml-0.1.3 vendor/bundle/ruby/2.2.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-compose-yaml-0.1.2 vendor/bundle/ruby/2.2.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-compose-yaml-0.1.1 vendor/bundle/ruby/2.2.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-compose-yaml-0.1.0 vendor/bundle/ruby/2.2.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-unbundled-1.8.5.2 vendor/bundle/ruby/2.3.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-unbundled-1.8.5.1 vendor/bundle/ruby/2.3.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-unbundled-1.8.4.2 vendor/bundle/ruby/2.3.0/gems/httpclient-2.8.0/bin/httpclient
vagrant-unbundled-1.8.4.1 vendor/bundle/ruby/2.3.0/gems/httpclient-2.8.0/bin/httpclient
httpclient-2.8.0 bin/httpclient
httpclient-2.7.2 bin/httpclient
vagrant-unbundled-1.8.1.1 vendor/bundle/ruby/2.3.0/gems/httpclient-2.7.1/bin/httpclient
httpclient-2.7.1 bin/httpclient
httpclient-2.7.0.1 bin/httpclient
httpclient-2.7.0 bin/httpclient