units-system 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
data/lib/units/measure.rb CHANGED
@@ -65,8 +65,17 @@ module Units
65
65
  end
66
66
 
67
67
  # more natural concise text representation
68
+ # If a block is passed, it is used to format the numeric magnitudes (Float numbers) (e.g., for localization)
69
+ # Units.units{3*m/(2*s)}.abr{|v| v.to_s.tr('.',',') } # => "1,5 m/s"
68
70
  def abr
69
- self.to_s.gsub('**','^').tr('*',' ')
71
+ txt = self.to_s.gsub('**','^').tr('*',' ')
72
+ if block_given?
73
+ txt.gsub!(/[+-]?((\d+_?)*\d+(\.(\d+_?)*\d+)?|\.(\d+_?)*\d+)([eE][+-]?(\d+_?)*\d+)?/) do
74
+ v = $&.to_f
75
+ yield v
76
+ end
77
+ end
78
+ txt
70
79
  end
71
80
 
72
81
  # decompose compound units
@@ -142,4 +142,12 @@ class TestUnitsSystem < Test::Unit::TestCase
142
142
  assert_equal Units.u{m-km}, Units.u{m}-'km'
143
143
  end
144
144
 
145
+ should "represent abbreviated units" do
146
+ assert_equal "1.0 m", Units.u{m}.abr
147
+ assert_equal "3.0 m", Units.u{3*m}.abr
148
+ assert_equal "3.0 m/s", Units.u{3*m/s}.abr
149
+ assert_equal "3.5555555555555554 m/s", Units.u{3*m/s + 2*km/h}.abr
150
+ assert_equal "1,5 m/s", Units.units{3*m/(2*s)}.abr{|v| v.to_s.tr('.',',') }
151
+ end
152
+
145
153
  end
data/units-system.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "units-system"
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Javier Goizueta"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: units-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -129,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  segments:
131
131
  - 0
132
- hash: 1858258133218816942
132
+ hash: -3773164619395754459
133
133
  required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  none: false
135
135
  requirements: