lib/worldwide/regions.rb in worldwide-0.3.0 vs lib/worldwide/regions.rb in worldwide-0.4.0
- old
+ new
@@ -14,11 +14,11 @@
extend Forwardable
def_delegators :instance, :all, :region_by_cldr_code, :region
end
def initialize
- @regions = RegionsLoader.new.load_regions
+ @regions, @regions_by_cldr_code, @regions_by_iso_code = RegionsLoader.new.load_regions
end
def all
@regions
end
@@ -27,20 +27,12 @@
unless exactly_one_present?(cldr, code, name)
raise ArgumentError, "Must specify exactly one of cldr:, code: or name:. (code: is preferred)"
end
result = if cldr
- search_code = cldr.to_s.upcase
-
- @regions.find do |r|
- r.send(:answers_to_cldr_code, search_code)
- end
+ @regions_by_cldr_code[cldr.to_s.upcase]
elsif code
- search_code = code.to_s.upcase
-
- @regions.find do |r|
- r.send(:answers_to_iso_code, search_code) || r.alpha_three == search_code || r.numeric_three == search_code
- end
+ @regions_by_iso_code[code.to_s.upcase]
else # search by name
search_name = name.upcase
@regions.find do |r|
r.legacy_name&.upcase == search_name || r.full_name&.upcase == search_name