convertable_values 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{convertable_values}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Stephen Blankenship"]
@@ -18,10 +18,17 @@ module ConvertableValues
18
18
 
19
19
  if new_value && unit_str
20
20
  # store the value converted to the base unit corresponding to the given unit
21
- # write_attribute(value_attr.to_sym, v.send(unit_attr.to_sym))
22
- instance_variable_set("@#{value_attr}".to_sym, new_value.send(unit_str))
21
+ if respond_to?(:write_attribute)
22
+ write_attribute(value_attr.to_sym, new_value.send(unit_str))
23
+ else
24
+ instance_variable_set("@#{value_attr}".to_sym, new_value.send(unit_str))
25
+ end
23
26
  else
24
- instance_variable_set("@#{value_attr}".to_sym, new_value)
27
+ if respond_to?(:write_attribute)
28
+ write_attribute(value_attr.to_sym, new_value)
29
+ else
30
+ instance_variable_set("@#{value_attr}".to_sym, new_value)
31
+ end
25
32
  end
26
33
  end
27
34
 
@@ -31,19 +38,40 @@ module ConvertableValues
31
38
 
32
39
  if unit_str
33
40
  # return the value converted back to whatever unit was stored
34
- instance_variable_get("@#{value_attr}".to_sym).to(unit_str.to_sym)
41
+ if respond_to?(:read_attribute)
42
+ read_attribute(value_attr.to_sym).to(unit_str.to_sym)
43
+ else
44
+ instance_variable_get("@#{value_attr}".to_sym).to(unit_str.to_sym)
45
+ end
35
46
  else
36
- instance_variable_get("@#{value_attr}".to_sym)
47
+ if respond_to?(:read_attribute)
48
+ read_attribute(value_attr.to_sym)
49
+ else
50
+ instance_variable_get("@#{value_attr}".to_sym)
51
+ end
37
52
  end
38
53
  end
39
54
 
40
55
  # Create override method for updating value when unit is set/changed
41
56
  define_method "#{unit_attr}=".to_sym do |new_unit|
42
- old_unit = instance_variable_get("@#{unit_attr}".to_sym)
43
- instance_variable_set("@#{unit_attr}".to_sym, new_unit)
57
+ if respond_to?(:read_attribute)
58
+ old_unit = read_attribute(unit_attr.to_sym)
59
+ else
60
+ old_unit = instance_variable_get("@#{unit_attr}".to_sym)
61
+ end
62
+
63
+ if respond_to?(:write_attribute)
64
+ write_attribute(unit_attr.to_sym, new_unit)
65
+ else
66
+ instance_variable_set("@#{unit_attr}".to_sym, new_unit)
67
+ end
44
68
 
45
69
  # Re-assign the value so it will be converted properly
46
- value = instance_variable_get("@#{value_attr}".to_sym)
70
+ if respond_to?(:read_attribute)
71
+ value = read_attribute(value_attr.to_sym)
72
+ else
73
+ value = instance_variable_get("@#{value_attr}".to_sym)
74
+ end
47
75
  send("#{value_attr}=".to_sym, value) if value && old_unit.nil?
48
76
 
49
77
  new_unit
@@ -50,7 +50,7 @@ class TestConvertableValues < Test::Unit::TestCase
50
50
  assert_in_delta @obj.instance_variable_get(:@value), 5000, P # Bypass accessor
51
51
  end
52
52
 
53
- should "set the value converted to the base unit" do
53
+ should "return the inputted unit on normal access" do
54
54
  assert_in_delta @obj.value, 3.10685596, P
55
55
  end
56
56
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convertable_values
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stephen Blankenship