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.
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