Class: When::CalendarTypes::Yerm
- Inherits:
-
CyclicTableBased
- Object
- BasicTypes::Object
- TM::Object
- TM::ReferenceSystem
- TM::Calendar
- TableBased
- CyclicTableBased
- When::CalendarTypes::Yerm
- Defined in:
- lib/when_exe/region/yerm.rb
Overview
Yerm Lunar Calendar
Constant Summary
Constants included from When::Coordinates
When::Coordinates::Bahai, When::Coordinates::Common, When::Coordinates::DefaultDateIndices, When::Coordinates::DefaultDayIndex, When::Coordinates::DefaultTimeIndices, When::Coordinates::Indian, When::Coordinates::Iranian, When::Coordinates::Javanese, When::Coordinates::MATCH, When::Coordinates::Mayan, When::Coordinates::PERIOD, When::Coordinates::PERIOD_NAME, When::Coordinates::PRECISION, When::Coordinates::PRECISION_NAME, When::Coordinates::Tibetan, When::Coordinates::VALUE, When::Coordinates::Yi
Constants included from Parts::Resource
Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty
Instance Attribute Summary
Attributes inherited from TM::Calendar
Attributes included from TimeStandard::TimeBasis
Attributes inherited from TM::ReferenceSystem
#domain_of_validity, #position
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Class Method Summary collapse
-
.parse(source, abbr = nil) ⇒ String
Analyze notation with crescent.
Methods inherited from CyclicTableBased
Methods inherited from TableBased
#_coordinates_to_number, #_length, #_number_to_coordinates
Methods inherited from TM::Calendar
#_new_month_, _setup_, #_to_month_number_, #date_trans, #jul_trans, #rate_of_clock, #strftime, #time_standard, #to_cal_date, #to_julian_date, #to_universal_time
Methods included from TimeStandard::TimeBasis
Methods included from When::Coordinates
Methods inherited from TM::ReferenceSystem
Methods included from Parts::Resource
#[], #^, _abbreviation_to_iri, _decode, _encode, _extract_prefix, _instance, _instantiate, _parse, _path_with_prefix, _replace_tags, _setup_, _setup_info, _simplify_path, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?, root_dir
Methods included from Parts::Resource::Pool
#[], #[]=, #_pool, #_setup_, #pool_keys
Methods included from Parts::Resource::Synchronize
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Parts::Resource
Class Method Details
.parse(source, abbr = nil) ⇒ String
Analyze notation with crescent
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/when_exe/region/yerm.rb', line 46 def self.parse(source, abbr=nil) c, y, m, d = abbr || (When::Yerm^When.today).cal_date case source when /\A(-?\d+)[-\(](\d+)\((\d+)\((\d+)\z/; c, y, m, d = [$1, $2, $3, $4] when /\A(-?\d+)-(\d+)\((\d+)\z/ ; c, y, m, d = [$1, $2, $3 ] when /\A(-?\d+)-(\d+)\z/ ; c, y, m, d = [$1, $2 ] when /\A(-?\d+)-\z/ ; c, y, m, d = [$1 ] when /\A(\d+)\((\d+)\((\d+)\z/ ; y, m, d = [ $1, $2, $3] when /\A(\d+)\((\d+)\z/ ; m, d = [ $1, $2] when /\A(\d+)\z/ ; d = $1 when /\A(\d+)\)(\d+)\)(\d+)[-\)](-?\d+)\z/; c, y, m, d = [$4, $3, $2, $1] when /\A(\d+)\)(\d+)-(-?\d+)\z/ ; c, y, m, d = [$3, $2, $1 ] when /\A(\d+)-(-\d+)\z/ ; c, y, m, d = [$2, $1 ] when /\A(-\d+)\z/ ; c, y, m, d = [$1 ] when /\A(\d+)\)(\d+)\)(\d+)\z/ ; y, m, d = [ $3, $2, $1] when /\A(\d+)\)(\d+)\z/ ; m, d = [ $2, $1] else ; c, y, m, d = [ ] end ordered = [c, y, m, d] ordered.pop until ordered.last raise ArgumentError, "can't parse #{source}" if ordered.empty? || ordered.include?(nil) ordered.map {|n| n.to_s}.join('-') end |