duration-formatter 0.0.1
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 +7 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +73 -0
- data/Guardfile +7 -0
- data/Rakefile +10 -0
- data/duration-formatter.gemspec +24 -0
- data/lib/duration_formatter/version.rb +3 -0
- data/lib/formatted_duration.rb +24 -0
- data/test/lib/formatted_duration_test.rb +38 -0
- data/test/test_helper.rb +3 -0
- metadata +112 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c6bb2a65ea8d1aadd85b1018ff0c54d2d6079e6e
|
4
|
+
data.tar.gz: 3d5b1dd23611dee4a6d897550bdde6486fce5201
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 18ad445e24a43944a7e4326c5a0e2ccf45543ad1f8f14d14ae2c03a606d1eba15c4396f41617adb53a7f4e55f47e9381c1c6270961340b1c6e10330053cde8f5
|
7
|
+
data.tar.gz: e444f16be3934bf1c77d831d681f4b99fa8f65a2fb322186f42d54a16b4288763abaf502767d381c52f78586ea8259c9794c0e7036c41737f1424a6463cc1371
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
duration-formatter (0.0.1)
|
5
|
+
ruby-duration (>= 3.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (4.2.3)
|
11
|
+
i18n (~> 0.7)
|
12
|
+
json (~> 1.7, >= 1.7.7)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
15
|
+
tzinfo (~> 1.1)
|
16
|
+
coderay (1.1.0)
|
17
|
+
ffi (1.9.10)
|
18
|
+
formatador (0.2.5)
|
19
|
+
guard (2.12.7)
|
20
|
+
formatador (>= 0.2.4)
|
21
|
+
listen (>= 2.7, <= 4.0)
|
22
|
+
lumberjack (~> 1.0)
|
23
|
+
nenv (~> 0.1)
|
24
|
+
notiffany (~> 0.0)
|
25
|
+
pry (>= 0.9.12)
|
26
|
+
shellany (~> 0.0)
|
27
|
+
thor (>= 0.18.1)
|
28
|
+
guard-compat (1.2.1)
|
29
|
+
guard-minitest (2.4.4)
|
30
|
+
guard-compat (~> 1.2)
|
31
|
+
minitest (>= 3.0)
|
32
|
+
i18n (0.7.0)
|
33
|
+
iso8601 (0.8.6)
|
34
|
+
json (1.8.3)
|
35
|
+
listen (3.0.1)
|
36
|
+
rb-fsevent (>= 0.9.3)
|
37
|
+
rb-inotify (>= 0.9)
|
38
|
+
lumberjack (1.0.9)
|
39
|
+
method_source (0.8.2)
|
40
|
+
minitest (5.7.0)
|
41
|
+
nenv (0.2.0)
|
42
|
+
notiffany (0.0.6)
|
43
|
+
nenv (~> 0.1)
|
44
|
+
shellany (~> 0.0)
|
45
|
+
pry (0.10.1)
|
46
|
+
coderay (~> 1.1.0)
|
47
|
+
method_source (~> 0.8.1)
|
48
|
+
slop (~> 3.4)
|
49
|
+
rb-fsevent (0.9.5)
|
50
|
+
rb-inotify (0.9.5)
|
51
|
+
ffi (>= 0.5.0)
|
52
|
+
ruby-duration (3.2.1)
|
53
|
+
activesupport (>= 3.0.0)
|
54
|
+
i18n
|
55
|
+
iso8601
|
56
|
+
shellany (0.0.1)
|
57
|
+
slop (3.6.0)
|
58
|
+
thor (0.19.1)
|
59
|
+
thread_safe (0.3.5)
|
60
|
+
tzinfo (1.2.2)
|
61
|
+
thread_safe (~> 0.1)
|
62
|
+
|
63
|
+
PLATFORMS
|
64
|
+
ruby
|
65
|
+
|
66
|
+
DEPENDENCIES
|
67
|
+
duration-formatter!
|
68
|
+
guard (~> 2.12)
|
69
|
+
guard-minitest (~> 2.4)
|
70
|
+
rb-fsevent (~> 0.9)
|
71
|
+
|
72
|
+
BUNDLED WITH
|
73
|
+
1.10.3
|
data/Guardfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require './lib/duration_formatter/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = 'duration-formatter'
|
5
|
+
s.version = DurationFormatter::VERSION
|
6
|
+
s.authors = ["Richard Venneman"]
|
7
|
+
s.email = 'richardvenneman@me.com'
|
8
|
+
s.homepage =
|
9
|
+
'https://github.com/richardvenneman/duration-formatter'
|
10
|
+
s.summary = 'Formatter for ruby-duration'
|
11
|
+
s.description = 'A simple gem to parse minutes into a readable format using
|
12
|
+
ruby-duration.'
|
13
|
+
|
14
|
+
s.license = 'MIT'
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = Dir['test/**/*']
|
18
|
+
|
19
|
+
s.add_dependency 'ruby-duration', '~> 3.2'
|
20
|
+
|
21
|
+
s.add_development_dependency 'guard', '~> 2.12'
|
22
|
+
s.add_development_dependency 'guard-minitest', '~> 2.4'
|
23
|
+
s.add_development_dependency 'rb-fsevent', '~> 0.9'
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'ruby-duration'
|
2
|
+
|
3
|
+
class FormattedDuration
|
4
|
+
DAYS_FORMAT = '%d %~d'
|
5
|
+
HOURS_FORMAT = '%h %~h'
|
6
|
+
MINUTES_FORMAT = '%m %~m'
|
7
|
+
|
8
|
+
def initialize(minutes)
|
9
|
+
@minutes = minutes % 60
|
10
|
+
@hours = minutes / 60
|
11
|
+
@days = @hours / 24
|
12
|
+
end
|
13
|
+
|
14
|
+
def format
|
15
|
+
dayless_hours = @hours % 24
|
16
|
+
output = []
|
17
|
+
|
18
|
+
output << Duration.new(days: @days).format(DAYS_FORMAT) if @days != 0
|
19
|
+
output << Duration.new(hours: dayless_hours).format(HOURS_FORMAT) if dayless_hours != 0
|
20
|
+
output << Duration.new(minutes: @minutes).format(MINUTES_FORMAT) if @minutes != 0
|
21
|
+
|
22
|
+
output.join(', ')
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FormattedDurationTest < Minitest::Test
|
4
|
+
def test_days_only_duration
|
5
|
+
text = '1 day'
|
6
|
+
output = FormattedDuration.new(1440).format
|
7
|
+
|
8
|
+
assert_equal text, output
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_hours_only_duration
|
12
|
+
text = '1 hour'
|
13
|
+
output = FormattedDuration.new(60).format
|
14
|
+
|
15
|
+
assert_equal text, output
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_minutes_only_duration
|
19
|
+
text = '30 minutes'
|
20
|
+
output = FormattedDuration.new(30).format
|
21
|
+
|
22
|
+
assert_equal text, output
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_days_and_hours_duration
|
26
|
+
text = '1 day, 4 hours'
|
27
|
+
output = FormattedDuration.new(1680).format
|
28
|
+
|
29
|
+
assert_equal text, output
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_hours_and_minutes_duration
|
33
|
+
text = '1 hour, 30 minutes'
|
34
|
+
output = FormattedDuration.new(90).format
|
35
|
+
|
36
|
+
assert_equal text, output
|
37
|
+
end
|
38
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: duration-formatter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Richard Venneman
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby-duration
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: guard
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: guard-minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rb-fsevent
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.9'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.9'
|
69
|
+
description: |-
|
70
|
+
A simple gem to parse minutes into a readable format using
|
71
|
+
ruby-duration.
|
72
|
+
email: richardvenneman@me.com
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- Gemfile
|
78
|
+
- Gemfile.lock
|
79
|
+
- Guardfile
|
80
|
+
- Rakefile
|
81
|
+
- duration-formatter.gemspec
|
82
|
+
- lib/duration_formatter/version.rb
|
83
|
+
- lib/formatted_duration.rb
|
84
|
+
- test/lib/formatted_duration_test.rb
|
85
|
+
- test/test_helper.rb
|
86
|
+
homepage: https://github.com/richardvenneman/duration-formatter
|
87
|
+
licenses:
|
88
|
+
- MIT
|
89
|
+
metadata: {}
|
90
|
+
post_install_message:
|
91
|
+
rdoc_options: []
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
requirements: []
|
105
|
+
rubyforge_project:
|
106
|
+
rubygems_version: 2.4.8
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Formatter for ruby-duration
|
110
|
+
test_files:
|
111
|
+
- test/lib/formatted_duration_test.rb
|
112
|
+
- test/test_helper.rb
|