File: active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: TZInfo#25
  class: InfoTimezone#28
inherits from
  Timezone ( TZInfo )
has properties
class method: new / 1 #31
method: identifier #38
method: info #44
method: setup / 1 #48

Class Hierarchy

Object ( Builtin-Module )
Timezone ( TZInfo )
  InfoTimezone    #28

Code

   1  #--
   2  # Copyright (c) 2006 Philip Ross
   3  # 
   4  # Permission is hereby granted, free of charge, to any person obtaining a copy
   5  # of this software and associated documentation files (the "Software"), to deal
   6  # in the Software without restriction, including without limitation the rights
   7  # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   8  # copies of the Software, and to permit persons to whom the Software is
   9  # furnished to do so, subject to the following conditions:
  10  # 
  11  # The above copyright notice and this permission notice shall be included in all
  12  # copies or substantial portions of the Software.
  13  #
  14  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20  # THE SOFTWARE.
  21  #++
  22 
  23  require 'tzinfo/timezone'
  24 
  25  module TZInfo
  26 
  27    # A Timezone based on a TimezoneInfo.
  28    class InfoTimezone < Timezone #:nodoc:
  29      
  30      # Constructs a new InfoTimezone with a TimezoneInfo instance.
  31      def self.new(info)      
  32        tz = super()
  33        tz.send(:setup, info)
  34        tz
  35      end
  36      
  37      # The identifier of the timezone, e.g. "Europe/Paris".
  38      def identifier
  39        @info.identifier
  40      end
  41      
  42      protected
  43        # The TimezoneInfo for this Timezone.
  44        def info
  45          @info
  46        end
  47            
  48        def setup(info)
  49          @info = info
  50        end
  51    end    
  52  end