iso8601 0.10.1 → 0.12.3
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 +5 -5
- data/LICENSE +1 -1
- data/README.md +12 -19
- data/lib/iso8601/date_time.rb +2 -2
- data/lib/iso8601/duration.rb +7 -0
- data/lib/iso8601/months.rb +1 -1
- data/lib/iso8601/version.rb +1 -1
- data/spec/iso8601/duration_spec.rb +24 -0
- data/spec/iso8601/months_spec.rb +5 -0
- metadata +39 -30
- data/CHANGELOG.md +0 -106
- data/CONTRIBUTING.md +0 -57
- data/Gemfile +0 -3
- data/Rakefile +0 -1
- data/iso8601.gemspec +0 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b974875d177ceceff7f8d892867990e27f46718e57d7a8bb0119b8ccbddd77eb
|
4
|
+
data.tar.gz: 0b4e786f4abde832af5f5ceefb53c2478cffa0c3e8d9e997762ca54787fbf70a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e295765af84738b2bc1dc80ad2509a7e8bc065e61e32151ad979eb332cb5afe9b0042dd7072674be8259d985684616e8a0c9890c88cc29eefee9391ffd248924
|
7
|
+
data.tar.gz: 5ef627990b4f2c1ec2bcb98ec4caddc23928612a6b2895080cdcc84fd8a9295e7ce8564c04303d37b3c3ab934922cf9b1cdf8ced23571777f8c57ab2067a6ac5
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# ISO8601
|
2
2
|
|
3
|
+
**[New maintainer wanted](https://github.com/arnau/ISO8601/issues/50)**
|
4
|
+
|
3
5
|
Version 0.9.0 is **not compatible** with previous versions. Atoms and Durations
|
4
6
|
changed their interface when treating base dates so it is only applied when
|
5
7
|
computing the Atom length (e.g. `#to_seconds`). As a consequence, it is no
|
@@ -18,13 +20,11 @@ times) standard.
|
|
18
20
|
## Build status
|
19
21
|
|
20
22
|
[](http://travis-ci.org/arnau/ISO8601/)
|
21
|
-
[](https://gemnasium.com/arnau/ISO8601)
|
22
23
|
[](http://badge.fury.io/rb/iso8601)
|
23
24
|
|
24
25
|
## Supported versions
|
25
26
|
|
26
27
|
* MRI 2.x
|
27
|
-
* JRuby 9
|
28
28
|
|
29
29
|
## Documentation
|
30
30
|
|
@@ -38,26 +38,18 @@ take a look to the implementation notes:
|
|
38
38
|
|
39
39
|
## Testing
|
40
40
|
|
41
|
+
Install a Ruby version. E.g. you can install Ruby 2.7 with:
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
$ make install
|
46
|
-
$ make test
|
47
|
-
|
48
|
-
You can alse target specific runtimes:
|
49
|
-
|
50
|
-
$ make mri-test
|
51
|
-
$ make jruby-test
|
43
|
+
```
|
44
|
+
$ nix-shell
|
45
|
+
```
|
52
46
|
|
53
|
-
|
54
|
-
|
55
|
-
The old fashion way:
|
56
|
-
|
57
|
-
# Install a Ruby flavour
|
58
|
-
$ bundle install
|
59
|
-
$ bundle exec rspec
|
47
|
+
Then
|
60
48
|
|
49
|
+
```
|
50
|
+
$ bundle install
|
51
|
+
$ bundle exec rspec
|
52
|
+
```
|
61
53
|
|
62
54
|
## Contributing
|
63
55
|
|
@@ -65,6 +57,7 @@ The old fashion way:
|
|
65
57
|
|
66
58
|
Please see [CONTRIBUTING.md](./CONTRIBUTING.md)
|
67
59
|
|
60
|
+
|
68
61
|
## License
|
69
62
|
|
70
63
|
Arnau Siches under the [MIT License](https://github.com/arnau/ISO8601/blob/master/LICENSE)
|
data/lib/iso8601/date_time.rb
CHANGED
@@ -47,9 +47,9 @@ module ISO8601
|
|
47
47
|
##
|
48
48
|
# Converts DateTime to a formated string
|
49
49
|
def to_s
|
50
|
-
second_format =
|
50
|
+
second_format = (second % 1).zero? ? '%02d' : '%04.1f'
|
51
51
|
|
52
|
-
format("%04d-%02d-%02dT%02d:%02d:#{second_format}
|
52
|
+
format("%04d-%02d-%02dT%02d:%02d:#{second_format}%s", *atoms)
|
53
53
|
end
|
54
54
|
|
55
55
|
##
|
data/lib/iso8601/duration.rb
CHANGED
@@ -125,6 +125,13 @@ module ISO8601
|
|
125
125
|
(to_seconds == fetch_seconds(other))
|
126
126
|
end
|
127
127
|
|
128
|
+
##
|
129
|
+
#
|
130
|
+
# @return [ISO8601::Duration]
|
131
|
+
def -@
|
132
|
+
seconds_to_iso(-to_seconds)
|
133
|
+
end
|
134
|
+
|
128
135
|
##
|
129
136
|
# @param [ISO8601::Duration] other The duration to compare
|
130
137
|
#
|
data/lib/iso8601/months.rb
CHANGED
@@ -76,7 +76,7 @@ module ISO8601
|
|
76
76
|
else
|
77
77
|
month = initial <= 12 ? initial : (initial % 12)
|
78
78
|
month = 12 if month.zero?
|
79
|
-
year = base.year
|
79
|
+
year = initial <= 12 ? base.year : base.year + (initial / 12).to_i
|
80
80
|
end
|
81
81
|
|
82
82
|
(::Time.utc(year, month) - ::Time.utc(base.year, base.month)) / atom
|
data/lib/iso8601/version.rb
CHANGED
@@ -7,6 +7,9 @@ RSpec.describe ISO8601::Duration do
|
|
7
7
|
let(:common_february) { ISO8601::DateTime.new('2010-02-01') }
|
8
8
|
let(:leap_february) { ISO8601::DateTime.new('2000-02-01') }
|
9
9
|
|
10
|
+
let(:common_november) { ISO8601::DateTime.new('2010-11-01') }
|
11
|
+
let(:common_december) { ISO8601::DateTime.new('2010-12-01') }
|
12
|
+
|
10
13
|
it "should raise a ISO8601::Errors::UnknownPattern for any unknown pattern" do
|
11
14
|
expect { ISO8601::Duration.new('') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
12
15
|
expect { ISO8601::Duration.new('P') }.to raise_error(ISO8601::Errors::UnknownPattern)
|
@@ -120,6 +123,10 @@ RSpec.describe ISO8601::Duration do
|
|
120
123
|
expect(ISO8601::Duration.new('P1M').to_seconds(common_year)).to eq(2678400)
|
121
124
|
expect(ISO8601::Duration.new('P19M').to_seconds(ISO8601::DateTime.new('2012-05-01'))).to eq(Time.utc(2014, 12) - Time.utc(2012, 5))
|
122
125
|
expect(ISO8601::Duration.new('P14M').to_seconds(common_year)).to eq(Time.utc(2011, 3) - Time.utc(2010, 1))
|
126
|
+
expect(ISO8601::Duration.new('P1M').to_seconds(common_november)).to eq(Time.utc(2010, 12) - Time.utc(2010, 11))
|
127
|
+
expect(ISO8601::Duration.new('P1M').to_seconds(common_december)).to eq(Time.utc(2011, 1) - Time.utc(2010, 12))
|
128
|
+
expect(ISO8601::Duration.new('P2M').to_seconds(common_november)).to eq(Time.utc(2011, 1) - Time.utc(2010, 11))
|
129
|
+
expect(ISO8601::Duration.new('P3M').to_seconds(common_november)).to eq(Time.utc(2011, 2) - Time.utc(2010, 11))
|
123
130
|
end
|
124
131
|
|
125
132
|
it "should return the seconds of a P[n]M duration in a leap year" do
|
@@ -251,6 +258,23 @@ RSpec.describe ISO8601::Duration do
|
|
251
258
|
end
|
252
259
|
end
|
253
260
|
|
261
|
+
describe '#-@' do
|
262
|
+
let(:positive) { ISO8601::Duration.new('PT1H') }
|
263
|
+
let(:negative) { ISO8601::Duration.new('-PT1H') }
|
264
|
+
|
265
|
+
it "should return a kind of duration" do
|
266
|
+
expect(-negative).to be_instance_of(ISO8601::Duration)
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should return the negation of a positive duration" do
|
270
|
+
expect(-positive).to eq(negative)
|
271
|
+
end
|
272
|
+
|
273
|
+
it "should return the negation of a negative duration" do
|
274
|
+
expect(-negative).to eq(positive)
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
254
278
|
describe '#eql?' do
|
255
279
|
it "should respond to #eql?" do
|
256
280
|
subject = ISO8601::Duration.new('PT1H')
|
data/spec/iso8601/months_spec.rb
CHANGED
@@ -7,6 +7,8 @@ RSpec.describe ISO8601::Months do
|
|
7
7
|
let(:common_february) { ISO8601::DateTime.new('2010-02-01') }
|
8
8
|
let(:leap_february) { ISO8601::DateTime.new('2000-02-01') }
|
9
9
|
|
10
|
+
let(:common_november) { ISO8601::DateTime.new('2017-11-01') }
|
11
|
+
|
10
12
|
let(:common_december) { ISO8601::DateTime.new('2017-12-01') }
|
11
13
|
let(:leap_december) { ISO8601::DateTime.new('2000-12-01') }
|
12
14
|
|
@@ -62,6 +64,9 @@ RSpec.describe ISO8601::Months do
|
|
62
64
|
expect(ISO8601::Months.new(1).to_seconds(common_year)).to eq(2678400)
|
63
65
|
expect(ISO8601::Months.new(0).to_seconds(common_year)).to eq(0)
|
64
66
|
expect(ISO8601::Months.new(0).to_seconds(common_december)).to eq(0)
|
67
|
+
expect(ISO8601::Months.new(2).to_seconds(common_november)).to eq(5270400)
|
68
|
+
expect(ISO8601::Months.new(1).to_seconds(common_november)).to eq(2592000)
|
69
|
+
expect(ISO8601::Months.new(0).to_seconds(common_november)).to eq(0)
|
65
70
|
end
|
66
71
|
|
67
72
|
it "should return the amount of seconds for a leap year" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iso8601
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnau Siches
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -16,56 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.9'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
26
|
+
version: '3.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubocop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.85'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.85'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop-packaging
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.1.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pry
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
61
|
+
version: 0.13.1
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
68
|
+
version: 0.13.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: pry-doc
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: 1.1.0
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: 1.1.0
|
69
83
|
description: |2
|
70
84
|
ISO8601 is a simple implementation in Ruby of the ISO 8601 (Data elements and
|
71
85
|
interchange formats - Information interchange - Representation of dates
|
@@ -75,16 +89,11 @@ executables: []
|
|
75
89
|
extensions: []
|
76
90
|
extra_rdoc_files: []
|
77
91
|
files:
|
78
|
-
- CHANGELOG.md
|
79
|
-
- CONTRIBUTING.md
|
80
|
-
- Gemfile
|
81
92
|
- LICENSE
|
82
93
|
- README.md
|
83
|
-
- Rakefile
|
84
94
|
- docs/date-time.md
|
85
95
|
- docs/duration.md
|
86
96
|
- docs/time-interval.md
|
87
|
-
- iso8601.gemspec
|
88
97
|
- lib/iso8601.rb
|
89
98
|
- lib/iso8601/atomic.rb
|
90
99
|
- lib/iso8601/date.rb
|
@@ -117,8 +126,9 @@ files:
|
|
117
126
|
homepage: https://github.com/arnau/ISO8601
|
118
127
|
licenses:
|
119
128
|
- MIT
|
120
|
-
metadata:
|
121
|
-
|
129
|
+
metadata:
|
130
|
+
yard.run: yri
|
131
|
+
post_install_message:
|
122
132
|
rdoc_options: []
|
123
133
|
require_paths:
|
124
134
|
- lib
|
@@ -133,22 +143,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
143
|
- !ruby/object:Gem::Version
|
134
144
|
version: '0'
|
135
145
|
requirements: []
|
136
|
-
|
137
|
-
|
138
|
-
signing_key:
|
146
|
+
rubygems_version: 3.1.2
|
147
|
+
signing_key:
|
139
148
|
specification_version: 4
|
140
149
|
summary: Ruby parser to work with ISO 8601 dateTimes and durations - http://en.wikipedia.org/wiki/ISO_8601
|
141
150
|
test_files:
|
151
|
+
- spec/spec_helper.rb
|
152
|
+
- spec/iso8601/minutes_spec.rb
|
153
|
+
- spec/iso8601/time_spec.rb
|
154
|
+
- spec/iso8601/seconds_spec.rb
|
142
155
|
- spec/iso8601/date_spec.rb
|
143
|
-
- spec/iso8601/
|
156
|
+
- spec/iso8601/years_spec.rb
|
144
157
|
- spec/iso8601/days_spec.rb
|
145
|
-
- spec/iso8601/
|
158
|
+
- spec/iso8601/weeks_spec.rb
|
159
|
+
- spec/iso8601/date_time_spec.rb
|
146
160
|
- spec/iso8601/hours_spec.rb
|
147
|
-
- spec/iso8601/minutes_spec.rb
|
148
|
-
- spec/iso8601/months_spec.rb
|
149
|
-
- spec/iso8601/seconds_spec.rb
|
150
161
|
- spec/iso8601/time_interval_spec.rb
|
151
|
-
- spec/iso8601/
|
152
|
-
- spec/iso8601/
|
153
|
-
- spec/iso8601/years_spec.rb
|
154
|
-
- spec/spec_helper.rb
|
162
|
+
- spec/iso8601/duration_spec.rb
|
163
|
+
- spec/iso8601/months_spec.rb
|
data/CHANGELOG.md
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
## 0.10.1
|
2
|
-
|
3
|
-
* Fix `TimeInterval` size for non UTC timezones. (#41)
|
4
|
-
|
5
|
-
## 0.10.0
|
6
|
-
|
7
|
-
* Fix `TimeInterval` with `<duration>/<end>` patterns and leap years.
|
8
|
-
* Fix decimal fractions on date atoms. **WARNING** some duration patterns are
|
9
|
-
no longer valid.
|
10
|
-
|
11
|
-
## 0.9.1
|
12
|
-
|
13
|
-
* Fix `Duration#to_pattern` for negative durations based on a `Numeric` (thanks @figwit).
|
14
|
-
|
15
|
-
## 0.9.0
|
16
|
-
|
17
|
-
This version is **not compatible** with previous versions. Atoms and Durations
|
18
|
-
changed their interface when treating base dates so it is only applied when
|
19
|
-
computing the Atom length (e.g. `#to_seconds`). As a consequence, it is no
|
20
|
-
longer possible to do operations like `DateTime + Duration`.
|
21
|
-
|
22
|
-
* Add time intervals (thanks @Angelmmiguel).
|
23
|
-
* Remove `Duration#to_i`.
|
24
|
-
* Change `Duration#to_seconds` to accept a base `DateTime`.
|
25
|
-
* Remove duration dependency on a base date on the instance level.
|
26
|
-
* Change `Years#to_seconds` and `Months#to_seconds` to accept a base `DateTime`.
|
27
|
-
* Remove atom dependency on a base date on the instance level.
|
28
|
-
* Add `Atomic` mixin.
|
29
|
-
* Remove `Atom` abstract class.
|
30
|
-
* Allow `ISO8601::Duration` to perform operations with `Numeric` (thanks @Angelmmiguel).
|
31
|
-
|
32
|
-
## 0.8.7
|
33
|
-
|
34
|
-
* Make `Atom` comparable with the same kind (thanks @glassbead0).
|
35
|
-
* Fix #18 document interfaces to core date/time classes.
|
36
|
-
|
37
|
-
## 0.8.6
|
38
|
-
|
39
|
-
* Fix #26 operations with Date, DateTime and Time with Duration (e.g. `ISO8601::DateTime.new('2012-07-07T20:20:20Z') - ISO8601::Duration.new('PT10M')`).
|
40
|
-
* Fix #25 accept time components with timezone and only hour component (e.g. `ISO8601::Time.new('T10+01:00')`).
|
41
|
-
* Fix Docker image for testing and inspecting.
|
42
|
-
|
43
|
-
## 0.8.5
|
44
|
-
|
45
|
-
* Fix `DateTime#hash`
|
46
|
-
* Fix `DateTime#second` and `Time#second` precision. Now it's rounded to the
|
47
|
-
first decimal.
|
48
|
-
|
49
|
-
## 0.8.4
|
50
|
-
|
51
|
-
* Remove unwanted log.
|
52
|
-
|
53
|
-
## 0.8.3
|
54
|
-
|
55
|
-
* Fix partial time patterns with timezone: `PThh:mmZ`, `PThhZ`.
|
56
|
-
|
57
|
-
## 0.8.2
|
58
|
-
|
59
|
-
* Fix time components using comma (,) as a decimal separator.
|
60
|
-
|
61
|
-
## 0.8.1
|
62
|
-
|
63
|
-
* Fix durations using comma (,) as a decimal separator.
|
64
|
-
|
65
|
-
## 0.8.0
|
66
|
-
|
67
|
-
* `DateTime` has hash identity by value.
|
68
|
-
* `Time` has hash identity by value.
|
69
|
-
* `Date` has hash identity by value.
|
70
|
-
* `Duration` has hash identity by value.
|
71
|
-
* `Atom` has hash identity by value.
|
72
|
-
* `Atom#value` returns either an integer or a float.
|
73
|
-
* `Atom#to_s` returns a valid ISO8601 subpattern.
|
74
|
-
|
75
|
-
## 0.7.0
|
76
|
-
|
77
|
-
* Add decimal fractions for any component in a duration.
|
78
|
-
* Add a catch all `ISO8601::Errors::StandardError`.
|
79
|
-
* Add support for comma (`,`) as a separator for duration decimal fractions.
|
80
|
-
|
81
|
-
## 0.6.0
|
82
|
-
|
83
|
-
* Add `#hash` to `Duration`, `Date`, `Time` and `DateTime`.
|
84
|
-
|
85
|
-
## 0.5.2
|
86
|
-
|
87
|
-
* Fix `DateTime` when handling empty strings.
|
88
|
-
|
89
|
-
## 0.5.1
|
90
|
-
|
91
|
-
* Fix durations with sign.
|
92
|
-
|
93
|
-
## 0.5.0
|
94
|
-
|
95
|
-
* Drop support for Ruby 1.8.7.
|
96
|
-
* Add support for Rubinius 2.
|
97
|
-
* `ISO8601::DateTime#century` no longer exists. Truncated representations were
|
98
|
-
removed in ISO 8601:2004.
|
99
|
-
* `ISO8601::DateTime#zone` delegates to core `DateTime#zone`.
|
100
|
-
* `ISO8601::DateTime#timezone` no longer exists. Now it delegates to
|
101
|
-
`DateTime#zone`.
|
102
|
-
* A date can have sign: `-1000-01-01`, `+2014-05-06T10:11:12Z`.
|
103
|
-
* A date time can be converted to an array of atoms with `#to_a`.
|
104
|
-
* Ordinal dates supported.
|
105
|
-
* A date component is represented by `ISO8601::Date`.
|
106
|
-
* Week date pattern (YYYY-Wdww, YYYY-Www-D).
|
data/CONTRIBUTING.md
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# Contributing
|
2
|
-
|
3
|
-
Thanks for taking the time to submit a pull request! These are the few
|
4
|
-
guidelines to keep things coherent.
|
5
|
-
|
6
|
-
[Fork the project](http://github.com/arnau/ISO8601/fork) and clone.
|
7
|
-
|
8
|
-
Create your _feature_ branch:
|
9
|
-
|
10
|
-
```sh
|
11
|
-
git checkout -b features/xyz
|
12
|
-
```
|
13
|
-
|
14
|
-
Set up your machine. I recommend using [Docker](https://docker.com):
|
15
|
-
|
16
|
-
```sh
|
17
|
-
make install
|
18
|
-
```
|
19
|
-
|
20
|
-
But of course you can go raw style
|
21
|
-
|
22
|
-
```sh
|
23
|
-
bundle install
|
24
|
-
```
|
25
|
-
|
26
|
-
Add your code and tests and check it passes:
|
27
|
-
|
28
|
-
```sh
|
29
|
-
make test # mri, jruby
|
30
|
-
# or
|
31
|
-
make mri-test
|
32
|
-
make jruby-test
|
33
|
-
```
|
34
|
-
|
35
|
-
Or raw style
|
36
|
-
|
37
|
-
```sh
|
38
|
-
bundle exec rspec
|
39
|
-
```
|
40
|
-
|
41
|
-
Although not required, try to adhere to Rubocop's checks:
|
42
|
-
|
43
|
-
```sh
|
44
|
-
make check
|
45
|
-
```
|
46
|
-
|
47
|
-
Or raw style
|
48
|
-
|
49
|
-
```sh
|
50
|
-
bundle exec rubocop
|
51
|
-
```
|
52
|
-
|
53
|
-
Push your branch and submit a [Pull Request](https://github.com/arnau/iso8601/compare/).
|
54
|
-
|
55
|
-
Add a description of your proposed changes and why they are needed.
|
56
|
-
|
57
|
-
I'll review it as soon as I can.
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
data/iso8601.gemspec
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
$LOAD_PATH.push File.expand_path('../lib', __FILE__)
|
2
|
-
require 'iso8601/version'
|
3
|
-
|
4
|
-
# rubocop:disable Metrics/BlockLength
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = 'iso8601'
|
7
|
-
s.version = ISO8601::VERSION
|
8
|
-
s.date = Time.now.strftime('%Y-%m-%d')
|
9
|
-
s.authors = ['Arnau Siches']
|
10
|
-
s.email = 'arnau.siches@gmail.com'
|
11
|
-
s.homepage = 'https://github.com/arnau/ISO8601'
|
12
|
-
s.summary = "Ruby parser to work with ISO 8601 dateTimes and durations - http://en.wikipedia.org/wiki/ISO_8601"
|
13
|
-
s.description = <<-DESC
|
14
|
-
ISO8601 is a simple implementation in Ruby of the ISO 8601 (Data elements and
|
15
|
-
interchange formats - Information interchange - Representation of dates
|
16
|
-
and times) standard.
|
17
|
-
DESC
|
18
|
-
s.license = 'MIT'
|
19
|
-
s.rubyforge_project = 'iso8601'
|
20
|
-
s.files = %w[CHANGELOG.md
|
21
|
-
CONTRIBUTING.md
|
22
|
-
Gemfile
|
23
|
-
LICENSE
|
24
|
-
README.md
|
25
|
-
Rakefile
|
26
|
-
iso8601.gemspec
|
27
|
-
docs/date-time.md
|
28
|
-
docs/duration.md
|
29
|
-
docs/time-interval.md
|
30
|
-
lib/iso8601.rb
|
31
|
-
lib/iso8601/atomic.rb
|
32
|
-
lib/iso8601/date.rb
|
33
|
-
lib/iso8601/date_time.rb
|
34
|
-
lib/iso8601/days.rb
|
35
|
-
lib/iso8601/duration.rb
|
36
|
-
lib/iso8601/errors.rb
|
37
|
-
lib/iso8601/hours.rb
|
38
|
-
lib/iso8601/minutes.rb
|
39
|
-
lib/iso8601/months.rb
|
40
|
-
lib/iso8601/seconds.rb
|
41
|
-
lib/iso8601/time.rb
|
42
|
-
lib/iso8601/time_interval.rb
|
43
|
-
lib/iso8601/version.rb
|
44
|
-
lib/iso8601/weeks.rb
|
45
|
-
lib/iso8601/years.rb
|
46
|
-
spec/iso8601/date_spec.rb
|
47
|
-
spec/iso8601/date_time_spec.rb
|
48
|
-
spec/iso8601/days_spec.rb
|
49
|
-
spec/iso8601/duration_spec.rb
|
50
|
-
spec/iso8601/hours_spec.rb
|
51
|
-
spec/iso8601/minutes_spec.rb
|
52
|
-
spec/iso8601/months_spec.rb
|
53
|
-
spec/iso8601/seconds_spec.rb
|
54
|
-
spec/iso8601/time_interval_spec.rb
|
55
|
-
spec/iso8601/time_spec.rb
|
56
|
-
spec/iso8601/weeks_spec.rb
|
57
|
-
spec/iso8601/years_spec.rb
|
58
|
-
spec/spec_helper.rb]
|
59
|
-
s.test_files = s.files.grep(%r{^spec/})
|
60
|
-
s.require_paths = ['lib']
|
61
|
-
|
62
|
-
s.has_rdoc = 'yard'
|
63
|
-
s.required_ruby_version = '>= 2.0.0'
|
64
|
-
s.add_development_dependency 'rspec', '~> 3.6'
|
65
|
-
s.add_development_dependency 'rubocop', '~> 0.50'
|
66
|
-
s.add_development_dependency 'pry', '~> 0.11.0'
|
67
|
-
s.add_development_dependency 'pry-doc', '~> 0.11.0'
|
68
|
-
end
|