jiff 0.0.1 → 0.0.2
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 +4 -4
- data/README.md +10 -10
- data/jiff.gemspec +1 -1
- data/lib/jiff/manipulate.rb +20 -10
- data/spec/manipulate_spec.rb +16 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d586cd0f39f9d3f7d0ea94263e0414bfd3c0c114
|
4
|
+
data.tar.gz: db6a94b200613fad4dee1118a4920c49921a7207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b30baba9c2fe8e47b037b14e8be67a006444e6dd9c50763fa1669b832d11ab3aeb1adb9f6eee2e3c9eaccd330001a8c6851ac51be8f69b033babcd2eece43dd
|
7
|
+
data.tar.gz: 6966466c95a8d743e02202c5a4c0baf05e06ca36166c833a8c5b79d6b2640524e5c9806fb6cd03d5749bc421f5e776d3a0870024740053d950f4bed2f44b7e75
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Jiff
|
2
2
|
|
3
|
-
[](https://travis-ci.org/revett/jiff)
|
3
|
+
[](http://badge.fury.io/rb/jiff) [](https://travis-ci.org/revett/jiff) 
|
4
4
|
|
5
5
|
Parse, validate, manipulate, and display dates in Ruby.
|
6
6
|
|
@@ -176,16 +176,16 @@ This is exactly the same as **.add**, only instead of adding time, it subtracts
|
|
176
176
|
|
177
177
|
#### Keys
|
178
178
|
|
179
|
-
|**Key
|
179
|
+
|**Shorthand**|**Key**|
|
180
180
|
|-------|---------------|
|
181
|
-
|y |
|
182
|
-
|M |
|
183
|
-
|w |
|
184
|
-
|d |
|
185
|
-
|h |
|
186
|
-
|m |
|
187
|
-
|s |
|
188
|
-
|ms |
|
181
|
+
|y |year |
|
182
|
+
|M |month |
|
183
|
+
|w |week |
|
184
|
+
|d |day |
|
185
|
+
|h |hour |
|
186
|
+
|m |minute |
|
187
|
+
|s |second |
|
188
|
+
|ms |millisecond |
|
189
189
|
|
190
190
|
### Timezone
|
191
191
|
|
data/jiff.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "jiff"
|
7
|
-
spec.version = '0.0.
|
7
|
+
spec.version = '0.0.2'
|
8
8
|
spec.authors = ["Charlie Revett"]
|
9
9
|
spec.email = ["charlierevett@gmail.com"]
|
10
10
|
spec.summary = %q{Parse, validate, manipulate, and display dates in Ruby.}
|
data/lib/jiff/manipulate.rb
CHANGED
@@ -1,25 +1,35 @@
|
|
1
1
|
module Manipulate
|
2
2
|
def add(amount, type)
|
3
|
-
manipulate(amount, type
|
3
|
+
manipulate(amount, convert_type(type), '+')
|
4
4
|
end
|
5
5
|
|
6
6
|
def subtract(amount, type)
|
7
|
-
manipulate(amount, type
|
7
|
+
manipulate(amount, convert_type(type), '-')
|
8
8
|
end
|
9
9
|
|
10
10
|
private
|
11
11
|
|
12
12
|
SECONDS = {
|
13
|
-
y
|
14
|
-
M
|
15
|
-
w
|
16
|
-
d
|
17
|
-
h
|
18
|
-
m
|
19
|
-
s
|
20
|
-
ms
|
13
|
+
'y' => 31556926,
|
14
|
+
'M' => 2629743.83,
|
15
|
+
'w' => 604800,
|
16
|
+
'd' => 86400,
|
17
|
+
'h' => 3600,
|
18
|
+
'm' => 60,
|
19
|
+
's' => 1,
|
20
|
+
'ms' => 0.001
|
21
21
|
}
|
22
22
|
|
23
|
+
def convert_type(type)
|
24
|
+
return type if type.length <= 2
|
25
|
+
%w(month millisecond).include?(type) ? handle_special_type(type)
|
26
|
+
: type.downcase[0]
|
27
|
+
end
|
28
|
+
|
29
|
+
def handle_special_type(type)
|
30
|
+
type == 'month' ? 'M' : 'ms'
|
31
|
+
end
|
32
|
+
|
23
33
|
def manipulate(amount, type, operator)
|
24
34
|
raise ArgumentError, 'Invalid Type' unless type_exist? type
|
25
35
|
@date = @date.send(operator, (amount * SECONDS[type]))
|
data/spec/manipulate_spec.rb
CHANGED
@@ -13,34 +13,42 @@ describe Jiff do
|
|
13
13
|
context 'using a valid type' do
|
14
14
|
context 'adding 1 year' do
|
15
15
|
specify { expect(subject.add(1, 'y').year).to eq 1993 }
|
16
|
+
specify { expect(subject.add(1, 'year').year).to eq 1993 }
|
16
17
|
end
|
17
18
|
|
18
19
|
context 'adding 1 month' do
|
19
20
|
specify { expect(subject.add(1, 'M').month).to eq 7 }
|
21
|
+
specify { expect(subject.add(1, 'month').month).to eq 7 }
|
20
22
|
end
|
21
23
|
|
22
24
|
context 'adding 1 week' do
|
23
25
|
specify { expect(subject.add(1, 'w').day).to eq 15 }
|
26
|
+
specify { expect(subject.add(1, 'week').day).to eq 15 }
|
24
27
|
end
|
25
28
|
|
26
29
|
context 'adding 1 day' do
|
27
30
|
specify { expect(subject.add(1, 'd').day).to eq 9 }
|
31
|
+
specify { expect(subject.add(1, 'day').day).to eq 9 }
|
28
32
|
end
|
29
33
|
|
30
34
|
context 'adding 1 hour' do
|
31
35
|
specify { expect(subject.add(1, 'h').hour).to eq 11 }
|
36
|
+
specify { expect(subject.add(1, 'hour').hour).to eq 11 }
|
32
37
|
end
|
33
38
|
|
34
39
|
context 'adding 1 minute' do
|
35
40
|
specify { expect(subject.add(1, 'm').minute).to eq 31 }
|
41
|
+
specify { expect(subject.add(1, 'minute').minute).to eq 31 }
|
36
42
|
end
|
37
43
|
|
38
44
|
context 'adding 1 second' do
|
39
45
|
specify { expect(subject.add(1, 's').second).to eq 16 }
|
46
|
+
specify { expect(subject.add(1, 'second').second).to eq 16 }
|
40
47
|
end
|
41
48
|
|
42
49
|
context 'adding 1 millisecond' do
|
43
50
|
specify { expect(subject.add(1, 'ms').millisecond).to eq 1 }
|
51
|
+
specify { expect(subject.add(1, 'millisecond').millisecond).to eq 1 }
|
44
52
|
end
|
45
53
|
end
|
46
54
|
|
@@ -55,34 +63,42 @@ describe Jiff do
|
|
55
63
|
context 'using a valid type' do
|
56
64
|
context 'subtracting 1 year' do
|
57
65
|
specify { expect(subject.subtract(1, 'y').year).to eq 1991 }
|
66
|
+
specify { expect(subject.subtract(1, 'year').year).to eq 1991 }
|
58
67
|
end
|
59
68
|
|
60
69
|
context 'subtracting 1 month' do
|
61
70
|
specify { expect(subject.subtract(1, 'M').month).to eq 5 }
|
71
|
+
specify { expect(subject.subtract(1, 'month').month).to eq 5 }
|
62
72
|
end
|
63
73
|
|
64
74
|
context 'subtracting 1 week' do
|
65
75
|
specify { expect(subject.subtract(1, 'w').day).to eq 1 }
|
76
|
+
specify { expect(subject.subtract(1, 'week').day).to eq 1 }
|
66
77
|
end
|
67
78
|
|
68
79
|
context 'subtracting 1 day' do
|
69
80
|
specify { expect(subject.subtract(1, 'd').day).to eq 7 }
|
81
|
+
specify { expect(subject.subtract(1, 'day').day).to eq 7 }
|
70
82
|
end
|
71
83
|
|
72
84
|
context 'subtracting 1 hour' do
|
73
85
|
specify { expect(subject.subtract(1, 'h').hour).to eq 9 }
|
86
|
+
specify { expect(subject.subtract(1, 'hour').hour).to eq 9 }
|
74
87
|
end
|
75
88
|
|
76
89
|
context 'subtracting 1 minute' do
|
77
90
|
specify { expect(subject.subtract(1, 'm').minute).to eq 29 }
|
91
|
+
specify { expect(subject.subtract(1, 'minute').minute).to eq 29 }
|
78
92
|
end
|
79
93
|
|
80
94
|
context 'subtracting 1 second' do
|
81
95
|
specify { expect(subject.subtract(1, 's').second).to eq 14 }
|
96
|
+
specify { expect(subject.subtract(1, 'second').second).to eq 14 }
|
82
97
|
end
|
83
98
|
|
84
99
|
context 'subtracting 1 millisecond' do
|
85
100
|
specify { expect(subject.subtract(1, 'ms').millisecond).to eq 998 }
|
101
|
+
specify { expect(subject.subtract(1, 'millisecond').millisecond).to eq 998 }
|
86
102
|
end
|
87
103
|
end
|
88
104
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jiff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charlie Revett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|