ruby-cldr 0.0.1 → 0.0.2

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.
Files changed (97) hide show
  1. data/Gemfile +7 -0
  2. data/Gemfile.lock +23 -0
  3. data/README.textile +9 -6
  4. data/VERSION +1 -1
  5. data/lib/cldr.rb +1 -1
  6. data/lib/cldr/data.rb +9 -29
  7. data/lib/cldr/download.rb +2 -2
  8. data/lib/cldr/export.rb +8 -2
  9. data/lib/cldr/export/code.rb +34 -0
  10. data/lib/cldr/export/code/numbers.rb +29 -0
  11. data/lib/cldr/export/data.rb +36 -0
  12. data/lib/cldr/export/data/base.rb +61 -0
  13. data/lib/cldr/export/data/calendars.rb +14 -0
  14. data/lib/cldr/export/data/calendars/gregorian.rb +142 -0
  15. data/lib/cldr/export/data/currencies.rb +28 -0
  16. data/lib/cldr/export/data/delimiters.rb +29 -0
  17. data/lib/cldr/export/data/languages.rb +19 -0
  18. data/lib/cldr/export/data/numbers.rb +67 -0
  19. data/lib/cldr/export/data/plurals.rb +41 -0
  20. data/lib/cldr/{data → export/data}/plurals/cldr_grammar.treetop +0 -0
  21. data/lib/cldr/export/data/plurals/grammar.rb +538 -0
  22. data/lib/cldr/export/data/plurals/rules.rb +119 -0
  23. data/lib/cldr/export/data/territories.rb +19 -0
  24. data/lib/cldr/export/data/timezones.rb +27 -0
  25. data/lib/cldr/export/data/units.rb +29 -0
  26. data/lib/cldr/export/ruby.rb +1 -1
  27. data/lib/cldr/export/yaml.rb +1 -1
  28. data/lib/cldr/format.rb +1 -97
  29. data/lib/cldr/format/currency.rb +1 -1
  30. data/lib/cldr/format/date.rb +1 -1
  31. data/lib/cldr/format/datetime.rb +14 -18
  32. data/lib/cldr/format/datetime/base.rb +1 -1
  33. data/lib/cldr/format/decimal.rb +1 -1
  34. data/lib/cldr/format/decimal/base.rb +1 -1
  35. data/lib/cldr/format/decimal/fraction.rb +1 -1
  36. data/lib/cldr/format/decimal/integer.rb +1 -1
  37. data/lib/cldr/format/decimal/number.rb +1 -1
  38. data/lib/cldr/format/percent.rb +1 -1
  39. data/lib/cldr/format/time.rb +1 -1
  40. data/lib/cldr/thor.rb +3 -3
  41. data/test/all.rb +1 -1
  42. data/test/export/code/numbers_test.rb +11 -0
  43. data/test/{data → export/data}/all.rb +1 -1
  44. data/test/{data → export/data}/calendars_test.rb +18 -18
  45. data/test/{data → export/data}/currencies_test.rb +6 -6
  46. data/test/{data → export/data}/delimiters_test.rb +6 -6
  47. data/test/{data → export/data}/languages_test.rb +6 -6
  48. data/test/{data → export/data}/numbers_test.rb +8 -8
  49. data/test/export/data/plurals_test.rb +141 -0
  50. data/test/{data → export/data}/territories_test.rb +6 -6
  51. data/test/{data → export/data}/timezones_test.rb +6 -6
  52. data/test/{data → export/data}/units_test.rb +6 -6
  53. data/test/export_test.rb +8 -8
  54. data/test/{formats → format}/all.rb +1 -1
  55. data/test/format/currency_test.rb +0 -0
  56. data/test/format/date_test.rb +265 -0
  57. data/test/format/datetime_test.rb +18 -0
  58. data/test/{formats → format}/decimal/fraction_test.rb +4 -4
  59. data/test/{formats → format}/decimal/integer_test.rb +17 -17
  60. data/test/{formats → format}/decimal/number_test.rb +19 -19
  61. data/test/{formats → format}/decimal_test.rb +5 -5
  62. data/test/format/percent_test.rb +0 -0
  63. data/test/format/time_test.rb +195 -0
  64. data/test/test_autotest.rb +36 -0
  65. data/test/test_helper.rb +16 -1
  66. metadata +124 -114
  67. data/lib/cldr/data/base.rb +0 -66
  68. data/lib/cldr/data/calendars.rb +0 -12
  69. data/lib/cldr/data/calendars/gregorian.rb +0 -124
  70. data/lib/cldr/data/currencies.rb +0 -26
  71. data/lib/cldr/data/delimiters.rb +0 -21
  72. data/lib/cldr/data/languages.rb +0 -17
  73. data/lib/cldr/data/numbers.rb +0 -60
  74. data/lib/cldr/data/plurals.rb +0 -39
  75. data/lib/cldr/data/plurals/grammar.rb +0 -536
  76. data/lib/cldr/data/plurals/rules.rb +0 -113
  77. data/lib/cldr/data/territories.rb +0 -17
  78. data/lib/cldr/data/timezones.rb +0 -25
  79. data/lib/cldr/data/units.rb +0 -25
  80. data/test/data/plurals_test.rb +0 -132
  81. data/test/formats/datetime/all.rb +0 -3
  82. data/test/formats/datetime/date_test.rb +0 -31
  83. data/test/formats/datetime/datetime_test.rb +0 -18
  84. data/test/formats/datetime/day_test.rb +0 -41
  85. data/test/formats/datetime/hour_test.rb +0 -79
  86. data/test/formats/datetime/minute_test.rb +0 -25
  87. data/test/formats/datetime/month_test.rb +0 -76
  88. data/test/formats/datetime/period_test.rb +0 -20
  89. data/test/formats/datetime/quarter_test.rb +0 -118
  90. data/test/formats/datetime/second_test.rb +0 -80
  91. data/test/formats/datetime/time_test.rb +0 -33
  92. data/test/formats/datetime/timezone_test.rb +0 -23
  93. data/test/formats/datetime/year_test.rb +0 -57
  94. data/test/formats/format_test.rb +0 -66
  95. data/test/formats/rails_compat/all.rb +0 -3
  96. data/test/formats/rails_compat/format_integer_test.rb +0 -56
  97. data/test/formats/rails_compat/format_number_test.rb +0 -134
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
- require File.dirname(__FILE__) + '/../test_helper.rb'
3
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'))
4
4
 
5
5
  class TestCldrDataTimezones < Test::Unit::TestCase
6
- define_method 'test: timezones :de' do
6
+ test 'timezones :de' do
7
7
  codes = [:"Etc/Unknown", :"Europe/Tirane", :"Asia/Yerevan",
8
8
  :"America/Curacao", :"Antarctica/South_Pole",
9
9
  :"Antarctica/Vostok", :"Antarctica/DumontDUrville",
@@ -35,15 +35,15 @@ class TestCldrDataTimezones < Test::Unit::TestCase
35
35
  :"America/Indiana/Knox", :"Asia/Tashkent", :"America/St_Vincent",
36
36
  :"America/St_Thomas"]
37
37
 
38
- timezones = Cldr::Data::Timezones.new(:de)[:timezones]
38
+ timezones = Cldr::Export::Data::Timezones.new(:de)[:timezones]
39
39
  assert (timezones.keys - codes).empty? && (codes - timezones.keys).empty?
40
40
  assert_equal({ :city => 'Wien' }, timezones[:"Europe/Vienna"])
41
41
  end
42
42
 
43
- # Cldr::Data.locales.each do |locale|
44
- # define_method "test: extract timezones for #{locale}" do
43
+ # Cldr::Export::Data.locales.each do |locale|
44
+ # test "extract timezones for #{locale}" do
45
45
  # assert_nothing_raised do
46
- # Cldr::Data::Timezones.new(locale)
46
+ # Cldr::Export::Data::Timezones.new(locale)
47
47
  # end
48
48
  # end
49
49
  # end
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
- require File.dirname(__FILE__) + '/../test_helper.rb'
3
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'))
4
4
 
5
5
  class TestCldrDataUnits < Test::Unit::TestCase
6
- define_method 'test: units' do
6
+ test 'units' do
7
7
  units = {
8
8
  :day => { :one => "{0} Tag", :other => "{0} Tage" },
9
9
  :week => { :one => "{0} Woche", :other => "{0} Wochen" },
@@ -14,7 +14,7 @@ class TestCldrDataUnits < Test::Unit::TestCase
14
14
  :second => { :one => "{0} Sek.", :other => "{0} Sek." }
15
15
  }
16
16
  keys = %w(day week month year hour minute second).sort
17
- data = Cldr::Data::Units.new('de')[:units]
17
+ data = Cldr::Export::Data::Units.new('de')[:units]
18
18
 
19
19
  assert_equal keys, data.keys.map { |key| key.to_s }.sort
20
20
  assert_equal units[:day], data[:day]
@@ -26,10 +26,10 @@ class TestCldrDataUnits < Test::Unit::TestCase
26
26
  assert_equal units[:second], data[:second]
27
27
  end
28
28
 
29
- # Cldr::Data.locales.each do |locale|
30
- # define_method "test: extract units for #{locale}" do
29
+ # Cldr::Export::Data.locales.each do |locale|
30
+ # test "extract units for #{locale}" do
31
31
  # assert_nothing_raised do
32
- # Cldr::Data::Units.new(locale)
32
+ # Cldr::Export::Data::Units.new(locale)
33
33
  # end
34
34
  # end
35
35
  # end
data/test/export_test.rb CHANGED
@@ -18,7 +18,7 @@ class TestExtract < Test::Unit::TestCase
18
18
  File.expand_path(File.dirname(__FILE__) + '/tmp')
19
19
  end
20
20
 
21
- define_method 'test: passing the merge option generates and merge data for all fallback locales' do
21
+ test 'passing the merge option generates and merge data for all fallback locales' do
22
22
  data = Cldr::Export.data('numbers', 'de-AT')
23
23
  assert !data[:numbers][:formats][:nan]
24
24
 
@@ -26,30 +26,30 @@ class TestExtract < Test::Unit::TestCase
26
26
  assert_equal 'NaN', data[:numbers][:symbols][:nan]
27
27
  end
28
28
 
29
- define_method "test: exports data to files" do
29
+ test "exports data to files" do
30
30
  Cldr::Export.export(:locales => %w(de), :components => %w(calendars))
31
31
  assert File.exists?(Cldr::Export.path('de', 'calendars', 'yml'))
32
32
  end
33
33
 
34
- define_method "test: exported data starts with the locale at top level" do
34
+ test "exported data starts with the locale at top level" do
35
35
  Cldr::Export.export(:locales => %w(de), :components => %w(calendars))
36
36
  data = YAML.load(File.open(Cldr::Export.path('de', 'calendars', 'yml')))
37
37
  assert data['de']
38
38
  end
39
39
 
40
- define_method "test: writes dot-separated symbols to yaml" do
40
+ test "writes dot-separated symbols to yaml" do
41
41
  data = { :format => { :narrow => :"calendars.gregorian.months.stand-alone.narrow" } }
42
42
  yaml = %(\nformat: \n narrow: :"calendars.gregorian.months.stand-alone.narrow")
43
43
 
44
44
  assert_equal yaml, Cldr::Export::Yaml.new.emit(data.deep_stringify_keys)
45
45
  end
46
46
 
47
- # Cldr::Data.locales.each do |locale|
48
- # Cldr::Data.components.each do |component|
49
- # define_method "test: exported yaml file yaml for #{locale}/#{component} readable" do
47
+ # Cldr::Export::Data.locales.each do |locale|
48
+ # Cldr::Export::Data.components.each do |component|
49
+ # test "exported yaml file yaml for #{locale}/#{component} readable" do
50
50
  # Cldr::Export.export(:locales => [locale], :components => [component])
51
51
  # assert_nothing_raised do
52
- # YAML.load(File.open(Cldr::Data::Export.path(locale, component))) rescue Errno::ENOENT
52
+ # YAML.load(File.open(Cldr::Export::Data::Export.path(locale, component))) rescue Errno::ENOENT
53
53
  # end
54
54
  # end
55
55
  # end
@@ -1,3 +1,3 @@
1
1
  Dir["#{File.dirname(__FILE__)}/**/*_test.rb"].each do |filename|
2
- require filename
2
+ require File.expand_path(filename)
3
3
  end
File without changes
@@ -0,0 +1,265 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../test_helper'))
4
+ require 'date'
5
+
6
+ class TestCldrDateFormat < Test::Unit::TestCase
7
+ def setup
8
+ @locale = :de
9
+ @calendar = Cldr::Export::Data::Calendars.new(@locale)[:calendars][:gregorian]
10
+ end
11
+
12
+ def format(object, pattern)
13
+ Cldr::Format::Date.new(pattern, @calendar).apply(object)
14
+ end
15
+
16
+ test "full date pattern :de" do
17
+ assert_equal 'Montag, 11. Januar 2010', format(Date.new(2010, 1, 11), 'EEEE, d. MMMM y')
18
+ end
19
+
20
+ # FORMATS
21
+
22
+ test "long date pattern :de" do
23
+ assert_equal '11. Januar 2010', format(Date.new(2010, 1, 11), 'd. MMMM y')
24
+ end
25
+
26
+ test "medium date pattern :de" do
27
+ assert_equal '11.01.2010', format(Date.new(2010, 1, 11), 'dd.MM.yyyy')
28
+ end
29
+
30
+ test "short date pattern :de" do
31
+ assert_equal '11.01.10', format(Date.new(2010, 1, 11), 'dd.MM.yy')
32
+ end
33
+
34
+ # YEAR
35
+
36
+ test "pattern y" do
37
+ assert_equal '5', format(Date.new( 5, 1, 1), 'y')
38
+ assert_equal '45', format(Date.new( 45, 1, 1), 'y')
39
+ assert_equal '345', format(Date.new( 345, 1, 1), 'y')
40
+ assert_equal '2345', format(Date.new( 2345, 1, 1), 'y')
41
+ assert_equal '12345', format(Date.new(12345, 1, 1), 'y')
42
+ end
43
+
44
+ test "pattern yy" do
45
+ assert_equal '05', format(Date.new( 5, 1, 1), 'yy')
46
+ assert_equal '45', format(Date.new( 45, 1, 1), 'yy')
47
+ assert_equal '45', format(Date.new( 345, 1, 1), 'yy')
48
+ assert_equal '45', format(Date.new( 2345, 1, 1), 'yy')
49
+ assert_equal '45', format(Date.new(12345, 1, 1), 'yy')
50
+ end
51
+
52
+ test "pattern yyy" do
53
+ assert_equal '005', format(Date.new( 5, 1, 1), 'yyy')
54
+ assert_equal '045', format(Date.new( 45, 1, 1), 'yyy')
55
+ assert_equal '345', format(Date.new( 345, 1, 1), 'yyy')
56
+ assert_equal '2345', format(Date.new( 2345, 1, 1), 'yyy')
57
+ assert_equal '12345', format(Date.new(12345, 1, 1), 'yyy')
58
+ end
59
+
60
+ test "pattern yyyy" do
61
+ assert_equal '0005', format(Date.new( 5, 1, 1), 'yyyy')
62
+ assert_equal '0045', format(Date.new( 45, 1, 1), 'yyyy')
63
+ assert_equal '0345', format(Date.new( 345, 1, 1), 'yyyy')
64
+ assert_equal '2345', format(Date.new( 2345, 1, 1), 'yyyy')
65
+ assert_equal '12345', format(Date.new(12345, 1, 1), 'yyyy')
66
+ end
67
+
68
+ test "pattern yyyyy" do
69
+ assert_equal '00005', format(Date.new( 5, 1, 1), 'yyyyy')
70
+ assert_equal '00045', format(Date.new( 45, 1, 1), 'yyyyy')
71
+ assert_equal '00345', format(Date.new( 345, 1, 1), 'yyyyy')
72
+ assert_equal '02345', format(Date.new( 2345, 1, 1), 'yyyyy')
73
+ assert_equal '12345', format(Date.new(12345, 1, 1), 'yyyyy')
74
+ end
75
+
76
+ # QUARTER
77
+
78
+ test "pattern Q" do
79
+ assert_equal '1', format(Date.new(2010, 1, 1), 'Q')
80
+ assert_equal '1', format(Date.new(2010, 3, 31), 'Q')
81
+ assert_equal '2', format(Date.new(2010, 4, 1), 'Q')
82
+ assert_equal '2', format(Date.new(2010, 6, 30), 'Q')
83
+ assert_equal '3', format(Date.new(2010, 7, 1), 'Q')
84
+ assert_equal '3', format(Date.new(2010, 9, 30), 'Q')
85
+ assert_equal '4', format(Date.new(2010, 10, 1), 'Q')
86
+ assert_equal '4', format(Date.new(2010, 12, 31), 'Q')
87
+ end
88
+
89
+ test "pattern QQ" do
90
+ assert_equal '01', format(Date.new(2010, 1, 1), 'QQ')
91
+ assert_equal '01', format(Date.new(2010, 3, 31), 'QQ')
92
+ assert_equal '02', format(Date.new(2010, 4, 1), 'QQ')
93
+ assert_equal '02', format(Date.new(2010, 6, 30), 'QQ')
94
+ assert_equal '03', format(Date.new(2010, 7, 1), 'QQ')
95
+ assert_equal '03', format(Date.new(2010, 9, 30), 'QQ')
96
+ assert_equal '04', format(Date.new(2010, 10, 1), 'QQ')
97
+ assert_equal '04', format(Date.new(2010, 12, 31), 'QQ')
98
+ end
99
+
100
+ test "pattern QQQ" do
101
+ assert_equal 'Q1', format(Date.new(2010, 1, 1), 'QQQ')
102
+ assert_equal 'Q1', format(Date.new(2010, 3, 31), 'QQQ')
103
+ assert_equal 'Q2', format(Date.new(2010, 4, 1), 'QQQ')
104
+ assert_equal 'Q2', format(Date.new(2010, 6, 30), 'QQQ')
105
+ assert_equal 'Q3', format(Date.new(2010, 7, 1), 'QQQ')
106
+ assert_equal 'Q3', format(Date.new(2010, 9, 30), 'QQQ')
107
+ assert_equal 'Q4', format(Date.new(2010, 10, 1), 'QQQ')
108
+ assert_equal 'Q4', format(Date.new(2010, 12, 31), 'QQQ')
109
+ end
110
+
111
+ test "pattern QQQQ" do
112
+ assert_equal '1. Quartal', format(Date.new(2010, 1, 1), 'QQQQ')
113
+ assert_equal '1. Quartal', format(Date.new(2010, 3, 31), 'QQQQ')
114
+ assert_equal '2. Quartal', format(Date.new(2010, 4, 1), 'QQQQ')
115
+ assert_equal '2. Quartal', format(Date.new(2010, 6, 30), 'QQQQ')
116
+ assert_equal '3. Quartal', format(Date.new(2010, 7, 1), 'QQQQ')
117
+ assert_equal '3. Quartal', format(Date.new(2010, 9, 30), 'QQQQ')
118
+ assert_equal '4. Quartal', format(Date.new(2010, 10, 1), 'QQQQ')
119
+ assert_equal '4. Quartal', format(Date.new(2010, 12, 31), 'QQQQ')
120
+ end
121
+
122
+ test "pattern q" do
123
+ assert_equal '1', format(Date.new(2010, 1, 1), 'q')
124
+ assert_equal '1', format(Date.new(2010, 3, 31), 'q')
125
+ assert_equal '2', format(Date.new(2010, 4, 1), 'q')
126
+ assert_equal '2', format(Date.new(2010, 6, 30), 'q')
127
+ assert_equal '3', format(Date.new(2010, 7, 1), 'q')
128
+ assert_equal '3', format(Date.new(2010, 9, 30), 'q')
129
+ assert_equal '4', format(Date.new(2010, 10, 1), 'q')
130
+ assert_equal '4', format(Date.new(2010, 12, 31), 'q')
131
+ end
132
+
133
+ test "pattern qq" do
134
+ assert_equal '01', format(Date.new(2010, 1, 1), 'qq')
135
+ assert_equal '01', format(Date.new(2010, 3, 31), 'qq')
136
+ assert_equal '02', format(Date.new(2010, 4, 1), 'qq')
137
+ assert_equal '02', format(Date.new(2010, 6, 30), 'qq')
138
+ assert_equal '03', format(Date.new(2010, 7, 1), 'qq')
139
+ assert_equal '03', format(Date.new(2010, 9, 30), 'qq')
140
+ assert_equal '04', format(Date.new(2010, 10, 1), 'qq')
141
+ assert_equal '04', format(Date.new(2010, 12, 31), 'qq')
142
+ end
143
+
144
+ # requires "multiple inheritance"
145
+ #
146
+ # test "pattern qqq" do
147
+ # assert_equal 'Q1', format(Date.new(2010, 1, 1), 'qqq')
148
+ # assert_equal 'Q1', format(Date.new(2010, 3, 31), 'qqq')
149
+ # assert_equal 'Q2', format(Date.new(2010, 4, 1), 'qqq')
150
+ # assert_equal 'Q2', format(Date.new(2010, 6, 30), 'qqq')
151
+ # assert_equal 'Q3', format(Date.new(2010, 7, 1), 'qqq')
152
+ # assert_equal 'Q3', format(Date.new(2010, 9, 30), 'qqq')
153
+ # assert_equal 'Q4', format(Date.new(2010, 10, 1), 'qqq')
154
+ # assert_equal 'Q4', format(Date.new(2010, 12, 31), 'qqq')
155
+ # end
156
+ #
157
+ # test "pattern qqqq" do
158
+ # assert_equal '1. Quartal', format(Date.new(2010, 1, 1), 'qqqq')
159
+ # assert_equal '1. Quartal', format(Date.new(2010, 3, 31), 'qqqq')
160
+ # assert_equal '2. Quartal', format(Date.new(2010, 4, 1), 'qqqq')
161
+ # assert_equal '2. Quartal', format(Date.new(2010, 6, 30), 'qqqq')
162
+ # assert_equal '3. Quartal', format(Date.new(2010, 7, 1), 'qqqq')
163
+ # assert_equal '3. Quartal', format(Date.new(2010, 9, 30), 'qqqq')
164
+ # assert_equal '4. Quartal', format(Date.new(2010, 10, 1), 'qqqq')
165
+ # assert_equal '4. Quartal', format(Date.new(2010, 12, 31), 'qqqq')
166
+ # end
167
+
168
+ test "pattern qqqqq" do
169
+ assert_equal '1', format(Date.new(2010, 1, 1), 'qqqqq')
170
+ assert_equal '1', format(Date.new(2010, 3, 31), 'qqqqq')
171
+ assert_equal '2', format(Date.new(2010, 4, 1), 'qqqqq')
172
+ assert_equal '2', format(Date.new(2010, 6, 30), 'qqqqq')
173
+ assert_equal '3', format(Date.new(2010, 7, 1), 'qqqqq')
174
+ assert_equal '3', format(Date.new(2010, 9, 30), 'qqqqq')
175
+ assert_equal '4', format(Date.new(2010, 10, 1), 'qqqqq')
176
+ assert_equal '4', format(Date.new(2010, 12, 31), 'qqqqq')
177
+ end
178
+
179
+ # MONTH
180
+
181
+ test "pattern M" do
182
+ assert_equal '1', format(Date.new(2010, 1, 1), 'M')
183
+ assert_equal '10', format(Date.new(2010, 10, 1), 'M')
184
+ end
185
+
186
+ test "pattern MM" do
187
+ assert_equal '01', format(Date.new(2010, 1, 1), 'MM')
188
+ assert_equal '10', format(Date.new(2010, 10, 1), 'MM')
189
+ end
190
+
191
+ test "pattern MMM" do
192
+ assert_equal 'Jan', format(Date.new(2010, 1, 1), 'MMM')
193
+ assert_equal 'Okt', format(Date.new(2010, 10, 1), 'MMM')
194
+ end
195
+
196
+ test "pattern MMMM" do
197
+ assert_equal 'Januar', format(Date.new(2010, 1, 1), 'MMMM')
198
+ assert_equal 'Oktober', format(Date.new(2010, 10, 1), 'MMMM')
199
+ end
200
+
201
+ # requires cldr's "multiple inheritance"
202
+ #
203
+ # test "pattern MMMMM" do
204
+ # assert_equal 'J', format(Date.new(2010, 1, 1), 'MMMMM')
205
+ # assert_equal 'O', format(Date.new(2010, 10, 1), 'MMMMM')
206
+ # end
207
+
208
+ test "pattern L" do
209
+ assert_equal '1', format(Date.new(2010, 1, 1), 'L')
210
+ assert_equal '10', format(Date.new(2010, 10, 1), 'L')
211
+ end
212
+
213
+ test "pattern LL" do
214
+ assert_equal '01', format(Date.new(2010, 1, 1), 'LL')
215
+ assert_equal '10', format(Date.new(2010, 10, 1), 'LL')
216
+ end
217
+
218
+ # requires cldr's "multiple inheritance"
219
+ #
220
+ # test "pattern LLL" do
221
+ # assert_equal 'Jan', format(Date.new(2010, 1, 1), 'LLL')
222
+ # assert_equal 'Okt', format(Date.new(2010, 10, 1), 'LLL')
223
+ # end
224
+ #
225
+ # test "pattern LLLL" do
226
+ # assert_equal 'Januar', format(Date.new(2010, 1, 1), 'LLLL')
227
+ # assert_equal 'Oktober', format(Date.new(2010, 10, 1), 'LLLL')
228
+ # end
229
+ #
230
+ # test "pattern LLLLL" do
231
+ # assert_equal 'J', format(Date.new(2010, 1, 1), 'LLLLL')
232
+ # assert_equal 'O', format(Date.new(2010, 10, 1), 'LLLLL')
233
+ # end
234
+
235
+ test "pattern LLLLL" do
236
+ assert_equal 'J', format(Date.new(2010, 1, 1), 'LLLLL')
237
+ assert_equal 'O', format(Date.new(2010, 10, 1), 'LLLLL')
238
+ end
239
+
240
+ # DAY
241
+
242
+ test "pattern d" do
243
+ assert_equal '1', format(Date.new(2010, 1, 1), 'd')
244
+ assert_equal '10', format(Date.new(2010, 1, 10), 'd')
245
+ end
246
+
247
+ test "pattern dd" do
248
+ assert_equal '01', format(Date.new(2010, 1, 1), 'dd')
249
+ assert_equal '10', format(Date.new(2010, 1, 10), 'dd')
250
+ end
251
+
252
+ test "pattern E, EE, EEE" do
253
+ assert_equal 'Fr.', format(Date.new(2010, 1, 1), 'E')
254
+ assert_equal 'Fr.', format(Date.new(2010, 1, 1), 'EE')
255
+ assert_equal 'Fr.', format(Date.new(2010, 1, 1), 'EEE')
256
+ end
257
+
258
+ test "pattern EEEE" do
259
+ assert_equal 'Freitag', format(Date.new(2010, 1, 1), 'EEEE')
260
+ end
261
+
262
+ test "pattern EEEEE" do
263
+ assert_equal 'F', format(Date.new(2010, 1, 1), 'EEEEE')
264
+ end
265
+ end
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../test_helper'))
4
+ require 'date'
5
+
6
+ class TestCldrDatetimeFormat < Test::Unit::TestCase
7
+ def setup
8
+ @locale = :de
9
+ @calendar = Cldr::Export::Data::Calendars.new(@locale)[:calendars][:gregorian]
10
+ end
11
+
12
+ test "datetime pattern :de" do
13
+ date = Cldr::Format::Date.new('dd.MM.yyyy', @calendar)
14
+ time = Cldr::Format::Time.new('HH:mm', @calendar)
15
+ result = Cldr::Format::Datetime.new('{{date}} {{time}}', date, time).apply(DateTime.new(2010, 1, 10, 13, 12, 11))
16
+ assert_equal '10.01.2010 13:12', result
17
+ end
18
+ end
@@ -1,15 +1,15 @@
1
- require File.dirname(__FILE__) + '/../../test_helper'
1
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'))
2
2
 
3
3
  class TestCldrDecimalFractionFormatWithInteger < Test::Unit::TestCase
4
- define_method "test: formats a fraction" do
4
+ test "formats a fraction" do
5
5
  assert_equal '.45', Cldr::Format::Decimal::Fraction.new('###.##').apply('45')
6
6
  end
7
7
 
8
- define_method "test: pads zero digits on the right side" do
8
+ test "pads zero digits on the right side" do
9
9
  assert_equal '.4500', Cldr::Format::Decimal::Fraction.new('###.0000#').apply('45')
10
10
  end
11
11
 
12
- define_method "test: :precision option overrides format precision" do
12
+ test ":precision option overrides format precision" do
13
13
  assert_equal '.78901', Cldr::Format::Decimal::Fraction.new('###.##').apply('78901', :precision => 5)
14
14
  end
15
15
  end
@@ -1,67 +1,67 @@
1
- require File.dirname(__FILE__) + '/../../test_helper'
1
+ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'))
2
2
 
3
3
  class TestCldrDecimalIntegerFormatWithInteger < Test::Unit::TestCase
4
- define_method "test: interpolates a number" do
4
+ test "interpolates a number" do
5
5
  assert_equal '123', Cldr::Format::Decimal::Integer.new('###').apply(123)
6
6
  end
7
7
 
8
- define_method "test: interpolates a number on the right side" do
8
+ test "interpolates a number on the right side" do
9
9
  assert_equal '0123', Cldr::Format::Decimal::Integer.new('0###').apply(123)
10
10
  end
11
11
 
12
- define_method "test: strips optional digits" do
12
+ test "strips optional digits" do
13
13
  assert_equal '123', Cldr::Format::Decimal::Integer.new('######').apply(123)
14
14
  end
15
15
 
16
- define_method "test: single group" do
16
+ test "single group" do
17
17
  assert_equal '1,23', Cldr::Format::Decimal::Integer.new('#,##').apply(123)
18
18
  end
19
19
 
20
- define_method "test: multiple groups with a primary group size" do
20
+ test "multiple groups with a primary group size" do
21
21
  assert_equal '1,23,45,67,89', Cldr::Format::Decimal::Integer.new('#,##').apply(123456789)
22
22
  end
23
23
 
24
- define_method "test: multiple groups with a primary and secondary group size" do
24
+ test "multiple groups with a primary and secondary group size" do
25
25
  assert_equal '12,34,56,789', Cldr::Format::Decimal::Integer.new('#,##,##0').apply(123456789)
26
26
  end
27
27
 
28
- define_method "test: does not group when no digits left of the grouping position" do
28
+ test "does not group when no digits left of the grouping position" do
29
29
  assert_equal '123', Cldr::Format::Decimal::Integer.new('#,###').apply(123)
30
30
  end
31
31
 
32
- define_method "test: does not include a fraction for a float" do
32
+ test "does not include a fraction for a float" do
33
33
  assert_equal '123', Cldr::Format::Decimal::Integer.new('###').apply(123.45)
34
34
  end
35
35
 
36
- define_method "test: does not round when given a float" do
36
+ test "does not round when given a float" do
37
37
  assert_equal '123', Cldr::Format::Decimal::Integer.new('###').apply(123.55)
38
38
  end
39
39
 
40
- define_method "test: does not round with :precision => 1" do
40
+ test "does not round with :precision => 1" do
41
41
  assert_equal '123', Cldr::Format::Decimal::Integer.new('###').apply(123.55, :precision => 1)
42
42
  end
43
43
 
44
- define_method "test: ignores a fraction part given in the format string" do
44
+ test "ignores a fraction part given in the format string" do
45
45
  assert_equal '1,234', Cldr::Format::Decimal::Integer.new('#,##0.##').apply(1234.567)
46
46
  end
47
47
 
48
- define_method "test: cldr example #,##0.## => 1 234" do
48
+ test "cldr example #,##0.## => 1 234" do
49
49
  assert_equal '1,234', Cldr::Format::Decimal::Integer.new('#,##0.##').apply(1234.567)
50
50
  end
51
51
 
52
- define_method "test: cldr example #,##0.### => 1 234" do
52
+ test "cldr example #,##0.### => 1 234" do
53
53
  assert_equal '1 234', Cldr::Format::Decimal::Integer.new('#,##0.###', :group => ' ').apply(1234.567)
54
54
  end
55
55
 
56
- define_method "test: cldr example ###0.##### => 1234" do
56
+ test "cldr example ###0.##### => 1234" do
57
57
  assert_equal '1234', Cldr::Format::Decimal::Integer.new('###0.#####', :group => ' ').apply(1234.567)
58
58
  end
59
59
 
60
- define_method "test: cldr example ###0.0000# => 1234" do
60
+ test "cldr example ###0.0000# => 1234" do
61
61
  assert_equal '1234', Cldr::Format::Decimal::Integer.new('###0.0000#', :group => ' ').apply(1234.567)
62
62
  end
63
63
 
64
- define_method "test: cldr example 00000.0000 => 01234" do
64
+ test "cldr example 00000.0000 => 01234" do
65
65
  assert_equal '01234', Cldr::Format::Decimal::Integer.new('00000.0000', :group => ' ').apply(1234.567)
66
66
  end
67
67
  end