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



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 10

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

  puts_verbose_parameters(request) if verbose?

  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].join(": ")}"
  end
  puts

  if request.non_oauth_parameters.any?
    puts "Parameters:"
    request.non_oauth_parameters.each do |k, v|
      puts "  #{[k, v].join(": ")}"
    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
66
67
# File 'lib/oauth/cli/sign_command.rb', line 45

def puts_verbose_request(request)
  puts "Method: #{request.method}"
  puts "URI: #{request.uri}"
  unless options[:xmpp]
    puts "Normalized params: #{request.normalized_parameters}"
  end
  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(with_oauth: 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



6
7
8
# File 'lib/oauth/cli/sign_command.rb', line 6

def required_options
  %i[oauth_consumer_key oauth_consumer_secret oauth_token oauth_token_secret]
end

#xmpp_output(request) ⇒ Object



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

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