oauthtoken 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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