exchange 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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