exchange-rates-generator 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in exchange-rates-generator.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,46 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ exchange-rates-generator (0.1.0)
5
+ activesupport (~> 3.0.3)
6
+ i18n (~> 0.4.2)
7
+ money (~> 3.1.5)
8
+ nokogiri (~> 1.4.4)
9
+ patron (~> 0.4.10)
10
+
11
+ GEM
12
+ remote: http://rubygems.org/
13
+ specs:
14
+ activesupport (3.0.3)
15
+ diff-lcs (1.1.2)
16
+ i18n (0.4.2)
17
+ money (3.1.5)
18
+ nokogiri (1.4.4)
19
+ patron (0.4.10)
20
+ rake (0.8.7)
21
+ rcov (0.9.9)
22
+ rspec (2.1.0)
23
+ rspec-core (~> 2.1.0)
24
+ rspec-expectations (~> 2.1.0)
25
+ rspec-mocks (~> 2.1.0)
26
+ rspec-core (2.1.0)
27
+ rspec-expectations (2.1.0)
28
+ diff-lcs (~> 1.1.2)
29
+ rspec-mocks (2.1.0)
30
+ yard (0.6.2)
31
+
32
+ PLATFORMS
33
+ ruby
34
+
35
+ DEPENDENCIES
36
+ activesupport (~> 3.0.3)
37
+ bundler (>= 1.0.7)
38
+ exchange-rates-generator!
39
+ i18n (~> 0.4.2)
40
+ money (~> 3.1.5)
41
+ nokogiri (~> 1.4.4)
42
+ patron (~> 0.4.10)
43
+ rake
44
+ rcov
45
+ rspec (= 2.1.0)
46
+ yard
data/README.rdoc CHANGED
@@ -17,7 +17,7 @@ Partially sponsored by the kind folks at Intercity (http://www.intercity.co.nz).
17
17
 
18
18
  == SYNOPSIS:
19
19
 
20
- Generate a Ruby class for converting NZD amounts to other currencies, using the default ECB source.
20
+ Generate a Ruby class for converting NZD amounts to other currencies, using the default ECB source.
21
21
 
22
22
  <tt>generate_exchange_rates -c nzd -f ruby</tt>
23
23
 
data/Rakefile CHANGED
@@ -1,30 +1,4 @@
1
- require 'rubygems'
2
- gem 'hoe', '>= 2.1.0'
3
- require 'hoe'
4
- require 'fileutils'
5
- require './lib/exchange-rates-generator'
6
-
7
- Hoe.plugin :newgem
8
- # Hoe.plugin :website
9
- # Hoe.plugin :cucumberfeatures
10
-
11
- # Generate all the Rake tasks
12
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
- $hoe = Hoe.spec 'exchange-rates-generator' do
14
- self.developer 'Rolly', 'rolly@luma.co.nz'
15
- # self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
16
- self.rubyforge_name = self.name # TODO this is default value
17
- self.extra_deps = [
18
- ['patron','>= 0.4'],
19
- ['nokogiri','>= 1.4'],
20
- ['extlib','>= 0.9'],
21
- ['money', '>= 2.2.0']
22
- ]
23
- end
24
-
25
- require 'newgem/tasks'
26
- Dir['tasks/**/*.rake'].each { |t| load t }
27
-
28
- # TODO - want other tests/tasks run by default? Add them to the list
29
- # remove_task :default
30
- #task :default => [:spec, :generate_currency_codes]
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ Dir['tasks/**/*.rake'].each { |t| load t }
@@ -4,7 +4,9 @@
4
4
  # Copyright (c) 2010. All rights reserved.
5
5
 
6
6
  require 'rubygems'
7
- require File.expand_path(File.dirname(__FILE__) + "/../lib/exchange-rates-generator")
8
- require "generate_exchange_rates/cli"
9
7
 
10
- GenerateExchangeRates::CLI.execute(STDOUT, ARGV)
8
+ dir = File.expand_path(File.dirname(__FILE__) + '/../lib/')
9
+ require dir + "/exchange-rates-generator"
10
+ require dir + "/exchange-rates-generator/cli"
11
+
12
+ ExchangeRatesGenerator::CLI.execute(STDOUT, ARGV)
@@ -0,0 +1,34 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "exchange-rates-generator/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "exchange-rates-generator"
7
+ s.version = Exchange::Rates::Generator::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Rolly Fordham"]
10
+ s.email = ["rolly@luma.co.nz"]
11
+ s.homepage = ""
12
+ s.summary = %q{Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies.}
13
+ s.description = %q{Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies. Other currency sources and new formats can be added.}
14
+
15
+ s.rubyforge_project = "exchange-rates-generator"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.default_executable = 'bin/generate_exchange_rates'
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+
23
+ s.add_dependency 'patron', '~> 0.4.10'
24
+ s.add_dependency 'nokogiri', '~> 1.4.4'
25
+ s.add_dependency 'money', '~> 3.1.5'
26
+ s.add_dependency 'i18n', '~> 0.4.2' # Required for activesupport
27
+ s.add_dependency 'activesupport', '~> 3.0.3'
28
+
29
+ s.add_development_dependency "bundler", ">= 1.0.7"
30
+ s.add_development_dependency "rake"
31
+ s.add_development_dependency "rspec", "2.1.0"
32
+ s.add_development_dependency "yard"
33
+ s.add_development_dependency "rcov"
34
+ end
@@ -1,14 +1,13 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
1
+ # -*- encoding : utf-8 -*-
3
2
 
4
3
  require 'patron'
5
4
  require 'nokogiri'
6
- require 'extlib'
7
5
  require 'logger'
8
6
 
7
+ require 'active_support/core_ext/object/blank'
8
+ require 'active_support/inflector'
9
+
9
10
  module ExchangeRatesGenerator
10
- VERSION = '0.0.8'
11
-
12
11
  def self.log_to=(l)
13
12
  @log_to = l
14
13
  end
@@ -30,14 +29,15 @@ module ExchangeRatesGenerator
30
29
  end
31
30
  end
32
31
 
33
- require 'exchange-rates-generator/errors'
32
+ dir = File.join(File.expand_path(File.dirname(__FILE__)), 'exchange-rates-generator')
33
+ require dir + '/errors'
34
34
 
35
- require 'exchange-rates-generator/currency'
36
- require 'exchange-rates-generator/currencies'
35
+ require dir + '/currency'
36
+ require dir + '/currencies'
37
37
 
38
- require 'exchange-rates-generator/formatters/base'
39
- require 'exchange-rates-generator/formatters/ruby'
40
- require 'exchange-rates-generator/formatters/javascript'
38
+ require dir + '/formatters/base'
39
+ require dir + '/formatters/ruby'
40
+ require dir + '/formatters/javascript'
41
41
 
42
- require 'exchange-rates-generator/sources/base'
43
- require 'exchange-rates-generator/sources/ecb'
42
+ require dir + '/sources/base'
43
+ require dir + '/sources/ecb'
@@ -1,6 +1,6 @@
1
1
  require 'optparse'
2
2
 
3
- module GenerateExchangeRates
3
+ module ExchangeRatesGenerator
4
4
  class CLI
5
5
  def self.execute(stdout, arguments=[])
6
6
 
@@ -15,7 +15,7 @@ module GenerateExchangeRates
15
15
 
16
16
  parser = OptionParser.new do |opts|
17
17
  opts.banner = <<-BANNER.gsub(/^ /,'')
18
- This application is wonderful because it can generate helpful classes that can do currency exchange from a single target currency to numerous others.
18
+ This application can generate helpful classes that can do currency exchange from a single target currency to numerous others.
19
19
 
20
20
  Usage: #{File.basename($0)} [options]
21
21
 
@@ -39,8 +39,8 @@ module GenerateExchangeRates
39
39
  "Default: ruby") { |arg| options[:format] = arg.upcase }
40
40
 
41
41
  opts.on("-l", "--list", "List all available formats and sources") do
42
- formatters = ExchangeRatesGenerator::Formatters::Base.formatters.collect {|f| "\s\s#{Extlib::Inflection.demodulize(f.to_s)}: #{f.description} (*.#{f.default_extension.to_s})" }.join("\n")
43
- sources = ExchangeRatesGenerator::Sources::Base.sources.collect {|s| "\s\s#{Extlib::Inflection.demodulize(s.to_s)}: #{s.description}" }.join("\n")
42
+ formatters = ExchangeRatesGenerator::Formatters::Base.formatters.collect {|f| "\s\s#{f.to_s.demodulize}: #{f.description} (*.#{f.default_extension.to_s})" }.join("\n")
43
+ sources = ExchangeRatesGenerator::Sources::Base.sources.collect {|s| "\s\s#{s.to_s.demodulize}: #{s.description}" }.join("\n")
44
44
 
45
45
  stdout.puts <<-EOS
46
46
  Available Formats:
@@ -57,7 +57,8 @@ Available Sources:
57
57
  opts.parse!(arguments)
58
58
 
59
59
  if mandatory_options && mandatory_options.find { |option| options[option.to_sym].nil? }
60
- stdout.puts opts; exit
60
+ stdout.puts opts
61
+ return
61
62
  end
62
63
  end
63
64
 
@@ -1,26 +1,27 @@
1
- module ExchangeRatesGenerator
2
- # Generated using "rake currency:generate_currency_codes" from within the exchange-rates-generator gem.
3
- # Scraped from http://www.iso.org/iso/support/currency_codes_list-1.htm
4
- # These are utf-8 so ensure that you correctly setup the necessary encodings in your app
5
- module Currencies
6
- def self.get(code)
7
- return nil if RAW[noramalise_code(code)] == nil
8
- name, entity = RAW[noramalise_code(code)]
9
- Currency.new(noramalise_code(code).to_sym, name, entity)
10
- end
1
+ # -*- encoding : utf-8 -*-
2
+ module ExchangeRatesGenerator
3
+ # Generated using "rake currency:generate_currency_codes" from within the exchange-rates-generator gem.
4
+ # Scraped from http://www.iso.org/iso/support/currency_codes_list-1.htm
5
+ # These are utf-8 so ensure that you correctly setup the necessary encodings in your app
6
+ module Currencies
7
+ def self.get(code)
8
+ return nil if RAW[noramalise_code(code)] == nil
9
+ name, entity = RAW[noramalise_code(code)]
10
+ Currency.new(noramalise_code(code).to_sym, name, entity)
11
+ end
11
12
 
12
- def self.get_name(code)
13
- return nil if RAW[noramalise_code(code)] == nil
14
- RAW[noramalise_code(code)][0]
15
- end
13
+ def self.get_name(code)
14
+ return nil if RAW[noramalise_code(code)] == nil
15
+ RAW[noramalise_code(code)][0]
16
+ end
16
17
 
17
- private
18
+ private
18
19
 
19
- def self.noramalise_code(code)
20
- code.to_s.upcase
21
- end
20
+ def self.noramalise_code(code)
21
+ code.to_s.upcase
22
+ end
22
23
 
23
- RAW = {
24
+ RAW = {
24
25
  'AED' => ["Uae Dirham", ["United Arab Emirates"]],
25
26
  'AFN' => ["Afghani", ["Afghanistan"]],
26
27
  'ALL' => ["Lek", ["Albania"]],
@@ -70,17 +71,16 @@
70
71
  'EGP' => ["Egyptian Pound", ["Egypt"]],
71
72
  'ERN' => ["Nakfa", ["Eritrea"]],
72
73
  'ETB' => ["Ethiopian Birr", ["Ethiopia"]],
73
- 'EUR' => ["Euro", ["Åland Islands", "Andorra", "Austria", "Belgium", "Cyprus", "Finland", "France", "French Guiana", "French Southern Territories", "Germany", "Greece", "Guadeloupe", "Holy See (Vatican City State)", "Ireland", "Italy", "Luxembourg", "Malta", "Martinique", "Mayotte", "Monaco", "Montenegro", "Netherlands", "Portugal", "RÉunion", "Saint-BarthÉlemy", "Saint Martin", "Saint Pierre And Miquelon", "San Marino", "Slovakia", "Slovenia", "Spain"]],
74
+ 'EUR' => ["Euro", ["Åland Islands", "Andorra", "Austria", "Belgium", "Cyprus", "Finland", "France", "French Guiana", "French Southern Territories", "Germany", "Greece", "Guadeloupe", "Holy See (Vatican City State)", "Ireland", "Italy", "Luxembourg", "Malta", "Martinique", "Mayotte", "Monaco", "Montenegro", "Netherlands", "Portugal", "RÉunion", "Saint-BarthÉlemy", "Saint Martin", "Saint Pierre And Miquelon", "San Marino", "Slovakia", "Slovenia", "Spain", "Vatican City State (Holy See)"]],
74
75
  'FJD' => ["Fiji Dollar", ["Fiji"]],
75
76
  'FKP' => ["Falkland Islands Pound", ["Falkland Islands (Malvinas)"]],
76
- 'GBP' => ["Pound Sterling", ["Guernsey", "Jersey", "United Kingdom"]],
77
+ 'GBP' => ["Pound Sterling", ["Guernsey", "Isle Of Man", "Jersey", "United Kingdom"]],
77
78
  'GEL' => ["Lari", ["Georgia"]],
78
79
  'GHS' => ["Cedi", ["Ghana"]],
79
80
  'GIP' => ["Gibraltar Pound", ["Gibraltar"]],
80
81
  'GMD' => ["Dalasi", ["Gambia"]],
81
82
  'GNF' => ["Guinea Franc", ["Guinea"]],
82
83
  'GTQ' => ["Quetzal", ["Guatemala"]],
83
- 'GWP' => ["Guinea-Bissau Peso", ["Guinea-Bissau"]],
84
84
  'GYD' => ["Guyana Dollar", ["Guyana"]],
85
85
  'HKD' => ["Hong Kong Dollar", ["Hong Kong"]],
86
86
  'HNL' => ["Lempira", ["Honduras"]],
@@ -153,7 +153,7 @@
153
153
  'SDG' => ["Sudanese Pound", ["Sudan"]],
154
154
  'SEK' => ["Swedish Krona", ["Sweden"]],
155
155
  'SGD' => ["Singapore Dollar", ["Singapore"]],
156
- 'SHP' => ["Saint Helena Pound", ["Saint Helena"]],
156
+ 'SHP' => ["Saint Helena Pound", ["Saint Helena, Ascension And Tristan Da Cunha"]],
157
157
  'SLL' => ["Leone", ["Sierra Leone"]],
158
158
  'SOS' => ["Somali Shilling", ["Somalia"]],
159
159
  'SRD' => ["Surinam Dollar", ["Suriname"]],
@@ -183,15 +183,27 @@
183
183
  'VUV' => ["Vatu", ["Vanuatu"]],
184
184
  'WST' => ["Tala", ["Samoa"]],
185
185
  'XAF' => ["Cfa Franc Beac", ["Cameroon", "Central African Republic", "Chad", "Congo", "Equatorial Guinea", "Gabon"]],
186
+ 'XAG' => ["Silver", [" "]],
187
+ 'XAU' => ["Gold", ["Entity Not Applicable"]],
188
+ 'XBA' => ["Bond Markets Units European Composite Unit (Eurco)", [" "]],
189
+ 'XBB' => ["European Monetary Unit (E.M.U.-6)", [" "]],
190
+ 'XBC' => ["European Unit Of Account 9(E.U.A.-9)", [" "]],
191
+ 'XBD' => ["European Unit Of Account 17(E.U.A.-17)", [" "]],
186
192
  'XCD' => ["East Caribbean Dollar", ["Anguilla", "Antigua And Barbuda", "Dominica", "Grenada", "Montserrat", "Saint Kitts And Nevis", "Saint Lucia", "Saint Vincent And The Grenadines"]],
187
193
  'XDR' => ["Sdr", ["International Monetary Fund (I.M.F)"]],
194
+ 'XFU' => ["Uic-Franc", [" "]],
188
195
  'XOF' => ["Cfa Franc Bceao", ["Benin", "Burkina Faso", "CÔte D'ivoire", "Guinea-Bissau", "Mali", "Niger", "Senegal", "Togo"]],
196
+ 'XPD' => ["Palladium", [" "]],
189
197
  'XPF' => ["Cfp Franc", ["French Polynesia", "New Caledonia", "Wallis And Futuna"]],
198
+ 'XPT' => ["Platinum", [" "]],
199
+ 'XTS' => ["Codes Specifically Reserved For Testing Purposes", [" "]],
200
+ 'XXX' => ["The Codes Assigned For Transactions Where No Currency Is Involved Are:", [" "]],
190
201
  'YER' => ["Yemeni Rial", ["Yemen"]],
191
202
  'ZAR' => ["Rand", ["Lesotho", "Namibia", "South Africa"]],
192
203
  'ZMK' => ["Zambian Kwacha", ["Zambia"]],
193
- 'ZWL' => ["Zimbabwe Dollar", ["Zimbabwe"]]
194
- }.freeze
204
+ 'ZWL' => ["Zimbabwe Dollar", ["Zimbabwe"]],
205
+ ' ' => ["No Universal Currency", ["Antarctica", " "]]
206
+ }.freeze
195
207
 
196
- end # module Currencies
197
- end # module ExchangeRatesGenerator
208
+ end # module Currencies
209
+ end # module ExchangeRatesGenerator
@@ -1,9 +1,13 @@
1
1
  module ExchangeRatesGenerator
2
2
  module Formatters
3
3
  def self.get(formatter_name)
4
- Object.full_const_get([self.to_s, Extlib::Inflection.classify(formatter_name.to_s)].join("::"))
4
+ begin
5
+ ExchangeRatesGenerator::Formatters.const_get( formatter_name.to_s.demodulize.camelize )
6
+ rescue NameError => e
7
+ nil
8
+ end
5
9
  end
6
-
10
+
7
11
  class Base
8
12
  attr_reader :currency, :rates
9
13
 
@@ -35,7 +39,7 @@ module ExchangeRatesGenerator
35
39
  protected
36
40
 
37
41
  def formatter_classname
38
- @formatter_classname ||= Extlib::Inflection.classify(@currency.to_s)
42
+ @formatter_classname ||= @currency.to_s.camelize
39
43
  end
40
44
  end # class Base
41
45
  end # module Formatters
@@ -26,11 +26,12 @@ module ExchangeRatesGenerator
26
26
  protected
27
27
 
28
28
  def formatter_classname
29
- @formatter_classname ||= Extlib::Inflection.underscore(@currency.to_s)
29
+ @formatter_classname ||= @currency.to_s.underscore
30
30
  end
31
31
 
32
32
  def header
33
33
  <<-EOS
34
+ // -*- encoding : utf-8 -*-
34
35
  //
35
36
  // THIS FILE IS AUTOMATICALLY GENERATED USING THE exchange-rates-generator RUBY GEM DO NOT EDIT IT.
36
37
  //
@@ -27,6 +27,7 @@ module ExchangeRatesGenerator
27
27
 
28
28
  def header
29
29
  <<-EOS
30
+ # -*- encoding : utf-8 -*-
30
31
  #
31
32
  # THIS FILE IS AUTOMATICALLY GENERATED USING THE exchange-rates-generator RUBY GEM DO NOT EDIT IT.
32
33
  #
@@ -1,7 +1,11 @@
1
1
  module ExchangeRatesGenerator
2
2
  module Sources
3
3
  def self.get(source_name)
4
- Object.full_const_get([self.to_s, Extlib::Inflection.classify(source_name.to_s)].join("::"))
4
+ begin
5
+ ExchangeRatesGenerator::Sources.const_get( source_name.to_s.demodulize.camelize )
6
+ rescue NameError => e
7
+ nil
8
+ end
5
9
  end
6
10
 
7
11
  class Base
@@ -0,0 +1,7 @@
1
+ module Exchange
2
+ module Rates
3
+ module Generator
4
+ VERSION = "0.1.0"
5
+ end
6
+ end
7
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
1
+ require File.join(File.expand_path(File.dirname(__FILE__)), 'spec_helper.rb')
2
2
 
3
3
  # Time to add your specs!
4
4
  # http://rspec.info/
@@ -1,15 +1,16 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require 'generate_exchange_rates/cli'
1
+ require File.join(File.expand_path(File.dirname(__FILE__)), 'spec_helper.rb')
2
+ require "exchange-rates-generator"
3
+ require 'exchange-rates-generator/cli'
3
4
 
4
- describe GenerateExchangeRates::CLI, "execute" do
5
+ describe ExchangeRatesGenerator::CLI, "execute" do
5
6
  before(:each) do
6
7
  @stdout_io = StringIO.new
7
- GenerateExchangeRates::CLI.execute(@stdout_io, [])
8
+ ExchangeRatesGenerator::CLI.execute(@stdout_io, [])
8
9
  @stdout_io.rewind
9
10
  @stdout = @stdout_io.read
10
11
  end
11
12
 
12
13
  it "should print default output" do
13
- @stdout.should =~ /To update this executable/
14
+ @stdout.should =~ /This application can generate helpful classes that can do currency exchange from a single target currency to numerous others./
14
15
  end
15
16
  end
data/spec/spec.opts CHANGED
@@ -1 +1,5 @@
1
- --colour
1
+ --colour
2
+ --format specdoc
3
+ --loadby random
4
+ --reverse
5
+ --backtrace
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,10 @@
1
- begin
2
- require 'spec'
3
- rescue LoadError
4
- require 'rubygems' unless ENV['NO_RUBYGEMS']
5
- gem 'rspec'
6
- require 'spec'
7
- end
1
+ require "bundler"
2
+ Bundler.setup
3
+
4
+ require "rspec"
8
5
 
9
6
  $:.unshift(File.dirname(__FILE__) + '/../lib')
10
7
  require 'exchange-rates-generator'
8
+
9
+ RSpec.configure do |config|
10
+ end
@@ -1,10 +1,5 @@
1
- require 'patron'
2
- require 'nokogiri'
3
- require 'activesupport' # <= Just for mb_chars (multibyte) support
4
- require 'ruby-debug'
5
-
6
- $KCODE = 'u'
7
- require 'jcode'
1
+ # -*- encoding : utf-8 -*-
2
+ require 'exchange-rates-generator'
8
3
 
9
4
  namespace :currency do
10
5
  desc "Generate a new currency codes cache"
@@ -42,14 +37,14 @@ namespace :currency do
42
37
  name = parse_field(name)
43
38
 
44
39
  unless (entity.blank? || code.blank?)
45
- entity = Extlib::Inflection.humanize(entity).gsub(/\b('?[a-z])/) { $1.capitalize }
40
+ entity = entity.humanize.gsub(/\b('?[a-z])/) { $1.capitalize }
46
41
 
47
42
  # Handle multiple currency codes per entity (e.g. US Dollar, US Dollar (Same day), and US Dollar (Next day))
48
43
  codes = code.split(/\n+/)
49
44
  names = name.split(/\n+/)
50
45
 
51
46
  0.upto(codes.length - 1) do |i|
52
- name = Extlib::Inflection.humanize(names[i]).gsub(/\b('?[a-z])/) { $1.capitalize }
47
+ name = names[i].humanize.gsub(/\b('?[a-z])/) { $1.capitalize }
53
48
  currency_hash[codes[i].to_s] ||= [name, []]
54
49
  currency_hash[codes[i].to_s][1] << entity
55
50
  end
@@ -69,34 +64,35 @@ namespace :currency do
69
64
  end
70
65
 
71
66
  currencies = <<-EOS
72
- module ExchangeRatesGenerator
73
- # Generated using "rake currency:generate_currency_codes" from within the exchange-rates-generator gem.
74
- # Scraped from http://www.iso.org/iso/support/currency_codes_list-1.htm
75
- # These are utf-8 so ensure that you correctly setup the necessary encodings in your app
76
- module Currencies
77
- def self.get(code)
78
- return nil if RAW[noramalise_code(code)] == nil
79
- name, entity = RAW[noramalise_code(code)]
80
- Currency.new(noramalise_code(code).to_sym, name, entity)
81
- end
67
+ # -*- encoding : utf-8 -*-
68
+ module ExchangeRatesGenerator
69
+ # Generated using "rake currency:generate_currency_codes" from within the exchange-rates-generator gem.
70
+ # Scraped from http://www.iso.org/iso/support/currency_codes_list-1.htm
71
+ # These are utf-8 so ensure that you correctly setup the necessary encodings in your app
72
+ module Currencies
73
+ def self.get(code)
74
+ return nil if RAW[noramalise_code(code)] == nil
75
+ name, entity = RAW[noramalise_code(code)]
76
+ Currency.new(noramalise_code(code).to_sym, name, entity)
77
+ end
82
78
 
83
- def self.get_name(code)
84
- return nil if RAW[noramalise_code(code)] == nil
85
- RAW[noramalise_code(code)][0]
86
- end
79
+ def self.get_name(code)
80
+ return nil if RAW[noramalise_code(code)] == nil
81
+ RAW[noramalise_code(code)][0]
82
+ end
87
83
 
88
- private
84
+ private
89
85
 
90
- def self.noramalise_code(code)
91
- code.to_s.upcase
92
- end
86
+ def self.noramalise_code(code)
87
+ code.to_s.upcase
88
+ end
93
89
 
94
- RAW = {
90
+ RAW = {
95
91
  #{currencies.collect {|c| " #{c}" }.join(",\n")}
96
- }.freeze
92
+ }.freeze
97
93
 
98
- end # module Currencies
99
- end # module ExchangeRatesGenerator
94
+ end # module Currencies
95
+ end # module ExchangeRatesGenerator
100
96
  EOS
101
97
 
102
98
  output_path = File.join(File.dirname(File.dirname(__FILE__)), 'lib/exchange-rates-generator/currencies.rb')
@@ -112,6 +108,6 @@ namespace :currency do
112
108
  field.css('a').unlink
113
109
 
114
110
  # Sanitise whats left...
115
- field.inner_html.mb_chars.gsub(/<br\s*\/?>/i, "\n").strip
111
+ field.inner_html.gsub(/<br\s*\/?>/i, "\n").strip
116
112
  end
117
113
  end
data/tasks/rspec.rake CHANGED
@@ -1,11 +1,11 @@
1
1
  begin
2
- require 'spec'
2
+ require 'rspec'
3
3
  rescue LoadError
4
4
  require 'rubygems' unless ENV['NO_RUBYGEMS']
5
- require 'spec'
5
+ require 'rspec'
6
6
  end
7
7
  begin
8
- require 'spec/rake/spectask'
8
+ require 'rspec/core/rake_task'
9
9
  rescue LoadError
10
10
  puts <<-EOS
11
11
  To use rspec for testing you must install rspec gem:
@@ -15,7 +15,11 @@ EOS
15
15
  end
16
16
 
17
17
  desc "Run the specs under spec/models"
18
- Spec::Rake::SpecTask.new do |t|
19
- t.spec_opts = ['--options', "spec/spec.opts"]
20
- t.spec_files = FileList['spec/**/*_spec.rb']
18
+ RSpec::Core::RakeTask.new do |t|
19
+ # t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
20
+ t.pattern = 'spec/**/*_spec.rb'
21
21
  end
22
+
23
+ RSpec::Core::RakeTask.new(:rcov) do |t|
24
+ t.rcov_opts = %q[--exclude "spec"]
25
+ end
metadata CHANGED
@@ -4,161 +4,207 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
+ - 1
7
8
  - 0
8
- - 8
9
- version: 0.0.8
9
+ version: 0.1.0
10
10
  platform: ruby
11
11
  authors:
12
- - Rolly
12
+ - Rolly Fordham
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-21 00:00:00 +13:00
18
- default_executable:
17
+ date: 2010-11-20 00:00:00 +13:00
18
+ default_executable: bin/generate_exchange_rates
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: patron
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
- - - ">="
26
+ - - ~>
26
27
  - !ruby/object:Gem::Version
27
28
  segments:
28
29
  - 0
29
30
  - 4
30
- version: "0.4"
31
+ - 10
32
+ version: 0.4.10
31
33
  type: :runtime
32
34
  version_requirements: *id001
33
35
  - !ruby/object:Gem::Dependency
34
36
  name: nokogiri
35
37
  prerelease: false
36
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
37
40
  requirements:
38
- - - ">="
41
+ - - ~>
39
42
  - !ruby/object:Gem::Version
40
43
  segments:
41
44
  - 1
42
45
  - 4
43
- version: "1.4"
46
+ - 4
47
+ version: 1.4.4
44
48
  type: :runtime
45
49
  version_requirements: *id002
46
50
  - !ruby/object:Gem::Dependency
47
- name: extlib
51
+ name: money
48
52
  prerelease: false
49
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
50
55
  requirements:
51
- - - ">="
56
+ - - ~>
52
57
  - !ruby/object:Gem::Version
53
58
  segments:
54
- - 0
55
- - 9
56
- version: "0.9"
59
+ - 3
60
+ - 1
61
+ - 5
62
+ version: 3.1.5
57
63
  type: :runtime
58
64
  version_requirements: *id003
59
65
  - !ruby/object:Gem::Dependency
60
- name: money
66
+ name: i18n
61
67
  prerelease: false
62
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
63
70
  requirements:
64
- - - ">="
71
+ - - ~>
65
72
  - !ruby/object:Gem::Version
66
73
  segments:
67
- - 2
68
- - 2
69
74
  - 0
70
- version: 2.2.0
75
+ - 4
76
+ - 2
77
+ version: 0.4.2
71
78
  type: :runtime
72
79
  version_requirements: *id004
73
80
  - !ruby/object:Gem::Dependency
74
- name: rubyforge
81
+ name: activesupport
75
82
  prerelease: false
76
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
77
85
  requirements:
78
- - - ">="
86
+ - - ~>
79
87
  - !ruby/object:Gem::Version
80
88
  segments:
81
- - 2
89
+ - 3
82
90
  - 0
83
- - 4
84
- version: 2.0.4
85
- type: :development
91
+ - 3
92
+ version: 3.0.3
93
+ type: :runtime
86
94
  version_requirements: *id005
87
95
  - !ruby/object:Gem::Dependency
88
- name: gemcutter
96
+ name: bundler
89
97
  prerelease: false
90
98
  requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
91
100
  requirements:
92
101
  - - ">="
93
102
  - !ruby/object:Gem::Version
94
103
  segments:
104
+ - 1
95
105
  - 0
96
- - 5
97
- - 0
98
- version: 0.5.0
106
+ - 7
107
+ version: 1.0.7
99
108
  type: :development
100
109
  version_requirements: *id006
101
110
  - !ruby/object:Gem::Dependency
102
- name: hoe
111
+ name: rake
103
112
  prerelease: false
104
113
  requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
105
115
  requirements:
106
116
  - - ">="
107
117
  - !ruby/object:Gem::Version
108
118
  segments:
109
- - 2
110
- - 5
111
119
  - 0
112
- version: 2.5.0
120
+ version: "0"
113
121
  type: :development
114
122
  version_requirements: *id007
115
- description: |-
116
- Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies.
117
-
118
- Partially sponsored by the kind folks at Intercity (http://www.intercity.co.nz).
123
+ - !ruby/object:Gem::Dependency
124
+ name: rspec
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - "="
130
+ - !ruby/object:Gem::Version
131
+ segments:
132
+ - 2
133
+ - 1
134
+ - 0
135
+ version: 2.1.0
136
+ type: :development
137
+ version_requirements: *id008
138
+ - !ruby/object:Gem::Dependency
139
+ name: yard
140
+ prerelease: false
141
+ requirement: &id009 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ segments:
147
+ - 0
148
+ version: "0"
149
+ type: :development
150
+ version_requirements: *id009
151
+ - !ruby/object:Gem::Dependency
152
+ name: rcov
153
+ prerelease: false
154
+ requirement: &id010 !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ segments:
160
+ - 0
161
+ version: "0"
162
+ type: :development
163
+ version_requirements: *id010
164
+ description: Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies. Other currency sources and new formats can be added.
119
165
  email:
120
166
  - rolly@luma.co.nz
121
167
  executables:
122
168
  - generate_exchange_rates
123
169
  extensions: []
124
170
 
125
- extra_rdoc_files:
126
- - History.txt
127
- - Manifest.txt
171
+ extra_rdoc_files: []
172
+
128
173
  files:
129
- - History.txt
130
- - Manifest.txt
174
+ - Gemfile
175
+ - Gemfile.lock
131
176
  - README.rdoc
132
177
  - Rakefile
133
178
  - bin/generate_exchange_rates
179
+ - exchange-rates-generator.gemspec
134
180
  - lib/exchange-rates-generator.rb
135
- - lib/exchange-rates-generator/errors.rb
136
- - lib/exchange-rates-generator/currency.rb
181
+ - lib/exchange-rates-generator/cli.rb
137
182
  - lib/exchange-rates-generator/currencies.rb
183
+ - lib/exchange-rates-generator/currency.rb
184
+ - lib/exchange-rates-generator/errors.rb
138
185
  - lib/exchange-rates-generator/formatters/base.rb
139
- - lib/exchange-rates-generator/formatters/ruby.rb
140
186
  - lib/exchange-rates-generator/formatters/javascript.rb
187
+ - lib/exchange-rates-generator/formatters/ruby.rb
141
188
  - lib/exchange-rates-generator/sources/base.rb
142
189
  - lib/exchange-rates-generator/sources/ecb.rb
143
- - lib/generate_exchange_rates/cli.rb
190
+ - lib/exchange-rates-generator/version.rb
144
191
  - spec/exchange-rates-generator_spec.rb
145
192
  - spec/generate_exchange_rates_cli_spec.rb
146
193
  - spec/spec.opts
147
194
  - spec/spec_helper.rb
148
- - tasks/rspec.rake
149
- - tasks/yard.rake
150
195
  - tasks/currency_codes.rake
196
+ - tasks/rspec.rake
151
197
  has_rdoc: true
152
- homepage: http://github.com/luma/exchange-rates-generator
198
+ homepage: ""
153
199
  licenses: []
154
200
 
155
201
  post_install_message:
156
- rdoc_options:
157
- - --main
158
- - README.rdoc
202
+ rdoc_options: []
203
+
159
204
  require_paths:
160
205
  - lib
161
206
  required_ruby_version: !ruby/object:Gem::Requirement
207
+ none: false
162
208
  requirements:
163
209
  - - ">="
164
210
  - !ruby/object:Gem::Version
@@ -166,6 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
212
  - 0
167
213
  version: "0"
168
214
  required_rubygems_version: !ruby/object:Gem::Requirement
215
+ none: false
169
216
  requirements:
170
217
  - - ">="
171
218
  - !ruby/object:Gem::Version
@@ -175,9 +222,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
222
  requirements: []
176
223
 
177
224
  rubyforge_project: exchange-rates-generator
178
- rubygems_version: 1.3.6
225
+ rubygems_version: 1.3.7
179
226
  signing_key:
180
227
  specification_version: 3
181
- summary: Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies
182
- test_files: []
183
-
228
+ summary: Generates a classes (or class like things) that can translate currency values in a specific currency to a number of other currencies.
229
+ test_files:
230
+ - spec/exchange-rates-generator_spec.rb
231
+ - spec/generate_exchange_rates_cli_spec.rb
232
+ - spec/spec.opts
233
+ - spec/spec_helper.rb
data/History.txt DELETED
@@ -1,7 +0,0 @@
1
- === 0.0.7 2010-03-21
2
-
3
- * Added support for grabbing ISO 4217 currency data from http://www.iso.org/iso/support/currency_codes_list-1.htm. Handy for getting nice descriptive currency names.
4
-
5
- === 0.0.1 2010-03-16
6
-
7
- * First Release
data/Manifest.txt DELETED
@@ -1,22 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.rdoc
4
- Rakefile
5
- bin/generate_exchange_rates
6
- lib/exchange-rates-generator.rb
7
- lib/exchange-rates-generator/errors.rb
8
- lib/exchange-rates-generator/currency.rb
9
- lib/exchange-rates-generator/currencies.rb
10
- lib/exchange-rates-generator/formatters/base.rb
11
- lib/exchange-rates-generator/formatters/ruby.rb
12
- lib/exchange-rates-generator/formatters/javascript.rb
13
- lib/exchange-rates-generator/sources/base.rb
14
- lib/exchange-rates-generator/sources/ecb.rb
15
- lib/generate_exchange_rates/cli.rb
16
- spec/exchange-rates-generator_spec.rb
17
- spec/generate_exchange_rates_cli_spec.rb
18
- spec/spec.opts
19
- spec/spec_helper.rb
20
- tasks/rspec.rake
21
- tasks/yard.rake
22
- tasks/currency_codes.rake
data/tasks/yard.rake DELETED
@@ -1,19 +0,0 @@
1
- begin
2
- require 'yard'
3
-
4
- YARD::Rake::YardocTask.new do |t|
5
- t.files = ['lib/**/*.rb']
6
- t.options = [
7
- '--protected',
8
- '--files', 'History.txt',
9
- '--title', 'Generate Exchange Rates',
10
- '-r', File.dirname(File.dirname(__FILE__)) / 'README.rdoc',
11
- '--quiet'
12
- ]
13
- end
14
-
15
- rescue LoadError
16
- task :yard do
17
- abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
18
- end
19
- end