oauth 0.3.7.pre1 → 0.4.0
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.
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)
|