valuable 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,6 +1,8 @@
1
1
  *.*~
2
+ *.swp
2
3
  .bundle
3
4
  .rvmrc
5
+ .irbrc
4
6
  .svn
5
7
  pkg
6
8
  vendor
@@ -1,3 +1,5 @@
1
+ require 'bigdecimal'
2
+
1
3
  module Valuable::Utils
2
4
  class << self
3
5
 
@@ -47,6 +49,17 @@ module Valuable::Utils
47
49
 
48
50
  value && value.to_i
49
51
 
52
+ when :decimal
53
+
54
+ case value
55
+ when NilClass
56
+ nil
57
+ when BigDecimal
58
+ value
59
+ else
60
+ BigDecimal.new( value.to_s )
61
+ end
62
+
50
63
  when :string
51
64
 
52
65
  value && value.to_s
@@ -70,7 +83,7 @@ module Valuable::Utils
70
83
  end
71
84
 
72
85
  def klass_options
73
- [NilClass, :date, :integer, :string, :boolean, Class]
86
+ [NilClass, :integer, Class, :date, :decimal, :string, :boolean]
74
87
  end
75
88
 
76
89
  def known_options
data/test/typical_test.rb CHANGED
@@ -8,6 +8,10 @@ class Person < Valuable
8
8
  has_value :dob, :klass => :date
9
9
  end
10
10
 
11
+ class Chemical < Valuable
12
+ has_value :ph, :klass => :decimal
13
+ end
14
+
11
15
  class TypicalTest < Test::Unit::TestCase
12
16
 
13
17
  def test_that_dates_can_be_set_directly
@@ -42,5 +46,15 @@ class TypicalTest < Test::Unit::TestCase
42
46
  animal.has_value :species, :klass => :invalid
43
47
  end
44
48
  end
49
+
50
+ def test_that_decimals_typified
51
+ lemon_juice = Chemical.new(:ph => 1.8)
52
+ assert_kind_of BigDecimal, lemon_juice.ph
53
+ end
54
+
55
+ def test_that_nil_input_is_preserved_for_decimals
56
+ lemon_juice = Chemical.new(:ph => nil)
57
+ assert_equal nil, lemon_juice.ph
58
+ end
45
59
  end
46
60
 
data/valuable.version CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.1
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valuable
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 57
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 0
10
- version: 0.9.0
9
+ - 1
10
+ version: 0.9.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Johnathon Wright