exchange 1.2.0 → 1.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b07fc45eb9ab48bfe650be620f7e7a56320b7139
4
- data.tar.gz: c282e0a9b56802cadd9fd5be61aadc4baf3dfdaf
3
+ metadata.gz: a7183dab51d6b41d1572ba98dcaf30d2be590ade
4
+ data.tar.gz: 345945166e17a720eb7cb04f41e4571d8d4f3403
5
5
  SHA512:
6
- metadata.gz: af9f00a17b47fbe5c28a6cfbaaac207209da877a7bead8ceece961950d336638f2bc4944794ff6ea5268bbd0fe31ea0b23fc883686413226af58e535d610e946
7
- data.tar.gz: 768f5bdbbc7dd3e8bbe71a23a3a97ee105856b282c286364cf743b5e59f934ba5f8426088777827e2715503046c33640638167b8c9b3729b4877f7d7f3d04741
6
+ metadata.gz: b99284cae296720f914a5e4acc10a35c2852f041e0edf3a542a90554ada02696549ac879e95c98aeedd9668a59f409717401279167da1cca868bb0af95fdaaef
7
+ data.tar.gz: c111ad35f96feea8915f815f911c9fcd408055851c8d1a2f03172ee09312b8f265bf93961457d70c85c0decd44dd2eb8123af2bc32fa9032961684f9615a52f6
@@ -1,4 +1,7 @@
1
1
  language: ruby
2
+ branches:
3
+ only:
4
+ - master
2
5
  rvm:
3
6
  - 1.9.2
4
7
  - 1.9.3
@@ -8,4 +11,8 @@ rvm:
8
11
  - jruby-19mode
9
12
  - jruby-20mode
10
13
 
11
- script: bundle exec rspec
14
+ script: bundle exec rspec
15
+
16
+ matrix:
17
+ allow_failures:
18
+ - rvm: 2.1.0
data/Gemfile CHANGED
@@ -3,13 +3,13 @@ source "http://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  group :development do
6
- gem "yard", ">= 0.7.4"
7
- gem "bundler", ">= 1.0.0"
6
+ gem "yard", "~> 0.8"
7
+ gem "bundler", "~> 1.3"
8
8
  end
9
9
 
10
10
  group :test do
11
- gem "nokogiri", ">= 1.5.0", :require => false
12
- gem "dalli", ">= 2.0.0", :require => false
13
- gem "redis", ">= 2.2.0", :require => false
11
+ gem "nokogiri", "~> 1.6", :require => false
12
+ gem "dalli", "~> 2.6", :require => false
13
+ gem "redis", "~> 3.0", :require => false
14
14
  gem "rspec"
15
15
  end
@@ -18,10 +18,10 @@ Gem::Specification.new do |s|
18
18
  s.test_files = `git ls-files -- spec/*`.split("\n")
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency "nokogiri", "~> 1.6", ">= 1.0.0"
22
- s.add_development_dependency "json", "~> 1.8", ">= 1.0.0"
23
- s.add_development_dependency "yard", "~> 0.8", ">= 0.7.4"
24
- s.add_development_dependency "bundler", "~> 1.5", ">= 1.0.0"
21
+ s.add_dependency "nokogiri", "~> 1", ">= 1.0.0"
22
+ s.add_development_dependency "json", "~> 1", ">= 1.0.0"
23
+ s.add_development_dependency "yard", "~> 0.8"
24
+ s.add_development_dependency "bundler", "~> 1.3"
25
25
  if RUBY_ENGINE == 'rbx'
26
26
  s.add_development_dependency "rubysl-bigdecimal", "~> 2.0"
27
27
  s.add_development_dependency "rubysl-singleton", "~> 2.0"
@@ -8,7 +8,7 @@ module Exchange
8
8
 
9
9
  # The current version of the exchange gem
10
10
  #
11
- VERSION = '1.2.0'
11
+ VERSION = '1.2.1'.freeze
12
12
 
13
13
  # The root installation path of the gem
14
14
  # @version 0.5
@@ -21,7 +21,7 @@ module Exchange
21
21
  # @private
22
22
  # @macro [attach] install_operations
23
23
 
24
- def install_operation op
24
+ def install_operation op
25
25
  self.class_eval <<-EOV
26
26
  def #{op} amount, currency, precision=nil, opts={}
27
27
  minor = definitions[currency][:minor_unit]
@@ -111,7 +111,7 @@ module Exchange
111
111
  # @example Convert a currency to a string without the currency
112
112
  # Exchange::ISO.stringif(34.34, :omr, :amount_only => true) #=> "34.340"
113
113
  #
114
- def stringify amount, currency, opts={}
114
+ def stringify amount, currency, opts={}
115
115
  definition = definitions[currency]
116
116
  separators = definition[:separators] || {}
117
117
  format = "%.#{definition[:minor_unit]}f"
@@ -130,7 +130,7 @@ module Exchange
130
130
  # @param currency The currency to return the symbol for
131
131
  # @return [String, NilClass] The symbol or nil
132
132
  #
133
- def symbol currency
133
+ def symbol currency
134
134
  definitions[currency][:symbol]
135
135
  end
136
136
 
@@ -172,8 +172,8 @@ module Exchange
172
172
  def symbolize_keys hsh
173
173
  new_hsh = Hash.new
174
174
 
175
- hsh.each_pair do |k,v|
176
- v = symbolize_keys v if v.is_a?(Hash)
175
+ hsh.each_pair do |k,v|
176
+ v = symbolize_keys v if v.is_a?(Hash)
177
177
  new_hsh[k.downcase.to_sym] = v
178
178
  end
179
179
 
@@ -56,13 +56,15 @@ module Exchange
56
56
  define_method :"#{attribute}_with_exchange_typecasting" do
57
57
  currency = evaluate_money_option(options[:currency]) if options[:currency]
58
58
 
59
- test_for_currency_error(currency)
59
+ test_for_currency_error(currency, attribute)
60
60
 
61
61
  time = evaluate_money_option(options[:at]) if options[:at]
62
62
 
63
- Exchange::Money.new(send(:"#{attribute}_without_exchange_typecasting")) do |c|
64
- c.currency = currency
65
- c.time = time if time
63
+ if value = send(:"#{attribute}_without_exchange_typecasting")
64
+ Exchange::Money.new(value) do |c|
65
+ c.currency = currency
66
+ c.time = time if time
67
+ end
66
68
  end
67
69
  end
68
70
  exchange_typecasting_alias_method_chain attribute
@@ -111,7 +113,7 @@ module Exchange
111
113
  # @method test_for_currency_error
112
114
  #
113
115
  def install_currency_error_tester
114
- define_method :test_for_currency_error do |currency|
116
+ define_method :test_for_currency_error do |currency, attribute|
115
117
  raise NoCurrencyError.new("No currency is given for typecasting #{attribute}. Make sure a currency is present") unless currency
116
118
  end
117
119
  end
@@ -62,6 +62,23 @@ describe "Exchange::Typecasting" do
62
62
  subject.price.value.should == 0.77
63
63
  end
64
64
  end
65
+ context "when the currency is nil" do
66
+ before(:each) do
67
+ subject.manager.currency = nil
68
+ end
69
+ it "should raise an error" do
70
+ lambda { subject.price }.should raise_error(Exchange::NoCurrencyError, "No currency is given for typecasting price. Make sure a currency is present")
71
+ end
72
+ end
73
+ context "when the value is nil" do
74
+ before(:each) do
75
+ subject.price = nil
76
+ subject.manager.currency = :usd
77
+ end
78
+ it "should return nil" do
79
+ subject.price.should be_nil
80
+ end
81
+ end
65
82
  end
66
83
 
67
84
  describe "set" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Beat Richartz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2014-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1'
20
20
  - - '>='
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '1.6'
29
+ version: '1'
30
30
  - - '>='
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ~>
38
38
  - !ruby/object:Gem::Version
39
- version: '1.8'
39
+ version: '1'
40
40
  - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.0.0
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ~>
48
48
  - !ruby/object:Gem::Version
49
- version: '1.8'
49
+ version: '1'
50
50
  - - '>='
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.0.0
@@ -57,9 +57,6 @@ dependencies:
57
57
  - - ~>
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0.8'
60
- - - '>='
61
- - !ruby/object:Gem::Version
62
- version: 0.7.4
63
60
  type: :development
64
61
  prerelease: false
65
62
  version_requirements: !ruby/object:Gem::Requirement
@@ -67,29 +64,20 @@ dependencies:
67
64
  - - ~>
68
65
  - !ruby/object:Gem::Version
69
66
  version: '0.8'
70
- - - '>='
71
- - !ruby/object:Gem::Version
72
- version: 0.7.4
73
67
  - !ruby/object:Gem::Dependency
74
68
  name: bundler
75
69
  requirement: !ruby/object:Gem::Requirement
76
70
  requirements:
77
71
  - - ~>
78
72
  - !ruby/object:Gem::Version
79
- version: '1.5'
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: 1.0.0
73
+ version: '1.3'
83
74
  type: :development
84
75
  prerelease: false
85
76
  version_requirements: !ruby/object:Gem::Requirement
86
77
  requirements:
87
78
  - - ~>
88
79
  - !ruby/object:Gem::Version
89
- version: '1.5'
90
- - - '>='
91
- - !ruby/object:Gem::Version
92
- version: 1.0.0
80
+ version: '1.3'
93
81
  description: 'Simple Money handling for your ruby app – ISO4217-compatible Currency
94
82
  instantiation, conversion, string formatting and more via an intuitive DSL: 1.in(:usd).to(:eur)'
95
83
  email: attr_accessor@gmail.com