coligny 0.1.0 → 0.2.0
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/.travis.yml +3 -0
- data/Gemfile +2 -0
- data/README.md +5 -3
- data/coligny.gemspec +1 -1
- data/lib/coligny/version.rb +1 -1
- data/lib/coligny.rb +61 -39
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc67a66c3f3e877286a04f186e084f23b623b119
|
4
|
+
data.tar.gz: 19382a3acbd89a2a94011b99a3fa915ad511235f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e376cb7ce3dbcdf27d0be87a60aa4e8bfb66d327760041b0974a2cc75fbca9f84624704eba4c4dab09d22c26d8ae81c7f9a1e146e394711ae47a56825aaa85d8
|
7
|
+
data.tar.gz: 6286e7124c78c07898f41a6ea309be3363866b3337774c90397414dfab2a45fa70f6681ed4c1d8bc147d7deddb43d636ef82ddf00886d5e648eda5c37fe4ab64
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Coligny
|
2
2
|
|
3
|
-
[](https://travis-ci.org/shanekrusen/coligny) [](https://codeclimate.com/github/shanekrusen/coligny)
|
3
|
+
[](https://badge.fury.io/rb/coligny) [](https://travis-ci.org/shanekrusen/coligny) [](https://codeclimate.com/github/shanekrusen/coligny) [](https://codeclimate.com/github/shanekrusen/coligny/coverage) [](https://gemnasium.com/github.com/shanekrusen/coligny)
|
4
4
|
|
5
5
|
Welcome!
|
6
6
|
Swáel!
|
@@ -9,7 +9,7 @@ This gem is intended to provide a resource for the use of the Coligny Calendar,
|
|
9
9
|
|
10
10
|
##To-DO
|
11
11
|
|
12
|
-
-
|
12
|
+
- Refactor populate methods for 30-year cycle
|
13
13
|
- Add Inscriptions for dates
|
14
14
|
- Comments
|
15
15
|
|
@@ -129,5 +129,7 @@ The gem is available as open source under the terms of the [MIT License](http://
|
|
129
129
|
## Credit
|
130
130
|
|
131
131
|
Developer - Shane Krusen
|
132
|
-
|
132
|
+
|
133
|
+
The model of the Coligny Calendar used for this project is the product of the work of the brilliant and lovely Helen McKay, the leading expert on the calendar.
|
134
|
+
|
133
135
|
Support and feedback from the Modern Gaulish Community, Steve Hansen, Helen McKay, and my mentor, Klint Thrasher.
|
data/coligny.gemspec
CHANGED
@@ -20,6 +20,6 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.12"
|
23
|
-
spec.add_development_dependency
|
23
|
+
spec.add_development_dependency 'rake', '~> 11.2', '>= 11.2.2'
|
24
24
|
spec.add_development_dependency "minitest", "~> 5.0"
|
25
25
|
end
|
data/lib/coligny/version.rb
CHANGED
data/lib/coligny.rb
CHANGED
@@ -1,20 +1,11 @@
|
|
1
|
+
# Copyright 2016 @shanekrusen
|
2
|
+
# License MIT (https://opensource.org/licenses/MIT)
|
3
|
+
|
1
4
|
require "./lib/coligny/version"
|
2
5
|
|
3
6
|
module Coligny
|
4
7
|
require 'date'
|
5
8
|
|
6
|
-
def to_bg(ce)
|
7
|
-
return ce + 1019
|
8
|
-
end
|
9
|
-
|
10
|
-
module_function :to_bg
|
11
|
-
|
12
|
-
def to_ce(bg)
|
13
|
-
return bg - 1019
|
14
|
-
end
|
15
|
-
|
16
|
-
module_function :to_ce
|
17
|
-
|
18
9
|
class ColignyMonth
|
19
10
|
attr_reader :name
|
20
11
|
attr_accessor :days
|
@@ -27,11 +18,11 @@ module Coligny
|
|
27
18
|
|
28
19
|
class ColignyYear
|
29
20
|
attr_accessor :months, :days
|
21
|
+
attr_reader :is_early
|
30
22
|
|
31
23
|
def initialize(year, is_metonic=false)
|
32
24
|
@is_metonic = is_metonic
|
33
|
-
@year = year
|
34
|
-
@working_year = Coligny.to_ce(@year)
|
25
|
+
@year = year
|
35
26
|
@months = [ColignyMonth.new("Samonios", 30),
|
36
27
|
ColignyMonth.new("Dumanios", 29),
|
37
28
|
ColignyMonth.new("Rivros", 30),
|
@@ -44,6 +35,8 @@ module Coligny
|
|
44
35
|
ColignyMonth.new("Aedrinni", 30),
|
45
36
|
ColignyMonth.new("Cantlos", 29)]
|
46
37
|
|
38
|
+
is_early?
|
39
|
+
|
47
40
|
if !is_metonic
|
48
41
|
populate_saturn_months
|
49
42
|
else
|
@@ -53,18 +46,24 @@ module Coligny
|
|
53
46
|
|
54
47
|
private
|
55
48
|
|
56
|
-
def is_early
|
49
|
+
def is_early?
|
57
50
|
if @is_metonic
|
58
|
-
|
59
|
-
|
51
|
+
if (@year < 3035)
|
52
|
+
@is_early = true
|
53
|
+
else
|
54
|
+
@is_early = false
|
55
|
+
end
|
60
56
|
else
|
61
|
-
|
62
|
-
|
57
|
+
if (@year < 3034)
|
58
|
+
@is_early = true
|
59
|
+
else
|
60
|
+
@is_early = false
|
61
|
+
end
|
63
62
|
end
|
64
63
|
end
|
65
64
|
|
66
65
|
def populate_saturn_earlier_equos
|
67
|
-
if ((
|
66
|
+
if ((3034 - @year) % 5 == 1) || ((3034 - @year) % 5 == 0)
|
68
67
|
@months.insert(8, ColignyMonth.new("Equos", 30))
|
69
68
|
else
|
70
69
|
@months.insert(8, ColignyMonth.new("Equos", 29))
|
@@ -72,15 +71,15 @@ module Coligny
|
|
72
71
|
end
|
73
72
|
|
74
73
|
def populate_saturn_earlier_int
|
75
|
-
if ((
|
74
|
+
if ((3034 - @year) % 5 == 0) && ((3034 - @year) % 30 != 5)
|
76
75
|
@months.unshift(ColignyMonth.new("Intercalary One", 29))
|
77
|
-
elsif ((
|
76
|
+
elsif ((3034 - @year) % 5 == 3)
|
78
77
|
@months.insert(6, ColignyMonth.new("Intercalary Two", 30))
|
79
78
|
end
|
80
79
|
end
|
81
80
|
|
82
81
|
def populate_saturn_later_equos
|
83
|
-
if ((@
|
82
|
+
if ((@year - 3034) % 5 == 0) || ((@year - 3034) % 5 == 4)
|
84
83
|
@months.insert(8, ColignyMonth.new("Equos", 30))
|
85
84
|
else
|
86
85
|
@months.insert(8, ColignyMonth.new("Equos", 29))
|
@@ -88,26 +87,49 @@ module Coligny
|
|
88
87
|
end
|
89
88
|
|
90
89
|
def populate_saturn_later_int
|
91
|
-
if ((@
|
90
|
+
if ((@year - 3034) % 5 == 0)
|
92
91
|
@months.unshift(ColignyMonth.new("Intercalary One", 29))
|
93
|
-
elsif ((@
|
92
|
+
elsif ((@year - 3034) % 5 == 2) && ((@year - 3034) % 30 != 27)
|
93
|
+
@months.insert(6, ColignyMonth.new("Intercalary Two", 30))
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def saturn_cycle_check(difference, years_between_instances, cycle, cycle_remainder)
|
98
|
+
if ((@year - 3034) % difference <= years_between_instances) && ((@year - 3034) >= difference) && ((@year - 3034) & cycle == cycle_remainder)
|
99
|
+
return true
|
100
|
+
else
|
101
|
+
return false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def saturn_longcycle_equos_check
|
106
|
+
if saturn_cycle_check(198, 4, 5, 4)
|
107
|
+
equos = @months.find { |s| s.name == "Equos" }
|
108
|
+
equos.days = 29
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def saturn_longcycle_int2_check
|
113
|
+
if saturn_cycle_check(635, 29, 30, 27)
|
94
114
|
@months.insert(6, ColignyMonth.new("Intercalary Two", 30))
|
95
115
|
end
|
96
116
|
end
|
97
117
|
|
98
118
|
def populate_saturn_months
|
99
|
-
if
|
119
|
+
if @is_early
|
100
120
|
populate_saturn_earlier_equos
|
101
121
|
populate_saturn_earlier_int
|
102
122
|
else
|
103
123
|
populate_saturn_later_equos
|
104
124
|
populate_saturn_later_int
|
125
|
+
saturn_longcycle_equos_check
|
126
|
+
saturn_longcycle_int2_check
|
105
127
|
end
|
106
128
|
end
|
107
129
|
|
108
130
|
def test_against_cases(cases)
|
109
131
|
cases.each do |test|
|
110
|
-
if ((@
|
132
|
+
if ((@year - 3035) % 19) == test
|
111
133
|
return true
|
112
134
|
end
|
113
135
|
end
|
@@ -117,24 +139,24 @@ module Coligny
|
|
117
139
|
def test_equos_days_metonic
|
118
140
|
cases = [3,4,8,9,13,14,18]
|
119
141
|
|
120
|
-
test_against_cases(cases)
|
142
|
+
return test_against_cases(cases)
|
121
143
|
end
|
122
144
|
|
123
145
|
def test_intone_metonic
|
124
146
|
cases = [4,9,14]
|
125
147
|
|
126
|
-
test_against_cases(cases)
|
148
|
+
return test_against_cases(cases)
|
127
149
|
end
|
128
150
|
|
129
151
|
def test_inttwo_metonic
|
130
152
|
cases = [1,6,11,16]
|
131
153
|
|
132
|
-
test_against_cases(cases)
|
154
|
+
return test_against_cases(cases)
|
133
155
|
end
|
134
156
|
|
135
157
|
def earlier_than_start_date_test_cases(cases)
|
136
158
|
cases.each do |test|
|
137
|
-
if ((
|
159
|
+
if ((3035 - @year) % 19) == test
|
138
160
|
return true
|
139
161
|
end
|
140
162
|
end
|
@@ -144,23 +166,23 @@ module Coligny
|
|
144
166
|
def test_earlier_than_start_equos_days_metonic
|
145
167
|
cases = [1,5,6,10,11,15,16]
|
146
168
|
|
147
|
-
earlier_than_start_date_test_cases(cases)
|
169
|
+
return earlier_than_start_date_test_cases(cases)
|
148
170
|
end
|
149
171
|
|
150
172
|
def test_earlier_than_start_date_intone_metonic
|
151
173
|
cases = [5,10,15]
|
152
174
|
|
153
|
-
earlier_than_start_date_test_cases(cases)
|
175
|
+
return earlier_than_start_date_test_cases(cases)
|
154
176
|
end
|
155
177
|
|
156
178
|
def test_earlier_than_start_date_inttwo_metonic
|
157
179
|
cases = [3,8,13,18]
|
158
180
|
|
159
|
-
earlier_than_start_date_test_cases(cases)
|
181
|
+
return earlier_than_start_date_test_cases(cases)
|
160
182
|
end
|
161
183
|
|
162
184
|
def populate_metonic_equos
|
163
|
-
if (
|
185
|
+
if (@is_early && (test_earlier_than_start_equos_days_metonic)) || (!@is_early && (test_equos_days_metonic))
|
164
186
|
@months.insert(8, ColignyMonth.new("Equos", 30))
|
165
187
|
else
|
166
188
|
@months.insert(8, ColignyMonth.new("Equos", 29))
|
@@ -168,25 +190,25 @@ module Coligny
|
|
168
190
|
end
|
169
191
|
|
170
192
|
def populate_metonic_int1
|
171
|
-
if (is_early && test_earlier_than_start_date_intone_metonic) || (
|
193
|
+
if (@is_early && test_earlier_than_start_date_intone_metonic) || (!@is_early && test_intone_metonic)
|
172
194
|
@months.unshift(ColignyMonth.new("Intercalary One", 29))
|
173
195
|
end
|
174
196
|
end
|
175
197
|
|
176
198
|
def populate_metonic_int2
|
177
|
-
if (is_early && test_earlier_than_start_date_inttwo_metonic) || (
|
199
|
+
if (@is_early && test_earlier_than_start_date_inttwo_metonic) || (!@is_early && test_inttwo_metonic)
|
178
200
|
@months.insert(6, ColignyMonth.new("Intercalary Two", 30))
|
179
201
|
end
|
180
202
|
end
|
181
203
|
|
182
204
|
def metonic_longcycle_int2_check
|
183
|
-
if ((@
|
205
|
+
if ((@year - 3035) % 6569 <= 4) && ((@year - 3035) >= 6569) && (@months[6].name = "Intercalary Two")
|
184
206
|
@months.delete_at(6)
|
185
207
|
end
|
186
208
|
end
|
187
209
|
|
188
210
|
def metonic_longcycle_equos_check
|
189
|
-
if ((@
|
211
|
+
if ((@year - 3035) % 61 <= 4) && ((@year - 3035) >= 61) && test_equos_days_metonic
|
190
212
|
@months.find { |s| s.name == "Equos" }.days = 29
|
191
213
|
end
|
192
214
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coligny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shane Krusen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,20 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '11.2'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 11.2.2
|
34
37
|
type: :development
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
43
|
+
version: '11.2'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 11.2.2
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: minitest
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|