google_currency 1.1.1 → 1.2.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.
File without changes
@@ -0,0 +1,49 @@
1
+ require 'rubygems'
2
+ require 'rake/clean'
3
+
4
+ CLOBBER.include('.yardoc', 'doc')
5
+
6
+ def gemspec
7
+ @gemspec ||= begin
8
+ file = File.expand_path("../google_currency.gemspec", __FILE__)
9
+ eval(File.read(file), binding, file)
10
+ end
11
+ end
12
+
13
+ begin
14
+ require 'rspec/core/rake_task'
15
+ RSpec::Core::RakeTask.new
16
+ rescue LoadError
17
+ task(:spec){abort "`gem install rspec` to run specs"}
18
+ end
19
+ task :default => :spec
20
+ task :test => :spec
21
+
22
+ begin
23
+ require 'yard'
24
+ YARD::Rake::YardocTask.new do |t|
25
+ t.options << "--files" << "CHANGELOG.md,LICENSE"
26
+ end
27
+ rescue LoadError
28
+ task(:yard){abort "`gem install yard` to generate documentation"}
29
+ end
30
+
31
+ begin
32
+ require 'rake/gempackagetask'
33
+ Rake::GemPackageTask.new(gemspec) do |pkg|
34
+ pkg.gem_spec = gemspec
35
+ end
36
+ task :gem => :gemspec
37
+ rescue LoadError
38
+ task(:gem){abort "`gem install rake` to package gems"}
39
+ end
40
+
41
+ desc "Install the gem locally"
42
+ task :install => :gem do
43
+ sh "gem install pkg/#{gemspec.full_name}.gem"
44
+ end
45
+
46
+ desc "Validate the gemspec"
47
+ task :gemspec do
48
+ gemspec.validate
49
+ end
@@ -0,0 +1,26 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "google_currency"
3
+ s.version = "1.2.0"
4
+ s.platform = Gem::Platform::RUBY
5
+ s.authors = ["Shane Emmons", "Donald Ball"]
6
+ s.email = ["semmons99+RubyMoney@gmail.com", "donald.ball@gmail.com"]
7
+ s.homepage = "http://rubymoney.github.com/google_currency"
8
+ s.summary = "Access the Google Currency exchange rate data."
9
+ s.description = "GoogleCurrency extends Money::Bank::Base and gives you access to the current Google Currency exchange rates."
10
+
11
+ s.required_rubygems_version = ">= 1.3.7"
12
+
13
+ s.add_development_dependency "rspec", ">= 2.0.0"
14
+ s.add_development_dependency "yard", ">= 0.5.8"
15
+ s.add_development_dependency "json", ">= 1.4.0"
16
+
17
+ s.add_dependency "money", "~> 3.5"
18
+
19
+ s.requirements << "json"
20
+
21
+ s.files = Dir.glob("{lib,spec}/**/*")
22
+ s.files += %w(LICENSE README.md CHANGELOG.md)
23
+ s.files += %w(Rakefile .gemtest google_currency.gemspec)
24
+
25
+ s.require_path = "lib"
26
+ end
@@ -0,0 +1,73 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'money'
4
+ require 'money/bank/google_currency'
5
+
6
+ describe "GoogleCurrency" do
7
+ before :each do
8
+ @bank = Money::Bank::GoogleCurrency.new
9
+ end
10
+
11
+ describe "#get_google_rate" do
12
+ it "should work for USD->USD" do
13
+ @bank.get_google_rate('USD', 'USD').should == 1.0
14
+ end
15
+
16
+ it "should work for usd->usd" do
17
+ @bank.get_google_rate('usd', 'usd').should == 1.0
18
+ end
19
+
20
+ it "should work for Currency.wrap(:USD)->Currency.wrap(:USD)" do
21
+ @bank.get_google_rate(Money::Currency.wrap(:USD),
22
+ Money::Currency.wrap(:USD)).should == 1.0
23
+ end
24
+
25
+ it "should raise an UnknownCurrency error for an unknown currency" do
26
+ lambda{@bank.get_google_rate('USD', 'BATMAN')}.should raise_error(Money::Currency::UnknownCurrency)
27
+ end
28
+
29
+ it "should raise and UnknownRate error for a known currency but unknown rate" do
30
+ lambda{@bank.get_google_rate('USD', 'ALL')}.should raise_error(Money::Bank::UnknownRate)
31
+ end
32
+ end
33
+
34
+ describe "#get_rate" do
35
+ it "should use #fetch_rate when rate is unknown" do
36
+ @bank.should_receive(:fetch_rate).once
37
+ @bank.get_rate('USD', 'USD')
38
+ end
39
+
40
+ it "should not use #fetch_rate when rate is known" do
41
+ @bank.get_rate('USD', 'USD')
42
+ @bank.should_not_receive(:fetch_rate)
43
+ @bank.get_rate('USD', 'USD')
44
+ end
45
+
46
+ it "should return the correct rate" do
47
+ @bank.get_rate('USD', 'USD').should == 1.0
48
+ end
49
+
50
+ it "should store the rate for faster retreival" do
51
+ @bank.get_rate('USD', 'EUR')
52
+ @bank.rates.should include('USD_TO_EUR')
53
+ end
54
+ end
55
+
56
+ describe "#flush_rates" do
57
+ it "should empty @rates" do
58
+ @bank.get_rate('USD', 'EUR')
59
+ @bank.flush_rates
60
+ @bank.rates.should == {}
61
+ end
62
+ end
63
+
64
+ describe "#flush_rate" do
65
+ it "should remove a specific rate from @rates" do
66
+ @bank.get_rate('USD', 'EUR')
67
+ @bank.get_rate('USD', 'JPY')
68
+ @bank.flush_rate('USD', 'EUR')
69
+ @bank.rates.should include('USD_TO_JPY')
70
+ @bank.rates.should_not include('USD_TO_EUR')
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,2 @@
1
+ RSpec.configure do |config|
2
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_currency
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 1
10
- version: 1.1.1
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Shane Emmons
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-02-09 00:00:00 -05:00
19
+ date: 2011-02-18 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -90,22 +90,25 @@ executables: []
90
90
 
91
91
  extensions: []
92
92
 
93
- extra_rdoc_files:
94
- - LICENSE
95
- - README.md
96
- - CHANGELOG.md
93
+ extra_rdoc_files: []
94
+
97
95
  files:
98
96
  - lib/money/bank/google_currency.rb
97
+ - spec/google_currency_spec.rb
98
+ - spec/spec_helper.rb
99
99
  - LICENSE
100
100
  - README.md
101
101
  - CHANGELOG.md
102
+ - Rakefile
103
+ - .gemtest
104
+ - google_currency.gemspec
102
105
  has_rdoc: true
103
106
  homepage: http://rubymoney.github.com/google_currency
104
107
  licenses: []
105
108
 
106
109
  post_install_message:
107
- rdoc_options:
108
- - --charset=UTF-8
110
+ rdoc_options: []
111
+
109
112
  require_paths:
110
113
  - lib
111
114
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -131,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
134
  requirements:
132
135
  - json
133
136
  rubyforge_project:
134
- rubygems_version: 1.5.0
137
+ rubygems_version: 1.5.2
135
138
  signing_key:
136
139
  specification_version: 3
137
140
  summary: Access the Google Currency exchange rate data.