ruby-cldr 0.0.1

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 (80) hide show
  1. data/LICENSE +20 -0
  2. data/README.textile +104 -0
  3. data/Rakefile +18 -0
  4. data/TODO +68 -0
  5. data/VERSION +1 -0
  6. data/cldr.thor +5 -0
  7. data/lib/cldr/data/base.rb +66 -0
  8. data/lib/cldr/data/calendars/gregorian.rb +124 -0
  9. data/lib/cldr/data/calendars.rb +12 -0
  10. data/lib/cldr/data/currencies.rb +26 -0
  11. data/lib/cldr/data/delimiters.rb +21 -0
  12. data/lib/cldr/data/languages.rb +17 -0
  13. data/lib/cldr/data/numbers.rb +60 -0
  14. data/lib/cldr/data/plurals/cldr_grammar.treetop +50 -0
  15. data/lib/cldr/data/plurals/grammar.rb +536 -0
  16. data/lib/cldr/data/plurals/rules.rb +113 -0
  17. data/lib/cldr/data/plurals.rb +39 -0
  18. data/lib/cldr/data/territories.rb +17 -0
  19. data/lib/cldr/data/timezones.rb +25 -0
  20. data/lib/cldr/data/units.rb +25 -0
  21. data/lib/cldr/data.rb +34 -0
  22. data/lib/cldr/download.rb +20 -0
  23. data/lib/cldr/export/ruby.rb +16 -0
  24. data/lib/cldr/export/yaml.rb +39 -0
  25. data/lib/cldr/export.rb +69 -0
  26. data/lib/cldr/format/currency.rb +11 -0
  27. data/lib/cldr/format/date.rb +144 -0
  28. data/lib/cldr/format/datetime/base.rb +32 -0
  29. data/lib/cldr/format/datetime.rb +28 -0
  30. data/lib/cldr/format/decimal/base.rb +18 -0
  31. data/lib/cldr/format/decimal/fraction.rb +28 -0
  32. data/lib/cldr/format/decimal/integer.rb +46 -0
  33. data/lib/cldr/format/decimal/number.rb +44 -0
  34. data/lib/cldr/format/decimal.rb +32 -0
  35. data/lib/cldr/format/percent.rb +11 -0
  36. data/lib/cldr/format/time.rb +71 -0
  37. data/lib/cldr/format.rb +113 -0
  38. data/lib/cldr/thor.rb +33 -0
  39. data/lib/cldr.rb +7 -0
  40. data/lib/core_ext/hash/deep_merge.rb +7 -0
  41. data/lib/core_ext/hash/deep_stringify_keys.rb +11 -0
  42. data/lib/core_ext/hash/symbolize_keys.rb +10 -0
  43. data/lib/core_ext/string/camelize.rb +5 -0
  44. data/lib/core_ext/string/underscore.rb +9 -0
  45. data/test/all.rb +3 -0
  46. data/test/data/all.rb +3 -0
  47. data/test/data/calendars_test.rb +149 -0
  48. data/test/data/currencies_test.rb +47 -0
  49. data/test/data/delimiters_test.rb +31 -0
  50. data/test/data/languages_test.rb +67 -0
  51. data/test/data/numbers_test.rb +61 -0
  52. data/test/data/plurals_test.rb +132 -0
  53. data/test/data/territories_test.rb +51 -0
  54. data/test/data/timezones_test.rb +56 -0
  55. data/test/data/units_test.rb +36 -0
  56. data/test/export_test.rb +57 -0
  57. data/test/formats/all.rb +3 -0
  58. data/test/formats/datetime/all.rb +3 -0
  59. data/test/formats/datetime/date_test.rb +31 -0
  60. data/test/formats/datetime/datetime_test.rb +18 -0
  61. data/test/formats/datetime/day_test.rb +41 -0
  62. data/test/formats/datetime/hour_test.rb +79 -0
  63. data/test/formats/datetime/minute_test.rb +25 -0
  64. data/test/formats/datetime/month_test.rb +76 -0
  65. data/test/formats/datetime/period_test.rb +20 -0
  66. data/test/formats/datetime/quarter_test.rb +118 -0
  67. data/test/formats/datetime/second_test.rb +80 -0
  68. data/test/formats/datetime/time_test.rb +33 -0
  69. data/test/formats/datetime/timezone_test.rb +23 -0
  70. data/test/formats/datetime/year_test.rb +57 -0
  71. data/test/formats/decimal/fraction_test.rb +17 -0
  72. data/test/formats/decimal/integer_test.rb +67 -0
  73. data/test/formats/decimal/number_test.rb +77 -0
  74. data/test/formats/decimal_test.rb +19 -0
  75. data/test/formats/format_test.rb +66 -0
  76. data/test/formats/rails_compat/all.rb +3 -0
  77. data/test/formats/rails_compat/format_integer_test.rb +56 -0
  78. data/test/formats/rails_compat/format_number_test.rb +134 -0
  79. data/test/test_helper.rb +5 -0
  80. metadata +169 -0
@@ -0,0 +1,134 @@
1
+ # # encoding: utf-8
2
+ # require File.dirname(__FILE__) + '/../../test_helper'
3
+ #
4
+ # class TestCldrFormatRailsCompat < Test::Unit::TestCase
5
+ # def setup
6
+ # @options = { :decimal => ".", :group => ",", :format => "#,##0.###" }
7
+ # end
8
+ #
9
+ # def format_number(number, options = {})
10
+ # Cldr::Format.format_number(number, @options.merge(options))
11
+ # end
12
+ #
13
+ # # number_with_delimiter assertions:
14
+ # #
15
+ # # assert_equal("12,345,678", number_with_delimiter(12345678))
16
+ # # assert_equal("0", number_with_delimiter(0))
17
+ # # assert_equal("123", number_with_delimiter(123))
18
+ # # assert_equal("123,456", number_with_delimiter(123456))
19
+ # # assert_equal("123,456.78", number_with_delimiter(123456.78))
20
+ # # assert_equal("123,456.789", number_with_delimiter(123456.789))
21
+ # # assert_equal("123,456.78901", number_with_delimiter(123456.78901))
22
+ # # assert_equal("123,456,789.78901", number_with_delimiter(123456789.78901))
23
+ # # assert_equal("0.78901", number_with_delimiter(0.78901))
24
+ # # assert_equal("123,456.78", number_with_delimiter("123456.78"))
25
+ # # assert_equal("x", number_with_delimiter("x"))
26
+ # # assert_nil number_with_delimiter(nil)
27
+ # # define_method :"test: NOT compatible with number_with_delimiter: 12345678 => 12,345,678.0" do
28
+ # # assert_equal '12,345,678.0', format_number(12345678)
29
+ # # end
30
+ # #
31
+ # # define_method :"test: NOT compatible with number_with_delimiter: 0 => 0.0" do
32
+ # # assert_equal '0.0', format_number(0)
33
+ # # end
34
+ # #
35
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123 => 123.0" do
36
+ # # assert_equal '123.0', format_number(123)
37
+ # # end
38
+ # #
39
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123456 => 123,456" do
40
+ # # assert_equal '123,456.0', format_number(123456)
41
+ # # end
42
+ # #
43
+ # # define_method :"test: compatible with number_with_delimiter: 123456.78 => 123,456.78" do
44
+ # # assert_equal '123,456.78', format_number(123456.78)
45
+ # # end
46
+ # #
47
+ # # define_method :"test: compatible with number_with_delimiter: 123456.789 => 123,456.789" do
48
+ # # assert_equal '123,456.789', format_number(123456.789)
49
+ # # end
50
+ # #
51
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123456.78901 => 123,456.789" do
52
+ # # assert_equal '123,456.789', format_number(123456.78901)
53
+ # # end
54
+ # #
55
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123456.78901 w/ precision 5 => 123,456.78901" do
56
+ # # assert_equal '123,456.78901', format_number(123456.78901, :precision => 5)
57
+ # # end
58
+ # #
59
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123456789.78901 => 123,456,789.789" do
60
+ # # assert_equal '123,456,789.789', format_number(123456789.78901)
61
+ # # end
62
+ # #
63
+ # # define_method :"test: NOT compatible with number_with_delimiter: 123456789.78901 w/ precision 5 => 123,456,789.78901" do
64
+ # # assert_equal '123,456,789.78901', format_number(123456789.78901, :precision => 5)
65
+ # # end
66
+ # #
67
+ # # define_method :"test: NOT compatible with number_with_delimiter: 0.78901 => 0.789" do
68
+ # # assert_equal '0.789', format_number(0.78901)
69
+ # # end
70
+ # #
71
+ # # define_method :"test: NOT compatible with number_with_delimiter: 0.78901 w/ precision 5 => 0.78901" do
72
+ # # assert_equal '0.78901', format_number(0.78901, :precision => 5)
73
+ # # end
74
+ # #
75
+ # # define_method :"test: compatible with number_with_delimiter: 'x' => 'x'" do
76
+ # # assert_equal 'x', format_number('x')
77
+ # # end
78
+ # #
79
+ # # define_method :"test: compatible with number_with_delimiter: nil => nil" do
80
+ # # assert_nil format_number(nil)
81
+ # # end
82
+ #
83
+ # # number_with_precision assertions:
84
+ # #
85
+ # # assert_equal("111.235", number_with_precision(111.2346))
86
+ # # assert_equal("31.83", number_with_precision(31.825, :precision => 2))
87
+ # # assert_equal("111.23", number_with_precision(111.2346, :precision => 2))
88
+ # # assert_equal("111.00", number_with_precision(111, :precision => 2))
89
+ # # assert_equal("111.235", number_with_precision("111.2346"))
90
+ # # assert_equal("31.83", number_with_precision("31.825", :precision => 2))
91
+ # # assert_equal("112", number_with_precision(111.50, :precision => 0))
92
+ # # assert_equal("1234567892", number_with_precision(1234567891.50, :precision => 0))
93
+ # # assert_equal("x", number_with_precision("x"))
94
+ # # assert_nil number_with_precision(nil)
95
+ # define_method :"test: compatible with number_with_precision: 111.235 => 111.2346" do
96
+ # assert_equal "111.235", format_number(111.2346)
97
+ # end
98
+ #
99
+ # define_method :"test: compatible with number_with_precision: 31.825 w/ precision 2 => 31.83" do
100
+ # assert_equal "31.83", format_number(31.825, :precision => 2)
101
+ # end
102
+ #
103
+ # # define_method :"test: compatible with number_with_precision: 111.2346 w/ precision 2 => 111.23" do
104
+ # # assert_equal "111.23", format_number(111.2346, :precision => 2)
105
+ # # end
106
+ # #
107
+ # # define_method :"test: compatible with number_with_precision: 111 w/ precision 2 => 111.00" do
108
+ # # assert_equal "111.00", format_number(111, :precision => 2)
109
+ # # end
110
+ # #
111
+ # # define_method :"test: compatible with number_with_precision: '111.2346' => '111.235'" do
112
+ # # assert_equal "111.235", format_number("111.2346")
113
+ # # end
114
+ # #
115
+ # # define_method :"test: compatible with number_with_precision: '31.825' w/ precision 2 => 31.83" do
116
+ # # assert_equal "31.83", format_number("31.825", :precision => 2)
117
+ # # end
118
+ # #
119
+ # # define_method :"test: compatible with number_with_precision: 111.50 w/ precision 0 => 112" do
120
+ # # assert_equal "112", format_number(111.50, :precision => 0)
121
+ # # end
122
+ # #
123
+ # # define_method :"test: NOT compatible with number_with_precision: 1234567891.50 w/ precision 0 => 1,234,567,892" do
124
+ # # assert_equal "1,234,567,892", format_number(1234567891.50, :precision => 0)
125
+ # # end
126
+ # #
127
+ # # define_method :"test: compatible with number_with_precision: 'x' => 'x'" do
128
+ # # assert_equal "x", format_number("x")
129
+ # # end
130
+ # #
131
+ # # define_method :"test: compatible with number_with_precision: nil => nil" do
132
+ # # assert_nil format_number(nil)
133
+ # # end
134
+ # end
@@ -0,0 +1,5 @@
1
+ $:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'test/unit'
4
+ require 'cldr'
5
+ require 'rubygems'
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-cldr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sven Fuchs
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-16 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Ruby library for exporting and using data from CLDR, see http://cldr.unicode.org
17
+ email: svenfuchs@artweb-design.de
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - LICENSE
24
+ - README.textile
25
+ - TODO
26
+ files:
27
+ - LICENSE
28
+ - README.textile
29
+ - Rakefile
30
+ - TODO
31
+ - VERSION
32
+ - cldr.thor
33
+ - lib/cldr.rb
34
+ - lib/cldr/data.rb
35
+ - lib/cldr/data/base.rb
36
+ - lib/cldr/data/calendars.rb
37
+ - lib/cldr/data/calendars/gregorian.rb
38
+ - lib/cldr/data/currencies.rb
39
+ - lib/cldr/data/delimiters.rb
40
+ - lib/cldr/data/languages.rb
41
+ - lib/cldr/data/numbers.rb
42
+ - lib/cldr/data/plurals.rb
43
+ - lib/cldr/data/plurals/cldr_grammar.treetop
44
+ - lib/cldr/data/plurals/grammar.rb
45
+ - lib/cldr/data/plurals/rules.rb
46
+ - lib/cldr/data/territories.rb
47
+ - lib/cldr/data/timezones.rb
48
+ - lib/cldr/data/units.rb
49
+ - lib/cldr/download.rb
50
+ - lib/cldr/export.rb
51
+ - lib/cldr/export/ruby.rb
52
+ - lib/cldr/export/yaml.rb
53
+ - lib/cldr/format.rb
54
+ - lib/cldr/format/currency.rb
55
+ - lib/cldr/format/date.rb
56
+ - lib/cldr/format/datetime.rb
57
+ - lib/cldr/format/datetime/base.rb
58
+ - lib/cldr/format/decimal.rb
59
+ - lib/cldr/format/decimal/base.rb
60
+ - lib/cldr/format/decimal/fraction.rb
61
+ - lib/cldr/format/decimal/integer.rb
62
+ - lib/cldr/format/decimal/number.rb
63
+ - lib/cldr/format/percent.rb
64
+ - lib/cldr/format/time.rb
65
+ - lib/cldr/thor.rb
66
+ - lib/core_ext/hash/deep_merge.rb
67
+ - lib/core_ext/hash/deep_stringify_keys.rb
68
+ - lib/core_ext/hash/symbolize_keys.rb
69
+ - lib/core_ext/string/camelize.rb
70
+ - lib/core_ext/string/underscore.rb
71
+ - test/all.rb
72
+ - test/data/all.rb
73
+ - test/data/calendars_test.rb
74
+ - test/data/currencies_test.rb
75
+ - test/data/delimiters_test.rb
76
+ - test/data/languages_test.rb
77
+ - test/data/numbers_test.rb
78
+ - test/data/plurals_test.rb
79
+ - test/data/territories_test.rb
80
+ - test/data/timezones_test.rb
81
+ - test/data/units_test.rb
82
+ - test/export_test.rb
83
+ - test/formats/all.rb
84
+ - test/formats/datetime/all.rb
85
+ - test/formats/datetime/date_test.rb
86
+ - test/formats/datetime/datetime_test.rb
87
+ - test/formats/datetime/day_test.rb
88
+ - test/formats/datetime/hour_test.rb
89
+ - test/formats/datetime/minute_test.rb
90
+ - test/formats/datetime/month_test.rb
91
+ - test/formats/datetime/period_test.rb
92
+ - test/formats/datetime/quarter_test.rb
93
+ - test/formats/datetime/second_test.rb
94
+ - test/formats/datetime/time_test.rb
95
+ - test/formats/datetime/timezone_test.rb
96
+ - test/formats/datetime/year_test.rb
97
+ - test/formats/decimal/fraction_test.rb
98
+ - test/formats/decimal/integer_test.rb
99
+ - test/formats/decimal/number_test.rb
100
+ - test/formats/decimal_test.rb
101
+ - test/formats/format_test.rb
102
+ - test/formats/rails_compat/all.rb
103
+ - test/formats/rails_compat/format_integer_test.rb
104
+ - test/formats/rails_compat/format_number_test.rb
105
+ - test/test_helper.rb
106
+ has_rdoc: true
107
+ homepage: http://github.com/svenfuchs/ruby-cldr
108
+ licenses: []
109
+
110
+ post_install_message:
111
+ rdoc_options:
112
+ - --charset=UTF-8
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "0"
120
+ version:
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: "0"
126
+ version:
127
+ requirements: []
128
+
129
+ rubyforge_project:
130
+ rubygems_version: 1.3.5
131
+ signing_key:
132
+ specification_version: 3
133
+ summary: Ruby library for exporting and using data from CLDR
134
+ test_files:
135
+ - test/all.rb
136
+ - test/data/all.rb
137
+ - test/data/calendars_test.rb
138
+ - test/data/currencies_test.rb
139
+ - test/data/delimiters_test.rb
140
+ - test/data/languages_test.rb
141
+ - test/data/numbers_test.rb
142
+ - test/data/plurals_test.rb
143
+ - test/data/territories_test.rb
144
+ - test/data/timezones_test.rb
145
+ - test/data/units_test.rb
146
+ - test/export_test.rb
147
+ - test/formats/all.rb
148
+ - test/formats/datetime/all.rb
149
+ - test/formats/datetime/date_test.rb
150
+ - test/formats/datetime/datetime_test.rb
151
+ - test/formats/datetime/day_test.rb
152
+ - test/formats/datetime/hour_test.rb
153
+ - test/formats/datetime/minute_test.rb
154
+ - test/formats/datetime/month_test.rb
155
+ - test/formats/datetime/period_test.rb
156
+ - test/formats/datetime/quarter_test.rb
157
+ - test/formats/datetime/second_test.rb
158
+ - test/formats/datetime/time_test.rb
159
+ - test/formats/datetime/timezone_test.rb
160
+ - test/formats/datetime/year_test.rb
161
+ - test/formats/decimal/fraction_test.rb
162
+ - test/formats/decimal/integer_test.rb
163
+ - test/formats/decimal/number_test.rb
164
+ - test/formats/decimal_test.rb
165
+ - test/formats/format_test.rb
166
+ - test/formats/rails_compat/all.rb
167
+ - test/formats/rails_compat/format_integer_test.rb
168
+ - test/formats/rails_compat/format_number_test.rb
169
+ - test/test_helper.rb