measured 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.travis.yml +11 -10
- data/README.md +9 -8
- data/Rakefile +18 -0
- data/cache/.keep +0 -0
- data/cache/length.json +2553 -0
- data/cache/volume.json +4163 -0
- data/cache/weight.json +3195 -0
- data/dev.yml +1 -1
- data/gemfiles/{activesupport-4.2.gemfile → activesupport-5.0.gemfile} +1 -1
- data/gemfiles/activesupport-5.1.gemfile +5 -0
- data/gemfiles/activesupport-6.0.gemfile +5 -0
- data/lib/measured/base.rb +4 -0
- data/lib/measured/cache/json.rb +48 -0
- data/lib/measured/cache/json_writer.rb +8 -0
- data/lib/measured/cache/null.rb +15 -0
- data/lib/measured/conversion_table_builder.rb +23 -12
- data/lib/measured/unit_system.rb +10 -2
- data/lib/measured/unit_system_builder.rb +7 -1
- data/lib/measured/units/length.rb +2 -0
- data/lib/measured/units/volume.rb +3 -1
- data/lib/measured/units/weight.rb +2 -0
- data/lib/measured/version.rb +1 -1
- data/measured.gemspec +1 -1
- data/test/cache/json_test.rb +42 -0
- data/test/cache/json_writer_test.rb +22 -0
- data/test/cache/null_test.rb +19 -0
- data/test/cache_consistency_test.rb +18 -0
- data/test/conversion_table_builder_test.rb +18 -0
- data/test/measurable_test.rb +4 -4
- data/test/support/always_true_cache.rb +13 -0
- data/test/support/subclasses.rb +6 -0
- data/test/test_helper.rb +3 -2
- data/test/unit_system_builder_test.rb +21 -1
- data/test/unit_system_test.rb +14 -0
- metadata +27 -6
@@ -0,0 +1,6 @@
|
|
1
|
+
# Extract the subclasses that exist early on because other classes will get added by tests
|
2
|
+
# later on in execution and in an unpredictable order.
|
3
|
+
class ActiveSupport::TestCase
|
4
|
+
cattr_accessor :measurable_subclasses
|
5
|
+
self.measurable_subclasses = Measured::Measurable.subclasses
|
6
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,17 +1,18 @@
|
|
1
|
+
require "pry" unless ENV["CI"]
|
1
2
|
require "measured"
|
2
3
|
require "minitest/reporters"
|
3
4
|
require "minitest/autorun"
|
4
5
|
require "mocha/setup"
|
5
|
-
require "pry" unless ENV["CI"]
|
6
6
|
|
7
7
|
ActiveSupport.test_order = :random
|
8
8
|
|
9
9
|
Minitest::Reporters.use! [Minitest::Reporters::ProgressReporter.new(color: true)]
|
10
10
|
|
11
|
+
require "support/subclasses"
|
11
12
|
require "support/fake_system"
|
13
|
+
require "support/always_true_cache"
|
12
14
|
|
13
15
|
class ActiveSupport::TestCase
|
14
|
-
|
15
16
|
protected
|
16
17
|
|
17
18
|
def assert_close_bigdecimal exp, act, delta = BigDecimal('0.000001')
|
@@ -54,7 +54,7 @@ class Measured::UnitSystemBuilderTest < ActiveSupport::TestCase
|
|
54
54
|
end
|
55
55
|
|
56
56
|
prefixes = Measured::UnitSystemBuilder::SI_PREFIXES.map { |short, _, _| "#{short}ft" }
|
57
|
-
prefixes += %w(in ft)
|
57
|
+
prefixes += %w(in ft)
|
58
58
|
assert_equal prefixes.sort, measurable.unit_names
|
59
59
|
end
|
60
60
|
|
@@ -109,4 +109,24 @@ class Measured::UnitSystemBuilderTest < ActiveSupport::TestCase
|
|
109
109
|
assert_equal (2240), measurable.unit_system.unit_for!(:long_ton).conversion_amount
|
110
110
|
assert_equal "lb", measurable.unit_system.unit_for!(:long_ton).conversion_unit
|
111
111
|
end
|
112
|
+
|
113
|
+
test "#cache sets no cache by default" do
|
114
|
+
measurable = Measured.build do
|
115
|
+
unit :m
|
116
|
+
unit :km, value: "1000 m"
|
117
|
+
end
|
118
|
+
|
119
|
+
refute_predicate measurable.unit_system, :cached?
|
120
|
+
end
|
121
|
+
|
122
|
+
test "#cache sets the class and args" do
|
123
|
+
measurable = Measured.build do
|
124
|
+
unit :m
|
125
|
+
unit :km, value: "1000 m"
|
126
|
+
|
127
|
+
cache AlwaysTrueCache
|
128
|
+
end
|
129
|
+
|
130
|
+
assert_predicate measurable.unit_system, :cached?
|
131
|
+
end
|
112
132
|
end
|
data/test/unit_system_test.rb
CHANGED
@@ -99,4 +99,18 @@ class Measured::UnitSystemTest < ActiveSupport::TestCase
|
|
99
99
|
test "#convert handles the same unit" do
|
100
100
|
assert_equal 2, @conversion.convert(2, from: @unit_in, to: @unit_in)
|
101
101
|
end
|
102
|
+
|
103
|
+
test "#update_cache calls the builder" do
|
104
|
+
Measured::ConversionTableBuilder.any_instance.expects(:update_cache)
|
105
|
+
@conversion.update_cache
|
106
|
+
end
|
107
|
+
|
108
|
+
test "#cached? calls the builder and is false" do
|
109
|
+
refute_predicate @conversion, :cached?
|
110
|
+
end
|
111
|
+
|
112
|
+
test "#cached? calls the builder and is true" do
|
113
|
+
conversion = Measured::UnitSystem.new([@unit_m, @unit_in, @unit_ft], cache: { class: AlwaysTrueCache })
|
114
|
+
assert_predicate conversion, :cached?
|
115
|
+
end
|
102
116
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: measured
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McPhillips
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-05-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '5.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
28
|
+
version: '5.0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,11 +110,20 @@ files:
|
|
110
110
|
- LICENSE
|
111
111
|
- README.md
|
112
112
|
- Rakefile
|
113
|
+
- cache/.keep
|
114
|
+
- cache/length.json
|
115
|
+
- cache/volume.json
|
116
|
+
- cache/weight.json
|
113
117
|
- dev.yml
|
114
|
-
- gemfiles/activesupport-
|
118
|
+
- gemfiles/activesupport-5.0.gemfile
|
119
|
+
- gemfiles/activesupport-5.1.gemfile
|
120
|
+
- gemfiles/activesupport-6.0.gemfile
|
115
121
|
- lib/measured.rb
|
116
122
|
- lib/measured/arithmetic.rb
|
117
123
|
- lib/measured/base.rb
|
124
|
+
- lib/measured/cache/json.rb
|
125
|
+
- lib/measured/cache/json_writer.rb
|
126
|
+
- lib/measured/cache/null.rb
|
118
127
|
- lib/measured/conversion_table_builder.rb
|
119
128
|
- lib/measured/measurable.rb
|
120
129
|
- lib/measured/parser.rb
|
@@ -128,10 +137,16 @@ files:
|
|
128
137
|
- measured.gemspec
|
129
138
|
- shipit.rubygems.yml
|
130
139
|
- test/arithmetic_test.rb
|
140
|
+
- test/cache/json_test.rb
|
141
|
+
- test/cache/json_writer_test.rb
|
142
|
+
- test/cache/null_test.rb
|
143
|
+
- test/cache_consistency_test.rb
|
131
144
|
- test/conversion_table_builder_test.rb
|
132
145
|
- test/measurable_test.rb
|
133
146
|
- test/parser_test.rb
|
147
|
+
- test/support/always_true_cache.rb
|
134
148
|
- test/support/fake_system.rb
|
149
|
+
- test/support/subclasses.rb
|
135
150
|
- test/test_helper.rb
|
136
151
|
- test/unit_error_test.rb
|
137
152
|
- test/unit_system_builder_test.rb
|
@@ -160,16 +175,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
175
|
version: '0'
|
161
176
|
requirements: []
|
162
177
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.6
|
178
|
+
rubygems_version: 2.7.6
|
164
179
|
signing_key:
|
165
180
|
specification_version: 4
|
166
181
|
summary: Encapsulate measurements with their units in Ruby
|
167
182
|
test_files:
|
168
183
|
- test/arithmetic_test.rb
|
184
|
+
- test/cache/json_test.rb
|
185
|
+
- test/cache/json_writer_test.rb
|
186
|
+
- test/cache/null_test.rb
|
187
|
+
- test/cache_consistency_test.rb
|
169
188
|
- test/conversion_table_builder_test.rb
|
170
189
|
- test/measurable_test.rb
|
171
190
|
- test/parser_test.rb
|
191
|
+
- test/support/always_true_cache.rb
|
172
192
|
- test/support/fake_system.rb
|
193
|
+
- test/support/subclasses.rb
|
173
194
|
- test/test_helper.rb
|
174
195
|
- test/unit_error_test.rb
|
175
196
|
- test/unit_system_builder_test.rb
|