class Geonames::Data::Feature

Public Class Methods

field(name) { |data| ... } click to toggle source
# File lib/geonames/data/feature.rb, line 6
def self.field(name)
  @fields ||= []
  index = @fields.size
  @fields << name
  if block_given?
    define_method name do
      yield(@data[index])
    end
  else
    define_method name do
      @data[index]
    end
  end
end
load(filepath) { |feature| ... } click to toggle source
# File lib/geonames/data/feature.rb, line 49
def self.load(filepath, &filter)
  Pathname.new(filepath).open("r").inject([]) do |features, line|
    feature = Feature.new(line.strip.split("\t"))
    features.push(feature) if !block_given? || yield(feature)
    features
  end
end
new(data) click to toggle source
# File lib/geonames/data/feature.rb, line 41
def initialize(data)
  @data = data.dup
end

Public Instance Methods

names() click to toggle source
# File lib/geonames/data/feature.rb, line 45
def names
  @names ||= [ name, ascii_name, *alternate_names ]
end