exchange 1.0.2 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ module Exchange
3
3
 
4
4
  # The current version of the exchange gem
5
5
  #
6
- VERSION = '1.0.2'
6
+ VERSION = '1.0.4'
7
7
 
8
8
  # The root installation path of the gem
9
9
  # @version 0.5
@@ -118,14 +118,14 @@ module Exchange
118
118
  string = format % amount
119
119
  major, minor = string.split('.')
120
120
 
121
- if separators[:major]
121
+ if separators[:major] && opts[:format] != :plain
122
122
  major.reverse!
123
123
  major.gsub!(/(\d{3})(?=.)/) { $1 + separators[:major] }
124
124
  major.reverse!
125
125
  end
126
126
 
127
- string = minor ? major + (separators[:minor] || '.') + minor : major
128
- pre = [opts[:format] == :amount && '', opts[:format] == :symbol && definition[:symbol], currency.to_s.upcase + ' '].detect{|a| a.is_a?(String)}
127
+ string = minor ? major + (opts[:format] == :plain || !separators[:minor] ? '.' : separators[:minor]) + minor : major
128
+ pre = [[:amount, :plain].include?(opts[:format]) && '', opts[:format] == :symbol && definition[:symbol], currency.to_s.upcase + ' '].detect{|a| a.is_a?(String)}
129
129
 
130
130
  "#{pre}#{string}"
131
131
  end
@@ -800,6 +800,16 @@ describe "Exchange::ISO" do
800
800
  subject.stringify(BigDecimal.new("23.0"), :clp, :format => :amount).should == "23"
801
801
  end
802
802
  end
803
+ context "plain amount" do
804
+ it "should not render the currency or separators" do
805
+ subject.stringify(BigDecimal.new("23.232524"), :tnd, :format => :plain).should == "23.233"
806
+ subject.stringify(BigDecimal.new("223423432343.232524"), :chf, :format => :plain).should == "223423432343.23"
807
+ subject.stringify(BigDecimal.new("23.232524"), :clp, :format => :plain).should == "23"
808
+ subject.stringify(BigDecimal.new("23.2"), :tnd, :format => :plain).should == "23.200"
809
+ subject.stringify(BigDecimal.new("25645645663.4"), :sar, :format => :plain).should == "25645645663.40"
810
+ subject.stringify(BigDecimal.new("23.0"), :clp, :format => :plain).should == "23"
811
+ end
812
+ end
803
813
  context "symbol" do
804
814
  context "with a symbol present" do
805
815
  it "should render a symbol for the currency" do
@@ -555,6 +555,14 @@ describe "Exchange::Money" do
555
555
  Exchange::Money.new(23.4, :sar).to_s(:amount).should == "23.40"
556
556
  Exchange::Money.new(23.0, :clp).to_s(:amount).should == "23"
557
557
  end
558
+ it "should render only the currency amount and no separators if the argument amount is passed" do
559
+ Exchange::Money.new(2323.232524, :tnd).to_s(:plain).should == "2323.233"
560
+ Exchange::Money.new(2323.23252423, :sar).to_s(:plain).should == "2323.23"
561
+ Exchange::Money.new(2323.23252423, :clp).to_s(:plain).should == "2323"
562
+ Exchange::Money.new(23.2, :tnd).to_s(:plain).should == "23.200"
563
+ Exchange::Money.new(23.4, :sar).to_s(:plain).should == "23.40"
564
+ Exchange::Money.new(23.0, :clp).to_s(:plain).should == "23"
565
+ end
558
566
  it "should render the currency with a symbol according to ISO 4217 Definitions" do
559
567
  Exchange::Money.new(23.232524, :tnd).to_s(:symbol).should == "TND 23.233"
560
568
  Exchange::Money.new(23.23252423, :sar).to_s(:symbol).should == "﷼23.23"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-02 00:00:00.000000000 Z
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri