currency 0.1.1 → 0.1.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.
- data/Manifest.txt +25 -0
- data/Rakefile +31 -298
- data/Releases +4 -0
- data/lib/currency.rb +57 -0
- data/lib/currency/currency_version.rb +1 -1
- metadata +27 -18
- data/scripts/gemdoc.rb +0 -62
data/Manifest.txt
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
test/xe_test.rb
|
2
|
+
test/money_test.rb
|
3
|
+
test/test_base.rb
|
4
|
+
lib/currency/money_helper.rb
|
5
|
+
lib/currency/exception.rb
|
6
|
+
lib/currency/currency_version.rb
|
7
|
+
lib/currency/currency_factory.rb
|
8
|
+
lib/currency/core_extensions.rb
|
9
|
+
lib/currency/money.rb
|
10
|
+
lib/currency/active_record.rb
|
11
|
+
lib/currency/currency.rb
|
12
|
+
lib/currency/exchange.rb
|
13
|
+
lib/currency/exchange/base.rb
|
14
|
+
lib/currency/exchange/test.rb
|
15
|
+
lib/currency/exchange/xe.rb
|
16
|
+
lib/currency/exchange/rate.rb
|
17
|
+
lib/currency.rb
|
18
|
+
examples/xe1.rb
|
19
|
+
examples/ex1.rb
|
20
|
+
ChangeLog
|
21
|
+
Rakefile
|
22
|
+
TODO
|
23
|
+
Releases
|
24
|
+
README
|
25
|
+
Manifest.txt
|
data/Rakefile
CHANGED
@@ -4,324 +4,57 @@
|
|
4
4
|
|
5
5
|
#################################################################
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
'0.1.1'
|
10
|
-
end
|
11
|
-
def package_description
|
12
|
-
%{Currency models currencies, monetary values, foreign exchanges.}
|
13
|
-
end
|
14
|
-
|
15
|
-
#################################################################
|
16
|
-
|
17
|
-
#require 'rubygems'
|
18
|
-
require 'rake/clean'
|
19
|
-
require 'rake/testtask'
|
20
|
-
require 'rake/packagetask'
|
21
|
-
require 'rake/gempackagetask'
|
22
|
-
require 'rake/rdoctask'
|
7
|
+
require 'rubygems'
|
8
|
+
require 'hoe'
|
23
9
|
|
24
10
|
#################################################################
|
25
11
|
|
26
|
-
|
27
|
-
STDERR.puts msg
|
28
|
-
end
|
29
|
-
|
12
|
+
PKG_Name = 'Currency'
|
30
13
|
PKG_NAME = PKG_Name.gsub(/[a-z][A-Z]/) {|x| "#{x[0,1]}_#{x[1,1]}"}.downcase
|
31
|
-
RUBY_FORGE_PROJECT = PKG_NAME
|
32
|
-
|
33
|
-
if ENV['REL']
|
34
|
-
PKG_VERSION = ENV['REL']
|
35
|
-
CURRENT_VERSION = package_version
|
36
|
-
else
|
37
|
-
PKG_VERSION = package_version
|
38
|
-
CURRENT_VERSION = PKG_VERSION
|
39
|
-
end
|
40
|
-
|
41
|
-
CLEAN.include("COMMENTS")
|
42
|
-
CLOBBER.include(
|
43
|
-
"test/data",
|
44
|
-
"test/temp",
|
45
|
-
'scripts/*.hieraki',
|
46
|
-
'data__',
|
47
|
-
'html',
|
48
|
-
'pkgs/sources/sources*.gem',
|
49
|
-
'.config',
|
50
|
-
'**/debug.log',
|
51
|
-
'**/development.log',
|
52
|
-
'logs'
|
53
|
-
)
|
54
|
-
|
55
|
-
task :default => [:test]
|
56
|
-
|
57
|
-
Rake::TestTask.new(:test) do |t|
|
58
|
-
t.test_files = FileList['test/*test*.rb']
|
59
|
-
end
|
60
|
-
|
61
|
-
Rake::TestTask.new(:functional) do |t|
|
62
|
-
t.test_files = FileList['test/functional*.rb']
|
63
|
-
end
|
64
|
-
|
65
|
-
Rake::TestTask.new(:alltests) do |t|
|
66
|
-
t.test_files = FileList['test/{*test,functional}*.rb']
|
67
|
-
end
|
68
14
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
inf.each do |line|
|
76
|
-
if line =~ /td align/
|
77
|
-
line = " <td align=\"left\">#{Time.now}</td><td align=\"right\">"
|
78
|
-
end
|
79
|
-
outf.puts line
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
mv "#{html_dir}/summary.html", "#{html_dir}/summary.old"
|
84
|
-
mv "#{html_dir}/summary.new", "#{html_dir}/summary.html"
|
85
|
-
end
|
86
|
-
|
87
|
-
# Shortcuts for test targets
|
88
|
-
task :tf => [:functional]
|
89
|
-
task :tu => [:test]
|
90
|
-
task :ta => [:alltests]
|
91
|
-
|
92
|
-
task :gemtest do
|
93
|
-
ruby %{-Ilib -rscripts/runtest -e 'run_tests("test/test_gempaths.rb", true)'}
|
94
|
-
end
|
95
|
-
|
96
|
-
# --------------------------------------------------------------------
|
97
|
-
# Creating a release
|
98
|
-
|
99
|
-
desc "Make a new release"
|
100
|
-
task :release => [
|
101
|
-
:prerelease,
|
102
|
-
:clobber,
|
103
|
-
:alltests,
|
104
|
-
:update_version,
|
105
|
-
:package,
|
106
|
-
:tag] do
|
15
|
+
hoe = Hoe.new("currency", '0.1.2') do |p|
|
16
|
+
p.author = 'Kurt Stephens'
|
17
|
+
p.description = %{Currency models currencies, monetary values, foreign exchanges.}
|
18
|
+
p.email = "ruby-#{PKG_NAME}@umleta.com"
|
19
|
+
p.summary = p.description
|
20
|
+
p.url = "http://rubyforge.org/projects/#{PKG_NAME}"
|
107
21
|
|
108
|
-
|
109
|
-
announce "**************************************************************"
|
110
|
-
announce "* Release #{PKG_VERSION} Complete."
|
111
|
-
announce "* Packages ready to upload."
|
112
|
-
announce "**************************************************************"
|
113
|
-
announce
|
22
|
+
p.test_globs = ['test/**/*.rb']
|
114
23
|
end
|
115
24
|
|
116
|
-
|
117
|
-
task :prerelease do
|
118
|
-
announce
|
119
|
-
announce "**************************************************************"
|
120
|
-
announce "* Making #{PKG_Name} Release #{PKG_VERSION}"
|
121
|
-
announce "* (current version #{CURRENT_VERSION})"
|
122
|
-
announce "**************************************************************"
|
123
|
-
announce
|
25
|
+
PKG_VERSION = hoe.version
|
124
26
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
end
|
129
|
-
|
130
|
-
# Is the release different than the current release.
|
131
|
-
# (or is REUSE set?)
|
132
|
-
if PKG_VERSION == CURRENT_VERSION && ! ENV['REUSE']
|
133
|
-
fail "Current version is #{PKG_VERSION}, must specify REUSE=tag_suffix to reuse version"
|
134
|
-
end
|
27
|
+
#################################################################
|
28
|
+
# Version file
|
29
|
+
#
|
135
30
|
|
136
|
-
|
137
|
-
|
138
|
-
announce "Release Task Testing, skipping checked-in file test"
|
139
|
-
else
|
140
|
-
announce "Checking for unchecked-in files..."
|
141
|
-
data = `svn status`
|
142
|
-
unless data =~ /^$/
|
143
|
-
fail "svn status is not clean ... do you have unchecked-in files?"
|
144
|
-
end
|
145
|
-
announce "No outstanding checkins found ... OK"
|
146
|
-
end
|
31
|
+
def announce(msg='')
|
32
|
+
STDERR.puts msg
|
147
33
|
end
|
148
34
|
|
149
|
-
|
150
|
-
if PKG_VERSION == CURRENT_VERSION && ! ENV['FORCE']
|
151
|
-
announce "No version change ... skipping version update"
|
152
|
-
else
|
153
|
-
announce "Updating #{PKG_Name} version to #{PKG_VERSION}"
|
154
|
-
version_rb = "lib/#{PKG_NAME}/#{PKG_NAME}_version.rb"
|
155
|
-
open(version_rb, "w") do |f|
|
156
|
-
f.puts "# DO NOT EDIT"
|
157
|
-
f.puts "# This file is auto-generated by build scripts."
|
158
|
-
f.puts "# See: rake update_version"
|
159
|
-
f.puts "module #{PKG_Name}"
|
160
|
-
f.puts " #{PKG_Name}Version = '#{PKG_VERSION}'"
|
161
|
-
f.puts "end"
|
162
|
-
end
|
163
|
-
if ENV['RELTEST']
|
164
|
-
announce "Release Task Testing, skipping commiting of new version"
|
165
|
-
else
|
166
|
-
sh %{svn commit -m "Updated to version #{PKG_VERSION}" #{version_rb}}
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
35
|
+
version_rb = "lib/#{PKG_NAME}/#{PKG_NAME}_version.rb"
|
170
36
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
37
|
+
task :update_version => 'Rakefile' do
|
38
|
+
announce "Updating #{PKG_Name} version to #{PKG_VERSION}: #{version_rb}"
|
39
|
+
open(version_rb, "w") do |f|
|
40
|
+
f.puts "# DO NOT EDIT"
|
41
|
+
f.puts "# This file is auto-generated by build scripts."
|
42
|
+
f.puts "# See: rake update_version"
|
43
|
+
f.puts "module #{PKG_Name}"
|
44
|
+
f.puts " #{PKG_Name}Version = '#{PKG_VERSION}'"
|
45
|
+
f.puts "end"
|
46
|
+
end
|
176
47
|
if ENV['RELTEST']
|
177
|
-
announce "Release Task Testing, skipping
|
48
|
+
announce "Release Task Testing, skipping commiting of new version"
|
178
49
|
else
|
179
|
-
sh %{
|
50
|
+
sh %{svn commit -m "Updated to version #{PKG_VERSION}" #{version_rb}}
|
180
51
|
end
|
181
52
|
end
|
182
53
|
|
183
|
-
|
184
|
-
# Create a task to build the RDOC documentation tree.
|
185
|
-
|
186
|
-
desc "Create the RDOC html files"
|
187
|
-
rd = Rake::RDocTask.new("rdoc") { |rdoc|
|
188
|
-
rdoc.rdoc_dir = 'html'
|
189
|
-
rdoc.title = "#{PKG_Name}"
|
190
|
-
rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
191
|
-
rdoc.rdoc_files.include('README', 'TODO', 'Releases')
|
192
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
193
|
-
# rdoc.rdoc_files.include('test/**/*.rb')
|
194
|
-
}
|
195
|
-
|
196
|
-
file "html/index.html" => [:rdoc]
|
197
|
-
|
198
|
-
desc "Publish the RDOCs on RubyForge"
|
199
|
-
task :publish_rdoc => ["html/index.html"] do
|
200
|
-
# NOTE: This task assumes that you have an SSH alias setup for rubyforge.
|
201
|
-
mkdir_p "emptydir"
|
202
|
-
sh "scp -rq emptydir rubyforge:/var/www/gforge-projects/#{RUBY_FORGE_PROJECT}/rdoc"
|
203
|
-
sh "scp -rq html/* rubyforge:/var/www/gforge-projects/#{RUBY_FORGE_PROJECT}/rdoc"
|
204
|
-
rm_r "emptydir"
|
205
|
-
end
|
206
|
-
|
207
|
-
# Wiki Doc Targets
|
208
|
-
|
209
|
-
desc "Upload the Hieraki Data"
|
210
|
-
task :upload => [:upload_gemdoc]
|
211
|
-
|
212
|
-
task :upload_gemdoc => ['scripts/gemdoc.hieraki'] do
|
213
|
-
ruby %{scripts/upload_gemdoc.rb}
|
214
|
-
end
|
215
|
-
|
216
|
-
desc "Build the Hieraki documentation"
|
217
|
-
task :hieraki => ['scripts/gemdoc.hieraki', 'scripts/specdoc.hieraki']
|
218
|
-
|
219
|
-
file 'scripts/gemdoc.hieraki' => ['scripts/gemdoc.rb', 'scripts/gemdoc.data'] do
|
220
|
-
chdir('scripts') do
|
221
|
-
ruby %{-I../lib gemdoc.rb <gemdoc.data >gemdoc.hieraki}
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
file 'scripts/specdoc.hieraki' =>
|
226
|
-
['scripts/specdoc.rb', 'scripts/specdoc.data', 'scripts/specdoc.yaml'] do
|
227
|
-
chdir('scripts') do
|
228
|
-
ruby %{-I../lib specdoc.rb >specdoc.hieraki}
|
229
|
-
end
|
230
|
-
end
|
54
|
+
task version_rb => :update_version
|
231
55
|
|
232
|
-
#
|
56
|
+
# task :test => :update_version
|
233
57
|
|
234
|
-
PKG_FILES = FileList[
|
235
|
-
"Rakefile", "ChangeLog", "Releases", "TODO", "README",
|
236
|
-
# "setup.rb",
|
237
|
-
# "post-install.rb",
|
238
|
-
"bin/*",
|
239
|
-
"doc/*.css", "doc/*.rb",
|
240
|
-
"examples/**/*",
|
241
|
-
# "gemspecs/**/*",
|
242
|
-
"lib/**/*.rb",
|
243
|
-
# "pkgs/**/*",
|
244
|
-
"redist/*.gem",
|
245
|
-
"scripts/*.rb",
|
246
|
-
"test/**/*"
|
247
|
-
]
|
248
|
-
PKG_FILES.exclude(%r(^(test/temp|examples/.*/*.log)(/|$)))
|
249
|
-
|
250
|
-
Rake::PackageTask.new("package") do |p|
|
251
|
-
p.name = PKG_NAME
|
252
|
-
p.version = PKG_VERSION
|
253
|
-
p.need_tar = true
|
254
|
-
p.need_zip = true
|
255
|
-
p.package_files = PKG_FILES
|
256
|
-
end
|
257
|
-
|
258
|
-
Spec = Gem::Specification.new do |s|
|
259
|
-
s.name = PKG_NAME
|
260
|
-
s.version = PKG_VERSION
|
261
|
-
s.summary = "#{PKG_Name} GEM"
|
262
|
-
s.description = package_description
|
263
|
-
s.files = PKG_FILES.to_a
|
264
|
-
s.require_path = 'lib'
|
265
|
-
s.author = "Kurt Stephens"
|
266
|
-
s.email = "ruby-#{PKG_NAME}@umleta.com"
|
267
|
-
s.homepage = "http://#{PKG_NAME}.rubyforge.org"
|
268
|
-
s.rubyforge_project = "#{RUBY_FORGE_PROJECT}"
|
269
|
-
#s.bindir = "bin" # Use these for applications.
|
270
|
-
#s.executables = ["update_rubygems"]
|
271
|
-
certdir = ENV['CERT_DIR']
|
272
|
-
if certdir
|
273
|
-
s.signing_key = File.join(certdir, 'gem-umleta-private_key.pem')
|
274
|
-
s.cert_chain = [File.join(certdir, 'gem-umleta-public_cert.pem')]
|
275
|
-
end
|
276
|
-
end
|
277
|
-
|
278
|
-
# Add console output about signing the Gem
|
279
|
-
file "pkg/#{Spec.full_name}.gem" do
|
280
|
-
puts "Signed with certificates in '#{ENV['CERT_DIR']}'" if ENV['CERT_DIR']
|
281
|
-
end
|
282
|
-
|
283
|
-
Rake::GemPackageTask.new(Spec) do |p| end
|
284
|
-
|
285
|
-
GEMSPEC = "pkg/#{PKG_NAME}.gemspec"
|
286
|
-
desc "Build the Gem spec file for the #{PKG_NAME} package"
|
287
|
-
task :gemspec => GEMSPEC
|
288
|
-
file "pkg/#{PKG_NAME}.gemspec" => ["pkg", "Rakefile"] do |t|
|
289
|
-
open(t.name, "w") do |f| f.puts Spec.to_yaml end
|
290
|
-
end
|
291
|
-
|
292
|
-
# Automated upload to rubyforge.org
|
293
|
-
PACKAGE_FILES = FileList["pkg/#{PKG_NAME}-#{PKG_VERSION}.*"]
|
294
|
-
task :upload_package do
|
295
|
-
# From activesuport/Rakefile,
|
296
|
-
# See: http://dev.rubyonrails.org/svn/rails/tags/rel_1-1-6/activesupport/Rakefile
|
297
|
-
`rubyforge login`
|
298
|
-
|
299
|
-
files = PACKAGE_FILES
|
300
|
-
files.each do |filename|
|
301
|
-
basename = File.basename(filename)
|
302
|
-
puts "Releasing #{basename}..."
|
303
|
-
|
304
|
-
release_command = "rubyforge add_release #{RUBY_FORGE_PROJECT} #{RUBY_FORGE_PROJECT} 'REL #{PKG_VERSION}' #{filename}"
|
305
|
-
puts release_command
|
306
|
-
system(release_command)
|
307
|
-
end
|
308
|
-
end
|
309
|
-
|
310
|
-
|
311
|
-
desc "Install #{PKG_Name}"
|
312
|
-
task :install do
|
313
|
-
ruby 'install.rb'
|
314
|
-
end
|
315
|
-
|
316
|
-
# Run 'gem' (using local bin and lib directories).
|
317
|
-
# e.g.
|
318
|
-
# rake rungem -- install -r blahblah --test
|
319
|
-
|
320
|
-
desc "Run local 'gem'"
|
321
|
-
task :rungem do
|
322
|
-
ARGV.shift
|
323
|
-
exec "ruby -Ilib bin/gem #{ARGV.join(' ')}"
|
324
|
-
end
|
325
58
|
|
326
59
|
# Misc Tasks ---------------------------------------------------------
|
327
60
|
|
data/Releases
CHANGED
data/lib/currency.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- ruby -*-
|
1
2
|
|
2
3
|
$:.unshift(File.dirname(__FILE__)) unless
|
3
4
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
@@ -10,3 +11,59 @@ require 'currency/money'
|
|
10
11
|
require 'currency/exchange'
|
11
12
|
require 'currency/core_extensions'
|
12
13
|
|
14
|
+
# The Currency package provides an object-oriented model of:
|
15
|
+
#
|
16
|
+
# * currencies
|
17
|
+
# * exchanges
|
18
|
+
# * exchange rates
|
19
|
+
# * monetary values
|
20
|
+
#
|
21
|
+
# The core classes are:
|
22
|
+
#
|
23
|
+
# * Currency::Money - uses a scaled integer representation of a monetary value and performs accurate conversions to and from string values.
|
24
|
+
# * Currency::Currency - provides an object-oriented representation of a currency.
|
25
|
+
# * Currency::Exchange::Base - the base class for a "currency exchange rate" provider.
|
26
|
+
# * Currency::Exchange::Rate - represents a exchange rate between two currencies.
|
27
|
+
#
|
28
|
+
# Below is a basic example:
|
29
|
+
#
|
30
|
+
# require 'currency'
|
31
|
+
# require 'currency/exchange/xe'
|
32
|
+
#
|
33
|
+
# usd = Currency::Money('6.78', :USD)
|
34
|
+
# puts "usd = #{usd.format}"
|
35
|
+
# cad = usd.convert(:CAD)
|
36
|
+
# puts "cad = #{cad.format}"
|
37
|
+
#
|
38
|
+
# The example above uses Currency::Exchange::Xe automatically get exchange rates from http://xe.com/.
|
39
|
+
#
|
40
|
+
# == ActiveRecord Suppport
|
41
|
+
#
|
42
|
+
# This package also contains ActiveRecord support for money values:
|
43
|
+
#
|
44
|
+
# require 'currency'
|
45
|
+
# require 'currency/active_record'
|
46
|
+
#
|
47
|
+
# class Entry < ActiveRecord::Base
|
48
|
+
# money :amount
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# In the example above, the entries.amount database column is an INTEGER that represents US cents.
|
52
|
+
# The currency code of the money value can be stored in an additional database column or a default currency can be used.
|
53
|
+
#
|
54
|
+
# == Future Enhancements
|
55
|
+
#
|
56
|
+
# * storage and retrival of historical exchange rates
|
57
|
+
# * exchange rate polling for population of historical rates
|
58
|
+
# * support for inflationary rates within a currency, e.g. $10 USD in the year 1955 in 2006 USD.
|
59
|
+
#
|
60
|
+
# == SVN Repo
|
61
|
+
#
|
62
|
+
# svn checkout svn://rubyforge.org/var/svn/currency/currency/trunk
|
63
|
+
#
|
64
|
+
# == Examples
|
65
|
+
#
|
66
|
+
# * The "test programs":http://rubyforge.org/cgi-bin/viewvc.cgi/currency/trunk/examples?root=currency
|
67
|
+
# * The "test cases":http://rubyforge.org/cgi-bin/viewvc.cgi/currency/trunk/test/?root=currency
|
68
|
+
#
|
69
|
+
|
metadata
CHANGED
@@ -3,19 +3,20 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: currency
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
6
|
+
version: 0.1.2
|
7
7
|
date: 2006-10-30 00:00:00 -05:00
|
8
|
-
summary: Currency
|
8
|
+
summary: Currency models currencies, monetary values, foreign exchanges.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
|
+
- test
|
11
12
|
email: ruby-currency@umleta.com
|
12
|
-
homepage: http://
|
13
|
+
homepage: http://rubyforge.org/projects/currency
|
13
14
|
rubyforge_project: currency
|
14
15
|
description: Currency models currencies, monetary values, foreign exchanges.
|
15
16
|
autorequire:
|
16
17
|
default_executable:
|
17
18
|
bindir: bin
|
18
|
-
has_rdoc:
|
19
|
+
has_rdoc: true
|
19
20
|
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
21
|
requirements:
|
21
22
|
- - ">"
|
@@ -28,14 +29,9 @@ cert_chain:
|
|
28
29
|
authors:
|
29
30
|
- Kurt Stephens
|
30
31
|
files:
|
31
|
-
-
|
32
|
-
-
|
33
|
-
-
|
34
|
-
- TODO
|
35
|
-
- README
|
36
|
-
- examples/xe1.rb
|
37
|
-
- examples/ex1.rb
|
38
|
-
- lib/currency.rb
|
32
|
+
- test/xe_test.rb
|
33
|
+
- test/money_test.rb
|
34
|
+
- test/test_base.rb
|
39
35
|
- lib/currency/money_helper.rb
|
40
36
|
- lib/currency/exception.rb
|
41
37
|
- lib/currency/currency_version.rb
|
@@ -49,10 +45,15 @@ files:
|
|
49
45
|
- lib/currency/exchange/test.rb
|
50
46
|
- lib/currency/exchange/xe.rb
|
51
47
|
- lib/currency/exchange/rate.rb
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
48
|
+
- lib/currency.rb
|
49
|
+
- examples/xe1.rb
|
50
|
+
- examples/ex1.rb
|
51
|
+
- ChangeLog
|
52
|
+
- Rakefile
|
53
|
+
- TODO
|
54
|
+
- Releases
|
55
|
+
- README
|
56
|
+
- Manifest.txt
|
56
57
|
test_files: []
|
57
58
|
|
58
59
|
rdoc_options: []
|
@@ -65,5 +66,13 @@ extensions: []
|
|
65
66
|
|
66
67
|
requirements: []
|
67
68
|
|
68
|
-
dependencies:
|
69
|
-
|
69
|
+
dependencies:
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: hoe
|
72
|
+
version_requirement:
|
73
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.1.2
|
78
|
+
version:
|
data/scripts/gemdoc.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
Gem.manage_gems
|
5
|
-
require 'rubygems/user_interaction'
|
6
|
-
|
7
|
-
include Gem::DefaultUserInteraction
|
8
|
-
|
9
|
-
$gm = Gem::CommandManager.instance
|
10
|
-
|
11
|
-
class CaptureSay
|
12
|
-
attr_reader :string
|
13
|
-
def initialize
|
14
|
-
@string = ''
|
15
|
-
end
|
16
|
-
def say(msg)
|
17
|
-
@string << msg << "\n"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def pre(cmd, opts)
|
22
|
-
puts "<pre>"
|
23
|
-
cmd.invoke opts
|
24
|
-
puts "</pre>"
|
25
|
-
end
|
26
|
-
|
27
|
-
def table_of_contents
|
28
|
-
cs = CaptureSay.new
|
29
|
-
use_ui(cs) do
|
30
|
-
$gm['help'].invoke 'commands'
|
31
|
-
end
|
32
|
-
# We're only interested in the lines that actually describe a command.
|
33
|
-
out = cs.string.grep(/^\s+(\w+)\s+(.*)$/).join("\n")
|
34
|
-
# Add a link to the relevant section in the margin.
|
35
|
-
out.gsub(/^\s+(\w+)/) {
|
36
|
-
cmd_name = $1
|
37
|
-
" [http://currency.rubyforge.org/wiki/wiki.pl?CurrencyReference##{cmd_name} -] #{cmd_name}"
|
38
|
-
}
|
39
|
-
end
|
40
|
-
|
41
|
-
while line = gets
|
42
|
-
if line =~ /^!/
|
43
|
-
cmd, arg = line.split
|
44
|
-
case cmd
|
45
|
-
when "!usage"
|
46
|
-
begin
|
47
|
-
cmdobj = $gm[arg]
|
48
|
-
pre(cmdobj, "--help")
|
49
|
-
rescue NoMethodError
|
50
|
-
puts "Usage of command #{arg} failed"
|
51
|
-
end
|
52
|
-
when "!toc"
|
53
|
-
puts table_of_contents()
|
54
|
-
when "!toc-link"
|
55
|
-
puts "\"Table of Contents\":http://currency.rubyforge.org/read/chapter/10#toc"
|
56
|
-
when "!version"
|
57
|
-
puts Gem::RubyGemsPackageVersion
|
58
|
-
end
|
59
|
-
else
|
60
|
-
puts line
|
61
|
-
end
|
62
|
-
end
|