123456789_123456789_123456789_123456789_123456789_

Module: Timezone

Overview

Main entry point for all timezone related functionality.

Constant Summary

Class Method Summary

Class Method Details

.[](name) ⇒ Timezone::Zone, Timezone::NilZone

Retrieve a timezone by name.

Parameters:

  • name (String)

    the timezone name

Returns:

[ GitHub ]

  
# File 'lib/timezone.rb', line 23

def self.[](name)
  fetch(name) { ::Timezone::NilZone.new }
end

.fetch(name, default = :__block) {|name| ... } ⇒ Timezone::Zone, Object

Fetch a timezone by name.

Parameters:

  • name (String)

    the timezone name

  • default (defaults to: :__block)

    an object to return if timezone is not found

Yields:

  • the block to run if the timezone is not found

Yield Parameters:

  • name (String)

    the timezone name if the timezone is not found

Returns:

  • (Timezone::Zone)

    if the timezone is found

  • (Object)

    if the timezone is not found and a default value or block has been provided

Raises:

[ GitHub ]

  
# File 'lib/timezone.rb', line 42

def self.fetch(name, default = :__block, &block)
  return ::Timezone::Zone.new(name) if Loader.valid?(name)

  if block_given? && default != :__block
    warn('warning: block supersedes default value argument')
  end

  return block.call(name) if block_given?
  return default unless default == :__block

  raise ::Timezone::Error::InvalidZone
end

.lookup(lat, long, default = :__block) {|name| ... } ⇒ Timezone::Zone, Object

::Timezone::Lookup a timezone name by (lat, long) and then fetch the timezone object.

Parameters:

  • lat (Double)

    the latitude coordinate

  • long (Double)

    the longitude coordinate

  • default (defaults to: :__block)

    an optional object to return if the remote lookup succeeds but the timezone is not found

Yields:

  • the block to run if the remote lookup succeeds and the timezone is not found

Yield Parameters:

  • name (String)

    the timezone name if the remote lookup succeeds and the timezone is not found

Returns:

  • (Timezone::Zone)

    if the remote lookup succeeds and the timezone is found

  • (Object)

    if the remote lookup succeeds, the timezone is not found, and a default value or block has been provided

Raises:

[ GitHub ]

  
# File 'lib/timezone.rb', line 76

def self.lookup(lat, long, default = :__block, &block)
  fetch(::Timezone::Lookup.lookup.lookup(lat, long), default, &block)
end

.namesArray<String>

A list of all timezone names.

Returns:

  • (Array<String>)

    all the timezone names

[ GitHub ]

  
# File 'lib/timezone.rb', line 13

def self.names
  Loader.names
end