coligny 0.2.1 → 0.3.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coligny/version.rb +1 -1
  3. data/lib/coligny.rb +93 -30
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a53a257212f96f66dc122a721f30965cdec4f861
4
- data.tar.gz: dbaeab9b29bbb1f5aa6ef50fdb25ff815dbef577
3
+ metadata.gz: e0ac5981b5527fd98ba326d0b53e0dae72310da8
4
+ data.tar.gz: 6a1fcf9eb2becbe38cf7f81dffcfbaf05eb9d467
5
5
  SHA512:
6
- metadata.gz: a43555e78ebf14bea333261b7fa18d26b1c426eef12a77dc1769bfb543f3a3955e8f7fb65353a3697ee7602880b4d7651d1df91e1c16fd2c9c7bff4fff67bdc8
7
- data.tar.gz: 665ae51741ebdf21f74d7a0c1d874e2c7399e286d45146e88ff323f6d00912b4197f68e52169d9244d2d22f11f8ac98906f8ed54f814422a5253064e32937444
6
+ metadata.gz: 05115bf556215f51a3cbf056dccea82331fe59b454a65b042a585a019c53452c69aa7ccdcd15548ad35bb6b7ccd2d1aa101d20450e082c1d454966cff19473a7
7
+ data.tar.gz: 478d163555fc3c27f00a273888ad48a1f34e41b354c57babcc49b28531243520a177377bdf0ad194cb64cb7af8309675a448c55d08caa8f66942b87c19112ddd
@@ -1,3 +1,3 @@
1
1
  module Coligny
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/coligny.rb CHANGED
@@ -62,8 +62,24 @@ module Coligny
62
62
  end
63
63
  end
64
64
 
65
+ def year_difference
66
+ if @is_metonic
67
+ if @is_early
68
+ return 3035 - @year
69
+ else
70
+ return @year - 3035
71
+ end
72
+ else
73
+ if @is_early
74
+ return 3034 - @year
75
+ else
76
+ return @year - 3034
77
+ end
78
+ end
79
+ end
80
+
65
81
  def populate_saturn_earlier_equos
66
- if ((3034 - @year) % 5 == 1) || ((3034 - @year) % 5 == 0)
82
+ if (year_difference % 5 == 1) || (year_difference % 5 == 0)
67
83
  @months.insert(8, ColignyMonth.new("Equos", 30))
68
84
  else
69
85
  @months.insert(8, ColignyMonth.new("Equos", 29))
@@ -71,15 +87,15 @@ module Coligny
71
87
  end
72
88
 
73
89
  def populate_saturn_earlier_int
74
- if ((3034 - @year) % 5 == 0) && ((3034 - @year) % 30 != 5)
90
+ if (year_difference % 5 == 0) && (year_difference % 30 != 5)
75
91
  @months.unshift(ColignyMonth.new("Intercalary One", 29))
76
- elsif ((3034 - @year) % 5 == 3)
92
+ elsif (year_difference % 5 == 3)
77
93
  @months.insert(6, ColignyMonth.new("Intercalary Two", 30))
78
94
  end
79
95
  end
80
96
 
81
97
  def populate_saturn_later_equos
82
- if ((@year - 3034) % 5 == 0) || ((@year - 3034) % 5 == 4)
98
+ if (year_difference % 5 == 0) || (year_difference % 5 == 4)
83
99
  @months.insert(8, ColignyMonth.new("Equos", 30))
84
100
  else
85
101
  @months.insert(8, ColignyMonth.new("Equos", 29))
@@ -87,15 +103,31 @@ module Coligny
87
103
  end
88
104
 
89
105
  def populate_saturn_later_int
90
- if ((@year - 3034) % 5 == 0)
106
+ if (year_difference % 5 == 0)
91
107
  @months.unshift(ColignyMonth.new("Intercalary One", 29))
92
- elsif ((@year - 3034) % 5 == 2) && ((@year - 3034) % 30 != 27)
108
+ elsif (year_difference % 5 == 2) && (year_difference % 30 != 27)
93
109
  @months.insert(6, ColignyMonth.new("Intercalary Two", 30))
94
110
  end
95
111
  end
96
112
 
113
+ def identify_year_locator(difference, years_between_instances)
114
+ if @is_early
115
+ if ((year_difference) % difference >= years_between_instances) || ((year_difference) % difference == 0)
116
+ return true
117
+ else
118
+ return false
119
+ end
120
+ else
121
+ if ((year_difference) % difference <= years_between_instances)
122
+ return true
123
+ else
124
+ return false
125
+ end
126
+ end
127
+ end
128
+
97
129
  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)
130
+ if identify_year_locator(difference, years_between_instances) && ((year_difference) >= difference) && ((year_difference) & cycle == cycle_remainder)
99
131
  return true
100
132
  else
101
133
  return false
@@ -114,11 +146,26 @@ module Coligny
114
146
  @months.insert(6, ColignyMonth.new("Intercalary Two", 30))
115
147
  end
116
148
  end
117
-
149
+
150
+ def saturn_reverse_longcycle_equos_check
151
+ if saturn_cycle_check(198, 194, 5, 1)
152
+ equos = @months.find { |s| s.name == "Equos" }
153
+ equos.days = 29
154
+ end
155
+ end
156
+
157
+ def saturn_reverse_longcycle_int2_check
158
+ if saturn_cycle_check(635, 606, 30, 3)
159
+ @months.insert(6, ColignyMonth.new("Intercalary Two", 30))
160
+ end
161
+ end
162
+
118
163
  def populate_saturn_months
119
164
  if @is_early
120
165
  populate_saturn_earlier_equos
121
166
  populate_saturn_earlier_int
167
+ saturn_reverse_longcycle_equos_check
168
+ saturn_reverse_longcycle_int2_check
122
169
  else
123
170
  populate_saturn_later_equos
124
171
  populate_saturn_later_int
@@ -129,7 +176,7 @@ module Coligny
129
176
 
130
177
  def test_against_cases(cases)
131
178
  cases.each do |test|
132
- if ((@year - 3035) % 19) == test
179
+ if (year_difference % 19) == test
133
180
  return true
134
181
  end
135
182
  end
@@ -153,32 +200,23 @@ module Coligny
153
200
 
154
201
  return test_against_cases(cases)
155
202
  end
156
-
157
- def earlier_than_start_date_test_cases(cases)
158
- cases.each do |test|
159
- if ((3035 - @year) % 19) == test
160
- return true
161
- end
162
- end
163
- return false
164
- end
165
-
203
+
166
204
  def test_earlier_than_start_equos_days_metonic
167
205
  cases = [1,5,6,10,11,15,16]
168
206
 
169
- return earlier_than_start_date_test_cases(cases)
207
+ return test_against_cases(cases)
170
208
  end
171
209
 
172
210
  def test_earlier_than_start_date_intone_metonic
173
211
  cases = [5,10,15]
174
212
 
175
- return earlier_than_start_date_test_cases(cases)
213
+ return test_against_cases(cases)
176
214
  end
177
215
 
178
216
  def test_earlier_than_start_date_inttwo_metonic
179
217
  cases = [3,8,13,18]
180
218
 
181
- return earlier_than_start_date_test_cases(cases)
219
+ return test_against_cases(cases)
182
220
  end
183
221
 
184
222
  def populate_metonic_equos
@@ -201,20 +239,42 @@ module Coligny
201
239
  end
202
240
  end
203
241
 
242
+ def metonic_longcycle_year_check(frequency_of_adjustment, case_limiter)
243
+ if @is_early
244
+ if ((year_difference % frequency_of_adjustment >= case_limiter) || (year_difference % frequency_of_adjustment == 0)) && (year_difference >= frequency_of_adjustment)
245
+ return true
246
+ else
247
+ return false
248
+ end
249
+ else
250
+ if (year_difference % frequency_of_adjustment <= case_limiter) && (year_difference >= frequency_of_adjustment)
251
+ return true
252
+ else
253
+ return false
254
+ end
255
+ end
256
+ end
257
+
204
258
  def metonic_longcycle_int2_check
205
- if ((@year - 3035) % 6569 <= 4) && ((@year - 3035) >= 6569) && (@months[6].name = "Intercalary Two")
259
+ if metonic_longcycle_year_check(6569, 4) && (@months[6].name = "Intercalary Two")
206
260
  @months.delete_at(6)
207
261
  end
208
262
  end
209
263
 
210
- def test_long_cycle_equos_is_last_year
211
- cases = [3,8,13,18]
212
-
213
- return test_against_cases(cases)
264
+ def metonic_longcycle_equos_check
265
+ if metonic_longcycle_year_check(61, 4) && test_earlier_than_start_date_inttwo_metonic
266
+ @months.find { |s| s.name == "Equos" }.days = 29
267
+ end
214
268
  end
215
269
 
216
- def metonic_longcycle_equos_check
217
- if ((@year - 3035) % 61 <= 4) && ((@year - 3035) >= 61) && test_long_cycle_equos_is_last_year
270
+ def metonic_longcycle_reverse_int2_check
271
+ if metonic_longcycle_year_check(6569, 6565) && (@months[6].name = "Intercalary Two")
272
+ @months.delete_at(6)
273
+ end
274
+ end
275
+
276
+ def metonic_longcycle_reverse_equos_check
277
+ if metonic_longcycle_year_check(61, 57) && test_inttwo_metonic
218
278
  @months.find { |s| s.name == "Equos" }.days = 29
219
279
  end
220
280
  end
@@ -224,7 +284,10 @@ module Coligny
224
284
  populate_metonic_int1
225
285
  populate_metonic_int2
226
286
 
227
- if @year >= 3035
287
+ if @is_early
288
+ metonic_longcycle_reverse_int2_check
289
+ metonic_longcycle_reverse_equos_check
290
+ else
228
291
  metonic_longcycle_int2_check
229
292
  metonic_longcycle_equos_check
230
293
  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.2.1
4
+ version: 0.3.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-08 00:00:00.000000000 Z
11
+ date: 2016-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler