oauthtoken 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH << File.expand_path("../../lib", __FILE__)
3
+ require "oauth_token/command/#{File.basename(__FILE__)}"
data/bin/oatok CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH << File.expand_path("../../lib", __FILE__)
3
- require "oauth_token/command/oatok"
3
+ require "oauth_token/command/#{File.basename(__FILE__)}"
@@ -0,0 +1,109 @@
1
+ require "rubygems"
2
+ require "json"
3
+ require "oauth"
4
+ require "optparse"
5
+
6
+ authorize_url = nil
7
+ consumer_key = nil
8
+ consumer_secret = nil
9
+ access_token = nil
10
+ access_token_secret = nil
11
+ request_method = "GET"
12
+ request_headers = {}
13
+ http_post_data = nil
14
+ retry_max_count = -1
15
+ retry_interval = 60
16
+
17
+ op = OptionParser.new
18
+
19
+ op.on("-a", "--authorize-url AUTHORIZE_URL", "authorization URL", String) {|s|
20
+ authorize_url = s
21
+ }
22
+
23
+ op.on("-k", "--key CONSUMER_KEY", "consumer key for OAuth", String) {|s|
24
+ consumer_key = s
25
+ }
26
+
27
+ op.on("-s", "--secret CONSUMER_SECRET", "consumer secret for OAuth", String) {|s|
28
+ consumer_secret = s
29
+ }
30
+
31
+ op.on("-t", "--token ACCESS_TOKEN", "access tokens for OAuth", String) {|s|
32
+ access_token = s
33
+ }
34
+
35
+ op.on("-S", "--token-secret ACCESS_TOKEN_SECRET", "access token secret for OAuth", String) {|s|
36
+ access_token_secret = s
37
+ }
38
+
39
+ op.on("-X", "--request COMMAND", "Specify request command to use", String) {|s|
40
+ request_method = s.upcase
41
+ }
42
+
43
+ op.on("-H", "--header LINE", "Custom header to pass to server", String) {|s|
44
+ key, value = s.split(/: /, 2)
45
+ request_headers[key] = value
46
+ }
47
+
48
+ op.on("-d", "--data JSON", "HTTP POST data", String) {|s|
49
+ http_post_data = JSON.parse(s)
50
+ }
51
+
52
+ op.on("-r", "--retry RETRY_COUNT", "retry count of API access", Integer) {|i|
53
+ retry_max_count = i
54
+ }
55
+
56
+ op.on("-i", "--retry-interval RETRY_INTERVAL", "retry interval sec", Integer) {|i|
57
+ retry_interval = i
58
+ }
59
+
60
+ op.parse!(ARGV)
61
+
62
+ if consumer_key.nil?
63
+ $stderr.puts "consumer key is not set"
64
+ exit 1
65
+ end
66
+
67
+ if consumer_secret.nil?
68
+ $stderr.puts "consumer secret is not set"
69
+ exit 1
70
+ end
71
+
72
+ if http_post_data == "@-"
73
+ http_post_data = $stdin.read
74
+ end
75
+
76
+ url = ARGV.shift
77
+
78
+ consumer = OAuth::Consumer.new(consumer_key, consumer_secret, :site=>authorize_url)
79
+ oauth_client = OAuth::AccessToken.new(consumer, access_token, access_token_secret)
80
+
81
+ retry_count = 0
82
+
83
+ while true
84
+ case request_method
85
+ when "DELETE"
86
+ response = oauth_client.delete(url)
87
+ when "POST"
88
+ response = oauth_client.post(url, http_post_data, request_headers)
89
+ when "PUT"
90
+ response = oauth_client.put(url, http_post_data, request_headers)
91
+ else
92
+ response = oauth_client.get(url)
93
+ end
94
+
95
+ case response.code
96
+ when "200"
97
+ puts response.body
98
+ break
99
+ else
100
+ $stderr.puts "ERROR: #{response.code}, #{response.body}"
101
+ if retry_max_count <= retry_count
102
+ exit 1
103
+ else
104
+ sleep(retry_interval)
105
+ retry_count += 1
106
+ end
107
+ next
108
+ end
109
+ end
@@ -1,3 +1,3 @@
1
1
  module OAuthToken
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "oauthtoken"
8
8
  spec.version = OAuthToken::VERSION
9
9
  spec.authors = ["Kenji Hara"]
10
- spec.email = ["hara2001@gmail.com"]
10
+ spec.email = ["haracane@gmail.com"]
11
11
  spec.description = %q{Command to get OAuth token}
12
12
  spec.summary = %q{Command to get OAuth token}
13
13
  spec.homepage = ""
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ describe "bin/oareq" do
5
+ context "when send GET to https://api.twitter.com/1.1/statuses/home_timeline.json" do
6
+ it "should success" do
7
+ command = "bin/oareq" \
8
+ + " --authorize-url #{AUTHORIZE_URL}" \
9
+ + " --key #{CONSUMER_KEY}" \
10
+ + " --secret #{CONSUMER_SECRET}" \
11
+ + " --token #{ACCESS_TOKEN}" \
12
+ + " --token-secret #{ACCESS_TOKEN_SECRET}" \
13
+ + " https://api.twitter.com/1.1/statuses/home_timeline.json"
14
+
15
+ result = `#{command}`
16
+
17
+ result = JSON.parse(result)
18
+ result.each do |s|
19
+ expect(s["text"]).not_to be_nil
20
+ end
21
+ expect(result).to have_at_least(1).items
22
+ end
23
+ end
24
+
25
+ context "when send POST to https://api.twitter.com/1.1/direct_messages/new.json" do
26
+ it "should success" do
27
+ command = "bin/oareq" \
28
+ + " --authorize-url #{AUTHORIZE_URL}" \
29
+ + " --key #{CONSUMER_KEY}" \
30
+ + " --secret #{CONSUMER_SECRET}" \
31
+ + " --token #{ACCESS_TOKEN}" \
32
+ + " --token-secret #{ACCESS_TOKEN_SECRET}" \
33
+ + " --request POST" \
34
+ + " --data '{\"screen_name\":\"oareq\",\"text\":\"oareq test\"}'" \
35
+ + " https://api.twitter.com/1.1/direct_messages/new.json"
36
+
37
+ result = `#{command}`
38
+
39
+ result = JSON.parse(result)
40
+ expect(result["recipient_screen_name"]).to eq("oareq")
41
+ expect(result["text"]).to eq("oareq test")
42
+ end
43
+ end
44
+ end
@@ -1,2 +1,8 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
  require 'oauth_token'
3
+
4
+ AUTHORIZE_URL = "https://api.twitter.com"
5
+ CONSUMER_KEY = ENV["CONSUMER_KEY"]
6
+ CONSUMER_SECRET = ENV["CONSUMER_SECRET"]
7
+ ACCESS_TOKEN = ENV["ACCESS_TOKEN"]
8
+ ACCESS_TOKEN_SECRET = ENV["ACCESS_TOKEN_SECRET"]
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauthtoken
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Kenji Hara
@@ -9,51 +15,72 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2013-11-07 00:00:00 Z
18
+ date: 2013-11-11 00:00:00 Z
13
19
  dependencies:
14
20
  - !ruby/object:Gem::Dependency
15
- type: :development
16
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ name: oauth
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
17
25
  requirements:
18
26
  - - ~>
19
27
  - !ruby/object:Gem::Version
28
+ hash: 1
29
+ segments:
30
+ - 0
31
+ - 4
32
+ - 7
20
33
  version: 0.4.7
21
- name: oauth
22
- prerelease: false
23
- requirement: *id001
24
- - !ruby/object:Gem::Dependency
25
34
  type: :development
26
- version_requirements: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
27
41
  requirements:
28
42
  - - ~>
29
43
  - !ruby/object:Gem::Version
44
+ hash: 9
45
+ segments:
46
+ - 1
47
+ - 3
30
48
  version: "1.3"
31
- name: bundler
32
- prerelease: false
33
- requirement: *id002
34
- - !ruby/object:Gem::Dependency
35
49
  type: :development
36
- version_requirements: &id003 !ruby/object:Gem::Requirement
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: rake
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
37
56
  requirements:
38
- - &id004
39
- - ">="
57
+ - - ">="
40
58
  - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
41
62
  version: "0"
42
- name: rake
43
- prerelease: false
44
- requirement: *id003
45
- - !ruby/object:Gem::Dependency
46
63
  type: :development
47
- version_requirements: &id005 !ruby/object:Gem::Requirement
48
- requirements:
49
- - *id004
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
50
66
  name: rspec
51
67
  prerelease: false
52
- requirement: *id005
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :development
78
+ version_requirements: *id004
53
79
  description: Command to get OAuth token
54
80
  email:
55
- - hara2001@gmail.com
81
+ - haracane@gmail.com
56
82
  executables:
83
+ - oareq
57
84
  - oatok
58
85
  extensions: []
59
86
 
@@ -67,36 +94,51 @@ files:
67
94
  - LICENSE.txt
68
95
  - README.md
69
96
  - Rakefile
97
+ - bin/oareq
70
98
  - bin/oatok
71
99
  - lib/oauth_token.rb
100
+ - lib/oauth_token/command/oareq.rb
72
101
  - lib/oauth_token/command/oatok.rb
73
102
  - lib/oauth_token/version.rb
74
103
  - oauthtoken.gemspec
104
+ - spec/lib/oauth_token/command/oareq_spec.rb
75
105
  - spec/oauth_token_spec.rb
76
106
  - spec/spec_helper.rb
77
107
  homepage: ""
78
108
  licenses:
79
109
  - MIT
80
- metadata: {}
81
-
82
110
  post_install_message:
83
111
  rdoc_options: []
84
112
 
85
113
  require_paths:
86
114
  - lib
87
115
  required_ruby_version: !ruby/object:Gem::Requirement
116
+ none: false
88
117
  requirements:
89
- - *id004
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
90
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
+ none: false
91
126
  requirements:
92
- - *id004
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
93
133
  requirements: []
94
134
 
95
135
  rubyforge_project:
96
- rubygems_version: 2.0.13
136
+ rubygems_version: 1.8.25
97
137
  signing_key:
98
- specification_version: 4
138
+ specification_version: 3
99
139
  summary: Command to get OAuth token
100
140
  test_files:
141
+ - spec/lib/oauth_token/command/oareq_spec.rb
101
142
  - spec/oauth_token_spec.rb
102
143
  - spec/spec_helper.rb
144
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA512:
3
- metadata.gz: 095fd3ee4e21ae7de17002d4f8f1009708ad85ffce5300b5dadffe287e6b9218732815955ac7ffd4914943218f64c61a0bbcd3e6d77f84c51f07663a66a0d9b0
4
- data.tar.gz: 9f546e6284ea98925fdf13e872e4937cce512f00c73aa6afa550b0c6cdab38dc925682c5ab83de66bae40fe413728a22079e8c30a40e2bbca98c472de10ccd9f
5
- SHA1:
6
- metadata.gz: 4b8513faa5a88a4d3ce6955358d2c1d985af6266
7
- data.tar.gz: 7af193782f35ffdef27b579af837ca442163eba6