Class: Date

Inherits:
Object
  • Object
show all
Includes:
When::TM::TemporalPosition::Conversion
Defined in:
lib/when_exe/core/duration.rb,
lib/when_exe/core/extension.rb

Overview

Extensions to Date class

Instance Method Summary collapse

Methods included from When::TM::TemporalPosition::Conversion

#julian_date

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object

Note:

self で定義されていないメソッドは tm_position で変換して処理する

その他のメソッド



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/when_exe/core/extension.rb', line 88

def method_missing(name, *args, &block)
  return __method_missing(name, *args, &block) if When::Parts::MethodCash::Escape.key?(name)
  self.class.module_eval %Q{
    def #{name}(*args, &block)
      result = tm_position.send("#{name}", *args, &block)
      case result
      when When::TM::DateAndTime ; result.to_date_time
      when When::TM::CalDate     ; result.to_date
      else                       ; result
      end
    end
  } unless When::Parts::MethodCash.escape(name)
  result = tm_position.send(name, *args, &block)
  case result
  when When::TM::DateAndTime ; result.to_date_time
  when When::TM::CalDate     ; result.to_date
  else                       ; result
  end
end

Instance Method Details

#+(other) ⇒ Object



39
40
41
# File 'lib/when_exe/core/duration.rb', line 39

def +(other)
  other.kind_of?(When::TM::Duration) ? self + other.rational_duration : self._plus_(other)
end

#-(other) ⇒ Object



45
46
47
# File 'lib/when_exe/core/duration.rb', line 45

def -(other)
  other.kind_of?(When::TM::Duration) ? self - other.rational_duration : self._minus_(other)
end

#__method_missingObject



80
# File 'lib/when_exe/core/extension.rb', line 80

alias :__method_missing :method_missing

#_minus_Object



44
# File 'lib/when_exe/core/duration.rb', line 44

alias :_minus_ :-

#_plus_Object



38
# File 'lib/when_exe/core/duration.rb', line 38

alias :_plus_  :+

#tm_position(options = {}) ⇒ When::TM::CalDate, When::TM::DateAndTime Also known as: to_tm_position

Note:

暦法の指定がない場合、start メソッドの値によって Julian / Gregorian / Civil 暦法を選択する

対応する When::TM::CalDate or DateAndTime を生成

Parameters:

Returns:



73
74
75
76
# File 'lib/when_exe/core/extension.rb', line 73

def tm_position(options={})
  options[:frame] ||= When::CalendarTypes::Christian._default_start(self)
  super(options)
end