ruby-duration 3.1.0 → 3.2.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 +15 -0
- data/lib/duration.rb +21 -12
- data/lib/duration/version.rb +1 -1
- data/ruby-duration.gemspec +1 -1
- data/test/helper.rb +4 -2
- data/test/test_duration.rb +12 -0
- data/test/test_i18n.rb +4 -0
- metadata +11 -28
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTQzZmEyYTE0Y2IzNzQ0MjE1OTM2YmRjMjI1OThmMDBlZDIwM2RiMw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZjNjODE1MzJkZGQxOWFjZWFlOTgzZWM2ZWZlM2I2MTBmNjQ0NzQ2Zg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWQzYTRhZTViNzEyYzcxMTZjNzQxNWIzNDI1YThmM2E5MmYxZTk5YzE1ZTZi
|
10
|
+
YzQxY2RmZDA4NWRhOTE4MTk1Y2FjODY3OGNmYzgxMDgzNTQ2MjllY2VmMzZi
|
11
|
+
MGYzODY1OTU3ZjU3NzE0YmNiYjRlNjQ2NjI4NGNmOGRhMjFhYjI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZDFiMzI1MTg3MWY0MjJlMGY1MmVmYzQ3MGE2OTllYzE2ZTYzNDY2ODdlMjI4
|
14
|
+
M2NmOWM2MjkyYzMzMGQ5ODJkYjAzOWIxMzk5YzBkMmRhNjQ1YmMzMWMxYWVl
|
15
|
+
M2VlZTk5NTMxMzAyY2RlNWY1NmNhMmU5MjZiNTM5Y2JkNDlmYzQ=
|
data/lib/duration.rb
CHANGED
@@ -90,18 +90,22 @@ class Duration
|
|
90
90
|
# Formats a duration in ISO8601.
|
91
91
|
# @see http://en.wikipedia.org/wiki/ISO_8601#Durations
|
92
92
|
def iso8601
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
93
|
+
if present?
|
94
|
+
output = 'P'
|
95
|
+
|
96
|
+
number_of_days = weeks * 7 + days
|
97
|
+
output << "#{number_of_days}D" if number_of_days > 0
|
98
|
+
if seconds > 0 || minutes > 0 || hours > 0
|
99
|
+
output << 'T'
|
100
|
+
output << "#{hours}H" if hours > 0
|
101
|
+
output << "#{minutes}M" if minutes > 0
|
102
|
+
output << "#{seconds}S" if seconds > 0
|
103
|
+
end
|
103
104
|
|
104
|
-
|
105
|
+
negative? ? "-#{output}" : output
|
106
|
+
else
|
107
|
+
'PT0S'
|
108
|
+
end
|
105
109
|
end
|
106
110
|
|
107
111
|
# @return true if total is 0
|
@@ -114,6 +118,10 @@ class Duration
|
|
114
118
|
!blank?
|
115
119
|
end
|
116
120
|
|
121
|
+
def negative?
|
122
|
+
@negative
|
123
|
+
end
|
124
|
+
|
117
125
|
# Format a duration into a human-readable string.
|
118
126
|
#
|
119
127
|
# %w => weeks
|
@@ -210,7 +218,8 @@ private
|
|
210
218
|
def calculate!
|
211
219
|
multiples = [MULTIPLES[:weeks], MULTIPLES[:days], MULTIPLES[:hours], MULTIPLES[:minutes], MULTIPLES[:seconds]]
|
212
220
|
units = []
|
213
|
-
@
|
221
|
+
@negative = @seconds < 0
|
222
|
+
@total = @seconds.abs.to_f.round
|
214
223
|
multiples.inject(@total) do |total, multiple|
|
215
224
|
# Divide into largest unit
|
216
225
|
units << total / multiple
|
data/lib/duration/version.rb
CHANGED
data/ruby-duration.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency "yard", ">= 0"
|
24
24
|
s.add_development_dependency "rake", ">= 0"
|
25
25
|
s.add_development_dependency "simplecov", ">= 0.3.5"
|
26
|
-
s.add_development_dependency "mongoid", ">= 3.0.0"
|
26
|
+
s.add_development_dependency "mongoid", ">= 3.0.0", "< 4.0.0"
|
27
27
|
|
28
28
|
s.files = `git ls-files`.split("\n")
|
29
29
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
data/test/helper.rb
CHANGED
@@ -10,6 +10,8 @@ end
|
|
10
10
|
|
11
11
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
12
12
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
|
-
require 'ruby-duration'
|
14
13
|
|
15
|
-
|
14
|
+
require 'i18n'
|
15
|
+
I18n.enforce_available_locales = true
|
16
|
+
|
17
|
+
require 'ruby-duration'
|
data/test/test_duration.rb
CHANGED
@@ -201,6 +201,18 @@ describe "Duration" do
|
|
201
201
|
assert_equal "PT1H30S", d.iso8601
|
202
202
|
end
|
203
203
|
|
204
|
+
it 'should format empty duration' do
|
205
|
+
d = Duration.new(0)
|
206
|
+
assert_equal 'PT0S', d.iso8601
|
207
|
+
end
|
208
|
+
|
209
|
+
it 'should format negative duration' do
|
210
|
+
d = Duration.new(-1)
|
211
|
+
assert_equal '-PT1S', d.iso8601
|
212
|
+
|
213
|
+
d = Duration.new(-100)
|
214
|
+
assert_equal '-PT1M40S', d.iso8601
|
215
|
+
end
|
204
216
|
end
|
205
217
|
|
206
218
|
describe "utilities methods" do
|
data/test/test_i18n.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-duration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
5
|
-
prerelease:
|
4
|
+
version: 3.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jose Peleteiro
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-09-17 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activesupport
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: i18n
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: iso8601
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: bundler
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ! '>='
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ! '>='
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: minitest
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: yard
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ! '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rake
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ! '>='
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ! '>='
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: simplecov
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ! '>='
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ! '>='
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -143,19 +126,23 @@ dependencies:
|
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: mongoid
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
130
|
- - ! '>='
|
149
131
|
- !ruby/object:Gem::Version
|
150
132
|
version: 3.0.0
|
133
|
+
- - <
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 4.0.0
|
151
136
|
type: :development
|
152
137
|
prerelease: false
|
153
138
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
139
|
requirements:
|
156
140
|
- - ! '>='
|
157
141
|
- !ruby/object:Gem::Version
|
158
142
|
version: 3.0.0
|
143
|
+
- - <
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 4.0.0
|
159
146
|
description: Duration type
|
160
147
|
email:
|
161
148
|
- jose@peleteiro.net
|
@@ -183,31 +170,27 @@ files:
|
|
183
170
|
- test/test_mongoid.rb
|
184
171
|
homepage: http://github.com/peleteiro/ruby-duration
|
185
172
|
licenses: []
|
173
|
+
metadata: {}
|
186
174
|
post_install_message:
|
187
175
|
rdoc_options:
|
188
176
|
- --charset=UTF-8
|
189
177
|
require_paths:
|
190
178
|
- lib
|
191
179
|
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
180
|
requirements:
|
194
181
|
- - ! '>='
|
195
182
|
- !ruby/object:Gem::Version
|
196
183
|
version: '0'
|
197
|
-
segments:
|
198
|
-
- 0
|
199
|
-
hash: 1867546005898660473
|
200
184
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
185
|
requirements:
|
203
186
|
- - ! '>='
|
204
187
|
- !ruby/object:Gem::Version
|
205
188
|
version: 1.3.6
|
206
189
|
requirements: []
|
207
190
|
rubyforge_project: ruby-duration
|
208
|
-
rubygems_version:
|
191
|
+
rubygems_version: 2.2.2
|
209
192
|
signing_key:
|
210
|
-
specification_version:
|
193
|
+
specification_version: 4
|
211
194
|
summary: Duration type
|
212
195
|
test_files: []
|
213
196
|
has_rdoc:
|