mdemare-like_time 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/like_time.rb +13 -10
  3. data/like_time.gemspec +1 -1
  4. metadata +1 -1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/lib/like_time.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Time
2
- def Time.default_template_language(lang)
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
- # +template+ Uses a natural format to specify a date/time format, by using a reference date/time.
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(template, lang = nil)
56
- lang_data = LANG_DATA[(lang || Time.default_template_language).to_sym]
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.scan(/\d+|\w+/).each do |x|
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
- s.gsub! /\b#{x}\b/, y
64
+ y
64
65
  elsif y == :day or y == :lday
65
- s.gsub! /\b#{x}\b/, match_capitalization[lang_data[y][wday], x]
66
+ match_capitalization[lang_data[y][wday], x]
66
67
  else
67
- s.gsub! /\b#{x}\b/, match_capitalization[lang_data[y][month], x]
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{like_time}
5
- s.version = "0.1.2"
5
+ s.version = "0.1.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Michiel de Mare"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdemare-like_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michiel de Mare