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
data/bin/irb.rc
CHANGED
data/bin/locales.rb
CHANGED
@@ -19,8 +19,8 @@ HEADER = <<HEADER
|
|
19
19
|
You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
|
20
20
|
=end
|
21
21
|
|
22
|
-
module When
|
23
|
-
|
22
|
+
module When
|
23
|
+
module Locale
|
24
24
|
HEADER
|
25
25
|
|
26
26
|
if "1".respond_to?(:force_encoding)
|
@@ -42,7 +42,7 @@ site.get('/svenfuchs/rails-i18n/tree/master/rails/locale').body.scan(/>([^> ]+?)
|
|
42
42
|
locale = source.read
|
43
43
|
end
|
44
44
|
rescue Errno::ENOENT
|
45
|
-
http = Net::HTTP.new('raw.
|
45
|
+
http = Net::HTTP.new('raw.githubusercontent.com', '443')
|
46
46
|
http.use_ssl = true
|
47
47
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
48
48
|
sleep(1)
|
@@ -59,12 +59,13 @@ site.get('/svenfuchs/rails-i18n/tree/master/rails/locale').body.scan(/>([^> ]+?)
|
|
59
59
|
yamls[code.sub(/-/,'_')] = {'date'=>yaml[code]['date'], 'time'=>yaml[code]['time'], 'datetime'=>yaml[code]['datetime']}
|
60
60
|
end
|
61
61
|
|
62
|
-
open("locales/locales/
|
62
|
+
open("locales/locales/autoload.rb", 'w') do |script|
|
63
63
|
script.puts HEADER
|
64
64
|
yamls.each_key do |key|
|
65
65
|
script.puts " autoload :Locale_%-8s 'when_exe/locales/%s'" % [key + ',', key]
|
66
66
|
end
|
67
|
-
script.puts " end
|
67
|
+
script.puts " end"
|
68
|
+
script.puts "end"
|
68
69
|
end
|
69
70
|
|
70
71
|
yamls.each_pair do |key, value|
|
@@ -73,6 +74,7 @@ yamls.each_pair do |key, value|
|
|
73
74
|
script.puts "\n # from https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/#{key.sub(/_/,'-')}.yml"
|
74
75
|
script.puts "\n Locale_#{key} ="
|
75
76
|
script.write(value.pretty_inspect)
|
76
|
-
script.puts " end
|
77
|
+
script.puts " end"
|
78
|
+
script.puts "end"
|
77
79
|
end
|
78
80
|
end
|
data/bin/when.rb
CHANGED
@@ -13,4 +13,4 @@ args = ARGV.map {|arg| arg.encode('UTF-8')}
|
|
13
13
|
config = When.config
|
14
14
|
server, port = config['?']
|
15
15
|
result = !port || !Object.const_defined?(:JSON) ? When.free_conv(*args) : args == [] ? When.server(port) : When.client(server, port, args.join(' '))
|
16
|
-
pp When::
|
16
|
+
pp When::Locale.translate(result, config['!']) if result
|
data/lib/when_exe.rb
CHANGED
@@ -55,6 +55,7 @@ module When
|
|
55
55
|
# @option options [When::Coordinates::Spatial] :location デフォルトの空間位置
|
56
56
|
# @option options [When::TM::IntervalLength] :until V::Event::Enumerator の until
|
57
57
|
# @option options [Hash{String=>String}] :alias Locale の読替パターン ({ 読替前のlocale=>読替後のlocale })
|
58
|
+
# @option options [String] :namespaces 名前空間定義の省略時に名前空間生成に用いる書式
|
58
59
|
# @option options [Hash{String=>String}] :unification 漢字の包摂パターン ({ 包摂前の文字列=>包摂後の文字列 })
|
59
60
|
# @option options [Array<String>] :order CalendarEra の検索順序 ([ IRI of When::TM::CalendarEra ])
|
60
61
|
# @option options [Hash{String=>Array, String}] :format strftime で用いる記号の定義 ({ 記号=>[ 書式,項目名 ] or 記号列 })
|
@@ -77,7 +78,7 @@ module When
|
|
77
78
|
@multi_thread = options[:multi_thread]
|
78
79
|
Parts::MethodCash._setup_(options)
|
79
80
|
Parts::Resource._setup_(options)
|
80
|
-
|
81
|
+
Locale._setup_(options)
|
81
82
|
Coordinates::Spatial._setup_(options[:location])
|
82
83
|
TM::CalendarEra._setup_(options[:order])
|
83
84
|
TM::Calendar._setup_
|
@@ -97,7 +98,7 @@ module When
|
|
97
98
|
{:multi_thread => @multi_thread}.
|
98
99
|
update(Parts::MethodCash._setup_info).
|
99
100
|
update(Parts::Resource._setup_info).
|
100
|
-
update(
|
101
|
+
update(Locale._setup_info).
|
101
102
|
update(Coordinates::Spatial._setup_info).
|
102
103
|
update(TM::CalendarEra._setup_info).
|
103
104
|
update(TM::Clock._setup_info).
|
@@ -105,6 +106,36 @@ module When
|
|
105
106
|
update(V::Event._setup_info).
|
106
107
|
update(TimeStandard._setup_info)
|
107
108
|
end
|
109
|
+
|
110
|
+
#
|
111
|
+
# When 直下に定数として定義する時法・暦法(明示的的追加)
|
112
|
+
#
|
113
|
+
# @private
|
114
|
+
def _define_common_calendar_types(list=%w(UTC Gregorian Julian Civil))
|
115
|
+
list.each do |calendar|
|
116
|
+
resource = Parts::Resource._instance(calendar, '_c:')
|
117
|
+
Parts::Resource.synchronize do
|
118
|
+
Parts::Resource::ConstList << calendar
|
119
|
+
const_set(calendar, resource)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
alias :_const_missing :const_missing
|
125
|
+
|
126
|
+
#
|
127
|
+
# When 直下に定数として定義する時法・暦法など(暗黙的追加)
|
128
|
+
#
|
129
|
+
def const_missing(constant)
|
130
|
+
iri = Parts::Resource._abbreviation_to_iri(constant)
|
131
|
+
return _const_missing(constant) unless iri
|
132
|
+
resource = Parts::Resource._instance(iri)
|
133
|
+
return const_get(constant) if const_defined?(constant)
|
134
|
+
Parts::Resource.synchronize do
|
135
|
+
Parts::Resource::ConstList << constant
|
136
|
+
const_set(constant, resource)
|
137
|
+
end
|
138
|
+
end
|
108
139
|
end
|
109
140
|
|
110
141
|
#
|
@@ -118,16 +149,15 @@ module When
|
|
118
149
|
RootDir = File.dirname(__FILE__).sub(/\/[^\/]*$/,'')
|
119
150
|
|
120
151
|
require 'when_exe/version'
|
152
|
+
require 'when_exe/locales/locale'
|
153
|
+
require 'when_exe/locales/autoload'
|
121
154
|
require 'when_exe/parts/enumerator'
|
122
|
-
require 'when_exe/parts/locale'
|
123
155
|
require 'when_exe/parts/resource'
|
124
156
|
require 'when_exe/parts/geometric_complex'
|
125
157
|
require 'when_exe/parts/timezone'
|
126
|
-
require 'when_exe/parts/method_cash'
|
127
158
|
require 'when_exe/core/compatibility'
|
128
159
|
require 'when_exe/basictypes'
|
129
160
|
require 'when_exe/ephemeris'
|
130
|
-
require 'when_exe/tmduration'
|
131
161
|
require 'when_exe/coordinates'
|
132
162
|
require 'when_exe/icalendar'
|
133
163
|
require 'when_exe/tmobjects'
|
@@ -136,21 +166,22 @@ module When
|
|
136
166
|
require 'when_exe/tmreference'
|
137
167
|
require 'when_exe/calendartypes'
|
138
168
|
require 'when_exe/calendarnote'
|
139
|
-
require 'when_exe/locales/locales'
|
140
169
|
require 'when_exe/region/m17n'
|
141
170
|
require 'when_exe/region/residue'
|
142
|
-
require 'when_exe/region/christian'
|
143
171
|
require 'when_exe/inspect'
|
144
172
|
|
145
173
|
#
|
146
174
|
# Module Constants
|
147
175
|
#
|
148
176
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
177
|
+
PT1S = TM::PeriodDuration.new(nil,[0,0,0,1])
|
178
|
+
PT1M = TM::PeriodDuration.new(nil,[0,0,1,0])
|
179
|
+
PT1H = TM::PeriodDuration.new(nil,[0,1,0,0])
|
180
|
+
P1D = TM::PeriodDuration.new([0,0,1])
|
181
|
+
P1W = TM::PeriodDuration.new([0,0,7])
|
182
|
+
P1M = TM::PeriodDuration.new([0,1,0])
|
183
|
+
P1Y = TM::PeriodDuration.new([1,0,0])
|
184
|
+
TimeValue = TM::IndeterminateValue
|
154
185
|
|
155
186
|
PlusInfinity = TM::TemporalPosition.new({:indeterminated_position=>TimeValue::Max})
|
156
187
|
MinusInfinity = TM::TemporalPosition.new({:indeterminated_position=>TimeValue::Min})
|
@@ -160,57 +191,90 @@ module When
|
|
160
191
|
EUCJP = '.eucJP'
|
161
192
|
|
162
193
|
class BasicTypes::M17n
|
163
|
-
autoload :
|
164
|
-
autoload :
|
165
|
-
autoload :
|
166
|
-
autoload :
|
167
|
-
autoload :
|
168
|
-
autoload :
|
169
|
-
autoload :
|
170
|
-
autoload :
|
171
|
-
autoload :
|
172
|
-
autoload :
|
173
|
-
autoload :
|
174
|
-
autoload :
|
175
|
-
autoload :
|
176
|
-
autoload :
|
177
|
-
autoload :
|
178
|
-
autoload :
|
179
|
-
autoload :
|
180
|
-
autoload :
|
194
|
+
autoload :Japanese, 'when_exe/region/japanese'
|
195
|
+
autoload :Chinese, 'when_exe/region/chinese'
|
196
|
+
autoload :Yi, 'when_exe/region/chinese'
|
197
|
+
autoload :Tibetan, 'when_exe/region/tibetan'
|
198
|
+
autoload :Thai, 'when_exe/region/thai'
|
199
|
+
autoload :Balinese, 'when_exe/region/balinese'
|
200
|
+
autoload :Javanese, 'when_exe/region/javanese'
|
201
|
+
autoload :Indian, 'when_exe/region/indian'
|
202
|
+
autoload :Iranian, 'when_exe/region/iranian'
|
203
|
+
autoload :Islamic, 'when_exe/region/islamic'
|
204
|
+
autoload :Jewish, 'when_exe/region/jewish'
|
205
|
+
autoload :Armenian, 'when_exe/region/Armenian'
|
206
|
+
autoload :Roman, 'when_exe/region/roman'
|
207
|
+
autoload :Coptic, 'when_exe/region/coptic'
|
208
|
+
autoload :French, 'when_exe/region/french'
|
209
|
+
autoload :World, 'when_exe/region/world'
|
210
|
+
autoload :Shire, 'when_exe/region/shire'
|
211
|
+
autoload :Yerm, 'when_exe/region/yerm'
|
212
|
+
autoload :Martian, 'when_exe/region/martian'
|
213
|
+
autoload :WeekDate, 'when_exe/region/weekdate'
|
214
|
+
end
|
215
|
+
|
216
|
+
module Locale
|
217
|
+
autoload :WikipediaLinks, 'when_exe/locales/links'
|
218
|
+
autoload :IAST, 'when_exe/locales/iast'
|
219
|
+
autoload :IASTR, 'when_exe/locales/iast'
|
220
|
+
autoload :AKT, 'when_exe/locales/akt'
|
181
221
|
end
|
182
222
|
|
183
223
|
module CalendarTypes
|
184
|
-
autoload :Japanese,
|
185
|
-
autoload :JapaneseTwin,
|
186
|
-
autoload :ChineseTwin,
|
187
|
-
autoload :ChineseSolar,
|
188
|
-
autoload :ChineseLuniSolar,
|
189
|
-
autoload :Yi,
|
190
|
-
autoload :
|
191
|
-
autoload :
|
192
|
-
autoload :
|
193
|
-
autoload :
|
194
|
-
autoload :
|
195
|
-
autoload :
|
196
|
-
autoload :
|
197
|
-
autoload :
|
198
|
-
autoload :
|
199
|
-
autoload :
|
200
|
-
autoload :
|
201
|
-
autoload :
|
202
|
-
autoload :
|
203
|
-
autoload :
|
204
|
-
autoload :
|
205
|
-
autoload :
|
206
|
-
autoload :
|
207
|
-
autoload :
|
208
|
-
autoload :
|
209
|
-
autoload :
|
210
|
-
autoload :
|
211
|
-
autoload :
|
212
|
-
autoload :
|
213
|
-
autoload :
|
224
|
+
autoload :Japanese, 'when_exe/region/japanese/calendars'
|
225
|
+
autoload :JapaneseTwin, 'when_exe/region/japanese/twins'
|
226
|
+
autoload :ChineseTwin, 'when_exe/region/chinese/twins'
|
227
|
+
autoload :ChineseSolar, 'when_exe/region/chinese'
|
228
|
+
autoload :ChineseLuniSolar, 'when_exe/region/chinese'
|
229
|
+
autoload :Yi, 'when_exe/region/chinese'
|
230
|
+
autoload :Korean, 'when_exe/region/korean'
|
231
|
+
autoload :Tibetan, 'when_exe/region/tibetan'
|
232
|
+
autoload :Thai, 'when_exe/region/thai'
|
233
|
+
autoload :ThaiP, 'when_exe/region/thai'
|
234
|
+
autoload :ThaiC, 'when_exe/region/thai'
|
235
|
+
autoload :ThaiT, 'when_exe/region/thai'
|
236
|
+
autoload :Tenganan, 'when_exe/region/balinese'
|
237
|
+
autoload :Pranatamangsa, 'when_exe/region/javanese'
|
238
|
+
autoload :IndianNationalSolar, 'when_exe/region/indian'
|
239
|
+
autoload :Nanakshahi, 'when_exe/region/indian'
|
240
|
+
autoload :RevisedBengali, 'when_exe/region/indian'
|
241
|
+
autoload :HinduLuniSolar, 'when_exe/region/indian'
|
242
|
+
autoload :HinduSolar, 'when_exe/region/indian'
|
243
|
+
autoload :Jalali, 'when_exe/region/iranian'
|
244
|
+
autoload :TableBasedJalali, 'when_exe/region/iranian'
|
245
|
+
autoload :Borji, 'when_exe/region/iranian'
|
246
|
+
autoload :TableBasedBorji, 'when_exe/region/iranian'
|
247
|
+
autoload :SolarHijri, 'when_exe/region/iranian'
|
248
|
+
autoload :SolarHijriAlgorithmic, 'when_exe/region/iranian'
|
249
|
+
autoload :Zoroastrian, 'when_exe/region/zoroastrian'
|
250
|
+
autoload :Qadimi, 'when_exe/region/zoroastrian'
|
251
|
+
autoload :Shahanshahi, 'when_exe/region/zoroastrian'
|
252
|
+
autoload :Fasli, 'when_exe/region/zoroastrian'
|
253
|
+
autoload :Bahai, 'when_exe/region/bahai'
|
254
|
+
autoload :TabularIslamic, 'when_exe/region/islamic'
|
255
|
+
autoload :EphemerisBasedIslamic, 'when_exe/region/islamic'
|
256
|
+
autoload :Jewish, 'when_exe/region/jewish'
|
257
|
+
autoload :Armenian, 'when_exe/region/armenian'
|
258
|
+
autoload :Coptic, 'when_exe/region/coptic'
|
259
|
+
autoload :JulianA, 'when_exe/region/roman'
|
260
|
+
autoload :JulianB, 'when_exe/region/roman'
|
261
|
+
autoload :JulianC, 'when_exe/region/roman'
|
262
|
+
autoload :Roman, 'when_exe/region/roman'
|
263
|
+
autoload :Gregorian, 'when_exe/region/christian'
|
264
|
+
autoload :FrenchRepublican, 'when_exe/region/french'
|
265
|
+
autoload :World, 'when_exe/region/world'
|
266
|
+
autoload :LongCount, 'when_exe/region/mayan'
|
267
|
+
autoload :Discordian, 'when_exe/region/discordian'
|
268
|
+
autoload :Shire, 'when_exe/region/shire'
|
269
|
+
autoload :ShireG, 'when_exe/region/shire'
|
270
|
+
autoload :Sym454, 'when_exe/region/symmetry'
|
271
|
+
autoload :Sym010, 'when_exe/region/symmetry'
|
272
|
+
autoload :Yerm, 'when_exe/region/yerm'
|
273
|
+
autoload :Dee, 'when_exe/region/dee'
|
274
|
+
autoload :DeeCecil, 'when_exe/region/dee'
|
275
|
+
autoload :Goddess, 'when_exe/region/goddess'
|
276
|
+
autoload :Darian, 'when_exe/region/martian'
|
277
|
+
autoload :WeekDate, 'when_exe/region/weekdate'
|
214
278
|
|
215
279
|
_time_systems = {
|
216
280
|
'LMT' => nil, # Local Mean Time
|
@@ -225,99 +289,97 @@ module When
|
|
225
289
|
end
|
226
290
|
|
227
291
|
class CalendarNote
|
228
|
-
autoload :SolarTerms,
|
229
|
-
autoload :LunarPhases,
|
230
|
-
autoload :
|
231
|
-
autoload :
|
232
|
-
autoload :
|
233
|
-
autoload :
|
234
|
-
autoload :
|
235
|
-
autoload :
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
292
|
+
autoload :SolarTerms, 'when_exe/ephemeris/notes'
|
293
|
+
autoload :LunarPhases, 'when_exe/ephemeris/notes'
|
294
|
+
autoload :Ephemeris, 'when_exe/ephemeris/notes'
|
295
|
+
autoload :Japanese, 'when_exe/region/japanese/notes'
|
296
|
+
autoload :Yis, 'when_exe/region/chinese'
|
297
|
+
autoload :Balinese, 'when_exe/region/balinese'
|
298
|
+
autoload :Javanese, 'when_exe/region/javanese'
|
299
|
+
autoload :Tibetan, 'when_exe/region/tibetan'
|
300
|
+
autoload :Bahai, 'when_exe/region/bahai'
|
301
|
+
autoload :Roman, 'when_exe/region/roman'
|
302
|
+
autoload :Mayan, 'when_exe/region/mayan'
|
303
|
+
autoload :Discordian, 'when_exe/region/discordian'
|
304
|
+
# autoload :Yerm, 'when_exe/region/yerm'
|
305
|
+
autoload :WorldWeek, 'when_exe/region/world'
|
306
|
+
autoload :ShireWeek, 'when_exe/region/shire'
|
307
|
+
|
308
|
+
Default = [['_m:Calendar::Month'], ['Common::Week']]
|
309
|
+
JulianDay = [['Common::Week', 'Common::干支']]
|
310
|
+
Chinese = [['Common::干支'], ['_m:Calendar::Month'], ['Common::Week', 'Common::干支']]
|
247
311
|
end
|
248
312
|
|
249
313
|
module Coordinates
|
250
|
-
autoload :Tibetan,
|
251
|
-
autoload :Yi,
|
252
|
-
autoload :Javanese,
|
253
|
-
autoload :
|
254
|
-
autoload :
|
255
|
-
autoload :
|
256
|
-
autoload :
|
314
|
+
autoload :Tibetan, 'when_exe/region/tibetan'
|
315
|
+
autoload :Yi, 'when_exe/region/chinese'
|
316
|
+
autoload :Javanese, 'when_exe/region/javanese'
|
317
|
+
autoload :Indian, 'when_exe/region/indian'
|
318
|
+
autoload :Iranian, 'when_exe/region/iranian'
|
319
|
+
autoload :Bahai, 'when_exe/region/bahai'
|
320
|
+
autoload :Roman, 'when_exe/region/roman'
|
321
|
+
autoload :Mayan, 'when_exe/region/mayan'
|
257
322
|
|
258
323
|
# default index for day coordinate
|
259
|
-
DefaultDayIndex =
|
324
|
+
DefaultDayIndex = Index.new
|
260
325
|
|
261
326
|
# default indices for date coordinates
|
262
327
|
DefaultDateIndices = [
|
263
|
-
|
328
|
+
Index.new(When::Parts::Resource._instance('_m:Calendar::Month'), {:unit =>12}),
|
264
329
|
DefaultDayIndex
|
265
330
|
]
|
266
331
|
|
267
332
|
# default indices for time coordinates
|
268
333
|
DefaultTimeIndices = [
|
269
|
-
|
270
|
-
|
271
|
-
|
334
|
+
Index.new({:base=>0, :unit=>24}),
|
335
|
+
Index.new({:base=>0, :unit=>60}),
|
336
|
+
Index.new({:base=>0, :unit=>60})
|
272
337
|
]
|
273
338
|
end
|
274
339
|
|
275
340
|
module TM
|
276
341
|
class OrdinalReferenceSystem
|
277
|
-
autoload :GeologicalAge,
|
342
|
+
autoload :GeologicalAge, 'when_exe/region/geologicalage'
|
278
343
|
end
|
279
344
|
|
280
345
|
class CalendarEra
|
281
|
-
autoload :Japanese,
|
282
|
-
autoload :JapanesePrimeMinister,
|
283
|
-
autoload :NihonKoki,
|
284
|
-
autoload :NihonShoki,
|
285
|
-
autoload :
|
286
|
-
autoload :
|
287
|
-
autoload :Chinese,
|
288
|
-
autoload :
|
289
|
-
autoload :
|
290
|
-
autoload :Ryukyu,
|
291
|
-
autoload :Korean,
|
292
|
-
autoload :Vietnamese,
|
293
|
-
autoload :Manchurian,
|
294
|
-
autoload :Rouran,
|
295
|
-
autoload :Gaochang,
|
296
|
-
autoload :Yunnan,
|
297
|
-
# autoload :Tibetan,
|
298
|
-
autoload :BalineseLuniSolar,
|
299
|
-
autoload :JavaneseLunar,
|
300
|
-
autoload :
|
301
|
-
autoload :
|
302
|
-
autoload :
|
303
|
-
autoload :
|
304
|
-
autoload :
|
305
|
-
autoload :
|
306
|
-
autoload :
|
307
|
-
autoload :
|
308
|
-
autoload :French, 'when_exe/region/french'
|
309
|
-
autoload :World, 'when_exe/region/world'
|
310
|
-
autoload :LongCount, 'when_exe/region/mayan'
|
346
|
+
autoload :Japanese, 'when_exe/region/japanese/epochs'
|
347
|
+
autoload :JapanesePrimeMinister, 'when_exe/region/japanese/epochs'
|
348
|
+
autoload :NihonKoki, 'when_exe/region/japanese/nihon_shoki'
|
349
|
+
autoload :NihonShoki, 'when_exe/region/japanese/nihon_shoki'
|
350
|
+
autoload :JapaneseSolar, 'when_exe/region/japanese/twins'
|
351
|
+
autoload :JapaneseLuniSolar, 'when_exe/region/japanese/twins'
|
352
|
+
autoload :Chinese, 'when_exe/region/chinese/epochs'
|
353
|
+
autoload :ChineseSolar, 'when_exe/region/chinese/twins'
|
354
|
+
autoload :ChineseLuniSolar, 'when_exe/region/chinese/twins'
|
355
|
+
autoload :Ryukyu, 'when_exe/region/ryukyu'
|
356
|
+
autoload :Korean, 'when_exe/region/korean'
|
357
|
+
autoload :Vietnamese, 'when_exe/region/vietnamese'
|
358
|
+
autoload :Manchurian, 'when_exe/region/far_east'
|
359
|
+
autoload :Rouran, 'when_exe/region/far_east'
|
360
|
+
autoload :Gaochang, 'when_exe/region/far_east'
|
361
|
+
autoload :Yunnan, 'when_exe/region/far_east'
|
362
|
+
# autoload :Tibetan, 'when_exe/region/tibetan'
|
363
|
+
autoload :BalineseLuniSolar, 'when_exe/region/balinese'
|
364
|
+
autoload :JavaneseLunar, 'when_exe/region/javanese'
|
365
|
+
autoload :Iranian, 'when_exe/region/iranian'
|
366
|
+
autoload :Hijra, 'when_exe/region/islamic'
|
367
|
+
autoload :Jewish, 'when_exe/region/jewish'
|
368
|
+
autoload :Roman, 'when_exe/region/roman'
|
369
|
+
autoload :Julian, 'when_exe/region/roman'
|
370
|
+
autoload :Pope, 'when_exe/region/pope'
|
371
|
+
autoload :Byzantine, 'when_exe/region/christian'
|
372
|
+
autoload :LongCount, 'when_exe/region/mayan'
|
311
373
|
|
312
374
|
# Defualt search path for Epochs and Eras
|
313
375
|
DefaultEpochs = ['Common', 'ModernJapanese',
|
314
|
-
'
|
315
|
-
'Roman', 'Byzantine', '
|
376
|
+
'Hijra', 'Jewish', 'Iranian',
|
377
|
+
'Roman', 'Byzantine', 'LongCount',
|
316
378
|
'BalineseLuniSolar', 'JavaneseLunar',
|
317
379
|
'Japanese', 'JapanesePrimeMinister', 'NihonKoki', 'NihonShoki',
|
318
380
|
'Chinese', 'Ryukyu', 'Vietnamese', 'Korean',
|
319
|
-
'
|
320
|
-
'
|
381
|
+
'JapaneseSolar', 'JapaneseLuniSolar',
|
382
|
+
'ChineseSolar', 'ChineseLuniSolar',
|
321
383
|
'Manchurian', 'Rouran', 'Gaochang', 'Yunnan', # 'Tibetan',
|
322
384
|
'Pope' ]
|
323
385
|
|
@@ -333,7 +395,6 @@ module When
|
|
333
395
|
|
334
396
|
# Common Era
|
335
397
|
Common = [{}, self, [
|
336
|
-
'namespace:[en=http://en.wikipedia.org/wiki/]',
|
337
398
|
'area:Common#{?Reform=Reform}',
|
338
399
|
['[BeforeCommonEra=en:BCE_(disambiguation),*alias:BCE]0.1.1'],
|
339
400
|
['[CommonEra=en:Common_Era,*alias:CE]1.1.1', 'Calendar Epoch', '01-01-01^Julian'],
|
@@ -342,9 +403,8 @@ module When
|
|
342
403
|
|
343
404
|
# Modern Japanese Eras after the calendar reform to the Gregorian Calendar
|
344
405
|
ModernJapanese = [self, [
|
345
|
-
'namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]',
|
346
406
|
'area:[ModernJapanese]',
|
347
|
-
['[M=,alias:明=ja:明治]6.01.01', '@CR', '1873-01-01^Gregorian?note=
|
407
|
+
['[M=,alias:明=ja:明治]6.01.01', '@CR', '1873-01-01^Gregorian?note=Default'],
|
348
408
|
['[T=,alias:大=ja:大正]1.07.30', '@A', '1912-07-30'],
|
349
409
|
['[S=,alias:昭=ja:昭和]1.12.25', '@A', '1926-12-25'],
|
350
410
|
['[H=,alias:平=ja:平成]1.01.08', '@A', '1989-01-08']
|
@@ -379,7 +439,7 @@ module When
|
|
379
439
|
when /^today$/i ; today(options)
|
380
440
|
when /^now$/i ; now(options)
|
381
441
|
when /[\n\r]+/ ; when?(specification.split(/[\n\r]+/), options)
|
382
|
-
when String ; TM::TemporalPosition._instance(specification, options)
|
442
|
+
when String ; TM::TemporalPosition._instance(EncodingConversion.to_internal_encoding(specification), options)
|
383
443
|
when Numeric ; TM::JulianDate.new(+specification, TM::TemporalPosition._options(options))
|
384
444
|
else ; Calendar(options[:frame] || 'Gregorian').jul_trans(specification, options)
|
385
445
|
end
|
@@ -410,7 +470,13 @@ module When
|
|
410
470
|
options = TM::TemporalPosition._options(options)
|
411
471
|
options[:frame] ||= 'Gregorian'
|
412
472
|
options[:frame] = Resource(options[:frame], '_c:') if options[:frame].kind_of?(String)
|
413
|
-
|
473
|
+
case args[0]
|
474
|
+
when String
|
475
|
+
options[:era_name] = EncodingConversion.to_internal_encoding(args.shift)
|
476
|
+
when Array
|
477
|
+
options[:era_name] = args.shift
|
478
|
+
options[:era_name][0] = EncodingConversion.to_internal_encoding(options[:era_name][0])
|
479
|
+
end
|
414
480
|
|
415
481
|
# 時間位置の生成
|
416
482
|
date = Array.new(options[:frame].indices.length+1) {args.shift}
|
@@ -441,6 +507,9 @@ module When
|
|
441
507
|
return position
|
442
508
|
end
|
443
509
|
|
510
|
+
alias :tm_pos :TemporalPosition
|
511
|
+
module_function :tm_pos
|
512
|
+
|
444
513
|
# 指定日時に対応する When::TM::TemporalPosition の生成
|
445
514
|
# (When::TM::DateAndTime of specified Time)
|
446
515
|
#
|
@@ -549,12 +618,12 @@ module When
|
|
549
618
|
|
550
619
|
# When::CalendarNote の生成/参照
|
551
620
|
#
|
552
|
-
# @param [String]
|
621
|
+
# @param [String] note 暦注リストを表す文字列
|
553
622
|
#
|
554
|
-
# @return [When::CalendarNote]
|
623
|
+
# @return [When::CalendarNote] note に対応する When::CalendarNote オブジェクト
|
555
624
|
#
|
556
|
-
def CalendarNote(
|
557
|
-
Parts::Resource._instance(
|
625
|
+
def CalendarNote(note)
|
626
|
+
Parts::Resource._instance(note, '_n:')
|
558
627
|
end
|
559
628
|
|
560
629
|
# When::TM::CalendarEra の生成/参照
|
@@ -598,7 +667,7 @@ module When
|
|
598
667
|
def Clock(clock)
|
599
668
|
case clock
|
600
669
|
when Parts::Timezone::Base ; return clock
|
601
|
-
when 'Z', 0 ; return
|
670
|
+
when 'Z', 0 ; return UTC
|
602
671
|
when Numeric ; return Parts::Resource._instance("_tm:Clock?label=" + TM::Clock.to_hms(clock))
|
603
672
|
when /^#{CalendarTypes::TimeSystems}/ ; return Parts::Resource._instance('_c:' + clock)
|
604
673
|
when String ;
|
@@ -614,14 +683,6 @@ module When
|
|
614
683
|
Parts::Resource._instance(iri)
|
615
684
|
end
|
616
685
|
|
617
|
-
# When::CalendarTypes::UTC の生成/参照
|
618
|
-
#
|
619
|
-
# @return [When::CalendarTypes::UTC]
|
620
|
-
#
|
621
|
-
def utc
|
622
|
-
Parts::Resource._instance("_c:UTC")
|
623
|
-
end
|
624
|
-
|
625
686
|
# When::Coordinates::Spatial の生成/参照
|
626
687
|
#
|
627
688
|
# @overload Location(location)
|
@@ -722,6 +783,7 @@ module When
|
|
722
783
|
when Array ; BasicTypes::M17n.new(source, namespace, locale, options)
|
723
784
|
when BasicTypes::M17n ; source
|
724
785
|
when String
|
786
|
+
source = EncodingConversion.to_internal_encoding(source)
|
725
787
|
return self[$1] if source =~ /^\s*\[((\.{1,2}|::)+[^\]]+)\]/ && self.kind_of?(When::Parts::Resource)
|
726
788
|
return Parts::Resource[$1] if source =~ /^\s*\[::([^\]]+)\]/
|
727
789
|
BasicTypes::M17n.new(source, namespace, locale, options)
|
@@ -734,7 +796,7 @@ module When
|
|
734
796
|
# @param [String] title Wikipedia の項目名
|
735
797
|
# @param [Hash] options 以下の通り
|
736
798
|
# @option options [String] :locale Wikipedia の言語(デフォルト 'en' - 英語)
|
737
|
-
# @option options [Numeric, nil] :interval Wikipedia サイトへのアクセス制御(デフォルト When::
|
799
|
+
# @option options [Numeric, nil] :interval Wikipedia サイトへのアクセス制御(デフォルト When::Locale.wikipedia_interval)
|
738
800
|
# @option options [Object] :その他 キャッシュファイルへの追加書き出し要素
|
739
801
|
#
|
740
802
|
# @return [When::BasicTypes::M17n] 項目に対応する多言語対応文字列
|
@@ -744,9 +806,10 @@ module When
|
|
744
806
|
#
|
745
807
|
def Wikipedia(title, options={})
|
746
808
|
locale = options.delete(:locale) || 'en'
|
809
|
+
title = EncodingConversion.to_internal_encoding(title)
|
747
810
|
entry, query = title.split('?', 2)
|
748
811
|
url = "http://#{locale}.wikipedia.org/wiki/#{URI.encode(entry).gsub(' ', '_')}"
|
749
|
-
|
812
|
+
Locale.send(:wikipedia_object, url, options) unless options.empty?
|
750
813
|
url += '?' + query if query
|
751
814
|
object = Parts::Resource._instance(url)
|
752
815
|
object.kind_of?(BasicTypes::M17n) ? object : object.label
|
@@ -764,6 +827,24 @@ module When
|
|
764
827
|
end
|
765
828
|
alias :IRI :Resource
|
766
829
|
|
830
|
+
# When::Coordinates::Index の生成
|
831
|
+
#
|
832
|
+
# @overload Index(terms=nil, name='Month', options)
|
833
|
+
# @param [String] terms trunk の用語空間名
|
834
|
+
# @param [String] name trunk の要素配列名
|
835
|
+
# @param [Hash] options
|
836
|
+
# @option options [Array] :trunk 幹の要素(省略時は使用しない)
|
837
|
+
# @option options [Hash] :branch 枝の要素(省略時は使用しない)
|
838
|
+
# @option options [Integer] :unit 要素の数(省略時は不定)
|
839
|
+
# @option options [Integer] :base 要素の最初の添え字(0 or 1(デフォルト))
|
840
|
+
# @option options [Integer] :shift 幹の要素のローテート数(省略時はローテートしない)
|
841
|
+
#
|
842
|
+
# @return [When::Coordinates::Index]
|
843
|
+
#
|
844
|
+
def Index(*args)
|
845
|
+
Coordinates::Index.new(*args)
|
846
|
+
end
|
847
|
+
|
767
848
|
# When::Coordinates::Pair の生成
|
768
849
|
#
|
769
850
|
# @param [Numeric, String] trunk 幹の要素
|
@@ -775,4 +856,8 @@ module When
|
|
775
856
|
def Pair(trunk, branch=nil)
|
776
857
|
Coordinates::Pair._force_pair(trunk, branch)
|
777
858
|
end
|
859
|
+
|
860
|
+
# When 直下に定数として時法・暦法を定義する
|
861
|
+
_define_common_calendar_types
|
862
|
+
|
778
863
|
end
|