Method: When::TM::CalendarEra._instance
- Defined in:
- lib/when_exe/tmreference.rb
._instance(key, epoch = nil, reverse = nil, options = {}) ⇒ Object
Note:
検索用のインデクスはインスタンスの生成時に作成する。作成後にキーワードとなる年号(M17nクラス)にローケールが追加されても反映されない。
When::TM::CalendarEra オブジェクトを検索し取得する
1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 |
# File 'lib/when_exe/tmreference.rb', line 1026 def _instance(*args) # パラメータ args = args.dup = (args[-1].kind_of?(Hash)) ? args.pop.dup : {} key, epoch, reverse = .delete(:label) || args key = When::Locale.ideographic_unification(key) if key.kind_of?(String) key.gsub!(When::Parts::Resource::IRIDecode) {|c| When::Parts::Resource::IRIDecodeTable[c]} key, *parents = key.split(/::/).reverse else parents = [] end area = .delete(:area) period = .delete(:period) count = .delete(:count) || 1 # 候補 _setup_ unless @_pool pool = _candidates(, area, period, key, epoch, false) + _candidates(, area, period, key, reverse, true) _compact(pool, parents) return pool unless pool.size < count order = @order if /\?.+?=/ =~ parents[-1] begin head = When.CalendarEra(parents[-1]) order = order.dup.unshift(head) rescue end end order.each do |iri| When.CalendarEra(iri) pool = _candidates(, area, period, key, epoch, false) + _candidates(, area, period, key, reverse, true) _compact(pool, parents) return pool unless pool.size < count end return [] end |