when_exe 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|