iso8601 0.12.0 → 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/iso8601.gemspec +3 -41
- data/lib/iso8601/version.rb +1 -1
- metadata +8 -34
- data/CHANGELOG.md +0 -114
- data/docs/date-time.md +0 -86
- data/docs/duration.md +0 -76
- data/docs/time-interval.md +0 -120
- data/spec/iso8601/date_spec.rb +0 -91
- data/spec/iso8601/date_time_spec.rb +0 -154
- data/spec/iso8601/days_spec.rb +0 -44
- data/spec/iso8601/duration_spec.rb +0 -299
- data/spec/iso8601/hours_spec.rb +0 -44
- data/spec/iso8601/minutes_spec.rb +0 -44
- data/spec/iso8601/months_spec.rb +0 -98
- data/spec/iso8601/seconds_spec.rb +0 -44
- data/spec/iso8601/time_interval_spec.rb +0 -520
- data/spec/iso8601/time_spec.rb +0 -110
- data/spec/iso8601/weeks_spec.rb +0 -46
- data/spec/iso8601/years_spec.rb +0 -70
- data/spec/spec_helper.rb +0 -12
data/spec/iso8601/time_spec.rb
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe ISO8601::Time do
|
4
|
-
it "should raise an error for any unknown pattern" do
|
5
|
-
expect { ISO8601::Time.new('') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
6
|
-
expect { ISO8601::Time.new('T') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
7
|
-
expect { ISO8601::Time.new('T10:3012+0400') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
8
|
-
expect { ISO8601::Time.new('T10:30:12+0400') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
9
|
-
expect { ISO8601::Time.new('T10:30:12+040') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should raise an error for a correct pattern but an invalid date" do
|
13
|
-
expect { ISO8601::Time.new('T25:00:00') }.to raise_error(ISO8601::Errors::RangeError)
|
14
|
-
expect { ISO8601::Time.new('T00:61:00') }.to raise_error(ISO8601::Errors::RangeError)
|
15
|
-
expect { ISO8601::Time.new('T00:00:61') }.to raise_error(ISO8601::Errors::RangeError)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should parse any allowed pattern" do
|
19
|
-
expect { ISO8601::Time.new('T10') }.to_not raise_error
|
20
|
-
expect { ISO8601::Time.new('T10-00:00') }.to_not raise_error
|
21
|
-
expect { ISO8601::Time.new('T10Z') }.to_not raise_error
|
22
|
-
expect { ISO8601::Time.new('T10:30') }.to_not raise_error
|
23
|
-
expect { ISO8601::Time.new('T10:30Z') }.to_not raise_error
|
24
|
-
expect { ISO8601::Time.new('T10:30:12') }.to_not raise_error
|
25
|
-
expect { ISO8601::Time.new('T10:30:12Z') }.to_not raise_error
|
26
|
-
expect { ISO8601::Time.new('T10:30:12+04') }.to_not raise_error
|
27
|
-
expect { ISO8601::Time.new('T10:30:12+04:00') }.to_not raise_error
|
28
|
-
expect { ISO8601::Time.new('T10:30:12-04:00') }.to_not raise_error
|
29
|
-
expect { ISO8601::Time.new('T103012+0400') }.to_not raise_error
|
30
|
-
expect { ISO8601::Time.new('T103012+04') }.to_not raise_error
|
31
|
-
expect { ISO8601::Time.new('T10:30:12-00:00') }.to_not raise_error
|
32
|
-
expect { ISO8601::Time.new('T16:26:10,5Z') }.to_not raise_error
|
33
|
-
expect { ISO8601::Time.new('T10+00:00') }.to_not raise_error
|
34
|
-
end
|
35
|
-
|
36
|
-
context 'reduced patterns' do
|
37
|
-
it "should parse correctly reduced times" do
|
38
|
-
reduced_time = ISO8601::Time.new('T101112Z')
|
39
|
-
expect(reduced_time.hour).to eq(10)
|
40
|
-
expect(reduced_time.minute).to eq(11)
|
41
|
-
expect(reduced_time.second).to eq(12)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should return each atomic value" do
|
46
|
-
t = ISO8601::Time.new('T12:02:01+04:00', ::Date.parse('2010-05-09'))
|
47
|
-
expect(t.hour).to eq(12)
|
48
|
-
expect(t.minute).to eq(2)
|
49
|
-
expect(t.second).to eq(1)
|
50
|
-
expect(t.zone).to eq('+04:00')
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should keep the correct fraction when using commma separators" do
|
54
|
-
expect(ISO8601::Time.new('T16:26:10,5Z').second).to eq(10.5)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should respond to delegated casting methods" do
|
58
|
-
expect(ISO8601::Time.new('T10:09:08Z')).to respond_to(:to_s, :to_time, :to_date, :to_datetime)
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#+' do
|
62
|
-
it "should return the result of the addition of a number" do
|
63
|
-
expect((ISO8601::Time.new('T20:20:20Z') + 10).to_s).to eq('T20:20:30+00:00')
|
64
|
-
expect((ISO8601::Time.new('T20:20:20.5Z') + 10).to_s).to eq('T20:20:30.5+00:00')
|
65
|
-
expect((ISO8601::Time.new('T20:20:20+02:00') + 10.09).to_s).to eq('T20:20:30.1+02:00')
|
66
|
-
expect((ISO8601::Time.new('T20:20:20+02:00') + 10.1).to_s).to eq('T20:20:30.1+02:00')
|
67
|
-
expect((ISO8601::Time.new('T20:20:20+02:00') + 10).second).to eq(30)
|
68
|
-
expect((ISO8601::Time.new('T20:20:20.5Z') + 10).second).to eq(30.5)
|
69
|
-
expect((ISO8601::Time.new('T20:20:20+02:00') + 10.09).second).to eq(30.1)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
describe '#-' do
|
74
|
-
it "should return the result of the subtraction of a number" do
|
75
|
-
expect((ISO8601::Time.new('T20:20:20+01:00') - 10).to_s).to eq('T20:20:10+01:00')
|
76
|
-
expect((ISO8601::Time.new('T20:20:20.11+02:00') - 10).to_s).to eq('T20:20:10.1+02:00')
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe '#to_a' do
|
81
|
-
it "should return an array of atoms" do
|
82
|
-
expect(ISO8601::Time.new('T19:29:39Z').to_a).to eq([19, 29, 39, '+00:00'])
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe '#atoms' do
|
87
|
-
it "should return an array of atoms" do
|
88
|
-
expect(ISO8601::Time.new('T19:29:39+04:00').atoms).to eq([19, 29, 39, '+04:00'])
|
89
|
-
expect(ISO8601::Time.new('T19:29:39Z').atoms).to eq([19, 29, 39, 'Z'])
|
90
|
-
expect(ISO8601::Time.new('T19:29:39').atoms).to eq([19, 29, 39])
|
91
|
-
expect(ISO8601::Time.new('T19:29').atoms).to eq([19, 29, 0.0])
|
92
|
-
expect(ISO8601::Time.new('T19:29Z').atoms).to eq([19, 29, 0.0, 'Z'])
|
93
|
-
expect(ISO8601::Time.new('T19Z').atoms).to eq([19, 0, 0.0, 'Z'])
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
describe '#hash' do
|
98
|
-
it "should return the time hash" do
|
99
|
-
subject = ISO8601::Time.new('T20:11:10Z')
|
100
|
-
|
101
|
-
expect(subject).to respond_to(:hash)
|
102
|
-
end
|
103
|
-
it "should return the same hash" do
|
104
|
-
subject = ISO8601::Time.new('T20:11:10Z')
|
105
|
-
contrast = ISO8601::Time.new('T20:11:10Z')
|
106
|
-
|
107
|
-
expect(subject.hash).to eq(contrast.hash)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
data/spec/iso8601/weeks_spec.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe ISO8601::Weeks do
|
4
|
-
describe 'Atomic' do
|
5
|
-
let(:subject) { ISO8601::Weeks.new(1) }
|
6
|
-
|
7
|
-
it "should respond to the Atomic interface" do
|
8
|
-
%i[factor
|
9
|
-
to_seconds
|
10
|
-
symbol
|
11
|
-
to_i
|
12
|
-
to_f
|
13
|
-
to_s
|
14
|
-
value
|
15
|
-
<=>
|
16
|
-
eql?
|
17
|
-
hash
|
18
|
-
valid_atom?].each { |m| expect(subject).to respond_to(m) }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '#factor' do
|
23
|
-
it "should return the Week factor" do
|
24
|
-
expect(ISO8601::Weeks.new(2).factor).to eq(604800)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '#to_seconds' do
|
29
|
-
it "should return the amount of seconds" do
|
30
|
-
expect(ISO8601::Weeks.new(2).to_seconds).to eq(1209600)
|
31
|
-
expect(ISO8601::Weeks.new(-2).to_seconds).to eq(-1209600)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe '#symbol' do
|
36
|
-
it "should return the ISO symbol" do
|
37
|
-
expect(ISO8601::Weeks.new(1).symbol).to eq(:W)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe '#hash' do
|
42
|
-
it "should build hash identity by value" do
|
43
|
-
expect(ISO8601::Weeks.new(3).hash).to eq(ISO8601::Weeks.new(3).hash)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
data/spec/iso8601/years_spec.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe ISO8601::Years do
|
4
|
-
let(:common_year) { ISO8601::DateTime.new('2010-01-01') }
|
5
|
-
let(:leap_year) { ISO8601::DateTime.new('2000-01-01') }
|
6
|
-
|
7
|
-
describe 'Atomic' do
|
8
|
-
let(:subject) { ISO8601::Years.new(1) }
|
9
|
-
|
10
|
-
it "should respond to the Atomic interface" do
|
11
|
-
%i[factor
|
12
|
-
to_seconds
|
13
|
-
symbol
|
14
|
-
to_i
|
15
|
-
to_f
|
16
|
-
to_s
|
17
|
-
value
|
18
|
-
<=>
|
19
|
-
eql?
|
20
|
-
hash
|
21
|
-
valid_atom?].each { |m| expect(subject).to respond_to(m) }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe '#factor' do
|
26
|
-
it "should return the Year factor" do
|
27
|
-
expect { ISO8601::Years.new(1).factor }.to_not raise_error
|
28
|
-
expect(ISO8601::Years.new(2).factor).to eq(31536000)
|
29
|
-
expect(ISO8601::Years.new(1).factor).to eq(31536000)
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should return the Year factor for a common year" do
|
33
|
-
expect(ISO8601::Years.new(1).factor(common_year)).to eq(31536000)
|
34
|
-
expect(ISO8601::Years.new(0).factor(common_year)).to eq(31536000)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return the Year factor for a leap year" do
|
38
|
-
expect(ISO8601::Years.new(1).factor(leap_year)).to eq(31622400)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#to_seconds' do
|
43
|
-
it "should return the amount of seconds" do
|
44
|
-
expect(ISO8601::Years.new(2).to_seconds).to eq(63072000)
|
45
|
-
expect(ISO8601::Years.new(-2).to_seconds).to eq(-63072000)
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should return the amount of seconds for a common year" do
|
49
|
-
expect(ISO8601::Years.new(2).to_seconds(common_year)).to eq(63072000)
|
50
|
-
expect(ISO8601::Years.new(12).to_seconds(common_year)).to eq(378691200)
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should return the amount of seconds for a leap year" do
|
54
|
-
expect(ISO8601::Years.new(2).to_seconds(leap_year)).to eq(63158400)
|
55
|
-
expect(ISO8601::Years.new(15).to_seconds(leap_year)).to eq(473385600)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe '#symbol' do
|
60
|
-
it "should return the ISO symbol" do
|
61
|
-
expect(ISO8601::Years.new(1).symbol).to eq(:Y)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe '#hash' do
|
66
|
-
it "should build hash identity by value" do
|
67
|
-
expect(ISO8601::Years.new(3).hash).to eq(ISO8601::Years.new(3).hash)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('..', __FILE__)
|
2
|
-
require 'iso8601'
|
3
|
-
|
4
|
-
RSpec.configure do |config|
|
5
|
-
config.run_all_when_everything_filtered = true
|
6
|
-
config.color = true
|
7
|
-
config.order = 'random'
|
8
|
-
config.formatter = :documentation
|
9
|
-
# config.fail_fast = true
|
10
|
-
config.run_all_when_everything_filtered = true
|
11
|
-
config.filter_run :focus
|
12
|
-
end
|