simple-period 0.1.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/simple_period.rb +29 -2
- data/lib/simple_period/format.rb +25 -0
- data/lib/simple_period/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7431f831a5924833fbbe9c5d2fec6067ab99f4607cfd131c1f746fd52902fb8
|
4
|
+
data.tar.gz: 55a6f373c9c93d37aff4f08a11dc71bd1addf32d9394d93714c9683f44f16355
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb557f7fd73e461541ae8fcc21d634cffaee04c7a7e66380c53f3af35fefe91ee09c0f08feb44ec99291909e6f8bd827b938ff451a384df56702aa402cc865da
|
7
|
+
data.tar.gz: 34593dbc236ad94d8f416dce2efc9fdc7dd2de018f86398fe7fce8e0eb95f55ce6fdbb6df8be5d38367d11938809e571fbd262fbab02446a5c65c98e3f7c43bc
|
data/lib/simple_period.rb
CHANGED
@@ -1,5 +1,32 @@
|
|
1
|
-
require
|
1
|
+
require 'simple_period/version'
|
2
|
+
require 'simple_period/format'
|
2
3
|
|
3
4
|
module SimplePeriod
|
4
|
-
|
5
|
+
MIN_SEC = 60
|
6
|
+
HOUR_SEC = 60 * MIN_SEC
|
7
|
+
DAY_SEC = 24 * HOUR_SEC
|
8
|
+
WEEK_SEC = 7 * DAY_SEC
|
9
|
+
MONTH_SEC = 30 * DAY_SEC
|
10
|
+
YEAR_SEC = 365 * DAY_SEC
|
11
|
+
|
12
|
+
class << self
|
13
|
+
def second(period)
|
14
|
+
case period
|
15
|
+
when Format.min_proc
|
16
|
+
period.to_i * MIN_SEC
|
17
|
+
when Format.hour_proc
|
18
|
+
period.to_i * HOUR_SEC
|
19
|
+
when Format.day_proc
|
20
|
+
period.to_i * DAY_SEC
|
21
|
+
when Format.week_proc
|
22
|
+
period.to_i * WEEK_SEC
|
23
|
+
when Format.month_proc
|
24
|
+
period.to_i * MONTH_SEC
|
25
|
+
when Format.year_proc
|
26
|
+
period.to_i * YEAR_SEC
|
27
|
+
else
|
28
|
+
period
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
5
32
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'simple_period'
|
2
|
+
|
3
|
+
module SimplePeriod
|
4
|
+
module Format
|
5
|
+
PROC_REGEX = /_proc\z/
|
6
|
+
|
7
|
+
MIN_REGEX = /\A\d+min\z/
|
8
|
+
HOUR_REGEX = /\A\d+h\z/
|
9
|
+
DAY_REGEX = /\A\d+d\z/
|
10
|
+
WEEK_REGEX = /\A\d+w\z/
|
11
|
+
MONTH_REGEX = /\A\d+M\z/
|
12
|
+
YEAR_REGEX = /\A\d+y\z/
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def method_missing(name)
|
16
|
+
return super if name !~ PROC_REGEX
|
17
|
+
|
18
|
+
match_data = name.match(PROC_REGEX)
|
19
|
+
const_name = match_data.pre_match.upcase
|
20
|
+
regex = const_get("#{const_name}_REGEX", false)
|
21
|
+
lambda { |txt| txt =~ regex }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple-period
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nishisuke
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- bin/console
|
54
54
|
- bin/setup
|
55
55
|
- lib/simple_period.rb
|
56
|
+
- lib/simple_period/format.rb
|
56
57
|
- lib/simple_period/version.rb
|
57
58
|
- simple_period.gemspec
|
58
59
|
homepage: https://github.com/nishisuke/simple-period
|