when_exe 0.3.5 → 0.3.6
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.
- data/bin/irb.rc +1 -0
- data/bin/locales.rb +8 -6
- data/bin/when.rb +1 -1
- data/lib/when_exe.rb +231 -146
- data/lib/when_exe/basictypes.rb +108 -18
- data/lib/when_exe/calendarnote.rb +263 -116
- data/lib/when_exe/calendartypes.rb +413 -22
- data/lib/when_exe/coordinates.rb +58 -36
- data/lib/when_exe/core/compatibility.rb +8 -6
- data/lib/when_exe/core/extension.rb +40 -15
- data/lib/when_exe/ephemeris.rb +20 -19
- data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
- data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
- data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
- data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
- data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
- data/lib/when_exe/googlecalendar.rb +2 -2
- data/lib/when_exe/icalendar.rb +3 -3
- data/lib/when_exe/inspect.rb +130 -70
- data/lib/when_exe/locales/af.rb +2 -2
- data/lib/when_exe/locales/akt.rb +176 -0
- data/lib/when_exe/locales/ar.rb +2 -2
- data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
- data/lib/when_exe/locales/az.rb +2 -2
- data/lib/when_exe/locales/bg.rb +2 -2
- data/lib/when_exe/locales/bn.rb +2 -2
- data/lib/when_exe/locales/bs.rb +2 -2
- data/lib/when_exe/locales/ca.rb +2 -2
- data/lib/when_exe/locales/cs.rb +2 -2
- data/lib/when_exe/locales/cy.rb +2 -2
- data/lib/when_exe/locales/da.rb +2 -2
- data/lib/when_exe/locales/de.rb +2 -2
- data/lib/when_exe/locales/de_AT.rb +2 -2
- data/lib/when_exe/locales/de_CH.rb +2 -2
- data/lib/when_exe/locales/el.rb +2 -2
- data/lib/when_exe/locales/en.rb +2 -2
- data/lib/when_exe/locales/en_AU.rb +2 -2
- data/lib/when_exe/locales/en_CA.rb +2 -2
- data/lib/when_exe/locales/en_GB.rb +2 -2
- data/lib/when_exe/locales/en_IE.rb +2 -2
- data/lib/when_exe/locales/en_IN.rb +3 -3
- data/lib/when_exe/locales/en_NZ.rb +2 -2
- data/lib/when_exe/locales/en_US.rb +2 -2
- data/lib/when_exe/locales/en_ZA.rb +88 -0
- data/lib/when_exe/locales/encoding_conversion.rb +126 -0
- data/lib/when_exe/locales/eo.rb +2 -2
- data/lib/when_exe/locales/es.rb +2 -2
- data/lib/when_exe/locales/es_419.rb +2 -2
- data/lib/when_exe/locales/es_AR.rb +2 -2
- data/lib/when_exe/locales/es_CL.rb +2 -2
- data/lib/when_exe/locales/es_CO.rb +2 -2
- data/lib/when_exe/locales/es_CR.rb +2 -2
- data/lib/when_exe/locales/es_EC.rb +2 -2
- data/lib/when_exe/locales/es_MX.rb +2 -2
- data/lib/when_exe/locales/es_PA.rb +2 -2
- data/lib/when_exe/locales/es_PE.rb +2 -2
- data/lib/when_exe/locales/es_US.rb +84 -0
- data/lib/when_exe/locales/es_VE.rb +2 -2
- data/lib/when_exe/locales/et.rb +2 -2
- data/lib/when_exe/locales/eu.rb +2 -2
- data/lib/when_exe/locales/fa.rb +2 -2
- data/lib/when_exe/locales/fi.rb +3 -3
- data/lib/when_exe/locales/fr.rb +2 -2
- data/lib/when_exe/locales/fr_CA.rb +2 -2
- data/lib/when_exe/locales/fr_CH.rb +2 -2
- data/lib/when_exe/locales/gl.rb +2 -2
- data/lib/when_exe/locales/he.rb +3 -3
- data/lib/when_exe/locales/hi.rb +2 -2
- data/lib/when_exe/locales/hi_IN.rb +2 -2
- data/lib/when_exe/locales/hr.rb +2 -2
- data/lib/when_exe/locales/hu.rb +6 -5
- data/lib/when_exe/locales/iast.rb +90 -0
- data/lib/when_exe/locales/id.rb +2 -2
- data/lib/when_exe/locales/is.rb +2 -2
- data/lib/when_exe/locales/it.rb +2 -2
- data/lib/when_exe/locales/it_CH.rb +2 -2
- data/lib/when_exe/locales/ja.rb +2 -2
- data/lib/when_exe/locales/kn.rb +2 -2
- data/lib/when_exe/locales/ko.rb +2 -2
- data/lib/when_exe/locales/links.rb +3 -3
- data/lib/when_exe/locales/lo.rb +2 -2
- data/lib/when_exe/{parts → locales}/locale.rb +77 -49
- data/lib/when_exe/locales/lt.rb +6 -2
- data/lib/when_exe/locales/lv.rb +2 -2
- data/lib/when_exe/locales/mk.rb +2 -2
- data/lib/when_exe/locales/mn.rb +2 -2
- data/lib/when_exe/locales/ms.rb +2 -2
- data/lib/when_exe/locales/nb.rb +2 -2
- data/lib/when_exe/locales/ne.rb +2 -2
- data/lib/when_exe/locales/nl.rb +2 -2
- data/lib/when_exe/locales/nn.rb +2 -2
- data/lib/when_exe/locales/or.rb +2 -2
- data/lib/when_exe/locales/pl.rb +2 -2
- data/lib/when_exe/locales/pt.rb +2 -2
- data/lib/when_exe/locales/pt_BR.rb +2 -2
- data/lib/when_exe/locales/rm.rb +2 -2
- data/lib/when_exe/locales/ro.rb +2 -2
- data/lib/when_exe/locales/ru.rb +2 -2
- data/lib/when_exe/locales/sk.rb +2 -2
- data/lib/when_exe/locales/sl.rb +2 -2
- data/lib/when_exe/locales/sr.rb +2 -2
- data/lib/when_exe/locales/sv.rb +2 -2
- data/lib/when_exe/locales/sw.rb +2 -2
- data/lib/when_exe/locales/ta.rb +95 -0
- data/lib/when_exe/locales/th.rb +2 -2
- data/lib/when_exe/locales/tl.rb +3 -3
- data/lib/when_exe/locales/tr.rb +2 -2
- data/lib/when_exe/locales/transliteration_table.rb +62 -0
- data/lib/when_exe/locales/uk.rb +15 -15
- data/lib/when_exe/locales/ur.rb +2 -2
- data/lib/when_exe/locales/uz.rb +2 -2
- data/lib/when_exe/locales/vi.rb +2 -2
- data/lib/when_exe/locales/wo.rb +2 -2
- data/lib/when_exe/locales/zh_CN.rb +2 -2
- data/lib/when_exe/locales/zh_HK.rb +15 -15
- data/lib/when_exe/locales/zh_TW.rb +2 -2
- data/lib/when_exe/locales/zh_YUE.rb +77 -0
- data/lib/when_exe/mini_application.rb +22 -12
- data/lib/when_exe/parts/geometric_complex.rb +16 -1
- data/lib/when_exe/parts/method_cash.rb +184 -238
- data/lib/when_exe/parts/resource.rb +65 -16
- data/lib/when_exe/region/armenian.rb +56 -0
- data/lib/when_exe/region/bahai.rb +13 -13
- data/lib/when_exe/region/balinese.rb +33 -35
- data/lib/when_exe/region/chinese.rb +82 -78
- data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
- data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
- data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
- data/lib/when_exe/region/christian.rb +236 -127
- data/lib/when_exe/region/coptic.rb +9 -10
- data/lib/when_exe/region/dee.rb +48 -0
- data/lib/when_exe/region/discordian.rb +225 -0
- data/lib/when_exe/region/far_east.rb +2 -6
- data/lib/when_exe/region/french.rb +7 -17
- data/lib/when_exe/region/geologicalage.rb +0 -1
- data/lib/when_exe/region/goddess.rb +58 -0
- data/lib/when_exe/region/indian.rb +323 -231
- data/lib/when_exe/region/iranian.rb +159 -22
- data/lib/when_exe/region/islamic.rb +7 -9
- data/lib/when_exe/region/japanese.rb +14 -803
- data/lib/when_exe/region/japanese/calendars.rb +397 -0
- data/lib/when_exe/region/japanese/epochs.rb +426 -0
- data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
- data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
- data/lib/when_exe/region/japanese/residues.rb +1306 -0
- data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
- data/lib/when_exe/region/javanese.rb +16 -14
- data/lib/when_exe/region/jewish.rb +8 -9
- data/lib/when_exe/region/korean.rb +146 -35
- data/lib/when_exe/region/m17n.rb +8 -10
- data/lib/when_exe/region/martian.rb +44 -16
- data/lib/when_exe/region/mayan.rb +12 -10
- data/lib/when_exe/region/pope.rb +0 -1
- data/lib/when_exe/region/residue.rb +4 -5
- data/lib/when_exe/region/roman.rb +20 -24
- data/lib/when_exe/region/ryukyu.rb +3 -4
- data/lib/when_exe/region/shire.rb +97 -94
- data/lib/when_exe/region/symmetry.rb +50 -0
- data/lib/when_exe/region/thai.rb +164 -56
- data/lib/when_exe/region/tibetan.rb +86 -86
- data/lib/when_exe/region/vietnamese.rb +9 -12
- data/lib/when_exe/region/weekdate.rb +80 -0
- data/lib/when_exe/region/world.rb +65 -70
- data/lib/when_exe/region/yerm.rb +98 -0
- data/lib/when_exe/region/zoroastrian.rb +203 -0
- data/lib/when_exe/timestandard.rb +4 -4
- data/lib/when_exe/tmobjects.rb +1 -3
- data/lib/when_exe/tmposition.rb +13 -12
- data/lib/when_exe/tmreference.rb +11 -10
- data/lib/when_exe/version.rb +1 -1
- data/link_to_online_documents +3 -3
- data/test/examples/Residue.m17n +1 -1
- data/test/examples/Terms.m17n +1 -1
- data/test/test.rb +2 -1
- data/test/test/basictypes.rb +18 -2
- data/test/test/calendarnote.rb +1 -1
- data/test/test/calendartypes.rb +1 -1
- data/test/test/coordinates.rb +7 -7
- data/test/test/{region → ephemeris}/moon.rb +0 -0
- data/test/test/{region → ephemeris}/planets.rb +0 -0
- data/test/test/{region → ephemeris}/sun.rb +0 -0
- data/test/test/parts.rb +8 -13
- data/test/test/region/christian.rb +245 -0
- data/test/test/region/french.rb +16 -16
- data/test/test/region/iran.rb +34 -34
- data/test/test/region/japanese.rb +6 -4
- data/test/test/region/m17n.rb +8 -7
- data/test/test/region/mayan.rb +12 -12
- data/test/test/region/residue.rb +20 -4
- data/test/test/region/thai.rb +25 -3
- data/test/test/region/yerm.rb +146 -0
- metadata +39 -20
- data/lib/when_exe/region/japanese_residues.rb +0 -1212
- data/test/test/region/civil.rb +0 -124
@@ -376,8 +376,8 @@ module When::TimeStandard
|
|
376
376
|
#
|
377
377
|
def _normalize_time_basis
|
378
378
|
|
379
|
-
@_time_basis ||= @time_basis || (@location ? @location.long / When::Coordinates::Spatial::DEGREE * 240 : When
|
380
|
-
@_time_basis = When::
|
379
|
+
@_time_basis ||= @time_basis || (@location ? @location.long / When::Coordinates::Spatial::DEGREE * 240 : When::UTC)
|
380
|
+
@_time_basis = When::Locale._split(@_time_basis) if @_time_basis.kind_of?(String)
|
381
381
|
@_time_basis = [@_time_basis] unless @_time_basis.kind_of?(Array)
|
382
382
|
@_time_basis = @_time_basis.map {|clock| When.Clock(clock)}
|
383
383
|
@_time_basis_offset = @_time_basis.map {|clock| -clock.universal_time / When::TM::Duration::DAY}
|
@@ -385,9 +385,9 @@ module When::TimeStandard
|
|
385
385
|
@time_basis = @_time_basis[0] if @time_basis
|
386
386
|
|
387
387
|
if @_time_basis[0].time_standard.kind_of?(LocalApparentTime)
|
388
|
-
|
388
|
+
extend ApparentTimeBasis
|
389
389
|
else
|
390
|
-
|
390
|
+
extend FixedTimeBasis
|
391
391
|
end
|
392
392
|
end
|
393
393
|
end
|
data/lib/when_exe/tmobjects.rb
CHANGED
data/lib/when_exe/tmposition.rb
CHANGED
@@ -191,10 +191,10 @@ module When::TM
|
|
191
191
|
#
|
192
192
|
# @return [When::TM::CalDate, When::TM::DateAndTime]
|
193
193
|
#
|
194
|
-
def
|
194
|
+
def tm_pos(options={})
|
195
195
|
When.Calendar(options[:frame] || 'Gregorian').jul_trans(self, options)
|
196
196
|
end
|
197
|
-
alias :
|
197
|
+
alias :to_tm_pos :tm_pos
|
198
198
|
end
|
199
199
|
|
200
200
|
include When
|
@@ -275,6 +275,7 @@ module When::TM
|
|
275
275
|
# @option options [String] :tz 時法の指定(時間帯を指定する場合 :clock の替わりに用いることができる)
|
276
276
|
# @option options [Array<Numeric>] :abbr ISO8601上位省略形式のためのデフォルト日付(省略時 指定なし)
|
277
277
|
# @option options [Integer] :extra_year_digits ISO8601拡大表記のための年の構成要素拡大桁数(省略時 1桁)
|
278
|
+
# @option options [Integer] :ordinal_date_digits ISO8601拡大表記の年内通日の桁数(省略時 3桁)
|
278
279
|
# @option options [String] :wkst ISO8601週日形式のための暦週開始曜日(省略時 'MO')
|
279
280
|
# @option options [Integer] :precision 生成するオブジェクトの分解能
|
280
281
|
# @option options [When::TimeStandard::TimeStandard] :time_standard 時刻系の指定(省略時 When::TimeStandard::UnversalTime)
|
@@ -440,7 +441,7 @@ module When::TM
|
|
440
441
|
clock = Clock.get_clock_option(query)
|
441
442
|
main[:clock] = clock if clock
|
442
443
|
[:indeterminated_position, :frame, :events, :precision,
|
443
|
-
:era_name, :era, :abbr, :extra_year_digits, :wkst, :time_standard, :location].each do |key|
|
444
|
+
:era_name, :era, :abbr, :extra_year_digits, :ordinal_date_digits, :wkst, :time_standard, :location].each do |key|
|
444
445
|
main[key] = query.delete(key) if (query.key?(key))
|
445
446
|
end
|
446
447
|
long = query.delete(:long)
|
@@ -509,7 +510,7 @@ module When::TM
|
|
509
510
|
when :week
|
510
511
|
position = ((position + PeriodDuration.new(4, DAY)) & (Residue.day_of_week(options[:wkst]) << 1)) +
|
511
512
|
PeriodDuration.new((w[0]-1)*7 + (w[1]||1)-1, DAY)
|
512
|
-
position = When::Parts::GeometricComplex.new(position...(position+
|
513
|
+
position = When::Parts::GeometricComplex.new(position...(position+P1W)) unless w[1]
|
513
514
|
end
|
514
515
|
return position
|
515
516
|
end
|
@@ -634,7 +635,7 @@ module When::TM
|
|
634
635
|
#
|
635
636
|
# @return [::DateTime]
|
636
637
|
#
|
637
|
-
def to_date_time(option={:frame=>When
|
638
|
+
def to_date_time(option={:frame=>When::UTC}, start=_default_start)
|
638
639
|
return JulianDate.dynamical_time(dynamical_time, option).to_date_time unless time_standard.rate_of_clock == 1.0
|
639
640
|
raise TypeError, "Clock not assigned" unless clock
|
640
641
|
Rational
|
@@ -738,7 +739,7 @@ module When::TM
|
|
738
739
|
def prev
|
739
740
|
@precision==When::DAY ? _force_euqal_day(-1) : self-period
|
740
741
|
rescue RangeError
|
741
|
-
(When
|
742
|
+
(When::Gregorian ^ self) - period
|
742
743
|
end
|
743
744
|
|
744
745
|
# 次の日時
|
@@ -750,7 +751,7 @@ module When::TM
|
|
750
751
|
def succ
|
751
752
|
@precision==When::DAY ? _force_euqal_day(+1) : self+period
|
752
753
|
rescue RangeError
|
753
|
-
(When
|
754
|
+
(When::Gregorian ^ self) + period
|
754
755
|
end
|
755
756
|
alias :next :succ
|
756
757
|
|
@@ -1000,11 +1001,11 @@ module When::TM
|
|
1000
1001
|
when date.to_i == jdn
|
1001
1002
|
return date
|
1002
1003
|
when date.to_i > jdn
|
1003
|
-
next_date = date - When::
|
1004
|
-
date = (date.to_i == next_date.to_i) ? date - When::
|
1004
|
+
next_date = date - When::P1D
|
1005
|
+
date = (date.to_i == next_date.to_i) ? date - When::P1D * 2 : next_date
|
1005
1006
|
when date.to_i < jdn
|
1006
|
-
next_date = date + When::
|
1007
|
-
date = (date.to_i == next_date.to_i) ? date + When::
|
1007
|
+
next_date = date + When::P1D
|
1008
|
+
date = (date.to_i == next_date.to_i) ? date + When::P1D * 2 : next_date
|
1008
1009
|
end
|
1009
1010
|
raise RangeError, "can't find target date: #{self} -> #{jdn}" if done.key?(date.to_i)
|
1010
1011
|
done[date.to_i] = true
|
@@ -1076,7 +1077,7 @@ module When::TM
|
|
1076
1077
|
options[:frame] = Clock.get_clock_option(options)
|
1077
1078
|
case time
|
1078
1079
|
when Numeric
|
1079
|
-
options[:frame] ||= When
|
1080
|
+
options[:frame] ||= When::UTC unless time.kind_of?(Integer)
|
1080
1081
|
universal_time = (2*time - (2*JulianDate::JD19700101-1)) * Duration::DAY.to_i / 2.0
|
1081
1082
|
when ClockTime
|
1082
1083
|
options[:frame] ||= time.clock
|
data/lib/when_exe/tmreference.rb
CHANGED
@@ -188,7 +188,7 @@ module When::TM
|
|
188
188
|
cal_options.delete(:era)
|
189
189
|
unless rate_of_clock == jdt.time_standard.rate_of_clock
|
190
190
|
cal_options.delete(:time_standard)
|
191
|
-
cal_options[:clock] = @time_basis || When
|
191
|
+
cal_options[:clock] = @time_basis || When::UTC
|
192
192
|
jdt = JulianDate.dynamical_time(jdt.dynamical_time, {:time_standard=>time_standard})
|
193
193
|
end
|
194
194
|
|
@@ -244,7 +244,7 @@ module When::TM
|
|
244
244
|
#
|
245
245
|
# @return [Numeric] Universal Time
|
246
246
|
#
|
247
|
-
def to_universal_time(cal_date, clk_time, clock=When
|
247
|
+
def to_universal_time(cal_date, clk_time, clock=When::UTC)
|
248
248
|
time = clk_time.dup
|
249
249
|
time[0] += _coordinates_to_number(*_decode(cal_date))
|
250
250
|
clock.to_universal_time(time) - When::TM::JulianDate::JD19700101 * When::TM::Duration::DAY
|
@@ -290,6 +290,7 @@ module When::TM
|
|
290
290
|
@indices ||= DefaultDateIndices
|
291
291
|
_normalize_spatial
|
292
292
|
_normalize_time_basis
|
293
|
+
_default_index_of_MSC
|
293
294
|
_normalize_temporal
|
294
295
|
@reference_frame ||= []
|
295
296
|
end
|
@@ -371,7 +372,7 @@ module When::TM
|
|
371
372
|
def _local_time
|
372
373
|
case @local_time
|
373
374
|
when Array ; @local_time
|
374
|
-
when nil ; @local_time = [false, When
|
375
|
+
when nil ; @local_time = [false, When::UTC]
|
375
376
|
when String ; @local_time = [true, When::Parts::Timezone[@local_time] ||
|
376
377
|
When::V::Timezone[@local_time] ||
|
377
378
|
When.Clock(@local_time)]
|
@@ -530,7 +531,7 @@ module When::TM
|
|
530
531
|
# @return [When::TM::ClockTime]
|
531
532
|
#
|
532
533
|
def utc_trans(u_time)
|
533
|
-
return When.
|
534
|
+
return When::UTC.to_clk_time(self.to_universal_time(u_time.clk_time))
|
534
535
|
end
|
535
536
|
alias :utcTrans :utc_trans
|
536
537
|
|
@@ -541,7 +542,7 @@ module When::TM
|
|
541
542
|
# @return [When::TM::ClockTime]
|
542
543
|
#
|
543
544
|
def clk_trans(clk_time)
|
544
|
-
return self.to_clk_time(When.
|
545
|
+
return self.to_clk_time(When::UTC.to_universal_time(u_time.clk_time))
|
545
546
|
end
|
546
547
|
alias :clkTrans :clk_trans
|
547
548
|
|
@@ -717,7 +718,7 @@ module When::TM
|
|
717
718
|
@indices ||= DefaultTimeIndices
|
718
719
|
|
719
720
|
# note
|
720
|
-
@note ||= '
|
721
|
+
@note ||= 'JulianDay'
|
721
722
|
|
722
723
|
# normalize spatial module
|
723
724
|
_normalize_spatial
|
@@ -735,7 +736,7 @@ module When::TM
|
|
735
736
|
@time_standard = When.Resource(@time_standard||'UniversalTime', '_t:') unless @time_standard.kind_of?(When::TimeStandard)
|
736
737
|
|
737
738
|
# utc_reference
|
738
|
-
@utc_reference ||= @zone ? ClockTime.new(@zone.to_s, {:frame=>When
|
739
|
+
@utc_reference ||= @zone ? ClockTime.new(@zone.to_s, {:frame=>When::UTC}) : Clock.local_time
|
739
740
|
|
740
741
|
# reference_time & origin_of_LSC
|
741
742
|
case @reference_time
|
@@ -782,7 +783,7 @@ module When::TM
|
|
782
783
|
# @return [When::TM::DateAndTime] (When::TM::BasicTypes::DateTimeはまちがい)
|
783
784
|
#
|
784
785
|
def transform_coord(c_value)
|
785
|
-
When
|
786
|
+
When::Gregorian.jul_trans(JulianDate.universal_time(c_value.universal_time, {:frame=>When::UTC}))
|
786
787
|
end
|
787
788
|
alias :transformCoord :transform_coord
|
788
789
|
|
@@ -987,7 +988,7 @@ module When::TM
|
|
987
988
|
args = args.dup
|
988
989
|
options = (args[-1].kind_of?(Hash)) ? args.pop.dup : {}
|
989
990
|
key, epoch, reverse = options.delete(:label) || args
|
990
|
-
key = When::
|
991
|
+
key = When::Locale.ideographic_unification(key)
|
991
992
|
if key.kind_of?(String)
|
992
993
|
key, *parents = key.split(/::/).reverse
|
993
994
|
else
|
@@ -1535,7 +1536,7 @@ module When::TM
|
|
1535
1536
|
@epoch ||= epochs
|
1536
1537
|
@epoch[0] ||= '-Infinity'
|
1537
1538
|
@epoch[1] ||= '+Infinity'
|
1538
|
-
term_options[:options][:frame] ||= When
|
1539
|
+
term_options[:options][:frame] ||= When::Gregorian
|
1539
1540
|
epoch = ''
|
1540
1541
|
@epoch = @epoch.map {|e|
|
1541
1542
|
case e
|
data/lib/when_exe/version.rb
CHANGED
data/link_to_online_documents
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
See online documents.
|
2
|
-
wiki: http://www2u.biglobe.ne.jp/~suchowan/
|
3
|
-
yard: http://
|
4
|
-
demo: http://hosi.org
|
2
|
+
wiki: http://www2u.biglobe.ne.jp/~suchowan/when_exe_wiki.html
|
3
|
+
yard: http://rubydoc.info/gems/when_exe/0.3.5/frames
|
4
|
+
demo: http://hosi.org
|
data/test/examples/Residue.m17n
CHANGED
data/test/examples/Terms.m17n
CHANGED
data/test/test.rb
CHANGED
@@ -45,7 +45,7 @@ require './test/inspect'
|
|
45
45
|
require './test/googlecalendar'
|
46
46
|
require './test/region/m17n'
|
47
47
|
require './test/region/residue'
|
48
|
-
require './test/region/
|
48
|
+
require './test/region/christian'
|
49
49
|
require './test/region/japanese'
|
50
50
|
require './test/region/chinese'
|
51
51
|
require './test/region/vietnamese'
|
@@ -57,4 +57,5 @@ require './test/region/mayan'
|
|
57
57
|
require './test/region/jewish'
|
58
58
|
require './test/region/french'
|
59
59
|
require './test/region/coptic'
|
60
|
+
require './test/region/yerm'
|
60
61
|
require './test/region/geologicalage'
|
data/test/test/basictypes.rb
CHANGED
@@ -110,6 +110,22 @@ module Test
|
|
110
110
|
date = When.when?(sample[0], {:abbr=>[1985,15,5]})
|
111
111
|
assert_equal(sample[1], [date.precision, date.to_s])
|
112
112
|
end
|
113
|
+
|
114
|
+
result = []
|
115
|
+
(1900...1928).each do |year|
|
116
|
+
date = ::Date.new(year, 1, 1) - 7
|
117
|
+
14.times do
|
118
|
+
gdate = When.TemporalPosition(date.year, date.month, date.day)
|
119
|
+
strdate = date.strftime('%G-W%V-%u')
|
120
|
+
strgdate = gdate.strftime('%G-W%V-%u')
|
121
|
+
w1date = When::WeekDate ^ date
|
122
|
+
w2date = When.when?(strdate, {:frame=>When::WeekDate})
|
123
|
+
strw1date = w1date.strftime
|
124
|
+
strw2date = w2date.strftime
|
125
|
+
result << [[strdate, strgdate, strw1date, strw2date].uniq.size, date.jd == w1date.to_i, date.jd == w2date.to_i]
|
126
|
+
end
|
127
|
+
end
|
128
|
+
assert_equal([[1, true, true]], result.uniq)
|
113
129
|
end
|
114
130
|
|
115
131
|
def test__x0301_5_2_4
|
@@ -123,7 +139,7 @@ module Test
|
|
123
139
|
end
|
124
140
|
|
125
141
|
def test__x0301_5_3_1
|
126
|
-
When::TM::Clock.local_time = When
|
142
|
+
When::TM::Clock.local_time = When::UTC
|
127
143
|
|
128
144
|
[ # 5.3.1 地方時の時刻
|
129
145
|
["T232050", [ 3, "T23:20:50" ]], # 1 完全表記 基本形式
|
@@ -352,7 +368,7 @@ ISO, jwiki=http://ja.wikipedia.org/wiki/, ewiki=http://en.wikipedia.org/wiki/
|
|
352
368
|
NS
|
353
369
|
=jwiki:, en=ewiki:
|
354
370
|
LOCALE
|
355
|
-
Term3 = When.Resource('_co:
|
371
|
+
Term3 = When.Resource('_co:Common::Week::Monday::Monday')
|
356
372
|
|
357
373
|
def test__code_space
|
358
374
|
assert_equal('zip', Term1.codeSpace)
|
data/test/test/calendarnote.rb
CHANGED
data/test/test/calendartypes.rb
CHANGED
data/test/test/coordinates.rb
CHANGED
@@ -150,16 +150,16 @@ module Test::Coordinates
|
|
150
150
|
sample =[
|
151
151
|
["明治", "http://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB"],
|
152
152
|
["Meiji", "http://en.wikipedia.org/wiki/Meiji_period"],
|
153
|
-
["M", ""],
|
153
|
+
["M", "http://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB"],
|
154
154
|
["大正", "http://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AD%A3"],
|
155
155
|
["Taishō", "http://en.wikipedia.org/wiki/Taish%C5%8D_period"],
|
156
|
-
["T", ""],
|
156
|
+
["T", "http://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AD%A3"],
|
157
157
|
["昭和", "http://ja.wikipedia.org/wiki/%E6%98%AD%E5%92%8C"],
|
158
158
|
["Shōwa", "http://en.wikipedia.org/wiki/Sh%C5%8Dwa_period"],
|
159
|
-
["S", ""],
|
159
|
+
["S", "http://ja.wikipedia.org/wiki/%E6%98%AD%E5%92%8C"],
|
160
160
|
["平成", "http://ja.wikipedia.org/wiki/%E5%B9%B3%E6%88%90"],
|
161
161
|
["Heisei", "http://en.wikipedia.org/wiki/Heisei_period"],
|
162
|
-
["H", ""]
|
162
|
+
["H", "http://ja.wikipedia.org/wiki/%E5%B9%B3%E6%88%90"]
|
163
163
|
]
|
164
164
|
['明治', '大正', '昭和', '平成'].each do |nengo|
|
165
165
|
era = When::era(nengo)
|
@@ -194,7 +194,7 @@ module Test::Coordinates
|
|
194
194
|
# 空間位置
|
195
195
|
#
|
196
196
|
class Spatial < Test::Unit::TestCase
|
197
|
-
|
197
|
+
Indian = [
|
198
198
|
["CentralIndia",
|
199
199
|
"インド中部",
|
200
200
|
"http://en.wikipedia.org/wiki/CentralIndia",
|
@@ -365,8 +365,8 @@ module Test::Coordinates
|
|
365
365
|
end
|
366
366
|
|
367
367
|
def test__spatial_m17n
|
368
|
-
['_co:
|
369
|
-
samples =
|
368
|
+
['_co:Indian', 'examples/Spatial.m17n'].each do |iri|
|
369
|
+
samples = Indian.dup
|
370
370
|
assert_equal(samples.size, When.Resource(iri).child.size)
|
371
371
|
When.Resource(iri).child.each do |obj|
|
372
372
|
name = obj.label
|
File without changes
|
File without changes
|
File without changes
|
data/test/test/parts.rb
CHANGED
@@ -75,11 +75,6 @@ module Test::Parts
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
class SnapShot < Test::Unit::TestCase
|
79
|
-
def test_nothing
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
78
|
class Locale < Test::Unit::TestCase
|
84
79
|
Term1 = When.m17n('Tokyo', 'zip')
|
85
80
|
Term2 = When.m17n(<<LABEL, <<NS, <<LOCALE)
|
@@ -92,7 +87,7 @@ ISO, jwiki=http://ja.wikipedia.org/wiki/, ewiki=http://en.wikipedia.org/wiki/
|
|
92
87
|
NS
|
93
88
|
=jwiki:, en=ewiki:
|
94
89
|
LOCALE
|
95
|
-
Term3 = When.Resource('_co:
|
90
|
+
Term3 = When.Resource('_co:Common::Week::Monday::Monday')
|
96
91
|
|
97
92
|
def test__locale
|
98
93
|
assert_equal("Tokyo", Term1.translate('en_US'))
|
@@ -128,16 +123,16 @@ LOCALE
|
|
128
123
|
assert_equal(["閏長月", String], [date.name('Month').to_s, date.name('Month').to_s.class])
|
129
124
|
assert_equal("http://ja.wikipedia.org/wiki/%E9%96%8F", date.name('Month').reference('ja'))
|
130
125
|
assert_equal("閏長月", date.name('Month').translate('日本語'))
|
131
|
-
assert_equal("Intercalary
|
126
|
+
assert_equal("Intercalary Month 9", date.name('Month').translate('en_US'))
|
132
127
|
end
|
133
128
|
|
134
129
|
def test__split
|
135
|
-
assert_equal(['' ], When::
|
136
|
-
assert_equal(['3.14' ], When::
|
137
|
-
assert_equal(['3.14', ''], When::
|
138
|
-
assert_equal(['', '3.14'], When::
|
139
|
-
assert_equal(['3.14', ' "3.14,159"'], When::
|
140
|
-
assert_equal(['3.14', ' "3.14\\"159"'], When::
|
130
|
+
assert_equal(['' ], When::Locale._split(''))
|
131
|
+
assert_equal(['3.14' ], When::Locale._split('3.14'))
|
132
|
+
assert_equal(['3.14', ''], When::Locale._split('3.14,'))
|
133
|
+
assert_equal(['', '3.14'], When::Locale._split(',3.14'))
|
134
|
+
assert_equal(['3.14', ' "3.14,159"'], When::Locale._split('3.14, "3.14,159"'))
|
135
|
+
assert_equal(['3.14', ' "3.14\\"159"'], When::Locale._split('3.14, "3.14\\"159"'))
|
141
136
|
end
|
142
137
|
end
|
143
138
|
|
@@ -0,0 +1,245 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2012-2014 Takashi SUGA
|
4
|
+
|
5
|
+
You may use and/or modify this file according to the license
|
6
|
+
described in the LICENSE.txt file included in this archive.
|
7
|
+
=end
|
8
|
+
|
9
|
+
module Test
|
10
|
+
|
11
|
+
class ChristianVariation < Test::Unit::TestCase
|
12
|
+
|
13
|
+
def verify_built_in_date(calendar, start, length)
|
14
|
+
date = Date.new(start, 1, 1)
|
15
|
+
diff = {}
|
16
|
+
while date.year < start + length
|
17
|
+
cal_date = [date.year, date.month, date.day]
|
18
|
+
cal_jdn = date.jd
|
19
|
+
fdate = When.TemporalPosition(date.year, date.month, date.day, {:frame=>calendar})
|
20
|
+
rdate = calendar ^ cal_jdn
|
21
|
+
[fdate, rdate].each do |tdate|
|
22
|
+
[[cal_date, tdate.cal_date], [cal_jdn, tdate.to_i]].each do |verify|
|
23
|
+
unless verify.uniq.size == 1
|
24
|
+
diff[cal_date] ||= []
|
25
|
+
diff[cal_date] << verify[1]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
date = yield(date)
|
30
|
+
end
|
31
|
+
diff
|
32
|
+
end
|
33
|
+
|
34
|
+
def test__verify_to_built_in_date
|
35
|
+
|
36
|
+
sample = [{}, {}, {}, {}, {}, {[2900, 1, 1]=>[2780263, [2900, 1, 2]]}]
|
37
|
+
|
38
|
+
%w(Gregorian RevisedJulian).each do |name|
|
39
|
+
calendar = When.Calendar(name)
|
40
|
+
assert_equal(sample.shift, verify_built_in_date(calendar, 1900, 8) {|date| date + 1})
|
41
|
+
assert_equal(sample.shift, verify_built_in_date(calendar, 2000,400) {|date| date >> 1})
|
42
|
+
assert_equal(sample.shift, verify_built_in_date(calendar, 2400,900) {|date| date >> 1200})
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def test__gregorian_date
|
47
|
+
|
48
|
+
calendar = When.Calendar('Gregorian')
|
49
|
+
|
50
|
+
dates = [When.when?('1900-02-28', {:frame=>calendar})]
|
51
|
+
9.times do
|
52
|
+
dates << dates.last + When::P1Y * 100
|
53
|
+
end
|
54
|
+
assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
|
55
|
+
2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
|
56
|
+
assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
|
57
|
+
2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
|
58
|
+
assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 29], dates.map {|date| date.length(When::MONTH)})
|
59
|
+
|
60
|
+
dates = [When.when?('1900-03-01', {:frame=>calendar})]
|
61
|
+
9.times do
|
62
|
+
dates << dates.last + When::P1Y * 100
|
63
|
+
end
|
64
|
+
assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
|
65
|
+
2597702, 2634226, 2670750, 2707274, 2743799], dates.map {|date| date.to_i})
|
66
|
+
assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
|
67
|
+
2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
|
68
|
+
assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test__revised_julian_date
|
72
|
+
|
73
|
+
calendar = When.Calendar('RevisedJulian')
|
74
|
+
|
75
|
+
dates = [When.when?('1900-02-28', {:frame=>calendar})]
|
76
|
+
9.times do
|
77
|
+
dates << dates.last + When::P1Y * 100
|
78
|
+
end
|
79
|
+
assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
|
80
|
+
2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
|
81
|
+
assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
|
82
|
+
2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
|
83
|
+
assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 28], dates.map {|date| date.length(When::MONTH)})
|
84
|
+
|
85
|
+
dates = [When.when?('1900-03-01', {:frame=>calendar})]
|
86
|
+
9.times do
|
87
|
+
dates << dates.last + When::P1Y * 100
|
88
|
+
end
|
89
|
+
assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
|
90
|
+
2597702, 2634226, 2670750, 2707274, 2743798], dates.map {|date| date.to_i})
|
91
|
+
assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
|
92
|
+
2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
|
93
|
+
assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class Swedish < Test::Unit::TestCase
|
98
|
+
def test__swedish_date
|
99
|
+
|
100
|
+
dates = []
|
101
|
+
jdns = []
|
102
|
+
[2342042, 2346424].each do |base|
|
103
|
+
(-3..+3).each do |diff|
|
104
|
+
jdn = base + diff
|
105
|
+
jdate = When::Julian ^ jdn
|
106
|
+
s1date = When::Swedish ^ jdn
|
107
|
+
s2date = When.tm_pos(*(s1date.cal_date + [{:frame=>When::Swedish}]))
|
108
|
+
dates << s1date.to_s
|
109
|
+
jdns << [s1date.to_s == s2date.to_s, s1date.to_i == jdn, s2date.to_i == jdn].uniq
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
assert_equal(%w(1700-02-26 1700-02-27 1700-02-28 1700-03-01 1700-03-02 1700-03-03 1700-03-04
|
114
|
+
1712-02-26 1712-02-27 1712-02-28 1712-02-29 1712-02-30 1712-03-01 1712-03-02), dates)
|
115
|
+
assert_equal([[true]], jdns.uniq)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test__swedish_easter
|
119
|
+
|
120
|
+
dates = []
|
121
|
+
civil = When.Calendar('Civil?old=Swedish&reform_date=1753-03-01')
|
122
|
+
((1700..1711).to_a + (1740..1752).to_a+[1802,1805,1818]).each do |year|
|
123
|
+
dates << When.tm_pos(year, {:frame=>civil}).easter.to_s
|
124
|
+
end
|
125
|
+
assert_equal(%w(1700-04-01 1701-04-21 1702-04-06 1703-03-29 1704-04-17 1705-04-02 1706-03-25
|
126
|
+
1707-04-14 1708-04-05 1709-04-18 1710-04-10 1711-03-26 1740-04-06 1741-03-22
|
127
|
+
1742-03-14 1743-04-03 1744-03-18 1745-04-07 1746-03-30 1747-03-22 1748-04-03
|
128
|
+
1749-03-26 1750-03-18 1751-03-31 1752-03-22 1802-04-25 1805-04-21 1818-03-29), dates)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
class Civil < Test::Unit::TestCase
|
133
|
+
def test__border
|
134
|
+
frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
|
135
|
+
assert_equal("1641=03-24", (frame ^ When.when?('1642-4-3') ).to_s)
|
136
|
+
assert_equal("1642-03-25", (frame ^ When.when?('1642-4-4') ).to_s)
|
137
|
+
assert_equal("1752-12-31", (frame ^ When.when?('1752-12-31')).to_s)
|
138
|
+
assert_equal("1753-01-01", (frame ^ When.when?('1753-1-1') ).to_s)
|
139
|
+
assert_equal("1753-03-24", (frame ^ When.when?('1753-3-24') ).to_s)
|
140
|
+
assert_equal("1753-03-25", (frame ^ When.when?('1753-3-25') ).to_s)
|
141
|
+
end
|
142
|
+
|
143
|
+
def test__reform_inc
|
144
|
+
sample = %w(
|
145
|
+
1582-09-30 1582-10-01 1582-10-02 1582-10-03 1582-10-04 1582-10-15 1582-10-16 1582-10-17
|
146
|
+
1582-10-18 1582-10-19 1582-10-20 1582-10-21 1582-10-22 1582-10-23 1582-10-24 1582-10-25
|
147
|
+
1582-10-26 1582-10-27 1582-10-28 1582-10-29 1582-10-30 1582-10-31 1582-11-01 1582-11-02
|
148
|
+
1582-11-03)
|
149
|
+
date = When.when?('1582-9-30', :frame=>'Civil?reform=1582-10-15')
|
150
|
+
25.times do
|
151
|
+
assert_equal(sample.shift, date.to_s)
|
152
|
+
date = date + When::P1D
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def test__reform_dec
|
157
|
+
sample = %w(
|
158
|
+
1582-11-01 1582-10-31 1582-10-30 1582-10-29 1582-10-28 1582-10-27 1582-10-26 1582-10-25
|
159
|
+
1582-10-24 1582-10-23 1582-10-22 1582-10-21 1582-10-20 1582-10-19 1582-10-18 1582-10-17
|
160
|
+
1582-10-16 1582-10-15 1582-10-04 1582-10-03 1582-10-02 1582-10-01 1582-09-30 1582-09-29
|
161
|
+
1582-09-28)
|
162
|
+
date = When.when?('1582-11-01', :frame=>'Civil?reform=1582-10-15')
|
163
|
+
25.times do
|
164
|
+
assert_equal(sample.shift, date.to_s)
|
165
|
+
date = date - When::P1D
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
def test__reform_year
|
170
|
+
date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
|
171
|
+
assert_equal(
|
172
|
+
[[1752,
|
173
|
+
[[3,
|
174
|
+
["*", 1, 2, 3, 4, 5, 6, 7],
|
175
|
+
["*", 8, 9, 10, 11, 12, 13, 14],
|
176
|
+
["*", 15, 16, 17, 18, 19, 20, 21],
|
177
|
+
["*", 22, 23, 24, 25, 26, 27, 28],
|
178
|
+
["*", 29, 30, 31, "*", "*", "*", "*"]]],
|
179
|
+
[[4,
|
180
|
+
["*", "*", "*", "*", 1, 2, 3, 4],
|
181
|
+
["*", 5, 6, 7, 8, 9, 10, 11],
|
182
|
+
["*", 12, 13, 14, 15, 16, 17, 18],
|
183
|
+
["*", 19, 20, 21, 22, 23, 24, 25],
|
184
|
+
["*", 26, 27, 28, 29, 30, "*", "*"]]],
|
185
|
+
[[5,
|
186
|
+
["*", "*", "*", "*", "*", "*", 1, 2],
|
187
|
+
["*", 3, 4, 5, 6, 7, 8, 9],
|
188
|
+
["*", 10, 11, 12, 13, 14, 15, 16],
|
189
|
+
["*", 17, 18, 19, 20, 21, 22, 23],
|
190
|
+
["*", 24, 25, 26, 27, 28, 29, 30],
|
191
|
+
["*", 31, "*", "*", "*", "*", "*", "*"]]],
|
192
|
+
[[6,
|
193
|
+
["*", "*", 1, 2, 3, 4, 5, 6],
|
194
|
+
["*", 7, 8, 9, 10, 11, 12, 13],
|
195
|
+
["*", 14, 15, 16, 17, 18, 19, 20],
|
196
|
+
["*", 21, 22, 23, 24, 25, 26, 27],
|
197
|
+
["*", 28, 29, 30, "*", "*", "*", "*"]]],
|
198
|
+
[[7,
|
199
|
+
["*", "*", "*", "*", 1, 2, 3, 4],
|
200
|
+
["*", 5, 6, 7, 8, 9, 10, 11],
|
201
|
+
["*", 12, 13, 14, 15, 16, 17, 18],
|
202
|
+
["*", 19, 20, 21, 22, 23, 24, 25],
|
203
|
+
["*", 26, 27, 28, 29, 30, 31, "*"]]],
|
204
|
+
[[8,
|
205
|
+
["*", "*", "*", "*", "*", "*", "*", 1],
|
206
|
+
["*", 2, 3, 4, 5, 6, 7, 8],
|
207
|
+
["*", 9, 10, 11, 12, 13, 14, 15],
|
208
|
+
["*", 16, 17, 18, 19, 20, 21, 22],
|
209
|
+
["*", 23, 24, 25, 26, 27, 28, 29],
|
210
|
+
["*", 30, 31, "*", "*", "*", "*", "*"]]],
|
211
|
+
[[9,
|
212
|
+
["*", "*", "*", 1, 2, 14, 15, 16],
|
213
|
+
["*", 17, 18, 19, 20, 21, 22, 23],
|
214
|
+
["*", 24, 25, 26, 27, 28, 29, 30]]],
|
215
|
+
[[10,
|
216
|
+
["*", 1, 2, 3, 4, 5, 6, 7],
|
217
|
+
["*", 8, 9, 10, 11, 12, 13, 14],
|
218
|
+
["*", 15, 16, 17, 18, 19, 20, 21],
|
219
|
+
["*", 22, 23, 24, 25, 26, 27, 28],
|
220
|
+
["*", 29, 30, 31, "*", "*", "*", "*"]]],
|
221
|
+
[[11,
|
222
|
+
["*", "*", "*", "*", 1, 2, 3, 4],
|
223
|
+
["*", 5, 6, 7, 8, 9, 10, 11],
|
224
|
+
["*", 12, 13, 14, 15, 16, 17, 18],
|
225
|
+
["*", 19, 20, 21, 22, 23, 24, 25],
|
226
|
+
["*", 26, 27, 28, 29, 30, "*", "*"]]],
|
227
|
+
[[12,
|
228
|
+
["*", "*", "*", "*", "*", "*", 1, 2],
|
229
|
+
["*", 3, 4, 5, 6, 7, 8, 9],
|
230
|
+
["*", 10, 11, 12, 13, 14, 15, 16],
|
231
|
+
["*", 17, 18, 19, 20, 21, 22, 23],
|
232
|
+
["*", 24, 25, 26, 27, 28, 29, 30],
|
233
|
+
["*", 31, "*", "*", "*", "*", "*", "*"]]]]],
|
234
|
+
date.year_included('Sunday') {|d,b|
|
235
|
+
case b
|
236
|
+
when When::YEAR ; d[When::YEAR]
|
237
|
+
when When::MONTH ; d[When::MONTH]
|
238
|
+
when When::DAY ; d[When::DAY]
|
239
|
+
else ; '*'
|
240
|
+
end
|
241
|
+
}
|
242
|
+
)
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|