ruby-cldr 0.1.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +53 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +56 -46
- data/README.textile +8 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/cldr/download.rb +1 -1
- data/lib/cldr/export.rb +74 -16
- data/lib/cldr/export/data.rb +34 -21
- data/lib/cldr/export/data/aliases.rb +47 -0
- data/lib/cldr/export/data/base.rb +4 -0
- data/lib/cldr/export/data/characters.rb +30 -0
- data/lib/cldr/export/data/country_codes.rb +29 -0
- data/lib/cldr/export/data/currencies.rb +13 -3
- data/lib/cldr/export/data/fields.rb +60 -0
- data/lib/cldr/export/data/languages.rb +1 -1
- data/lib/cldr/export/data/likely_subtags.rb +29 -0
- data/lib/cldr/export/data/numbers.rb +48 -6
- data/lib/cldr/export/data/parent_locales.rb +23 -0
- data/lib/cldr/export/data/plural_rules.rb +70 -0
- data/lib/cldr/export/data/plurals/rules.rb +12 -1
- data/lib/cldr/export/data/rbnf.rb +12 -4
- data/lib/cldr/export/data/region_currencies.rb +45 -0
- data/lib/cldr/export/data/segments_root.rb +61 -0
- data/lib/cldr/export/data/subdivisions.rb +35 -0
- data/lib/cldr/export/data/territories.rb +1 -1
- data/lib/cldr/export/data/territories_containment.rb +30 -0
- data/lib/cldr/export/data/timezones.rb +18 -2
- data/lib/cldr/export/data/transforms.rb +76 -0
- data/lib/cldr/export/data/variables.rb +42 -0
- data/lib/cldr/export/yaml.rb +5 -21
- data/lib/cldr/thor.rb +2 -2
- data/ruby-cldr.gemspec +157 -0
- data/test/export/data/calendars_test.rb +102 -52
- data/test/export/data/country_codes_test.rb +21 -0
- data/test/export/data/currencies_test.rb +40 -26
- data/test/export/data/languages_test.rb +69 -51
- data/test/export/data/numbers_test.rb +61 -62
- data/test/export/data/plurals_test.rb +10 -3
- data/test/export/data/subdivisions_test.rb +33 -0
- data/test/export/data/territories_containment_test.rb +10 -0
- data/test/export/data/territories_test.rb +12 -5
- data/test/export/data/timezones_test.rb +5 -8
- data/test/export_test.rb +57 -5
- data/test/format/time_test.rb +5 -5
- metadata +51 -33
@@ -30,13 +30,13 @@ module Cldr
|
|
30
30
|
:type => ruleset_node.attribute("type").value,
|
31
31
|
:rules => (ruleset_node / "rbnfrule").map do |rule_node|
|
32
32
|
radix = if radix_attr = rule_node.attribute("radix")
|
33
|
-
radix_attr.value
|
33
|
+
cast_value(radix_attr.value)
|
34
34
|
else
|
35
35
|
nil
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
attrs = {
|
39
|
-
:value => rule_node.attribute("value").value,
|
39
|
+
:value => cast_value(rule_node.attribute("value").value),
|
40
40
|
:rule => fix_rule(rule_node.text)
|
41
41
|
}
|
42
42
|
|
@@ -50,6 +50,14 @@ module Cldr
|
|
50
50
|
attrs
|
51
51
|
end
|
52
52
|
|
53
|
+
def cast_value(val)
|
54
|
+
if val =~ /\A[\d]+\z/
|
55
|
+
val.to_i
|
56
|
+
else
|
57
|
+
val
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
53
61
|
def fix_rule(rule)
|
54
62
|
rule.gsub(/\A'/, '').gsub("←", '<').gsub("→", '>')
|
55
63
|
end
|
@@ -61,4 +69,4 @@ module Cldr
|
|
61
69
|
end
|
62
70
|
end
|
63
71
|
end
|
64
|
-
end
|
72
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Cldr
|
2
|
+
module Export
|
3
|
+
module Data
|
4
|
+
class RegionCurrencies < Base
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
super(nil)
|
8
|
+
update(:region_currencies => currencies)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def currencies
|
14
|
+
doc.xpath('//currencyData/region').inject({}) do |ret, region|
|
15
|
+
name = region.attribute('iso3166').value
|
16
|
+
ret[name] = currency(region)
|
17
|
+
ret
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def currency(node)
|
22
|
+
(node / 'currency').map do |currency|
|
23
|
+
currency_code = currency.attribute('iso4217').value
|
24
|
+
result = { currency: currency_code }
|
25
|
+
|
26
|
+
if from_node = currency.attribute('from')
|
27
|
+
result[:from] = from_node.value
|
28
|
+
end
|
29
|
+
|
30
|
+
if to_node = currency.attribute('to')
|
31
|
+
result[:to] = to_node.value
|
32
|
+
end
|
33
|
+
|
34
|
+
result
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def path
|
39
|
+
@path ||= "#{Cldr::Export::Data.dir}/supplemental/supplementalData.xml"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Cldr
|
2
|
+
module Export
|
3
|
+
module Data
|
4
|
+
class SegmentsRoot < Base
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
super(nil)
|
8
|
+
update(:segments => segmentations)
|
9
|
+
end
|
10
|
+
|
11
|
+
def segmentations
|
12
|
+
doc.xpath("ldml/segmentations/segmentation").inject({}) do |ret, seg|
|
13
|
+
type = seg.attribute("type").value
|
14
|
+
ret[type] = segmentation(seg)
|
15
|
+
ret
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def segmentation(node)
|
20
|
+
{
|
21
|
+
:variables => variables(node),
|
22
|
+
:rules => rules(node)
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def variables(node)
|
27
|
+
(node / "variables" / "variable").map do |variable|
|
28
|
+
{
|
29
|
+
:id => cast_value(variable.attribute("id").value),
|
30
|
+
:value => variable.text
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def rules(node)
|
36
|
+
(node / "segmentRules" / "rule").map do |rule|
|
37
|
+
{
|
38
|
+
:id => cast_value(rule.attribute("id").value),
|
39
|
+
:value => rule.text
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def path
|
45
|
+
@path ||= "#{Cldr::Export::Data.dir}/segments/root.xml"
|
46
|
+
end
|
47
|
+
|
48
|
+
def cast_value(value)
|
49
|
+
if value =~ /\A[\d]+\z/
|
50
|
+
value.to_i
|
51
|
+
elsif value =~ /\A[\d.]+\z/
|
52
|
+
value.to_f
|
53
|
+
else
|
54
|
+
value
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Cldr
|
2
|
+
module Export
|
3
|
+
module Data
|
4
|
+
class Subdivisions < Base
|
5
|
+
|
6
|
+
def initialize(locale)
|
7
|
+
super
|
8
|
+
update(:subdivisions => subdivisions)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def subdivisions
|
14
|
+
@subdivisions ||= select('localeDisplayNames/subdivisions/subdivision').inject({}) do |result, node|
|
15
|
+
result[node.attribute('type').value.to_sym] = node.content unless draft?(node) or alt?(node)
|
16
|
+
result
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def doc
|
21
|
+
begin
|
22
|
+
super
|
23
|
+
rescue Errno::ENOENT
|
24
|
+
@doc = Nokogiri::XML('')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def path
|
29
|
+
@path ||= "#{Cldr::Export::Data.dir}/subdivisions/#{locale.to_s.gsub('-', '_')}.xml"
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -9,7 +9,7 @@ module Cldr
|
|
9
9
|
|
10
10
|
def territories
|
11
11
|
@territories ||= select('localeDisplayNames/territories/territory').inject({}) do |result, node|
|
12
|
-
result[node.attribute('type').value.to_sym] = node.content unless draft?(node)
|
12
|
+
result[node.attribute('type').value.to_sym] = node.content unless draft?(node) or alt?(node)
|
13
13
|
result
|
14
14
|
end
|
15
15
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Cldr
|
2
|
+
module Export
|
3
|
+
module Data
|
4
|
+
class TerritoriesContainment < Base
|
5
|
+
def initialize(*)
|
6
|
+
super(nil)
|
7
|
+
update(:territories => territories)
|
8
|
+
end
|
9
|
+
|
10
|
+
def territories
|
11
|
+
@territories ||= doc.xpath('supplementalData/territoryContainment/group').inject(
|
12
|
+
Hash.new { |h, k| h[k] = { :contains => [] } }
|
13
|
+
) do |memo, territory|
|
14
|
+
territory_id = territory.attribute('type').value
|
15
|
+
children = territory.attribute('contains').value.split(' ')
|
16
|
+
|
17
|
+
memo[territory_id][:contains].concat(children)
|
18
|
+
memo[territory_id][:contains].sort!
|
19
|
+
|
20
|
+
memo
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def path
|
25
|
+
@path ||= "#{Cldr::Export::Data.dir}/supplemental/supplementalData.xml"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -6,7 +6,23 @@ module Cldr
|
|
6
6
|
class Timezones < Base
|
7
7
|
def initialize(locale)
|
8
8
|
super
|
9
|
-
|
9
|
+
|
10
|
+
update(
|
11
|
+
:formats => formats,
|
12
|
+
:timezones => timezones,
|
13
|
+
:metazones => metazones
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
def formats
|
18
|
+
@formats ||= select('dates/timeZoneNames/*').inject({}) do |result, format|
|
19
|
+
if format.name.end_with?('Format')
|
20
|
+
underscored_name = format.name.gsub(/([a-z])([A-Z])/, '\1_\2').downcase
|
21
|
+
result[underscored_name] = format.text
|
22
|
+
end
|
23
|
+
|
24
|
+
result
|
25
|
+
end
|
10
26
|
end
|
11
27
|
|
12
28
|
def timezones
|
@@ -47,4 +63,4 @@ module Cldr
|
|
47
63
|
end
|
48
64
|
end
|
49
65
|
end
|
50
|
-
end
|
66
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module Cldr
|
4
|
+
module Export
|
5
|
+
module Data
|
6
|
+
class Transforms < Base
|
7
|
+
|
8
|
+
attr_reader :transform_file
|
9
|
+
|
10
|
+
def initialize(transform_file)
|
11
|
+
super(nil) # no locale
|
12
|
+
@transform_file = transform_file
|
13
|
+
update(:transforms => transforms)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def transforms
|
19
|
+
doc.xpath("supplementalData/transforms/transform").map do |transform_node|
|
20
|
+
{
|
21
|
+
:source => transform_node.attribute("source").value,
|
22
|
+
:target => transform_node.attribute("target").value,
|
23
|
+
:variant => get_variant(transform_node),
|
24
|
+
:direction => transform_node.attribute("direction").value,
|
25
|
+
:rules => rules(transform_node)
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_variant(node)
|
31
|
+
if attrib = node.attribute("variant")
|
32
|
+
attrib.value
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def rules(transform_node)
|
37
|
+
rules = fix_rule_wrapping(
|
38
|
+
doc.xpath("#{transform_node.path}/tRule").flat_map do |rule_node|
|
39
|
+
fix_rule(rule_node.content).split("\n").map(&:strip)
|
40
|
+
end
|
41
|
+
)
|
42
|
+
|
43
|
+
rules.reject do |rule|
|
44
|
+
rule.strip.empty? || rule.strip.start_with?('#')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def fix_rule_wrapping(rules)
|
49
|
+
wrap = false
|
50
|
+
|
51
|
+
rules.each_with_object([]) do |rule, ret|
|
52
|
+
if wrap
|
53
|
+
ret.last.sub!(/\\\z/, rule)
|
54
|
+
else
|
55
|
+
ret << rule
|
56
|
+
end
|
57
|
+
|
58
|
+
wrap = rule.end_with?('\\')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def fix_rule(rule)
|
63
|
+
rule.
|
64
|
+
gsub("←", '<').
|
65
|
+
gsub("→", '>').
|
66
|
+
gsub("↔", '<>')
|
67
|
+
end
|
68
|
+
|
69
|
+
def path
|
70
|
+
transform_file
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Cldr
|
2
|
+
module Export
|
3
|
+
module Data
|
4
|
+
class Variables < Base
|
5
|
+
|
6
|
+
# only these variables will be exported
|
7
|
+
VARIABLE_IDS = %w($grandfathered $language $territory $script $variant)
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
super(nil)
|
11
|
+
update(:variables => variables)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def variables
|
17
|
+
doc.xpath('//validity/variable').inject({}) do |ret, variable|
|
18
|
+
name = variable.attribute('id').value
|
19
|
+
if VARIABLE_IDS.include?(name)
|
20
|
+
ret[fix_var_name(name)] = split_value_list(variable.text)
|
21
|
+
end
|
22
|
+
ret
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def fix_var_name(var_name)
|
27
|
+
# remove leading dollar sign
|
28
|
+
var_name.sub(/\A\$/, '')
|
29
|
+
end
|
30
|
+
|
31
|
+
def split_value_list(value_list)
|
32
|
+
value_list.strip.split(/[\s]+/)
|
33
|
+
end
|
34
|
+
|
35
|
+
def path
|
36
|
+
@path ||= "#{Cldr::Export::Data.dir}/supplemental/supplementalMetadata.xml"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/cldr/export/yaml.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
|
-
require '
|
1
|
+
require 'yaml'
|
2
2
|
|
3
3
|
module Cldr
|
4
4
|
module Export
|
5
|
-
class Yaml
|
6
|
-
def initialize
|
7
|
-
super(:syck_compatible => true)
|
8
|
-
end
|
5
|
+
class Yaml
|
9
6
|
|
10
7
|
def export(locale, component, options = {})
|
11
8
|
data = Export.data(component, locale, options)
|
@@ -19,22 +16,9 @@ module Cldr
|
|
19
16
|
end
|
20
17
|
end
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
def emit(object, level = 1)
|
27
|
-
result = object.is_a?(Symbol) ? object.inspect : super
|
28
|
-
result.gsub(/(\s{1})(no):/i) { %(#{$1}"#{$2}":) } # FIXME fucking spaghetti code
|
29
|
-
end
|
30
|
-
|
31
|
-
def is_one_plain_line?(str)
|
32
|
-
# removed REX_BOOL, REX_INT
|
33
|
-
str !~ /^([\-\?:,\[\]\{\}\#&\*!\|>'"%@`\s]|---|\.\.\.)/ &&
|
34
|
-
str !~ /[:\#\s\[\]\{\},]/ &&
|
35
|
-
str !~ /#{REX_ANY_LB}/ &&
|
36
|
-
str !~ /^(#{REX_FLOAT}|#{REX_MERGE}|#{REX_NULL}|#{REX_TIMESTAMP}|#{REX_VALUE})$/x
|
37
|
-
end
|
19
|
+
def yaml(data)
|
20
|
+
data.to_yaml
|
21
|
+
end
|
38
22
|
end
|
39
23
|
end
|
40
24
|
end
|
data/lib/cldr/thor.rb
CHANGED
@@ -5,7 +5,7 @@ module Cldr
|
|
5
5
|
class Thor < ::Thor
|
6
6
|
namespace 'cldr'
|
7
7
|
|
8
|
-
desc "download [--source=http://unicode.org/Public/cldr/
|
8
|
+
desc "download [--source=http://unicode.org/Public/cldr/26/core.zip] [--target=./vendor]",
|
9
9
|
"Download and extract CLDR data from source to target dir"
|
10
10
|
method_options %w(source -s) => :string,
|
11
11
|
%w(target -t) => :string
|
@@ -27,7 +27,7 @@ module Cldr
|
|
27
27
|
Cldr::Export.export(options.dup.symbolize_keys) { putc '.' }
|
28
28
|
puts
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
# TODO flatten task, e.g. flatten all plural locale files into one big file
|
32
32
|
end
|
33
33
|
end
|
data/ruby-cldr.gemspec
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: ruby-cldr 0.2.0 ruby lib
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = "ruby-cldr".freeze
|
9
|
+
s.version = "0.5.0"
|
10
|
+
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["Sven Fuchs".freeze]
|
14
|
+
s.date = "2019-03-21"
|
15
|
+
s.description = "Ruby library for exporting and using data from CLDR, see http://cldr.unicode.org".freeze
|
16
|
+
s.email = "svenfuchs@artweb-design.de".freeze
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.textile",
|
20
|
+
"TODO"
|
21
|
+
]
|
22
|
+
s.files = [
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE",
|
26
|
+
"README.textile",
|
27
|
+
"Rakefile",
|
28
|
+
"TODO",
|
29
|
+
"VERSION",
|
30
|
+
"cldr.thor",
|
31
|
+
"lib/cldr.rb",
|
32
|
+
"lib/cldr/data.rb",
|
33
|
+
"lib/cldr/download.rb",
|
34
|
+
"lib/cldr/export.rb",
|
35
|
+
"lib/cldr/export/code.rb",
|
36
|
+
"lib/cldr/export/code/numbers.rb",
|
37
|
+
"lib/cldr/export/data.rb",
|
38
|
+
"lib/cldr/export/data/aliases.rb",
|
39
|
+
"lib/cldr/export/data/base.rb",
|
40
|
+
"lib/cldr/export/data/calendars.rb",
|
41
|
+
"lib/cldr/export/data/calendars/gregorian.rb",
|
42
|
+
"lib/cldr/export/data/characters.rb",
|
43
|
+
"lib/cldr/export/data/currencies.rb",
|
44
|
+
"lib/cldr/export/data/currency_digits_and_rounding.rb",
|
45
|
+
"lib/cldr/export/data/delimiters.rb",
|
46
|
+
"lib/cldr/export/data/fields.rb",
|
47
|
+
"lib/cldr/export/data/languages.rb",
|
48
|
+
"lib/cldr/export/data/layout.rb",
|
49
|
+
"lib/cldr/export/data/likely_subtags.rb",
|
50
|
+
"lib/cldr/export/data/lists.rb",
|
51
|
+
"lib/cldr/export/data/metazones.rb",
|
52
|
+
"lib/cldr/export/data/numbering_systems.rb",
|
53
|
+
"lib/cldr/export/data/numbers.rb",
|
54
|
+
"lib/cldr/export/data/parent_locales.rb",
|
55
|
+
"lib/cldr/export/data/plural_rules.rb",
|
56
|
+
"lib/cldr/export/data/plurals.rb",
|
57
|
+
"lib/cldr/export/data/plurals/cldr_grammar.treetop",
|
58
|
+
"lib/cldr/export/data/plurals/grammar.rb",
|
59
|
+
"lib/cldr/export/data/plurals/rules.rb",
|
60
|
+
"lib/cldr/export/data/rbnf.rb",
|
61
|
+
"lib/cldr/export/data/rbnf_root.rb",
|
62
|
+
"lib/cldr/export/data/region_currencies.rb",
|
63
|
+
"lib/cldr/export/data/segments_root.rb",
|
64
|
+
"lib/cldr/export/data/territories.rb",
|
65
|
+
"lib/cldr/export/data/territories_containment.rb",
|
66
|
+
"lib/cldr/export/data/timezones.rb",
|
67
|
+
"lib/cldr/export/data/transforms.rb",
|
68
|
+
"lib/cldr/export/data/units.rb",
|
69
|
+
"lib/cldr/export/data/variables.rb",
|
70
|
+
"lib/cldr/export/data/windows_zones.rb",
|
71
|
+
"lib/cldr/export/ruby.rb",
|
72
|
+
"lib/cldr/export/yaml.rb",
|
73
|
+
"lib/cldr/format.rb",
|
74
|
+
"lib/cldr/format/currency.rb",
|
75
|
+
"lib/cldr/format/date.rb",
|
76
|
+
"lib/cldr/format/datetime.rb",
|
77
|
+
"lib/cldr/format/datetime/base.rb",
|
78
|
+
"lib/cldr/format/decimal.rb",
|
79
|
+
"lib/cldr/format/decimal/base.rb",
|
80
|
+
"lib/cldr/format/decimal/fraction.rb",
|
81
|
+
"lib/cldr/format/decimal/integer.rb",
|
82
|
+
"lib/cldr/format/decimal/number.rb",
|
83
|
+
"lib/cldr/format/percent.rb",
|
84
|
+
"lib/cldr/format/time.rb",
|
85
|
+
"lib/cldr/thor.rb",
|
86
|
+
"lib/core_ext/hash/deep_merge.rb",
|
87
|
+
"lib/core_ext/hash/deep_stringify_keys.rb",
|
88
|
+
"lib/core_ext/hash/symbolize_keys.rb",
|
89
|
+
"lib/core_ext/string/camelize.rb",
|
90
|
+
"lib/core_ext/string/underscore.rb",
|
91
|
+
"test/all.rb",
|
92
|
+
"test/export/code/numbers_test.rb",
|
93
|
+
"test/export/data/all.rb",
|
94
|
+
"test/export/data/calendars_test.rb",
|
95
|
+
"test/export/data/currencies_test.rb",
|
96
|
+
"test/export/data/delimiters_test.rb",
|
97
|
+
"test/export/data/languages_test.rb",
|
98
|
+
"test/export/data/metazones_test.rb",
|
99
|
+
"test/export/data/numbers_test.rb",
|
100
|
+
"test/export/data/plurals_test.rb",
|
101
|
+
"test/export/data/territories_containment_test.rb",
|
102
|
+
"test/export/data/territories_test.rb",
|
103
|
+
"test/export/data/timezones_test.rb",
|
104
|
+
"test/export/data/units_test.rb",
|
105
|
+
"test/export/data/windows_zones_test.rb",
|
106
|
+
"test/export_test.rb",
|
107
|
+
"test/format/all.rb",
|
108
|
+
"test/format/currency_test.rb",
|
109
|
+
"test/format/date_test.rb",
|
110
|
+
"test/format/datetime_test.rb",
|
111
|
+
"test/format/decimal/fraction_test.rb",
|
112
|
+
"test/format/decimal/integer_test.rb",
|
113
|
+
"test/format/decimal/number_test.rb",
|
114
|
+
"test/format/decimal_test.rb",
|
115
|
+
"test/format/percent_test.rb",
|
116
|
+
"test/format/time_test.rb",
|
117
|
+
"test/test_autotest.rb",
|
118
|
+
"test/test_helper.rb"
|
119
|
+
]
|
120
|
+
s.homepage = "http://github.com/ruby-i18n/ruby-cldr".freeze
|
121
|
+
s.rubygems_version = "2.7.9".freeze
|
122
|
+
s.summary = "Ruby library for exporting and using data from CLDR".freeze
|
123
|
+
|
124
|
+
if s.respond_to? :specification_version then
|
125
|
+
s.specification_version = 4
|
126
|
+
|
127
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
128
|
+
s.add_runtime_dependency(%q<thor>.freeze, [">= 0"])
|
129
|
+
s.add_runtime_dependency(%q<i18n>.freeze, [">= 0"])
|
130
|
+
s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 0"])
|
131
|
+
s.add_development_dependency(%q<rubyzip>.freeze, [">= 0"])
|
132
|
+
s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
|
133
|
+
s.add_development_dependency(%q<pry>.freeze, [">= 0"])
|
134
|
+
s.add_development_dependency(%q<pry-nav>.freeze, [">= 0"])
|
135
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
|
136
|
+
else
|
137
|
+
s.add_dependency(%q<thor>.freeze, [">= 0"])
|
138
|
+
s.add_dependency(%q<i18n>.freeze, [">= 0"])
|
139
|
+
s.add_dependency(%q<nokogiri>.freeze, [">= 0"])
|
140
|
+
s.add_dependency(%q<rubyzip>.freeze, [">= 0"])
|
141
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
142
|
+
s.add_dependency(%q<pry>.freeze, [">= 0"])
|
143
|
+
s.add_dependency(%q<pry-nav>.freeze, [">= 0"])
|
144
|
+
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
145
|
+
end
|
146
|
+
else
|
147
|
+
s.add_dependency(%q<thor>.freeze, [">= 0"])
|
148
|
+
s.add_dependency(%q<i18n>.freeze, [">= 0"])
|
149
|
+
s.add_dependency(%q<nokogiri>.freeze, [">= 0"])
|
150
|
+
s.add_dependency(%q<rubyzip>.freeze, [">= 0"])
|
151
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
152
|
+
s.add_dependency(%q<pry>.freeze, [">= 0"])
|
153
|
+
s.add_dependency(%q<pry-nav>.freeze, [">= 0"])
|
154
|
+
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|