class SwissMatch::Cantons

Represents a collection of swiss cantons and provides a query interface.

Public Class Methods

new(cantons) click to toggle source

@param [Array<SwissMatch::Canton>] cantons

The SwissMatch::Canton objects this SwissMatch::Cantons should contain
# File lib/swissmatch/cantons.rb, line 17
def initialize(cantons)
  @cantons        = cantons
  @by_license_tag = {}
  @by_name        = {}

  cantons.each do |canton|
    @by_license_tag[canton.license_tag] = canton
    canton.names.each do |name|
      @by_name[name] = canton
    end
  end
end

Public Instance Methods

[](key) click to toggle source

@return [SwissMatch::Canton]

The canton with the given license tag or name (in any language)
# File lib/swissmatch/cantons.rb, line 88
def [](key)
  @by_license_tag[key] || @by_name[key]
end
by_license_tag(tag) click to toggle source

@return [SwissMatch::Canton]

The canton with the given license tag.
# File lib/swissmatch/cantons.rb, line 94
def by_license_tag(tag)
  @by_license_tag[tag]
end
by_name(name) click to toggle source

@return [SwissMatch::Canton]

The canton with the given name (any language)
# File lib/swissmatch/cantons.rb, line 100
def by_name(name)
  @by_name[name]
end
each(&block) click to toggle source

Calls the block once for every SwissMatch::Canton in this SwissMatch::Cantons instance, passing that canton as a parameter. The order is the same as the instance was constructed.

@yield [canton] @yieldparam [SwissMatch::Canton] canton

@return [self] Returns self

# File lib/swissmatch/cantons.rb, line 38
def each(&block)
  @cantons.each(&block)
  self
end
inspect() click to toggle source

@private @see Object#inspect

# File lib/swissmatch/cantons.rb, line 117
def inspect
  sprintf "\#<%s:%x size: %d>", self.class, object_id>>1, size
end
reject(*args, &block) click to toggle source

@return [SwissMatch::Cantons]

A SwissMatch::Cantons collection with all SwissMatch::Canton objects for which the block
returned false (or a falseish value)
# File lib/swissmatch/cantons.rb, line 66
def reject(*args, &block)
  Cantons.new(@cantons.reject(*args, &block))
end
reverse_each(&block) click to toggle source

Calls the block once for every SwissMatch::Canton in this SwissMatch::Cantons instance, passing that canton as a parameter. The order is the reverse of what the instance was constructed.

@yield [canton] @yieldparam [SwissMatch::Canton] canton

@return [self] Returns self

# File lib/swissmatch/cantons.rb, line 51
def reverse_each(&block)
  @cantons.reverse_each(&block)
  self
end
select(*args, &block) click to toggle source

@return [SwissMatch::Cantons]

A SwissMatch::Cantons collection with all SwissMatch::Canton objects for which the block
returned true (or a trueish value)
# File lib/swissmatch/cantons.rb, line 59
def select(*args, &block)
  Cantons.new(@cantons.select(*args, &block))
end
size() click to toggle source

@return [Integer] The number of SwissMatch::Canton objects in this collection.

# File lib/swissmatch/cantons.rb, line 105
def size
  @cantons.size
end
sort(*args, &block) click to toggle source

@see Enumerable#sort

@return [SwissMatch::Cantons]

A SwissMatch::Cantons collection sorted by the block
# File lib/swissmatch/cantons.rb, line 74
def sort(*args, &block)
  Cantons.new(@cantons.sort(*args, &block))
end
sort_by(*args, &block) click to toggle source

@see Enumerable#sort_by

@return [SwissMatch::Cantons]

A SwissMatch::Cantons collection sorted by the block
# File lib/swissmatch/cantons.rb, line 82
def sort_by(*args, &block)
  Cantons.new(@cantons.sort_by(*args, &block))
end
to_a() click to toggle source

@return [Array<SwissMatch::Canton>]

An Array with all SwissMatch::Canton objects in this SwissMatch::Cantons.
# File lib/swissmatch/cantons.rb, line 111
def to_a
  @cantons.dup
end