mdemare-like_time 0.1.2 → 0.1.3
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.
- data/VERSION +1 -1
- data/lib/like_time.rb +13 -10
- data/like_time.gemspec +1 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/lib/like_time.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Time
|
2
|
-
def Time.
|
2
|
+
def Time.set_default_template_language(lang)
|
3
3
|
@lang = lang
|
4
4
|
end
|
5
5
|
|
@@ -26,7 +26,7 @@ class Time
|
|
26
26
|
:month => %w(X jan feb mrt apr mei jun jul aug sep okt nov dec),
|
27
27
|
:lmonth => %w(X januari februari maart april mei juni juli augustus september oktober november december)}}
|
28
28
|
|
29
|
-
# +
|
29
|
+
# +s+ Uses a natural format to specify a date/time format, by using a reference date/time.
|
30
30
|
# This time is Sunday, December 31, 23:59.
|
31
31
|
# Capitalization of months/weekdays will match that in template.
|
32
32
|
# The following subset of strftime is supported:
|
@@ -52,22 +52,25 @@ class Time
|
|
52
52
|
# Time.now.like("31-12-99")
|
53
53
|
# Time.now.like("Zondag om 23 uur 59")
|
54
54
|
# Time.now.like("December, 1999")
|
55
|
-
def like(
|
56
|
-
|
55
|
+
def like(s, lang = nil)
|
56
|
+
l = lang || Time.default_template_language
|
57
|
+
raise "Please supply language as parameter, or set global language with Time.set_default_template_language(lang)"
|
58
|
+
lang_data = LANG_DATA[l.to_sym]
|
57
59
|
raise "Language #{lang} not supported." unless lang_data
|
58
|
-
s = template.dup
|
59
60
|
match_capitalization = lambda {|t,z| z == z.downcase ? t.downcase : z == z.upcase ? t.upcase : t.capitalize }
|
60
|
-
s.
|
61
|
+
s.split(/([A-Z]+)|(\d+)/i).map do |x|
|
61
62
|
if y = lang_data[:conversion][x.downcase]
|
62
63
|
if String === y
|
63
|
-
|
64
|
+
y
|
64
65
|
elsif y == :day or y == :lday
|
65
|
-
|
66
|
+
match_capitalization[lang_data[y][wday], x]
|
66
67
|
else
|
67
|
-
|
68
|
+
match_capitalization[lang_data[y][month], x]
|
68
69
|
end
|
70
|
+
else
|
71
|
+
x
|
69
72
|
end
|
70
|
-
end
|
73
|
+
end.join
|
71
74
|
strftime s
|
72
75
|
end
|
73
76
|
end
|
data/like_time.gemspec
CHANGED