diff --git a/lib/cldr/export/data.rb b/lib/cldr/export/data.rb index 1a2571d4..4c0a632a 100644 --- a/lib/cldr/export/data.rb +++ b/lib/cldr/export/data.rb @@ -19,6 +19,7 @@ module Data autoload :Layout, "cldr/export/data/layout" autoload :LikelySubtags, "cldr/export/data/likely_subtags" autoload :Lists, "cldr/export/data/lists" + autoload :LocaleDisplayPattern, "cldr/export/data/locale_display_pattern" autoload :Metazones, "cldr/export/data/metazones" autoload :NumberingSystems, "cldr/export/data/numbering_systems" autoload :Numbers, "cldr/export/data/numbers" diff --git a/lib/cldr/export/data/locale_display_pattern.rb b/lib/cldr/export/data/locale_display_pattern.rb new file mode 100644 index 00000000..94595637 --- /dev/null +++ b/lib/cldr/export/data/locale_display_pattern.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Cldr + module Export + module Data + class LocaleDisplayPattern < Base + def initialize(locale) + super + update(locale_display_pattern: locale_display_pattern) + end + + private + + def locale_display_pattern + @locale_display_pattern ||= select("localeDisplayNames/localeDisplayPattern/*").each_with_object({}) do |node, result| + result[node.name.underscore] = node.content + end + end + end + end + end +end diff --git a/test/export/data/locale_display_pattern_test.rb b/test/export/data/locale_display_pattern_test.rb new file mode 100644 index 00000000..664f4e68 --- /dev/null +++ b/test/export/data/locale_display_pattern_test.rb @@ -0,0 +1,18 @@ +# encoding: utf-8 +# frozen_string_literal: true + +require File.expand_path(File.join(File.dirname(__FILE__) + "/../../test_helper")) + +class TestLocaleDisplayPattern < Test::Unit::TestCase + test "locale_display_pattern :de" do + expected = { + "locale_key_type_pattern" => "{0}: {1}", + "locale_pattern" => "{0} ({1})", + "locale_separator" => "{0}, {1}", + } + + actual = Cldr::Export::Data::LocaleDisplayPattern.new(:de)[:locale_display_pattern] + + assert_equal expected, actual + end +end