tape_measure 0.0.4 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07320203954dff2f3a7bb0752bb30ef17ca04edd
4
- data.tar.gz: 3c82a17ce14afc4742e7888c848def08b9f6308b
3
+ metadata.gz: f9d69c91b96f8b88480885236d314696bdf17221
4
+ data.tar.gz: 346425787b761da85bde19b1f20952d8fdf62e72
5
5
  SHA512:
6
- metadata.gz: 981b263f657144e96b6bd263332e61faf7d06e6ed059ae54b12ab55b494474f8feefc90245f4c451917622138c48164e9a8d01539f37a8d56d63fcc27eb3938d
7
- data.tar.gz: ebaff9f5840153a4ae9d15b597064326b6db4dc39f3aaf68797273753a84afe500e4186105b08ab1613890886bcbe7d2295add41cb9619a54a80ff755822363b
6
+ metadata.gz: b9e792bd397c623d42f08b99686acc9d63843b9f9a27bc6d443454091ac690d7b0f93b14e006c583cb00b073f9f42b37e16f6269e12772042361b79559833e7b
7
+ data.tar.gz: c552ecb3597b58db118a508309fa6d5d06d764866cdfc64789e8519cacdfb69210ce4b5b577af0f0e343865700128be240d87a10be77601b8727b8598ec814a7
@@ -0,0 +1 @@
1
+ 2.4.0
@@ -1,6 +1,8 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
- - 2.1.2
4
+ - 2.3.3
5
+ - 2.4.0
4
6
  before_install:
5
7
  - gem install bundler --pre
6
- script: bundle exec rake spec
8
+ script: bundle exec rake spec
data/README.md CHANGED
@@ -5,15 +5,16 @@
5
5
 
6
6
  Contains a text parser for converting various measurements into their inch :/ equivilent, as well as doing multiplication with those numbers:
7
7
 
8
- TapeMeasure::Parser.new('6ft').parse = 72
9
- TapeMeasure::Parser.new('6in').parse = 6
10
- TapeMeasure::Parser.new('6ft 6in').parse = 78
11
- TapeMeasure::Parser.new('6 * 6').parse = 36
12
- TapeMeasure::Parser.new('(6ft 6in) + 6in').parse = 84
8
+ TapeMeasure.parse('6ft').parse = 72
9
+ TapeMeasure.parse('6in').parse = 6
10
+ TapeMeasure.parse('6ft 6in').parse = 78
11
+ TapeMeasure.parse('6 * 6').parse = 36
12
+ TapeMeasure.parse('(6ft 6in) + 6in').parse = 84
13
13
 
14
+ They underlying library supports all units and could easily be expanded to handle natural lanuage parsing of other units in strings.
14
15
  Also contains a formatter that converts a measurement to all of it's corresponding measurements:
15
16
 
16
- .to_mixed_number('12"') = ['1ft', '12in', '#m', etc]
17
+ TapeMeasure.format(13.5) = "1' 1 1/2""
17
18
 
18
19
  ## Installation:
19
20
 
@@ -1,7 +1,6 @@
1
- require 'tape_measure/formatter'
2
- require 'tape_measure/parser'
3
- require 'tape_measure/version'
4
- require 'bigdecimal'
1
+ require_relative 'tape_measure/formatter'
2
+ require_relative 'tape_measure/parser'
3
+ require_relative 'tape_measure/version'
5
4
 
6
5
  # Silence is golden
7
6
  module TapeMeasure
@@ -4,7 +4,7 @@ module TapeMeasure
4
4
  attr_reader :mixed_number
5
5
 
6
6
  def initialize(number = 0.0)
7
- @number = number
7
+ @number = number.to_f
8
8
  @unit_array = []
9
9
  @feet = @number.div(12)
10
10
  @raw_inches = @number.remainder(12)
@@ -15,7 +15,12 @@ module TapeMeasure
15
15
  format_inches
16
16
  format_fraction
17
17
 
18
- @mixed_number = @unit_array.compact.join
18
+ if @unit_array.size > 0
19
+ @mixed_number = @unit_array.compact.join
20
+ else
21
+ @mixed_number = 0
22
+ end
23
+
19
24
  end
20
25
 
21
26
  def format_feet
@@ -23,10 +28,9 @@ module TapeMeasure
23
28
  end
24
29
 
25
30
  def format_inches
26
- if @inches > 0
27
- @unit_array << ' ' if @feet > 0
28
- @unit_array << "#{@inches}"
29
- end
31
+ return unless @inches > 0
32
+ @unit_array << ' ' if @feet > 0
33
+ @unit_array << "#{@inches}"
30
34
  end
31
35
 
32
36
  def format_fraction
@@ -11,7 +11,7 @@ grammar LengthGrammar
11
11
  end
12
12
 
13
13
  rule factor
14
- multiplicative | prefix
14
+ multiplicative | prefix
15
15
  end
16
16
 
17
17
  rule multiplicative
@@ -30,7 +30,7 @@ grammar LengthGrammar
30
30
  s += '@' unless s == '~' # Unary + and - require an @.
31
31
  capture(:prefix).value.send(s)
32
32
  }
33
- end
33
+ end
34
34
 
35
35
  rule number_group
36
36
  number_set | exponent
@@ -68,12 +68,18 @@ grammar LengthGrammar
68
68
  digits_with_unit | number
69
69
  end
70
70
 
71
+ rule digits_with_unit
72
+ (number unit space*){
73
+ RubyUnits::Unit.new capture(:number).value, capture(:unit).to_str
74
+ }
75
+ end
76
+
71
77
  rule number
72
78
  irrational | integer
73
79
  end
74
80
 
75
81
  rule irrational
76
- rational | float
82
+ rational | float
77
83
  end
78
84
 
79
85
  rule float
@@ -81,7 +87,7 @@ grammar LengthGrammar
81
87
  end
82
88
 
83
89
  rule decimal
84
- (integer '.' integer) { to_str.to_f }
90
+ (integer '.' integer) { Rational(capture(:decimal).to_str) }
85
91
  end
86
92
 
87
93
  rule integer
@@ -99,13 +105,7 @@ grammar LengthGrammar
99
105
  end
100
106
 
101
107
  rule fraction
102
- (float '/' float) { to_str.to_r }
103
- end
104
-
105
- rule digits_with_unit
106
- (number unit space*){
107
- (RubyUnits::Unit.new( capture(:number).value.to_s.strip + ( capture(:unit).value.empty? ? "in" : capture(:unit).value)) >> "in").scalar.to_f.round(4)
108
- }
108
+ (float '/' float) { Rational(*captures(:float).map(&:to_str).map(&:to_f)) }
109
109
  end
110
110
 
111
111
  rule unit
@@ -118,5 +118,5 @@ grammar LengthGrammar
118
118
 
119
119
  rule lparen '(' space* end
120
120
  rule rparen ')' space* end
121
- rule space [ \t\n\r] end
122
- end
121
+ rule space [\s] end
122
+ end
@@ -5,7 +5,7 @@ Citrus.load File.expand_path("../length_grammar", __FILE__)
5
5
  module TapeMeasure
6
6
  # Parse Strings into units and math them
7
7
  class Parser
8
- attr_reader :value
8
+ attr_reader :value, :match, :unit, :scalar
9
9
 
10
10
  def initialize(string)
11
11
  @string = string
@@ -14,14 +14,20 @@ module TapeMeasure
14
14
  else
15
15
  @value = string
16
16
  end
17
-
18
-
19
17
  end
20
18
 
21
19
  def parse
22
- @value = LengthGrammar.parse(@string.strip).value
23
- rescue => ex
24
- ex.message
20
+ begin
21
+ mixed_value = LengthGrammar.parse(@string.strip).value
22
+ @unit = mixed_value.units
23
+ @scalar = mixed_value.scalar
24
+ @value = mixed_value.compatible?("in") ? (mixed_value >> "in").scalar : @scalar.to_f
25
+
26
+ @match = true
27
+ rescue Citrus::ParseError => ex
28
+ ex.message
29
+ @match = false
30
+ end
25
31
  end
26
32
  end
27
33
 
@@ -30,5 +36,17 @@ module TapeMeasure
30
36
  def parse(string)
31
37
  Parser.new(string).value
32
38
  end
39
+
40
+ def match?(string)
41
+ Parser.new(string).match
42
+ end
43
+
44
+ def scalar(string)
45
+ Parser.new(string).scalar
46
+ end
47
+
48
+ def unit(string)
49
+ Parser.new(string).unit
50
+ end
33
51
  end
34
52
  end
@@ -1,3 +1,3 @@
1
1
  module TapeMeasure
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -7,7 +7,6 @@
7
7
  require 'tape_measure'
8
8
 
9
9
  RSpec.configure do |config|
10
- config.treat_symbols_as_metadata_keys_with_true_values = true
11
10
  config.run_all_when_everything_filtered = true
12
11
  config.filter_run :focus
13
12
 
@@ -17,7 +17,7 @@ describe TapeMeasure::Formatter do
17
17
 
18
18
  it 'when no length' do
19
19
  expect(TapeMeasure::Formatter.new(0.0).mixed_number)
20
- .to eq('')
20
+ .to eq(0)
21
21
  end
22
22
 
23
23
  it 'when called via class method helper' do
@@ -23,35 +23,35 @@ describe TapeMeasure do
23
23
  # 3-3/4" = 2.75
24
24
 
25
25
  it 'can handle integer' do
26
- TapeMeasure.parse(6).should eq 6
26
+ expect(TapeMeasure.parse(6)).to eq 6
27
27
  end
28
28
 
29
29
  it 'can handle nil' do
30
- TapeMeasure.parse(nil).should eq nil
30
+ expect(TapeMeasure.parse(nil)).to eq nil
31
31
  end
32
32
 
33
33
  it 'can handle empty string' do
34
- TapeMeasure.parse("").should eq nil
34
+ expect(TapeMeasure.parse("")).to eq nil
35
35
  end
36
36
 
37
37
  describe :grammar do
38
38
  it 'can add' do
39
- TapeMeasure::Parser.new('(8+2)').value.should eq 10
40
- TapeMeasure::Parser.new('8+2').value.should eq 10
41
- TapeMeasure::Parser.new('(8 + 2)').value.should eq 10
42
- TapeMeasure::Parser.new('8 + 2').value.should eq 10
39
+ expect(TapeMeasure::Parser.new('(8+2)').value).to eq 10
40
+ expect(TapeMeasure::Parser.new('8+2').value).to eq 10
41
+ expect(TapeMeasure::Parser.new('(8 + 2)').value).to eq 10
42
+ expect(TapeMeasure::Parser.new('8 + 2').value).to eq 10
43
43
  end
44
44
  it 'can subtract' do
45
- TapeMeasure::Parser.new('4 - 2').value.should eq 2
45
+ expect(TapeMeasure::Parser.new('4 - 2').value).to eq 2
46
46
  end
47
47
 
48
48
  it 'can evaluate parens' do
49
- TapeMeasure::Parser.new('(8*2)').value.should eq 16
50
- TapeMeasure::Parser.new('(8)*(2)*(2)').value.should eq 32
51
- TapeMeasure::Parser.new('(8)*(2)').value.should eq 16
52
- TapeMeasure::Parser.new('(8*2)').value.should eq 16
53
- TapeMeasure::Parser.new('(8)(2)').value.should eq 10
54
- TapeMeasure::Parser.new('(2+8*2+2)*2').value.should eq 40
49
+ expect(TapeMeasure::Parser.new('(8*2)').value).to eq 16
50
+ expect(TapeMeasure::Parser.new('(8)*(2)*(2)').value).to eq 32
51
+ expect(TapeMeasure::Parser.new('(8)*(2)').value).to eq 16
52
+ expect(TapeMeasure::Parser.new('(8*2)').value).to eq 16
53
+ expect(TapeMeasure::Parser.new('(8)(2)').value).to eq 10
54
+ expect(TapeMeasure::Parser.new('(2+8*2+2)*2').value).to eq 40
55
55
  end
56
56
 
57
57
  it 'will perform flops' do
@@ -62,46 +62,53 @@ describe TapeMeasure do
62
62
  end
63
63
 
64
64
  it 'can multiply rationals' do
65
- TapeMeasure::Parser.new('(4/4 + 4)').value.should eq 5
66
- TapeMeasure::Parser.new('(3/4 +4/4)').value.should eq '7/4'.to_r
67
- TapeMeasure::Parser.new('(3/4 *4/1)').value.should eq '12/4'.to_r
65
+ expect(TapeMeasure::Parser.new('(4/4 + 4)').value).to eq 5
66
+ expect(TapeMeasure::Parser.new('(3/4 +4/4)').value).to eq Rational(7, 4)
67
+ expect(TapeMeasure::Parser.new('(3/4 *4/1)').value).to eq Rational(12, 4)
68
68
  end
69
69
 
70
70
  it 'can multiply rationals and fractions' do
71
- TapeMeasure::Parser.new('(3/4 +1.0)').value.should eq 7.0 / 4.0
71
+ expect(TapeMeasure::Parser.new('(3/4 +1.0)').value).to eq 7.0 / 4.0
72
+ end
73
+
74
+ it 'can handle complex rationals' do
75
+ expect(TapeMeasure::Parser.new('(77/88 mm)').value).to eq (35/1016)
76
+ expect(TapeMeasure::Parser.new('(77/88 mm)').match).to eq true
77
+ expect(TapeMeasure::Parser.new('(77/88 mm)').scalar).to eq 77/88
78
+ expect(TapeMeasure::Parser.new('(77/88 mm)').unit).to eq "mm"
72
79
  end
73
80
 
74
81
  describe 'recognizes mixed numbers' do
75
82
 
76
83
  it 'recognizes inches' do
77
- TapeMeasure::Parser.new('2 inches').value.should eq 2
78
- TapeMeasure::Parser.new('2 "').value.should eq 2
79
- TapeMeasure::Parser.new('2in').value.should eq 2
84
+ expect(TapeMeasure::Parser.new('2 inches').value).to eq 2
85
+ expect(TapeMeasure::Parser.new('2 "').value).to eq 2
86
+ expect(TapeMeasure::Parser.new('2in').value).to eq 2
80
87
  end
81
88
 
82
89
  it 'recognizes feet' do
83
- TapeMeasure::Parser.new('2 feet').value.should eq 24
84
- TapeMeasure::Parser.new('2\'').value.should eq 24
85
- TapeMeasure::Parser.new('2ft').value.should eq 24
90
+ expect(TapeMeasure::Parser.new('2 feet').value).to eq 24
91
+ expect(TapeMeasure::Parser.new('2\'').value).to eq 24
92
+ expect(TapeMeasure::Parser.new('2ft').value).to eq 24
86
93
  end
87
94
 
88
95
  it 'converts meters' do
89
- TapeMeasure::Parser.new('1 meter').value.should eq 39.3701
90
- TapeMeasure::Parser.new('1m').value.should eq 39.3701
96
+ expect(TapeMeasure::Parser.new('1 meter').value).to eq (5000/127)
97
+ expect(TapeMeasure::Parser.new('1m').value).to eq (5000/127)
91
98
  end
92
99
 
93
100
  describe 'converts centimeters' do
94
101
  it 'with whitespace' do
95
- TapeMeasure::Parser.new('127 cm').value.should eq 50
102
+ expect(TapeMeasure::Parser.new('127 cm').value).to eq 50
96
103
  end
97
104
  it 'without whitespace' do
98
- TapeMeasure::Parser.new('127cm').value.should eq 50
105
+ expect(TapeMeasure::Parser.new('127cm').value).to eq 50
99
106
  end
100
107
  end
101
108
 
102
109
  it 'converts millimeters' do
103
- TapeMeasure::Parser.new('1270 mm').value.should eq 50
104
- TapeMeasure::Parser.new('1270mm').value.should eq 50
110
+ expect(TapeMeasure::Parser.new('1270 mm').value).to eq 50
111
+ expect(TapeMeasure::Parser.new('1270mm').value).to eq 50
105
112
  end
106
113
  end
107
114
  end
@@ -109,86 +116,108 @@ describe TapeMeasure do
109
116
  describe :unit_conversion do
110
117
 
111
118
  it 'number + space + string unit twice to inches' do
112
- TapeMeasure::Parser.new('4feet 2inches').value.should eq 50
119
+ expect(TapeMeasure::Parser.new('4feet 2inches').value).to eq 50
120
+ end
121
+
122
+ it 'number + symbol unit twice to inches' do
123
+ expect(TapeMeasure::Parser.new("4'2\"").value).to eq 50
113
124
  end
114
125
 
115
- it 'number + string unit twice to inches' do
116
- TapeMeasure::Parser.new("4'2\"").value.should eq 50
126
+ it 'number + string unit twice to inches with no whitespace' do
127
+ expect(TapeMeasure::Parser.new('3ft10in').value).to eq 46
117
128
  end
118
129
 
119
- it 'number + string unit twice to inches' do
120
- TapeMeasure::Parser.new('3ft10in').value.should eq 46
130
+ it 'number + string unit once to inches' do
131
+ expect(TapeMeasure::Parser.new('3ft').value).to eq 36
121
132
  end
122
133
 
123
- it 'number + string unit twice to inches' do
124
- TapeMeasure::Parser.new('3ft13in').value.should eq 49
134
+ it 'number + string unit twice to inches seperated by whitespace' do
135
+ expect(TapeMeasure::Parser.new('3ft 13in').value).to eq 49
125
136
  end
126
137
 
127
138
  it 'converts single quotes to feet' do
128
- TapeMeasure::Parser.new("1\' 2 1/3\"").value
129
- .should eq(12 + 2 + (1 / 3).to_f.round(4))
139
+ expect(TapeMeasure::Parser.new("1\' 2 1/3\"").value)
140
+ .to eq(12 + 2 + (1 / 3).to_f)
130
141
  end
131
142
 
132
143
  it 'lots of junk spaces' do
133
- TapeMeasure::Parser.new(" 1\' 2 1/3\" ").value
134
- .should eq(12 + 2 + (1 / 3).to_f.round(4))
144
+ expect(TapeMeasure::Parser.new(" 1\' 2 1/3\" ").value)
145
+ .to eq(12 + 2 + (1 / 3).to_f)
135
146
  end
136
147
 
137
148
  it 'converts decimal inches' do
138
- TapeMeasure::Parser.new(" 1\' 2.24\" ").value.should eq 14.24
149
+ expect(TapeMeasure::Parser.new(" 1\' 2.24\" ").value).to eq 14.24
139
150
  end
140
151
 
141
152
  it 'converts decimal feet' do
142
- TapeMeasure::Parser.new(" 1.1\' ").value.should eq 13.2
153
+ expect(TapeMeasure::Parser.new(" 1.1\' ").value).to eq 13.2
143
154
  end
144
155
 
145
156
  it 'converts rational feet' do
146
- TapeMeasure::Parser.new(" 1 1/10\' ").value.should eq 13.2
157
+ expect(TapeMeasure::Parser.new(" 1 1/10\' ").value).to eq 13.2
147
158
  end
148
159
 
149
160
  it 'handle a shit ton of units when someone thinks they are funny' do
150
- TapeMeasure::Parser.new("1' 2' 3' 127cm").value.should eq 122.0
161
+ expect(TapeMeasure::Parser.new("1' 2' 3' 127cm").value).to eq 122.0
151
162
  end
152
163
 
153
164
  it 'handles no units' do
154
- TapeMeasure::Parser.new('5').value.should eq 5
165
+ expect(TapeMeasure::Parser.new('5').value).to eq 5
155
166
  end
156
167
 
157
168
  # expected to hand parens in this way
158
169
  it 'handles paren parsing as predicted' do
159
- TapeMeasure::Parser.new('(5) 5').value.should eq 10
160
- TapeMeasure::Parser.new('(5)(5)(5)').value.should eq 15
170
+ expect(TapeMeasure::Parser.new('(5) 5').value).to eq 10
171
+ expect(TapeMeasure::Parser.new('(5)(5)(5)').value).to eq 15
161
172
  end
162
173
 
163
174
  it 'handles no units' do
164
- TapeMeasure::Parser.new('(5+5) 5 (5+5)').value.should eq 25
175
+ expect(TapeMeasure::Parser.new('(5+5) 5 (5+5)').value).to eq 25
165
176
  end
166
177
 
167
178
  it 'order of operations' do
168
- TapeMeasure::Parser.new('(5+5*5) 5/5').value.should eq 31
179
+ expect(TapeMeasure::Parser.new('(5+5*5) 5/5').value).to eq 31
169
180
  end
170
181
 
171
182
  end
172
183
 
173
184
  describe :calculator do
174
185
  it 'with length style input' do
175
- expect(TapeMeasure::Parser.new('15.5\' + 12.7').value).to eq(198.7)
186
+ expect(TapeMeasure::Parser.new('15.5\' + 12.7"').value).to eq(198.7)
176
187
  expect(TapeMeasure::Parser.new('7 1/3 inches - 4.12mm').value)
177
- .to eq(7.1711)
188
+ .to eq(13661/1905)
178
189
  expect(TapeMeasure::Parser.new('4.5 * 3').value).to eq(13.5)
179
190
  expect(TapeMeasure::Parser.new('5.5 / 11').value).to eq(0.5)
180
- expect(TapeMeasure::Parser.new('1 ft * 1 inch').value).to eq(12)
181
- expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 inch').value).to eq(126.875)
182
- expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 inch * 4/4" ').value).to eq(126.875)
183
- expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 inch * 3/4" ').value).to eq(95.15625)
184
- end
185
- it 'when no brackets to define order of operations' do
186
- expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2"').value).to eq(126.875)
187
- expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2" * 4/4" ').value).to eq(126.875)
188
- expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2" * 3/4" ').value).to eq(95.15625)
191
+ expect(TapeMeasure::Parser.new('1 ft * 1').value).to eq(12)
192
+ expect(TapeMeasure::Parser.new('1 ft * 1').unit).to eq("ft")
193
+ expect(TapeMeasure::Parser.new('1 ft * 1').scalar).to eq(1)
194
+ expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2').value).to eq(126.875)
195
+ expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 * 4/4" ').value).to be_within(1).of(10.572916666666666)
196
+ expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 * 4/4" ').unit).to eq("ft*in")
197
+ expect(TapeMeasure::Parser.new('(3 ft 1/4") * 3 1/2 * 3/4 ').value).to eq((3045/32))
198
+ end
199
+ it 'when no brackets to define order of operations' do
200
+ expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2').value).to eq(126.875)
201
+ expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2" * 4/4" ').value).to be_within(1).of(10.572916666666666)
202
+ expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2" * 4/4" ').unit).to eq("ft*in^2")
203
+ expect(TapeMeasure::Parser.new('3\' 1/4" * 3 1/2 * 3/4 ').value).to eq((3045/32))
189
204
  end
190
205
  end
191
206
  it 'when called via class method helper' do
192
207
  expect(TapeMeasure.parse("1\"")).to eq(1)
193
208
  end
209
+
210
+ describe :match do
211
+ it 'matches' do
212
+ expect(TapeMeasure.match?('3\' 1/4" * 3 1/2" * 3/4" ')).to eq(true)
213
+ end
214
+
215
+ it 'does not match' do
216
+ expect(TapeMeasure.match?('3\' 1/4" * 3 1/2" *" ')).to eq(false)
217
+ end
218
+
219
+ it 'does not match' do
220
+ expect(TapeMeasure.match?('3\' 1/4" * 3 1/2" x hihi how are you')).to eq(false)
221
+ end
222
+ end
194
223
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tape_measure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Congleton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-28 00:00:00.000000000 Z
11
+ date: 2016-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: citrus
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: ruby-units
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: Contains a text parser for converting various measurements into a base
@@ -88,9 +88,10 @@ executables: []
88
88
  extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
- - .gitignore
92
- - .rspec
93
- - .travis.yml
91
+ - ".gitignore"
92
+ - ".rspec"
93
+ - ".ruby-version"
94
+ - ".travis.yml"
94
95
  - Gemfile
95
96
  - LICENSE.txt
96
97
  - README.md
@@ -114,17 +115,17 @@ require_paths:
114
115
  - lib
115
116
  required_ruby_version: !ruby/object:Gem::Requirement
116
117
  requirements:
117
- - - '>='
118
+ - - ">="
118
119
  - !ruby/object:Gem::Version
119
120
  version: '0'
120
121
  required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  requirements:
122
- - - '>='
123
+ - - ">="
123
124
  - !ruby/object:Gem::Version
124
125
  version: '0'
125
126
  requirements: []
126
127
  rubyforge_project:
127
- rubygems_version: 2.0.3
128
+ rubygems_version: 2.6.8
128
129
  signing_key:
129
130
  specification_version: 4
130
131
  summary: Measurements parser and converter.