carbon_date 0.1.0 → 0.1.1
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 +20 -17
- data/carbon_date.gemspec +1 -0
- data/lib/carbon_date/date.rb +6 -6
- data/lib/carbon_date/version.rb +1 -1
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15ca7832b179451649cfe8cbf847532875ba167b
|
4
|
+
data.tar.gz: 8131707b3b7d297ead922c9cde6ef1caf0186d17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fef630e9f37ff2d13d51f97d84e6cfe07d8d841ce645f22adc6686650d4250ab377f7eccddae5d5ad5e66b1e19db6aa858a0048944331eac0ceef372b408b96
|
7
|
+
data.tar.gz: 3117e099d4ae329636dfe80f9d7c0f203657be0112bd4584d30993076d8f870855ad9744267e7f8b1c3d476e4c5b75dca8d8d30fac3d041c5a1846f68bc2fa83
|
data/README.md
CHANGED
@@ -1,22 +1,25 @@
|
|
1
|
+
[](https://rubygems.org/gems/carbon_date)
|
2
|
+
[](http://bradleymarques.mit-license.org)
|
3
|
+
|
1
4
|
# CarbonDate
|
2
5
|
|
3
|
-
CarbonDate is a Ruby gem that models (pre)historic dates with (im)precision. Dates are modelled according to the [Gregorian Calendar](https://en.wikipedia.org/wiki/Gregorian_calendar), and can have the following
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
6
|
+
CarbonDate is a Ruby gem that models (pre)historic dates with (im)precision. Dates are modelled according to the [Gregorian Calendar](https://en.wikipedia.org/wiki/Gregorian_calendar), and can have one of the following precisions:
|
7
|
+
|
8
|
+
+ billion years;
|
9
|
+
+ hundred million years;
|
10
|
+
+ ten million years;
|
11
|
+
+ million years;
|
12
|
+
+ hundred thousand years;
|
13
|
+
+ ten thousand years;
|
14
|
+
+ millennium;
|
15
|
+
+ century;
|
16
|
+
+ decade;
|
17
|
+
+ year;
|
18
|
+
+ month;
|
19
|
+
+ day;
|
20
|
+
+ hour;
|
21
|
+
+ minute;
|
22
|
+
+ or second.
|
20
23
|
|
21
24
|
## Installation
|
22
25
|
|
data/carbon_date.gemspec
CHANGED
@@ -35,6 +35,7 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_development_dependency 'm', '>= 1.5.0', '~> 1.5.0'
|
36
36
|
spec.add_development_dependency 'pry', '~> 0.10.3', '>= 0.10.3'
|
37
37
|
spec.add_development_dependency 'rdoc', '~> 4.2.2', '>= 4.2.2'
|
38
|
+
spec.add_development_dependency 'mocha', '~> 1.1.0', '>= 1.1.0'
|
38
39
|
|
39
40
|
spec.add_dependency 'activesupport', '~> 4.2.6', '>= 4.2.6'
|
40
41
|
end
|
data/lib/carbon_date/date.rb
CHANGED
@@ -114,18 +114,18 @@ module CarbonDate
|
|
114
114
|
##
|
115
115
|
# Sets the minute with validation
|
116
116
|
#
|
117
|
-
# Raises ArgumentError unless in the range (0..
|
117
|
+
# Raises ArgumentError unless in the range (0..59)
|
118
118
|
def minute=(value)
|
119
|
-
raise ArgumentError.new "Invalid minute #{value}" unless (0..
|
119
|
+
raise ArgumentError.new "Invalid minute #{value}" unless (0..59).include? value
|
120
120
|
@minute = value
|
121
121
|
end
|
122
122
|
|
123
123
|
##
|
124
124
|
# Sets the second with validation
|
125
125
|
#
|
126
|
-
# Raises ArgumentError unless in the range (0..
|
126
|
+
# Raises ArgumentError unless in the range (0..59)
|
127
127
|
def second=(value)
|
128
|
-
raise ArgumentError.new "Invalid second #{value}" unless (0..
|
128
|
+
raise ArgumentError.new "Invalid second #{value}" unless (0..59).include? value
|
129
129
|
@second = value
|
130
130
|
end
|
131
131
|
|
@@ -137,7 +137,7 @@ module CarbonDate
|
|
137
137
|
# +string+ -> the iso8601 datetime in the form +1989-03-23T23:11:08Z
|
138
138
|
# +precision_level+ -> an integer between 0 and 14 (see CarbonDate::Date::PRECISION)
|
139
139
|
def self.iso8601(string, precision_level)
|
140
|
-
p = PRECISION.find { |
|
140
|
+
p = PRECISION.find { |x| x[:level] == precision_level}
|
141
141
|
raise ArgumentError.new("Invalid precision level #{precision_level}") unless p
|
142
142
|
# If there is an initial '-' symbol on the year, it needs to be treateded differenty than the other '-'.
|
143
143
|
# Example: -0500-01-01 is the 1st January 500 BCE
|
@@ -147,7 +147,7 @@ module CarbonDate
|
|
147
147
|
else
|
148
148
|
bce = false
|
149
149
|
end
|
150
|
-
d = string.split('T').map { |x| x.split
|
150
|
+
d = string.split('T').map { |x| x.split(/[-:]/) }.flatten.map(&:to_i)
|
151
151
|
year = bce ? -d[0] : d[0]
|
152
152
|
CarbonDate::Date.new(year, d[1], d[2], d[3], d[4], d[5], precision: p[:symbol])
|
153
153
|
end
|
data/lib/carbon_date/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carbon_date
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bradley Marques
|
@@ -164,6 +164,26 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: 4.2.2
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: mocha
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.1.0
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 1.1.0
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: 1.1.0
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 1.1.0
|
167
187
|
- !ruby/object:Gem::Dependency
|
168
188
|
name: activesupport
|
169
189
|
requirement: !ruby/object:Gem::Requirement
|