Class: OAuth::CLI::SignCommand

Inherits:
BaseCommand show all
Defined in:
lib/oauth/cli/sign_command.rb

Instance Method Summary collapse

Methods inherited from BaseCommand

#initialize, #run

Constructor Details

This class inherits a constructor from OAuth::CLI::BaseCommand

Instance Method Details

#_runObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/oauth/cli/sign_command.rb', line 8

def _run
  request = OAuth::RequestProxy.proxy \
     "method"     => options[:method],
     "uri"        => options[:uri],
     "parameters" => parameters

  if verbose?
    puts_verbose_parameters(request)
  end

  request.sign! \
    :consumer_secret => options[:oauth_consumer_secret],
    :token_secret    => options[:oauth_token_secret]

  if verbose?
    puts_verbose_request(request)
  else
    puts request.oauth_signature
  end
end

#puts_verbose_parameters(request) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/oauth/cli/sign_command.rb', line 29

def puts_verbose_parameters(request)
  puts "OAuth parameters:"
  request.oauth_parameters.each do |k,v|
    puts "  " + [k, v] * ": "
  end
  puts

  if request.non_oauth_parameters.any?
    puts "Parameters:"
    request.non_oauth_parameters.each do |k,v|
      puts "  " + [k, v] * ": "
    end
    puts
  end
end

#puts_verbose_request(request) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/oauth/cli/sign_command.rb', line 45

def puts_verbose_request(request)
  puts "Method: #{request.method}"
  puts "URI: #{request.uri}"
  puts "Normalized params: #{request.normalized_parameters}" unless options[:xmpp]
  puts "Signature base string: #{request.signature_base_string}"

  if xmpp?
    puts
    puts "XMPP Stanza:"
    puts xmpp_output(request)
    puts
    puts "Note: You may want to use bare JIDs in your URI."
    puts
  else
    puts "OAuth Request URI: #{request.signed_uri}"
    puts "Request URI: #{request.signed_uri(false)}"
    puts "Authorization header: #{request.oauth_header(:realm => options[:realm])}"
  end
  puts "Signature:         #{request.oauth_signature}"
  puts "Escaped signature: #{OAuth::Helper.escape(request.oauth_signature)}"
end

#required_optionsObject



4
5
6
# File 'lib/oauth/cli/sign_command.rb', line 4

def required_options
  [:oauth_consumer_key, :oauth_consumer_secret, :oauth_token, :oauth_token_secret]
end

#xmpp_output(request) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/oauth/cli/sign_command.rb', line 67

def xmpp_output(request)
  <<-EOS
  <oauth xmlns='urn:xmpp:oauth:0'>
<oauth_consumer_key>#{request.oauth_consumer_key}</oauth_consumer_key>
<oauth_token>#{request.oauth_token}</oauth_token>
<oauth_signature_method>#{request.oauth_signature_method}</oauth_signature_method>
<oauth_signature>#{request.oauth_signature}</oauth_signature>
<oauth_timestamp>#{request.oauth_timestamp}</oauth_timestamp>
<oauth_nonce>#{request.oauth_nonce}</oauth_nonce>
<oauth_version>#{request.oauth_version}</oauth_version>
  </oauth>
  EOS
end