Class: Country

Inherits:
Object
  • Object
show all
Defined in:
lib/countries.rb

Constant Summary collapse

Data =
YAML.load_file(File.join(File.dirname(__FILE__), 'data', 'countries.yaml')) || {}
Names =
Data.map {|k,v| [v['name'],k]}.sort
NameIndex =

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Country

Returns a new instance of Country.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/countries.rb', line 11

def initialize(data)
  @number = data['number']
  @alpha2 = data['alpha2']
  @alpha3 = data['alpha3']
  @name = data['name']
  @names = data['names']
  @latitude = data['latitude']
  @longitude = data['longitude']
  @region = data['region']
  @subregion = data['subregion']
  
  @country_code = data['e164_country_code']
  @national_destination_code_lengths = data['e164_national_destination_code_lengths']
  @national_number_lengths = data['e164_national_number_lengths']
  @international_prefix = data['e164_international_prefix']
  @national_prefix = data['e164_national_prefix']
end

Instance Attribute Details

#alpha2Object (readonly)

Returns the value of attribute alpha2.



8
9
10
# File 'lib/countries.rb', line 8

def alpha2
  @alpha2
end

#alpha3Object (readonly)

Returns the value of attribute alpha3.



8
9
10
# File 'lib/countries.rb', line 8

def alpha3
  @alpha3
end

#country_codeObject (readonly)

Returns the value of attribute country_code.



8
9
10
# File 'lib/countries.rb', line 8

def country_code
  @country_code
end

#international_prefixObject (readonly)

Returns the value of attribute international_prefix.



8
9
10
# File 'lib/countries.rb', line 8

def international_prefix
  @international_prefix
end

#latitudeObject (readonly)

Returns the value of attribute latitude.



8
9
10
# File 'lib/countries.rb', line 8

def latitude
  @latitude
end

#longitudeObject (readonly)

Returns the value of attribute longitude.



8
9
10
# File 'lib/countries.rb', line 8

def longitude
  @longitude
end

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/countries.rb', line 8

def name
  @name
end

#namesObject (readonly)

Returns the value of attribute names.



8
9
10
# File 'lib/countries.rb', line 8

def names
  @names
end

#national_destination_code_lengthsObject (readonly)

Returns the value of attribute national_destination_code_lengths.



8
9
10
# File 'lib/countries.rb', line 8

def national_destination_code_lengths
  @national_destination_code_lengths
end

#national_number_lengthsObject (readonly)

Returns the value of attribute national_number_lengths.



8
9
10
# File 'lib/countries.rb', line 8

def national_number_lengths
  @national_number_lengths
end

#national_prefixObject (readonly)

Returns the value of attribute national_prefix.



8
9
10
# File 'lib/countries.rb', line 8

def national_prefix
  @national_prefix
end

#numberObject (readonly)

Returns the value of attribute number.



8
9
10
# File 'lib/countries.rb', line 8

def number
  @number
end

#regionObject (readonly)

Returns the value of attribute region.



8
9
10
# File 'lib/countries.rb', line 8

def region
  @region
end

#subregionObject (readonly)

Returns the value of attribute subregion.



8
9
10
# File 'lib/countries.rb', line 8

def subregion
  @subregion
end

Class Method Details

.[](query) ⇒ Object



33
34
35
# File 'lib/countries.rb', line 33

def self.[](query)
  self.search(query)
end

.search(query) ⇒ Object



29
30
31
# File 'lib/countries.rb', line 29

def self.search(query)
  Country.new(Data[query])
end

Instance Method Details

#subdivisionsObject



37
38
39
# File 'lib/countries.rb', line 37

def subdivisions
  @subdivisions ||= subdivisions? ? YAML.load_file(File.join(File.dirname(__FILE__), 'data', 'subdivisions', "#{alpha2}.yaml")) : {}
end

#subdivisions?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/countries.rb', line 41

def subdivisions?
  File.exist?(File.join(File.dirname(__FILE__), 'data', 'subdivisions', "#{alpha2}.yaml"))
end