date_tools 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/data/locales/ar.yml +47 -0
  2. data/data/locales/bg.yml +47 -0
  3. data/data/locales/ca.yml +47 -0
  4. data/data/locales/cs.yml +47 -0
  5. data/data/locales/da.yml +47 -0
  6. data/data/locales/de.yml +47 -0
  7. data/data/locales/de_at.yml +47 -0
  8. data/data/locales/de_ch.yml +47 -0
  9. data/data/locales/en.yml +47 -0
  10. data/data/locales/en_au.yml +47 -0
  11. data/data/locales/en_ca.yml +47 -0
  12. data/data/locales/en_gb.yml +47 -0
  13. data/data/locales/en_in.yml +47 -0
  14. data/data/locales/en_us.yml +47 -0
  15. data/data/locales/es.yml +47 -0
  16. data/data/locales/es_ar.yml +47 -0
  17. data/data/locales/es_cl.yml +47 -0
  18. data/data/locales/es_co.yml +47 -0
  19. data/data/locales/es_mx.yml +47 -0
  20. data/data/locales/es_pe.yml +47 -0
  21. data/data/locales/es_ve.yml +47 -0
  22. data/data/locales/fi.yml +47 -0
  23. data/data/locales/fr.yml +47 -0
  24. data/data/locales/fr_ca.yml +47 -0
  25. data/data/locales/fr_ch.yml +47 -0
  26. data/data/locales/it.yml +47 -0
  27. data/data/locales/it_ch.yml +47 -0
  28. data/data/locales/ko.yml +47 -0
  29. data/data/locales/lt.yml +47 -0
  30. data/data/locales/nl.yml +47 -0
  31. data/data/locales/nl_be.yml +47 -0
  32. data/data/locales/no.yml +47 -0
  33. data/data/locales/pt.yml +47 -0
  34. data/data/locales/pt_br.yml +47 -0
  35. data/data/locales/ru.yml +47 -0
  36. data/data/locales/se.yml +47 -0
  37. data/data/locales/sr.yml +47 -0
  38. data/data/locales/zh_TW.yml +47 -0
  39. data/examples/example_date_creator.rb +9 -1
  40. data/examples/example_date_i18n.rb +52 -0
  41. data/examples/example_date_locale.rb +18 -5
  42. data/examples/example_date_time_compare.rb +11 -2
  43. data/lib/date_tools.rb +93 -26
  44. data/lib/date_tools/date_locale.rb +126 -234
  45. data/lib/date_tools/date_time_compare.rb +3 -0
  46. data/unittest/test_date_creator.rb +1 -0
  47. data/unittest/test_date_locale.rb +103 -196
  48. data/unittest/test_date_locale_loaded.rb +113 -0
  49. data/unittest/test_date_time_compare.rb +1 -0
  50. data/unittest/test_date_tools.rb +13 -0
  51. metadata +90 -37
  52. data/readme.html +0 -68
  53. data/readme.txt +0 -50
@@ -34,6 +34,9 @@ class Time
34
34
 
35
35
  #Build a string with number of days, hours ... for the given seconds.
36
36
  #Only positive seconds allowed.
37
+ #
38
+ #Example:
39
+ # Time.sec2time( 16000 ) => "0d 4h 26m 40s"
37
40
  def self.sec2time( sec )
38
41
  raise "No negative time" if sec < 0
39
42
  days, sec = sec.divmod(86400) # 60*60*24
@@ -1,3 +1,4 @@
1
+ gem 'test-unit'
1
2
  require 'test/unit'
2
3
  require '../lib/date_tools/date_creator'
3
4
 
@@ -1,225 +1,132 @@
1
+ #encoding: utf-8
2
+ gem 'test-unit'
1
3
  require 'test/unit'
2
- require '../lib/date_tools/date_locale'
4
+ $:.unshift('../lib') if $0 == __FILE__
5
+ require 'date_tools/date_locale'
3
6
 
4
- #Here you can play with locales.
5
- #Please run the tests with and without locale.
6
- #~ require 'locale'
7
- #~ Locale.current = 'en'
8
- #~ Locale.current = 'fr'
7
+ require 'yaml'
9
8
 
10
9
  class Test_Date_locale < Test::Unit::TestCase
11
- def test_locale_encoding
12
- return unless defined? Locale
13
- #~ assert_equal( 'de', Locale.current.language ) #changing during tests
14
- assert_equal( 'CP1252', Locale.current.charset )
15
- end
16
- def test_DATE_TEXTS
17
-
18
- assert_kind_of(Hash, Date_locale::DATE_TEXTS)
10
+
11
+ #~ puts Date_locale::DATE_TEXTS.to_yaml
12
+ #~ puts Date.new(2012,1,1).strftime("%A")
13
+
14
+ DateTools::Mixin::DATE_TEXTS.each{|lang, langdata |
15
+ langdata = langdata['date']
19
16
 
20
- Date_locale::DATE_TEXTS.each{|lang, langdata |
21
- assert_kind_of(Symbol, lang)
17
+ define_method :"test_#{lang}" do
18
+ assert_kind_of(String, lang)
22
19
  assert_kind_of(Hash, langdata)
23
20
  assert_equal(4, langdata.keys.size)
24
21
  #test not possibe, different orders in Hash key.
25
- #~ assert_equal([:abbr_daynames, :monthnames, :abbr_monthnames, :daynames], langdata.keys)
22
+ #~ assert_equal([:monthnames, :abbr_daynames, :monthnames, :abbr_monthnames, :daynames], langdata.keys)
26
23
 
27
- assert_equal( 7, langdata[:abbr_daynames].size, "check language #{lang}")
28
- assert_equal( 7, langdata[:daynames].size, "check language #{lang}")
29
- assert_equal( 13, langdata[:abbr_monthnames].size, "check language #{lang}")
30
- assert_equal( 13, langdata[:monthnames].size, "check language #{lang}")
31
- assert_nil( langdata[:abbr_monthnames].first, "check language #{lang}")
32
- assert_nil( langdata[:monthnames].first, "check language #{lang}")
24
+ assert_equal( 7, langdata['abbr_day_names'].size, "check language #{lang}")
25
+ assert_equal( 7, langdata['day_names'].size, "check language #{lang}")
26
+ assert_equal( 13, langdata['abbr_month_names'].size, "check language #{lang}")
27
+ assert_equal( 13, langdata['month_names'].size, "check language #{lang}")
28
+ assert_nil( langdata['abbr_month_names'].first, "check language #{lang}")
29
+ assert_nil( langdata['month_names'].first, "check language #{lang}")
33
30
 
34
- }
35
-
36
- end #test_DATE_TEXTS
37
- end #Test_Date_locale < Test::Unit::TestCase
38
-
39
-
40
-
41
- class Test_Date < Test::Unit::TestCase
42
-
43
- TESTSTRING = '%A %a %B (%b)'
44
- def test_default_en()
45
-
46
- Locale.current = 'en' if defined? Locale
47
- if defined? Locale
48
- assert_equal( 'en', Locale.current.language )
31
+ 1.upto(12){|mon|
32
+ assert_equal( langdata['abbr_month_names'][mon], Date.new(2012,mon,1).strftime("%b", lang))
33
+ assert_equal( langdata['month_names'][mon], Date.new(2012,mon,1).strftime("%B", lang))
34
+ }
35
+ #Test sunday
36
+ assert_equal( langdata['day_names'][0], Date.new(2013,1,6).strftime("%A", lang))
37
+ assert_equal( langdata['abbr_day_names'][0], Date.new(2013,1,6).strftime("%a", lang))
38
+ 7.upto(12){|day|
39
+ assert_equal( langdata['day_names'][day-6], Date.new(2013,1,day).strftime("%A", lang))
40
+ assert_equal( langdata['abbr_day_names'][day-6], Date.new(2013,1,day).strftime("%a", lang))
41
+ }
49
42
  end
50
-
51
- d = Date.new(2009,10,21)
52
- assert_equal( 'Wednesday {Wed} {Wednesday} {42} 3', d.strftime('%A {%a} {%A} {%W} %w'))
53
- assert_equal( 'Wednesday (Wed)', d.strftime('%A (%a)'))
54
- assert_equal( 'October (Oct)', d.strftime('%B (%b)'))
55
- end
56
-
57
- #Check the defined lanuages.
58
- def test_defined()
59
- assert_not_nil( Date_locale.locale?(:de))
60
- assert_not_nil( Date_locale.locale?(:de_at))
61
- assert_not_nil( Date_locale.locale?(:en))
62
- assert_not_nil( Date_locale.locale?(:fr))
63
- end
43
+ }
64
44
 
65
- def test_undefined()
66
- assert_nil( Date_locale.locale?(:xx))
45
+ def test_get_language_key
46
+ assert_equal( 'en', DateTools::Mixin.get_language_key('en'))
47
+ assert_equal( 'en', DateTools::Mixin.get_language_key('EN'))
48
+ assert_equal( 'en', DateTools::Mixin.get_language_key(:en))
49
+ assert_equal( 'en_us', DateTools::Mixin.get_language_key('en-us'))
67
50
 
68
- d = Date.new(2009,10,21)
69
- assert_raise( RuntimeError ){ d.strftime('%A {%a} {%A} {%W} %w', :xx) }
70
- end
71
-
72
- def test_en()
73
- d = Date.new(2009,10,21)
74
-
75
- assert_equal( 'Wednesday (Wed)', d.strftime('%A (%a)', :en))
76
- assert_equal( 'October (Oct)', d.strftime('%B (%b)', :en))
77
- assert_equal( 'Wednesday {Wed} {Wednesday} {42} 3', d.strftime('%A {%a} {%A} {%W} %w', :en))
78
-
79
- Locale.current = 'en' if defined? Locale
80
- if defined? Locale and Locale.current.language == 'en'
81
- assert_equal( 'en', Locale.current.language )
82
- assert_equal( d.strftime('%A (%a)'), d.strftime('%A (%a)', :en))
83
- assert_equal( d.strftime('%B (%b)'), d.strftime('%B (%b)', :en))
84
- assert_equal( d.strftime('%A {%a} {%A} {%W} %w'), d.strftime('%A {%a} {%A} {%W} %w', :en))
85
- end
51
+ assert_equal( 'de', DateTools::Mixin.get_language_key('de'))
52
+ assert_equal( 'de', DateTools::Mixin.get_language_key('de_de'))
53
+ assert_equal( 'de', DateTools::Mixin.get_language_key(:de))
86
54
 
55
+ assert_equal( 'de_at', DateTools::Mixin.get_language_key('de-at'))
87
56
  end
88
57
 
89
- def test_de()
90
- d = Date.new(2009,10,21)
91
-
92
- assert_equal( 'Mittwoch (Mi)', d.strftime('%A (%a)', :de))
93
- assert_equal( 'Oktober (Okt)', d.strftime('%B (%b)', :de))
94
-
95
- Locale.current = 'de' if defined? Locale
96
- if defined? Locale and Locale.current.language == 'de'
97
- assert_equal( 'de', Locale.current.language )
98
- assert_equal( d.strftime('%A (%a)'), d.strftime('%A (%a)', :de))
99
- assert_equal( d.strftime('%B (%b)'), d.strftime('%B (%b)', :de))
100
- assert_equal( d.strftime('%A {%a} {%A} {%W} %w'), d.strftime('%A {%a} {%A} {%W} %w', :de))
101
- end
102
58
 
103
- end
59
+ end #Test_Date_locale < Test::Unit::TestCase
104
60
 
105
- def test_de_umlaut()
106
- d = Date.new(2009,3,21)
107
- #Set automatic.
108
- #~ Date_locale.set_target_encoding( 'iso-8859-1')
109
-
110
- assert_equal( 'Samstag (Sa)', d.strftime('%A (%a)', :de))
111
- if defined? Locale
112
- assert_equal( 'M�rz (Mrz)', d.strftime('%B (%b)', :de))
113
- else
114
- assert_equal( 'März (Mrz)', d.strftime('%B (%b)', :de))
61
+ class Test_en < Test::Unit::TestCase
62
+ def setup
63
+ @locale = 'en'
115
64
  end
116
-
117
- Locale.current = 'de' if defined? Locale
118
- if defined? Locale and Locale.current.language == 'de'
119
- assert_equal( 'de', Locale.current.language )
120
- assert_equal( d.strftime('%A (%a)'), d.strftime('%A (%a)', :de))
121
- assert_equal( d.strftime('%B (%b)'), d.strftime('%B (%b)', :de))
122
- assert_equal( d.strftime('%A {%a} {%A} {%W} %w'), d.strftime('%A {%a} {%A} {%W} %w', :de))
65
+ def test_jan()
66
+ assert_equal('January - Sunday', Date.new(2012,1,1).strftime('%B - %A', @locale))
123
67
  end
124
-
125
- end
126
-
127
- def test_de_locale()
128
- return unless defined? Locale
129
-
130
- #Get a German locale
131
- #?How to define it??
132
- Locale.current = 'de'
133
- loc_de = Locale.current
134
- Locale.current = 'en' #set back english
135
- loc_en = Locale.current
136
-
137
- d = Date.new(2009,10,21)
138
- assert_equal( 'Mittwoch (Mi)', d.strftime('%A (%a)', loc_de ))
139
- assert_equal( 'Wednesday (Wed)', d.strftime('%A (%a)', loc_en ))
140
-
141
-
142
- end
143
-
144
- end #Test_Date
145
-
146
- class Test_DateTime < Test::Unit::TestCase
147
-
148
- TESTSTRING = '%A %a %B (%b)'
149
- def test_default_en()
150
- Locale.current = 'en' if defined? Locale
151
- if defined? Locale
152
- assert_equal( 'en', Locale.current.language )
68
+ def test_march()
69
+ assert_equal('March - Thursday', Date.new(2012,3,1).strftime('%B - %A', @locale))
153
70
  end
154
-
155
- 1.upto(12){|m|
156
- 1.upto(7){|day| #first week (=all day names)
157
- d = Date.new(2009,m,day)
158
- dt = DateTime.new(2009,m, day)
159
- assert_equal( dt.strftime(TESTSTRING), d.strftime(TESTSTRING))
160
- }}
161
- end
71
+ end
162
72
 
163
- def test_en()
164
- 1.upto(12){|m|
165
- 1.upto(7){|day| #first week (=all day names)
166
- d = Date.new(2009,m,day)
167
- dt = DateTime.new(2009,m, day)
168
- assert_equal( dt.strftime(TESTSTRING, :en), d.strftime(TESTSTRING, :en))
169
- }}
170
- end
73
+ class Test_en_US < Test::Unit::TestCase
74
+ def setup
75
+ @locale = 'en-us'
76
+ end
77
+ def test_jan()
78
+ assert_equal('January - Sunday', Date.new(2012,1,1).strftime('%B - %A', @locale))
79
+ end
80
+ def test_march()
81
+ assert_equal('March - Thursday', Date.new(2012,3,1).strftime('%B - %A', @locale))
82
+ end
83
+ end
171
84
 
172
- def test_de()
173
- 1.upto(12){|m|
174
- 1.upto(7){|day| #first week (=all day names)
175
- d = Date.new(2009,m,day)
176
- dt = DateTime.new(2009,m, day)
177
- assert_equal( dt.strftime(TESTSTRING, :de), d.strftime(TESTSTRING, :de))
178
- }}
179
- end
180
- end #Test_DateTime
85
+ class Test_de < Test::Unit::TestCase
86
+ def setup
87
+ @locale = 'de'
88
+ end
89
+ def test_jan()
90
+ assert_equal('Januar - Sonntag', Date.new(2012,1,1).strftime('%B - %A', @locale))
91
+ end
92
+ def test_march()
93
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A', @locale))
94
+ end
95
+ end
181
96
 
182
- class Test_Time < Test::Unit::TestCase
183
-
184
- def test_default()
185
- t = Time.local(2009,10,21)
186
-
187
- Locale.current = 'en' if defined? Locale
188
- if defined? Locale and Locale.current.language == 'en'
189
- assert_equal( 'en', Locale.current.language )
190
- assert_equal( 'Wednesday {Wed} {Wednesday} {42} 3', t.strftime('%A {%a} {%A} {%W} %w'))
191
- assert_equal( 'Wednesday (Wed)', t.strftime('%A (%a)'))
192
- assert_equal( 'October (Oct)', t.strftime('%B (%b)'))
97
+ class Test_de_de < Test::Unit::TestCase
98
+ def setup
99
+ @locale = 'de-de'
193
100
  end
194
- end
101
+ def test_jan()
102
+ assert_equal('Januar - Sonntag', Date.new(2012,1,1).strftime('%B - %A', @locale))
103
+ end
104
+ def test_march()
105
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A', @locale))
106
+ end
107
+ end
195
108
 
196
- def test_en()
197
- t = Time.local(2009,10,21)
198
- assert_equal( 'Wednesday (Wed)', t.strftime('%A (%a)', :en))
199
- assert_equal( 'October (Oct)', t.strftime('%B (%b)', :en))
200
- assert_equal( 'Wednesday {Wed} {Wednesday} {42} 3', t.strftime('%A {%a} {%A} {%W} %w', :en))
201
-
202
- Locale.current = 'en' if defined? Locale
203
- if defined? Locale and Locale.current.language == 'en'
204
- assert_equal( 'en', Locale.current.language )
205
- assert_equal( t.strftime('%A (%a)'), t.strftime('%A (%a)', :en))
206
- assert_equal( t.strftime('%B (%b)'), t.strftime('%B (%b)', :en))
207
- assert_equal( t.strftime('%A {%a} {%A} {%W} %w'), t.strftime('%A {%a} {%A} {%W} %w', :en))
109
+ class Test_de_at < Test::Unit::TestCase
110
+ def setup
111
+ @locale = 'de-at'
208
112
  end
209
- end
113
+ def test_jan()
114
+ assert_equal('Jänner - Sonntag', Date.new(2012,1,1).strftime('%B - %A', @locale))
115
+ end
116
+ def test_feb()
117
+ #No Feber, see http://german.stackexchange.com/questions/5916/wie-ublich-ist-feber-in-osterreich/5917#5917
118
+ assert_equal('Februar - Freitag', Date.new(2013,2,1).strftime('%B - %A', @locale))
119
+ end
120
+ def test_march()
121
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A', @locale))
122
+ end
123
+ end
210
124
 
211
- def test_de()
212
- t = Time.local(2009,10,21)
213
- assert_equal( 'Mittwoch (Mi)', t.strftime('%A (%a)', :de))
214
- assert_equal( 'Oktober (Okt)', t.strftime('%B (%b)', :de))
215
-
216
- Locale.current = 'de' if defined? Locale
217
- if defined? Locale and Locale.current.language == 'de'
218
- assert_equal( 'de', Locale.current.language )
219
- assert_equal( t.strftime('%A (%a)'), t.strftime('%A (%a)', :de))
220
- assert_equal( t.strftime('%B (%b)'), t.strftime('%B (%b)', :de))
221
- assert_equal( t.strftime('%A {%a} {%A} {%W} %w'), t.strftime('%A {%a} {%A} {%W} %w', :de))
125
+ class Test_lt < Test::Unit::TestCase
126
+ def setup
127
+ @locale = 'lt'
222
128
  end
223
-
224
- end
225
- end #Test_Time
129
+ def test_jan()
130
+ assert_equal('sausis - sekmadienis', Date.new(2012,1,1).strftime('%B - %A', @locale))
131
+ end
132
+ end
@@ -0,0 +1,113 @@
1
+ #encoding: utf-8
2
+ gem 'test-unit'
3
+ require 'test/unit'
4
+
5
+ #Version 2.0.5 had problems with ruby 1.9
6
+ gem 'locale', '~> 2.0.8'
7
+ require 'locale'
8
+
9
+ $:.unshift('../lib') if $0 == __FILE__
10
+ require 'date_tools/date_locale'
11
+
12
+
13
+ #~ puts Locale::VERSION #=> 2.0.5
14
+ #~ Locale.current = 'en' #danach funktionierts
15
+ #~ p Locale.current
16
+ #~ puts RUBY_VERSION
17
+
18
+ #~ Locale.current = 'en'
19
+ #~ Locale.current = 'fr'
20
+
21
+ if $0 == __FILE__
22
+ $:.unshift('../lib')
23
+ $:.unshift('.')
24
+ end
25
+
26
+ #~ require 'test_date_locale_old'
27
+
28
+ class Test_en < Test::Unit::TestCase
29
+ def setup
30
+ Locale.current = 'en'
31
+ end
32
+ def test_locale()
33
+ assert_equal('en', Locale.current.to_s)
34
+ assert_equal('en', Locale.current.language.to_s)
35
+ assert_equal('en', DateTools::Mixin.get_language_key)
36
+ end
37
+ def test_jan()
38
+ assert_equal('January - Sunday', Date.new(2012,1,1).strftime('%B - %A'))
39
+ end
40
+ def test_march()
41
+ assert_equal('March - Thursday', Date.new(2012,3,1).strftime('%B - %A'))
42
+ end
43
+ end
44
+
45
+ class Test_en_US < Test::Unit::TestCase
46
+ def setup
47
+ Locale.current = 'en-us'
48
+ end
49
+ def test_locale()
50
+ assert_equal('en_US', Locale.current.to_s)
51
+ assert_equal('en', Locale.current.language.to_s)
52
+ assert_equal('en_us', DateTools::Mixin.get_language_key)
53
+ end
54
+ def test_jan()
55
+ assert_equal('January - Sunday', Date.new(2012,1,1).strftime('%B - %A'))
56
+ end
57
+ def test_march()
58
+ assert_equal('March - Thursday', Date.new(2012,3,1).strftime('%B - %A'))
59
+ end
60
+ end
61
+
62
+ class Test_de < Test::Unit::TestCase
63
+ def setup
64
+ Locale.current = 'de'
65
+ end
66
+ def test_locale()
67
+ assert_equal('de', Locale.current.to_s)
68
+ assert_equal('de', Locale.current.language.to_s)
69
+ end
70
+ def test_jan()
71
+ assert_equal('Januar - Sonntag', Date.new(2012,1,1).strftime('%B - %A'))
72
+ end
73
+ def test_march()
74
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A'))
75
+ end
76
+ end
77
+
78
+ class Test_de_de < Test::Unit::TestCase
79
+ def setup
80
+ Locale.current = 'de-de'
81
+ end
82
+ def test_locale()
83
+ assert_equal('de_DE', Locale.current.to_s)
84
+ assert_equal('de', Locale.current.language.to_s)
85
+ assert_equal('de', DateTools::Mixin.get_language_key)
86
+ end
87
+ def test_jan()
88
+ assert_equal('Januar - Sonntag', Date.new(2012,1,1).strftime('%B - %A'))
89
+ end
90
+ def test_march()
91
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A'))
92
+ end
93
+ end
94
+
95
+ class Test_de_at < Test::Unit::TestCase
96
+ def setup
97
+ Locale.current = 'de-at'
98
+ end
99
+ def test_locale()
100
+ assert_equal('de_AT', Locale.current.to_s)
101
+ assert_equal('de', Locale.current.language.to_s)
102
+ assert_equal('de_at', DateTools::Mixin.get_language_key)
103
+ end
104
+ def test_jan()
105
+ assert_equal('Jänner - Sonntag', Date.new(2012,1,1).strftime('%B - %A'))
106
+ end
107
+ def test_feb()
108
+ assert_equal('Februar - Mittwoch', Date.new(2012,2,1).strftime('%B - %A'))
109
+ end
110
+ def test_march()
111
+ assert_equal('März - Donnerstag', Date.new(2012,3,1).strftime('%B - %A'))
112
+ end
113
+ end