lib/uncharted/country.rb in uncharted-0.0.10 vs lib/uncharted/country.rb in uncharted-0.0.11

- old
+ new

@@ -19,10 +19,14 @@ def name(options = {}) I18n.t("countries.#{@alpha2}", {locale: options[:locale] || I18n.locale, default: @name}) end + def names + @names ||= Country.split_name(@name) + end + def to_s @alpha2 end def self.count @@ -33,20 +37,40 @@ case objects when Array objects.collect {|c| data[c]} when Country objects - else - data[objects] + else # code + code = objects.to_s + code.upcase! + data[code] end end + + def self.find_by_name(name) + closest = [nil, 0] + @data.each do |code, country| + return country if country.name == name + intersection = country.names & Country.split_name(name) + size = intersection.size + return country if size == country.names.size + closest = [country, size] if closest.last < size + end + return closest.first + end def self.countries @data.values end def self.data @data ||= {} + end + + def self.split_name(name) + name = I18n.transliterate(name) + name.downcase! + name.split end end end \ No newline at end of file