class SwissMatch::Cantons
Represents a collection of swiss cantons and provides a query interface.
Public Class Methods
@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
@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
@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
@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
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
@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
@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
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
@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
@return [Integer] The number of SwissMatch::Canton
objects in this collection.
# File lib/swissmatch/cantons.rb, line 105 def size @cantons.size end
@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
@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
@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