hms 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ guard 'bundler' do
2
+ watch('Gemfile')
3
+ end
4
+
5
+ guard 'minitest' do
6
+ watch(%r|^test/unit/test_(.*)\.rb|)
7
+ watch(%r|^lib/*\.rb|){'test'}
8
+ watch(%r{^lib/.*/([^/]+)\.rb$}){|m| "test/unit/test_#{m[1]}.rb"}
9
+ watch(%r|^test/helper\.rb|){'test'}
10
+ end
data/hms.gemspec CHANGED
@@ -16,4 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.version = HMS::VERSION
17
17
 
18
18
  gem.add_development_dependency 'rake'
19
+ gem.add_development_dependency 'guard-minitest', '~> 0.5'
20
+ gem.add_development_dependency 'guard-bundler', '~> 1.0'
21
+ gem.add_development_dependency 'coolline', '~> 0.3'
22
+ gem.add_development_dependency 'growl'
19
23
  end
data/lib/hms/duration.rb CHANGED
@@ -103,10 +103,18 @@ module HMS
103
103
  op(:*, other)
104
104
  end
105
105
 
106
+ def **(other)
107
+ op(:**, other)
108
+ end
109
+
106
110
  def /(other)
107
111
  op(:/, other)
108
112
  end
109
113
 
114
+ def %(other)
115
+ op(:%, other)
116
+ end
117
+
110
118
  private
111
119
 
112
120
  DURATION_REGEXP = /([0-9]+):([0-5][0-9]):([0-5][0-9])/
data/lib/hms/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module HMS
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -256,6 +256,30 @@ class TestDuration < MiniTest::Unit::TestCase
256
256
  assert_compare_longer(-23, -42)
257
257
  end
258
258
 
259
+ def test_operator_addition
260
+ assert_operator(10, :+, 6, 4)
261
+ end
262
+
263
+ def test_operator_subtraction
264
+ assert_operator(18, :-, 22, 4)
265
+ end
266
+
267
+ def test_operator_multiplication
268
+ assert_operator(12, :*, 3, 4)
269
+ end
270
+
271
+ def test_operator_division
272
+ assert_operator(3, :/, 12, 4)
273
+ end
274
+
275
+ def test_operator_modulus
276
+ assert_operator(1, :%, 15, 7)
277
+ end
278
+
279
+ def test_operator_exponent
280
+ assert_operator(81, :**, 3, 4)
281
+ end
282
+
259
283
  private
260
284
 
261
285
  def assert_construction(str, int)
@@ -293,4 +317,8 @@ class TestDuration < MiniTest::Unit::TestCase
293
317
  assert(0 < (left <=> Duration.new(right)))
294
318
  assert(0 < (Duration.new(left) <=> right))
295
319
  end
320
+
321
+ def assert_operator(expected, op, left, right)
322
+ assert_equal(expected, Duration.new(left).send(op, Duration.new(right)))
323
+ end
296
324
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-07 00:00:00.000000000 Z
12
+ date: 2012-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -27,6 +27,70 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: guard-minitest
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '0.5'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.5'
46
+ - !ruby/object:Gem::Dependency
47
+ name: guard-bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: coolline
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '0.3'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '0.3'
78
+ - !ruby/object:Gem::Dependency
79
+ name: growl
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
30
94
  description: Models construction, parsing and formatting durations in hh::mm::ss format
31
95
  email:
32
96
  - nerab@gmx.net
@@ -37,6 +101,7 @@ files:
37
101
  - .gitignore
38
102
  - .travis.yml
39
103
  - Gemfile
104
+ - Guardfile
40
105
  - LICENSE
41
106
  - README.md
42
107
  - Rakefile