Class: Icalendar::Timezone
- Defined in:
- lib/icalendar/component/timezone.rb
Overview
A Timezone is unambiguously defined by the set of time measurement rules determined by the governing body for a given geographic area. These rules describe at a minimum the base offset from UTC for the time zone, often referred to as the Standard Time offset. Many locations adjust their Standard Time forward or backward by one hour, in order to accommodate seasonal changes in number of daylight hours, often referred to as Daylight Saving Time. Some locations adjust their time by a fraction of an hour. Standard Time is also known as Winter Time. Daylight Saving Time is also known as Advanced Time, Summer Time, or Legal Time in certain countries. The following table shows the changes in time zone rules in effect for New York City starting from 1967. Each line represents a description or rule for a particular observance.
Instance Attribute Summary
Attributes inherited from Component
Instance Method Summary collapse
-
#add_component(component) ⇒ Object
Define a custom add component method because standard and daylight are the only components that can occur just once with their parent.
- #daylight(&block) ⇒ Object
-
#initialize(name = "VTIMEZONE") ⇒ Timezone
constructor
A new instance of Timezone.
-
#standard(&block) ⇒ Object
Allow block syntax for declaration of standard and daylight components of timezone.
-
#to_ical ⇒ Object
Also need a custom to_ical because typically it iterates over an array of components.
Methods inherited from Component
#add_sliced_text, #custom_property, #escape_chars, #multi_property?, #multiline_property?, #new_uid, #print_component, #print_parameters, #print_properties, #remove_component, #respond_to?
Methods inherited from Base
Constructor Details
#initialize(name = "VTIMEZONE") ⇒ Timezone
Returns a new instance of Timezone.
61 62 63 |
# File 'lib/icalendar/component/timezone.rb', line 61 def initialize(name = "VTIMEZONE") super(name) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Icalendar::Component
Instance Method Details
#add_component(component) ⇒ Object
Define a custom add component method because standard and daylight are the only components that can occur just once with their parent.
43 44 45 46 |
# File 'lib/icalendar/component/timezone.rb', line 43 def add_component(component) key = component.class.to_s.downcase.gsub('icalendar::','').to_sym @components[key] = component end |
#daylight(&block) ⇒ Object
75 76 77 78 79 80 81 82 |
# File 'lib/icalendar/component/timezone.rb', line 75 def daylight(&block) e = Daylight.new self.add_component e e.instance_eval(&block) if block e end |
#standard(&block) ⇒ Object
Allow block syntax for declaration of standard and daylight components of timezone
66 67 68 69 70 71 72 73 |
# File 'lib/icalendar/component/timezone.rb', line 66 def standard(&block) e = Standard.new self.add_component e e.instance_eval(&block) if block e end |
#to_ical ⇒ Object
Also need a custom to_ical because typically it iterates over an array of components.
50 51 52 53 54 55 56 57 58 |
# File 'lib/icalendar/component/timezone.rb', line 50 def to_ical print_component do s = "" @components.each_value do |comp| s << comp.to_ical end s end end |