Class: When::Coordinates::Border

Inherits:
BasicTypes::Object show all
Defined in:
lib/when_exe/coordinates.rb

Overview

日時要素の境界 - Border

Direct Known Subclasses

CalendarBorder, DayBorder, Easter, MultiBorder

Constant Summary

Constants included from Parts::Resource

Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty

Instance Attribute Summary

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#_pool, #child, #keys, #locale, #namespace

Instance Method Summary collapse

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

#synchronize

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::Parts::Resource

Instance Method Details

#_adjust_epoch(date, frame = nil) ⇒ Array<Numeric>

境界の正規化

Parameters:

Returns:



2233
2234
2235
2236
2237
2238
2239
2240
# File 'lib/when_exe/coordinates.rb', line 2233

def _adjust_epoch(date, frame=nil)
  s_date  = date.dup
  e_date  = border([+date[0]], frame)
  branch  = behavior * 0
  branch += 1 if (s_date[1..-1] <=> e_date[1..-1]) < 0
  s_date[0] = When::Coordinates::Pair.new(+s_date[0]-branch, branch)
  return s_date
end

#_date_adjust(source) ⇒ Object

日付の補正



2244
2245
2246
# File 'lib/when_exe/coordinates.rb', line 2244

def _date_adjust(source)
  source
end

#behaviorNumeric

境界の振舞

Returns:

  • (Numeric)

    Pair(-1,+1) - 暦年/暦日が進む(境界が前年/日にあり、境界後が当年/日の扱いになる)

    Pair( 0, 0) - 暦年/暦日が戻る(境界が当年/日にあり、境界前が前年/日の扱いになる)



2206
2207
2208
# File 'lib/when_exe/coordinates.rb', line 2206

def behavior
  @border[0]
end

#border(date = [], frame = nil) ⇒ Array<Numeric>

境界の取得

Parameters:

Returns:



2217
2218
2219
2220
2221
2222
2223
2224
# File 'lib/when_exe/coordinates.rb', line 2217

def border(date=[], frame=nil)
  last = date.length-1
  return @border if last<0
  b_date = date[0..last] + @border[(last+1)..-1]
  branch = @border[last] * 0
  b_date[last] = When::Coordinates::Pair.new(date[last] * 1, branch)
  return b_date
end