timing 0.2.2 → 0.2.7

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
  SHA256:
3
- metadata.gz: 3b14f511f5b5762bf9d2c1e4b4a9f3c44daac403898db6ef375dd2265f8eb809
4
- data.tar.gz: fff2ab5c8599603c32f4613bb42d21783014bfd3ced116d61fc00bdacf9624d2
3
+ metadata.gz: 666ee7049eb29d589431eec63fbf54a6e79a75f4ff418e5a3fa13c54cea11ae5
4
+ data.tar.gz: 6e32f64a0c6568637090b038f9d0f30ba936925ede0bb6b18c1168c429e38f14
5
5
  SHA512:
6
- metadata.gz: c873020dd3df833d3277955f75579c98e24f37456c1af102aeeff1393bc79168a301bbcbefddaa911fe33c1aef7304a9e2c719a8a7d76c91bc4cf4ce1a9933b3
7
- data.tar.gz: d8ea8bc790ef631547f75523732ffa6448f81038aa59592a26d9b75bceed2d6b72f00fbb98b8d658b3ca59efaafe71ab76b18d545202f07befc21c5ee079590d
6
+ metadata.gz: 0cd864c3df88c5bf92863df0becba24a1dd144797f317d529b2f10cdc880ab4fda53a64f0f664a2c4caf5f62c24419128edefacb75f255c0b2664cbaae26c75a
7
+ data.tar.gz: 20fb404748aa83b1bdd47e0d6c8e5565336d7c0007acaf885095a898a24208e333f6de3b348a68f15fc812e1a8189f3ab68b5da81fe7feded8eafc3681bc1fac
@@ -21,4 +21,5 @@ matrix:
21
21
  - rvm: jruby-head
22
22
 
23
23
  before_install:
24
+ - rvm all-gemsets do gem uninstall bundler -ax || true
24
25
  - gem install bundler -v "< 2"
data/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  [![Build Status](https://travis-ci.org/gabynaiman/timing.svg?branch=master)](https://travis-ci.org/gabynaiman/timing)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/gabynaiman/timing/badge.svg?branch=master)](https://coveralls.io/github/gabynaiman/timing?branch=master)
6
6
  [![Code Climate](https://codeclimate.com/github/gabynaiman/timing.svg)](https://codeclimate.com/github/gabynaiman/timing)
7
- [![Dependency Status](https://gemnasium.com/gabynaiman/timing.svg)](https://gemnasium.com/gabynaiman/timing)
8
7
 
9
8
  Time utils
10
9
 
@@ -70,6 +69,7 @@ Timing::Interval.parse('15m') # => 15m (900.0)
70
69
  Timing::Interval.parse('7h') # => 7h (25200.0)
71
70
  Timing::Interval.parse('5d') # => 5d (432000.0)
72
71
  Timing::Interval.parse('2w') # => 2w (1209600.0)
72
+ Timing::Interval.parse('1m 10s') # => 1m 10s (70.0)
73
73
 
74
74
  interval = Timing::Interval.weeks(1)
75
75
  interval.to_seconds # => 604800.0
@@ -1,12 +1,12 @@
1
1
  module Timing
2
2
  class Interval < TransparentProxy
3
-
3
+
4
4
  UNITS_NAMES = {
5
5
  s: :seconds,
6
6
  m: :minutes,
7
7
  h: :hours,
8
8
  d: :days,
9
- w: :weeks
9
+ w: :weeks
10
10
  }
11
11
 
12
12
  CONVERSIONS = {
@@ -30,9 +30,13 @@ module Timing
30
30
  REGEXP = /^([\d\.]+)([smhdw])$/
31
31
 
32
32
  def self.parse(expression)
33
- match = REGEXP.match expression.strip
34
- raise "Invalid interval expression #{expression}" unless match
35
- new match.captures[0].to_f * CONVERSIONS[match.captures[1].to_sym]
33
+ seconds = expression.split(' ').inject(0) do |total, value|
34
+ match = REGEXP.match value.strip
35
+ raise "Invalid interval expression #{expression}" unless match
36
+ total + match.captures[0].to_f * CONVERSIONS[match.captures[1].to_sym]
37
+ end
38
+
39
+ new seconds
36
40
  end
37
41
 
38
42
  def self.between(time_1, time_2)
@@ -45,6 +45,7 @@ module Timing
45
45
  self.class.new time, 0
46
46
  end
47
47
  alias_method :getutc, :to_utc
48
+ alias_method :utc, :to_utc
48
49
 
49
50
  def to_zone(zone_offset)
50
51
  self.class.new time, zone_offset
@@ -139,7 +140,11 @@ module Timing
139
140
  end
140
141
 
141
142
  def method_missing(method, *args, &block)
142
- time.send method, *args, &block
143
+ time.public_send method, *args, &block
144
+ end
145
+
146
+ def respond_to_missing?(method, include_private=false)
147
+ super || time.respond_to?(method)
143
148
  end
144
149
 
145
150
  end
@@ -1,3 +1,3 @@
1
1
  module Timing
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.7'
3
3
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_dependency 'treetop', '~> 1.4.0'
23
- spec.add_dependency 'transparent_proxy', '~> 0.0.4'
23
+ spec.add_dependency 'transparent_proxy', '~> 0.0', '>= 0.0.5'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.12'
26
26
  spec.add_development_dependency 'rake', '~> 11.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-07 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -30,14 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.4
33
+ version: '0.0'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.0.5
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: 0.0.4
43
+ version: '0.0'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.0.5
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: bundler
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -202,8 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
208
  - !ruby/object:Gem::Version
203
209
  version: '0'
204
210
  requirements: []
205
- rubyforge_project:
206
- rubygems_version: 2.7.3
211
+ rubygems_version: 3.0.6
207
212
  signing_key:
208
213
  specification_version: 4
209
214
  summary: Time utils