oauth 0.3.7.pre1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of oauth might be problematic. Click here for more details.
- data/.gitignore +2 -1
- data/{History.txt → HISTORY} +9 -2
- data/{License.txt → LICENSE} +0 -0
- data/README.rdoc +7 -4
- data/Rakefile +2 -3
- data/bin/oauth +2 -2
- data/lib/oauth.rb +5 -1
- data/lib/oauth/client/helper.rb +7 -2
- data/lib/oauth/client/net_http.rb +26 -21
- data/lib/oauth/consumer.rb +8 -10
- data/lib/oauth/oauth.rb +3 -1
- data/lib/oauth/request_proxy/net_http.rb +4 -0
- data/lib/oauth/signature.rb +5 -0
- data/lib/oauth/signature/base.rb +13 -0
- data/lib/oauth/signature/hmac/sha1.rb +1 -0
- data/lib/oauth/signature/rsa/sha1.rb +1 -0
- data/oauth.gemspec +15 -22
- data/test/test_action_controller_request_proxy.rb +1 -1
- data/test/test_net_http_client.rb +48 -5
- metadata +77 -40
- data/Manifest.txt +0 -86
- data/lib/oauth/version.rb +0 -3
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -74
- data/setup.rb +0 -1585
- data/website/index.html +0 -87
- data/website/index.txt +0 -73
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -138
- data/website/template.rhtml +0 -48
@@ -62,6 +62,32 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
62
62
|
assert_matching_headers correct_sorted_params, request['authorization']
|
63
63
|
end
|
64
64
|
|
65
|
+
def test_that_using_auth_headers_on_post_requests_with_data_works
|
66
|
+
request = Net::HTTP::Post.new(@request_uri.path)
|
67
|
+
request.body = "data"
|
68
|
+
request.content_type = 'text/ascii'
|
69
|
+
request.oauth!(@http, @consumer, @token, {:nonce => @nonce, :timestamp => @timestamp})
|
70
|
+
|
71
|
+
assert_equal 'POST', request.method
|
72
|
+
assert_equal '/test', request.path
|
73
|
+
assert_equal 'data', request.body
|
74
|
+
assert_equal 'text/ascii', request.content_type
|
75
|
+
assert_matching_headers "oauth_nonce=\"225579211881198842005988698334675835446\", oauth_body_hash=\"oXyaqmHoChv3HQ2FCvTluqmAC70%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_token=\"token_411a7f\", oauth_timestamp=\"1199645624\", oauth_consumer_key=\"consumer_key_86cad9\", oauth_signature=\"0DA6pGTapdHSqC15RZelY5rNLDw%3D\", oauth_version=\"1.0\"", request['authorization']
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_that_body_hash_is_obmitted_when_no_algorithm_is_defined
|
79
|
+
request = Net::HTTP::Post.new(@request_uri.path)
|
80
|
+
request.body = "data"
|
81
|
+
request.content_type = 'text/ascii'
|
82
|
+
request.oauth!(@http, @consumer, @token, {:nonce => @nonce, :timestamp => @timestamp, :signature_method => 'plaintext'})
|
83
|
+
|
84
|
+
assert_equal 'POST', request.method
|
85
|
+
assert_equal '/test', request.path
|
86
|
+
assert_equal 'data', request.body
|
87
|
+
assert_equal 'text/ascii', request.content_type
|
88
|
+
assert_matching_headers "oauth_nonce=\"225579211881198842005988698334675835446\", oauth_signature_method=\"plaintext\", oauth_token=\"token_411a7f\", oauth_timestamp=\"1199645624\", oauth_consumer_key=\"consumer_key_86cad9\", oauth_signature=\"5888bf0345e5d237%263196ffd991c8ebdb\", oauth_version=\"1.0\"", request['authorization']
|
89
|
+
end
|
90
|
+
|
65
91
|
def test_that_version_is_added_to_existing_user_agent
|
66
92
|
request = Net::HTTP::Post.new(@request_uri.path)
|
67
93
|
request['User-Agent'] = "MyApp"
|
@@ -127,6 +153,7 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
127
153
|
|
128
154
|
def test_that_using_post_with_uri_params_works
|
129
155
|
request = Net::HTTP::Post.new(@request_uri.path + "?" + request_parameters_to_s)
|
156
|
+
request.set_form_data( {} ) # just to make sure we have a correct mime type and thus no body hash
|
130
157
|
request.oauth!(@http, @consumer, @token, {:scheme => 'query_string', :nonce => @nonce, :timestamp => @timestamp})
|
131
158
|
|
132
159
|
assert_equal 'POST', request.method
|
@@ -134,7 +161,7 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
134
161
|
assert_equal '/test', uri.path
|
135
162
|
assert_equal nil, uri.fragment
|
136
163
|
assert_equal "key=value&oauth_consumer_key=consumer_key_86cad9&oauth_nonce=225579211881198842005988698334675835446&oauth_signature=26g7wHTtNO6ZWJaLltcueppHYiI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1199645624&oauth_token=token_411a7f&oauth_version=1.0", uri.query.split("&").sort.join('&')
|
137
|
-
assert_equal
|
164
|
+
assert_equal "", request.body
|
138
165
|
assert_equal nil, request['authorization']
|
139
166
|
end
|
140
167
|
|
@@ -152,6 +179,22 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
152
179
|
assert_equal nil, request['authorization']
|
153
180
|
end
|
154
181
|
|
182
|
+
def test_that_using_post_with_uri_and_data_works
|
183
|
+
request = Net::HTTP::Post.new(@request_uri.path + "?" + request_parameters_to_s)
|
184
|
+
request.body = "data"
|
185
|
+
request.content_type = 'text/ascii'
|
186
|
+
request.oauth!(@http, @consumer, @token, {:scheme => :query_string, :nonce => @nonce, :timestamp => @timestamp})
|
187
|
+
|
188
|
+
assert_equal 'POST', request.method
|
189
|
+
uri = URI.parse(request.path)
|
190
|
+
assert_equal '/test', uri.path
|
191
|
+
assert_equal nil, uri.fragment
|
192
|
+
assert_equal "data", request.body
|
193
|
+
assert_equal 'text/ascii', request.content_type
|
194
|
+
assert_equal "key=value&oauth_body_hash=oXyaqmHoChv3HQ2FCvTluqmAC70%3D&oauth_consumer_key=consumer_key_86cad9&oauth_nonce=225579211881198842005988698334675835446&oauth_signature=MHRKU42iVHU4Ke9kBUDa9Zw6IAM%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1199645624&oauth_token=token_411a7f&oauth_version=1.0", uri.query.split("&").sort.join('&')
|
195
|
+
assert_equal nil, request['authorization']
|
196
|
+
end
|
197
|
+
|
155
198
|
|
156
199
|
def test_example_from_specs
|
157
200
|
consumer=OAuth::Consumer.new("dpf43f3p2l4k3l03","kd94hf93k423kf44")
|
@@ -200,12 +243,12 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
200
243
|
assert_equal "oauth_token=requestkey&oauth_token_secret=requestsecret",response.body
|
201
244
|
end
|
202
245
|
|
203
|
-
def
|
246
|
+
def test_that_put_bodies_signed
|
204
247
|
request = Net::HTTP::Put.new(@request_uri.path)
|
205
248
|
request.body = "<?xml version=\"1.0\"?><foo><bar>baz</bar></foo>"
|
206
249
|
request["Content-Type"] = "application/xml"
|
207
250
|
signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce => @nonce, :timestamp => @timestamp })
|
208
|
-
assert_equal "PUT&http%3A%2F%2Fexample.com%2Ftest&
|
251
|
+
assert_equal "PUT&http%3A%2F%2Fexample.com%2Ftest&oauth_body_hash%3DDvAa1AWdFoH9K%252B%252F2AHm3f6wH27k%253D%26oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_version%3D1.0", signature_base_string
|
209
252
|
end
|
210
253
|
|
211
254
|
def test_that_put_bodies_not_signed_even_if_form_urlencoded
|
@@ -222,12 +265,12 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
222
265
|
assert_equal "POST&http%3A%2F%2Fexample.com%2Ftest&key2%3Dvalue2%26oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_version%3D1.0", signature_base_string
|
223
266
|
end
|
224
267
|
|
225
|
-
def
|
268
|
+
def test_that_post_bodies_signed_if_other_content_type
|
226
269
|
request = Net::HTTP::Post.new(@request_uri.path)
|
227
270
|
request.body = "<?xml version=\"1.0\"?><foo><bar>baz</bar></foo>"
|
228
271
|
request["Content-Type"] = "application/xml"
|
229
272
|
signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce => @nonce, :timestamp => @timestamp })
|
230
|
-
assert_equal "POST&http%3A%2F%2Fexample.com%2Ftest&
|
273
|
+
assert_equal "POST&http%3A%2F%2Fexample.com%2Ftest&oauth_body_hash%3DDvAa1AWdFoH9K%252B%252F2AHm3f6wH27k%253D%26oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_version%3D1.0", signature_base_string
|
231
274
|
end
|
232
275
|
|
233
276
|
protected
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 0.4.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Pelle Braendgaard
|
@@ -16,59 +21,99 @@ autorequire:
|
|
16
21
|
bindir: bin
|
17
22
|
cert_chain: []
|
18
23
|
|
19
|
-
date: 2010-
|
24
|
+
date: 2010-04-21 00:00:00 -04:00
|
20
25
|
default_executable: oauth
|
21
26
|
dependencies:
|
22
27
|
- !ruby/object:Gem::Dependency
|
23
28
|
name: actionpack
|
24
|
-
|
25
|
-
|
26
|
-
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
31
|
requirements:
|
28
32
|
- - ">="
|
29
33
|
- !ruby/object:Gem::Version
|
34
|
+
segments:
|
35
|
+
- 2
|
36
|
+
- 2
|
37
|
+
- 0
|
30
38
|
version: 2.2.0
|
31
|
-
|
39
|
+
- - <
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 2
|
43
|
+
- 3
|
44
|
+
- 0
|
45
|
+
version: 2.3.0
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id001
|
32
48
|
- !ruby/object:Gem::Dependency
|
33
49
|
name: rack
|
34
|
-
|
35
|
-
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
52
|
requirements:
|
38
53
|
- - ">="
|
39
54
|
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 0
|
58
|
+
- 0
|
40
59
|
version: 1.0.0
|
41
|
-
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id002
|
42
62
|
- !ruby/object:Gem::Dependency
|
43
63
|
name: mocha
|
44
|
-
|
45
|
-
|
46
|
-
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
47
66
|
requirements:
|
48
67
|
- - ">="
|
49
68
|
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
- 9
|
72
|
+
- 8
|
50
73
|
version: 0.9.8
|
51
|
-
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id003
|
52
76
|
- !ruby/object:Gem::Dependency
|
53
77
|
name: typhoeus
|
54
|
-
|
55
|
-
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
57
80
|
requirements:
|
58
81
|
- - ">="
|
59
82
|
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
- 1
|
86
|
+
- 13
|
60
87
|
version: 0.1.13
|
61
|
-
|
88
|
+
type: :development
|
89
|
+
version_requirements: *id004
|
62
90
|
- !ruby/object:Gem::Dependency
|
63
91
|
name: em-http-request
|
64
|
-
|
65
|
-
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
67
94
|
requirements:
|
68
95
|
- - ">="
|
69
96
|
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 0
|
70
99
|
version: "0"
|
71
|
-
|
100
|
+
type: :development
|
101
|
+
version_requirements: *id005
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: curb
|
104
|
+
prerelease: false
|
105
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
- 6
|
112
|
+
- 6
|
113
|
+
- 0
|
114
|
+
version: 0.6.6.0
|
115
|
+
type: :development
|
116
|
+
version_requirements: *id006
|
72
117
|
description: OAuth Core Ruby implementation
|
73
118
|
email: oauth-ruby@googlegroups.com
|
74
119
|
executables:
|
@@ -76,13 +121,13 @@ executables:
|
|
76
121
|
extensions: []
|
77
122
|
|
78
123
|
extra_rdoc_files:
|
124
|
+
- LICENSE
|
79
125
|
- README.rdoc
|
80
126
|
- TODO
|
81
127
|
files:
|
82
128
|
- .gitignore
|
83
|
-
-
|
84
|
-
-
|
85
|
-
- Manifest.txt
|
129
|
+
- HISTORY
|
130
|
+
- LICENSE
|
86
131
|
- README.rdoc
|
87
132
|
- Rakefile
|
88
133
|
- TODO
|
@@ -133,12 +178,7 @@ files:
|
|
133
178
|
- lib/oauth/tokens/request_token.rb
|
134
179
|
- lib/oauth/tokens/server_token.rb
|
135
180
|
- lib/oauth/tokens/token.rb
|
136
|
-
- lib/oauth/version.rb
|
137
181
|
- oauth.gemspec
|
138
|
-
- script/destroy
|
139
|
-
- script/generate
|
140
|
-
- script/txt2html
|
141
|
-
- setup.rb
|
142
182
|
- tasks/deployment.rake
|
143
183
|
- tasks/environment.rake
|
144
184
|
- tasks/website.rake
|
@@ -170,11 +210,6 @@ files:
|
|
170
210
|
- test/test_signature_plain_text.rb
|
171
211
|
- test/test_token.rb
|
172
212
|
- test/test_typhoeus_request_proxy.rb
|
173
|
-
- website/index.html
|
174
|
-
- website/index.txt
|
175
|
-
- website/javascripts/rounded_corners_lite.inc.js
|
176
|
-
- website/stylesheets/screen.css
|
177
|
-
- website/template.rhtml
|
178
213
|
has_rdoc: true
|
179
214
|
homepage:
|
180
215
|
licenses: []
|
@@ -188,18 +223,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
223
|
requirements:
|
189
224
|
- - ">="
|
190
225
|
- !ruby/object:Gem::Version
|
226
|
+
segments:
|
227
|
+
- 0
|
191
228
|
version: "0"
|
192
|
-
version:
|
193
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
230
|
requirements:
|
195
|
-
- - "
|
231
|
+
- - ">="
|
196
232
|
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
|
233
|
+
segments:
|
234
|
+
- 0
|
235
|
+
version: "0"
|
199
236
|
requirements: []
|
200
237
|
|
201
238
|
rubyforge_project: oauth
|
202
|
-
rubygems_version: 1.3.
|
239
|
+
rubygems_version: 1.3.6
|
203
240
|
signing_key:
|
204
241
|
specification_version: 3
|
205
242
|
summary: OAuth Core Ruby implementation
|
data/Manifest.txt
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
License.txt
|
3
|
-
Manifest.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
TODO
|
7
|
-
bin/oauth
|
8
|
-
examples/yql.rb
|
9
|
-
lib/oauth.rb
|
10
|
-
lib/oauth/oauth.rb
|
11
|
-
lib/oauth/cli.rb
|
12
|
-
lib/oauth/client.rb
|
13
|
-
lib/oauth/client/action_controller_request.rb
|
14
|
-
lib/oauth/client/helper.rb
|
15
|
-
lib/oauth/client/net_http.rb
|
16
|
-
lib/oauth/client/em_http.rb
|
17
|
-
lib/oauth/consumer.rb
|
18
|
-
lib/oauth/errors.rb
|
19
|
-
lib/oauth/errors/error.rb
|
20
|
-
lib/oauth/errors/problem.rb
|
21
|
-
lib/oauth/errors/unauthorized.rb
|
22
|
-
lib/oauth/helper.rb
|
23
|
-
lib/oauth/oauth_test_helper.rb
|
24
|
-
lib/oauth/request_proxy.rb
|
25
|
-
lib/oauth/request_proxy/action_controller_request.rb
|
26
|
-
lib/oauth/request_proxy/base.rb
|
27
|
-
lib/oauth/request_proxy/jabber_request.rb
|
28
|
-
lib/oauth/request_proxy/mock_request.rb
|
29
|
-
lib/oauth/request_proxy/net_http.rb
|
30
|
-
lib/oauth/request_proxy/rack_request.rb
|
31
|
-
lib/oauth/request_proxy/em_http_request.rb
|
32
|
-
lib/oauth/server.rb
|
33
|
-
lib/oauth/signature.rb
|
34
|
-
lib/oauth/signature/base.rb
|
35
|
-
lib/oauth/signature/hmac/base.rb
|
36
|
-
lib/oauth/signature/hmac/md5.rb
|
37
|
-
lib/oauth/signature/hmac/rmd160.rb
|
38
|
-
lib/oauth/signature/hmac/sha1.rb
|
39
|
-
lib/oauth/signature/hmac/sha2.rb
|
40
|
-
lib/oauth/signature/md5.rb
|
41
|
-
lib/oauth/signature/plaintext.rb
|
42
|
-
lib/oauth/signature/rsa/sha1.rb
|
43
|
-
lib/oauth/signature/sha1.rb
|
44
|
-
lib/oauth/token.rb
|
45
|
-
lib/oauth/tokens/access_token.rb
|
46
|
-
lib/oauth/tokens/consumer_token.rb
|
47
|
-
lib/oauth/tokens/request_token.rb
|
48
|
-
lib/oauth/tokens/server_token.rb
|
49
|
-
lib/oauth/tokens/token.rb
|
50
|
-
lib/oauth/version.rb
|
51
|
-
oauth.gemspec
|
52
|
-
script/destroy
|
53
|
-
script/generate
|
54
|
-
script/txt2html
|
55
|
-
setup.rb
|
56
|
-
tasks/deployment.rake
|
57
|
-
tasks/environment.rake
|
58
|
-
tasks/website.rake
|
59
|
-
test/cases/oauth_case.rb
|
60
|
-
test/cases/spec/1_0-final/test_construct_request_url.rb
|
61
|
-
test/cases/spec/1_0-final/test_normalize_request_parameters.rb
|
62
|
-
test/cases/spec/1_0-final/test_parameter_encodings.rb
|
63
|
-
test/cases/spec/1_0-final/test_signature_base_strings.rb
|
64
|
-
test/keys/rsa.cert
|
65
|
-
test/keys/rsa.pem
|
66
|
-
test/test_access_token.rb
|
67
|
-
test/test_action_controller_request_proxy.rb
|
68
|
-
test/test_consumer.rb
|
69
|
-
test/test_helper.rb
|
70
|
-
test/test_hmac_sha1.rb
|
71
|
-
test/test_net_http_client.rb
|
72
|
-
test/test_net_http_request_proxy.rb
|
73
|
-
test/test_oauth_helper.rb
|
74
|
-
test/test_rack_request_proxy.rb
|
75
|
-
test/test_request_token.rb
|
76
|
-
test/test_rsa_sha1.rb
|
77
|
-
test/test_server.rb
|
78
|
-
test/test_signature.rb
|
79
|
-
test/test_signature_base.rb
|
80
|
-
test/test_signature_plain_text.rb
|
81
|
-
test/test_token.rb
|
82
|
-
website/index.html
|
83
|
-
website/index.txt
|
84
|
-
website/javascripts/rounded_corners_lite.inc.js
|
85
|
-
website/stylesheets/screen.css
|
86
|
-
website/template.rhtml
|
data/lib/oauth/version.rb
DELETED
data/script/destroy
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.join(File.dirname(__FILE__), '..')
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/destroy'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.join(File.dirname(__FILE__), '..')
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/generate'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/txt2html
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
begin
|
5
|
-
require 'newgem'
|
6
|
-
rescue LoadError
|
7
|
-
puts "\n\nGenerating the website requires the newgem RubyGem"
|
8
|
-
puts "Install: gem install newgem\n\n"
|
9
|
-
exit(1)
|
10
|
-
end
|
11
|
-
require 'redcloth'
|
12
|
-
require 'syntax/convertors/html'
|
13
|
-
require 'erb'
|
14
|
-
require File.dirname(__FILE__) + '/../lib/oauth/version.rb'
|
15
|
-
|
16
|
-
version = OAuth::VERSION::STRING
|
17
|
-
download = 'http://rubyforge.org/projects/oauth'
|
18
|
-
|
19
|
-
class Fixnum
|
20
|
-
def ordinal
|
21
|
-
# teens
|
22
|
-
return 'th' if (10..19).include?(self % 100)
|
23
|
-
# others
|
24
|
-
case self % 10
|
25
|
-
when 1: return 'st'
|
26
|
-
when 2: return 'nd'
|
27
|
-
when 3: return 'rd'
|
28
|
-
else return 'th'
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
class Time
|
34
|
-
def pretty
|
35
|
-
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def convert_syntax(syntax, source)
|
40
|
-
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
41
|
-
end
|
42
|
-
|
43
|
-
if ARGV.length >= 1
|
44
|
-
src, template = ARGV
|
45
|
-
template ||= File.join(File.dirname(__FILE__), '/../website/template.rhtml')
|
46
|
-
|
47
|
-
else
|
48
|
-
puts("Usage: #{File.split($0).last} source.txt [template.rhtml] > output.html")
|
49
|
-
exit!
|
50
|
-
end
|
51
|
-
|
52
|
-
template = ERB.new(File.open(template).read)
|
53
|
-
|
54
|
-
title = nil
|
55
|
-
body = nil
|
56
|
-
File.open(src) do |fsrc|
|
57
|
-
title_text = fsrc.readline
|
58
|
-
body_text = fsrc.read
|
59
|
-
syntax_items = []
|
60
|
-
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
|
61
|
-
ident = syntax_items.length
|
62
|
-
element, syntax, source = $1, $2, $3
|
63
|
-
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
64
|
-
"syntax-temp-#{ident}"
|
65
|
-
}
|
66
|
-
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
67
|
-
body = RedCloth.new(body_text).to_html
|
68
|
-
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
69
|
-
end
|
70
|
-
stat = File.stat(src)
|
71
|
-
created = stat.ctime
|
72
|
-
modified = stat.mtime
|
73
|
-
|
74
|
-
$stdout << template.result(binding)
|