tago 0.2.0 → 0.3.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/lib/tago.rb +26 -6
  4. data/tago.gemspec +1 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca493bba45fba480f54ec89dd4a4d231007d280b51638c114781b8813d524796
4
- data.tar.gz: d51d2b4626ad2582256e389b760644487f15fa812dac456ae394a3e1fb8061e7
3
+ metadata.gz: e4a8085667f0c9d1b553d18f75411810fba9ab348490947c28a07b1cd0a95db0
4
+ data.tar.gz: 3d67c0480ea190f4c46b0a9c7265a76ea1bec56ef5c11ccf2b4b4aad7fa999a7
5
5
  SHA512:
6
- metadata.gz: 94b64b5ef1d881edf4245c57175949bba7ae452f288e6a2fa9590dba9c1de53f88650618c9d7a137d37f01391ecc5ef42346ef785cb6ff150b16f7529f0f188c
7
- data.tar.gz: 969c82c7573afee0bdaf16503e0a955d25753e682e65f4a6a9151a3de709e7547da4d4f5076af9d34e0b07d54ce71949cb8b5e9b512ddf3d85b75421c54c78db
6
+ metadata.gz: f6bf77ea1cd83604f6b3a4103657f9b3c91aa063f68c90f6c1f4152f58e305fb19614b1f989b21311be8d1605e71ee111d9469635251c43eb484bfb4176a395e
7
+ data.tar.gz: b67c0ac6171f76b0a3a18303bc61f5ec0cccdff7b51ee986c46fd0e5c3e7afa40e9ace61e31bdd3fa1fc0325f24c26f62dbc8ac98909c3daac28cc118ccd9247
data/Gemfile.lock CHANGED
@@ -40,10 +40,10 @@ GEM
40
40
  lint_roller (~> 1.1)
41
41
  rubocop (>= 1.75.0, < 2.0)
42
42
  rubocop-ast (>= 1.38.0, < 2.0)
43
- rubocop-performance (1.25.0)
43
+ rubocop-performance (1.26.0)
44
44
  lint_roller (~> 1.1)
45
45
  rubocop (>= 1.75.0, < 2.0)
46
- rubocop-ast (>= 1.38.0, < 2.0)
46
+ rubocop-ast (>= 1.44.0, < 2.0)
47
47
  rubocop-rake (0.7.1)
48
48
  lint_roller (~> 1.1)
49
49
  rubocop (>= 1.72.1)
data/lib/tago.rb CHANGED
@@ -11,7 +11,7 @@ require 'time'
11
11
  # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
12
  # License:: MIT
13
13
  class Float
14
- def seconds
14
+ def seconds(format = nil)
15
15
  s = self
16
16
  s = -s if s.negative?
17
17
  if s < 0.001
@@ -20,25 +20,45 @@ class Float
20
20
  format('%dms', s * 1000)
21
21
  elsif s < 10
22
22
  ms = (s * 1000 % 1000).to_i
23
- ms.zero? ? format('%ds', s) : format('%<s>ds%<ms>dms', s:, ms:)
23
+ if format == :round || ms.zero?
24
+ format('%ds', s)
25
+ else
26
+ format('%<s>ds%<ms>dms', s:, ms:)
27
+ end
24
28
  elsif s < 100
25
29
  format('%ds', s)
26
30
  elsif s < 60 * 60
27
31
  mins = (s / 60).to_i
28
32
  secs = (s % 60).to_i
29
- secs.zero? ? format('%dm', mins) : format('%<mins>dm%<secs>ds', mins:, secs:)
33
+ if format == :round || secs.zero?
34
+ format('%dm', mins)
35
+ else
36
+ format('%<mins>dm%<secs>ds', mins:, secs:)
37
+ end
30
38
  elsif s < 24 * 60 * 60
31
39
  hours = (s / (60 * 60)).to_i
32
40
  mins = ((s % (60 * 60)) / 60).to_i
33
- mins.zero? ? format('%dh', hours) : format('%<hours>dh%<mins>dm', hours:, mins:)
41
+ if format == :round || mins.zero?
42
+ format('%dh', hours)
43
+ else
44
+ format('%<hours>dh%<mins>dm', hours:, mins:)
45
+ end
34
46
  elsif s < 7 * 24 * 60 * 60
35
47
  days = (s / (24 * 60 * 60)).to_i
36
48
  hours = ((s % (24 * 60 * 60)) / (60 * 60)).to_i
37
- hours.zero? ? format('%dd', days) : format('%<days>dd%<hours>dh', days:, hours:)
49
+ if format == :round || hours.zero?
50
+ format('%dd', days)
51
+ else
52
+ format('%<days>dd%<hours>dh', days:, hours:)
53
+ end
38
54
  else
39
55
  weeks = (s / (7 * 24 * 60 * 60)).to_i
40
56
  days = (s / (24 * 60 * 60) % 7).to_i
41
- days.zero? ? format('%dw', weeks) : format('%<weeks>dw%<days>dd', weeks:, days:)
57
+ if format == :round || days.zero?
58
+ format('%dw', weeks)
59
+ else
60
+ format('%<weeks>dw%<days>dd', weeks:, days:)
61
+ end
42
62
  end
43
63
  end
44
64
  end
data/tago.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
10
10
  s.required_ruby_version = '>=3.0'
11
11
  s.name = 'tago'
12
- s.version = '0.2.0'
12
+ s.version = '0.3.0'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'A new .ago() method for the Time class'
15
15
  s.description =
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tago
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko