Class: When::TM::Coordinate

Inherits:
TemporalPosition show all
Defined in:
lib/when_exe/tmposition.rb

Overview

時間座標 - 単一の時間間隔によって定義する連続な間隔尺度を基礎とする

see gml schema

Direct Known Subclasses

JulianDate

Constant Summary

Constants inherited from TemporalPosition

TemporalPosition::AMPM, TemporalPosition::Format, TemporalPosition::HashProperty

Constants included from Coordinates

Coordinates::Bahai, Coordinates::CommonResidue, Coordinates::DefaultDateIndices, Coordinates::DefaultDayIndex, Coordinates::DefaultTimeIndices, Coordinates::IndianCities, Coordinates::Javanese, Coordinates::MATCH, Coordinates::Mayan, Coordinates::PERIOD, Coordinates::PERIOD_NAME, Coordinates::PRECISION, Coordinates::PRECISION_NAME, Coordinates::Tibetan, Coordinates::VALUE, Coordinates::Yi

Constants included from When

CENTURY, DAY, DECADE, DurationP1D, DurationP1M, DurationP1W, DurationP1Y, EUCJP, HOUR, MINUTE, MONTH, MinusInfinity, PlusInfinity, SECOND, STRING, SYSTEM, SourceURI, When::TimeValue, UTF8, VERSION, W31J, WEEK, YEAR

Constants included from Parts::Resource

Parts::Resource::LabelProperty

Constants included from IndeterminateValue

IndeterminateValue::After, IndeterminateValue::Before, IndeterminateValue::I, IndeterminateValue::Max, IndeterminateValue::Min, IndeterminateValue::Now, IndeterminateValue::S, IndeterminateValue::Unknown

Instance Attribute Summary collapse

Attributes inherited from TemporalPosition

#events, #frame, #indeterminated_position, #location, #options, #precision, #query, #trans

Attributes included from Parts::Resource

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

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TemporalPosition

#[email protected], #<=>, #==, #[], #^, #_attr, _instance, #_notes, _options, _setup_, #_to_h, #_to_s, _verify, #calendar_name, #clock_name, #copy, #dynamical_time, #floor, #has_next?, #has_time?, #include?, #is?, #month_included, #note?, #notes, #period, #prev, #rate_of_clock, #reference_label, #scan, #strftime, #succ, #term, #time_standard, #to_clock_time, #to_date, #to_date_time, #to_date_uri, #to_f, #to_i, #to_m17n, #to_residue, #to_s, #to_time, #to_uri, #week_included, #year_included

Methods included from Coordinates

to_deg, to_dms

Methods included from When

Calendar, CalendarEra, CalendarNote, Clock, Duration, M17n, MonthName, Pair, Residue, Resource, TemporalPosition, _setup_, at, client, config, era, free_conv, m17n, now, server, today, utc, when?

Methods included from TemporalPosition::Conversion

#julian_date, #tm_position

Methods included from Parts::Resource

#[], #^, _decode, _encode, _extract_prefix, _instance, _parse, _path_with_prefix, _replace_tags, _setup_, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?

Methods included from Parts::Resource::Pool

#[], #[]=, #_pool, #_setup_, #pool_keys

Methods included from Parts::Resource::Synchronize

#synchronize

Constructor Details

#initialize(universal_time, options = {}) ⇒ Coordinate

オブジェクトの生成

Options Hash (options):


1150
1151
1152
1153
# File 'lib/when_exe/tmposition.rb', line 1150

def initialize(universal_time, options={})
  super(options)
  @universal_time = universal_time
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::TM::TemporalPosition

Instance Attribute Details

#universal_timeNumeric Also known as: coordinateValue

内部時間による時間座標値


1108
1109
1110
# File 'lib/when_exe/tmposition.rb', line 1108

def universal_time
  @universal_time
end

Class Method Details

.dynamical_time(dynamical_time, options = {}) ⇒ When::TM::Coordinate

外部時間によるオブジェクトの生成

Options Hash (options):


1050
1051
1052
# File 'lib/when_exe/tmposition.rb', line 1050

def dynamical_time(dynamical_time, options={})
  universal_time(When.Resource(options[:time_standard] || 'UniversalTime', '_t:').from_dynamical_time(dynamical_time), options)
end

.new(time, options = {}) ⇒ When::TM::Coordinate

他種の時間位置によるオブジェクトの生成

Options Hash (options):

Raises:

  • (TypeError)

1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
# File 'lib/when_exe/tmposition.rb', line 1064

def new(time, options={})
  options         = options.dup
  options[:frame] = Clock.get_clock_option(options)
  case time
  when Numeric
    options[:frame] ||= When.utc unless time.kind_of?(Integer)
    universal_time     = (2*time - (2*JulianDate::JD19700101-1)) * Duration::DAY.to_i / 2.0
  when ClockTime
    options[:frame] ||= time.clock
    universal_time     = time.clk_time[0] + time.universal_time
  when ::Time
    options[:frame] ||= When.Clock(time.gmtoff)
    universal_time     = When.Resource('_t:UniversalTime').from_time_object(time)
  when TimeValue
    options[:frame] ||= time.clock
    universal_time     = time.universal_time
  else
    if ::Object.const_defined?(:Date) && time.respond_to?(:ajd)
      case time
      when ::DateTime
        options[:frame] ||= When.Clock((time.offset * 86400).to_i)
        universal_time    = (2*time.ajd - (2*JulianDate::JD19700101-1)) * Duration::DAY.to_i / 2.0
      when ::Date
        universal_time    = JulianDate._d_to_t(time.jd)
      end
    end
  end
  raise TypeError, "Can't create #{self} from #{time.class}" unless universal_time
  universal_time(universal_time, options)
end

.universal_timeObject

内部時間によるオブジェクトの生成


1039
# File 'lib/when_exe/tmposition.rb', line 1039

alias :universal_time :new

Instance Method Details

#+(other) ⇒ When::TM::TemporalPosition

加算


1126
1127
1128
1129
# File 'lib/when_exe/tmposition.rb', line 1126

def +(other)
  other = other.to_interval_length if other.kind_of?(PeriodDuration)
  super(other)
end

#-(other) ⇒ When::TM::TemporalPosition, When::TM::IntervalLength

減算


1138
1139
1140
1141
# File 'lib/when_exe/tmposition.rb', line 1138

def -(other)
  other = other.to_interval_length if other.kind_of?(PeriodDuration)
  super(other)
end