rails-timeago 1.3.0 → 1.4.0

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/README.md CHANGED
@@ -104,6 +104,17 @@ locale file lookup for `timeago_script_tag`.
104
104
  To add your own locales add a file in JavaScript assets directory named
105
105
  `locales/jquery.timeago.<locale>.js` and add your locale to `Rails::Timeago.locales`.
106
106
 
107
+ **rails-timeago** provides support for custom locale file mappings. That may be
108
+ especially useful to override the embedded `en` locale because there is no English
109
+ locale file that can be overridden:
110
+
111
+ ```ruby
112
+ Rails::Timeago.map_locale "en", "better/locales/en.js"
113
+ ```
114
+
115
+ Given that mapping rails-timeago's `timeago_script_tag` will include the mapped
116
+ locale file into your page.
117
+
107
118
  ## License
108
119
 
109
120
  [MIT License](http://www.opensource.org/licenses/mit-license.php)
@@ -83,6 +83,21 @@ module Rails
83
83
  end
84
84
  end
85
85
 
86
+ # Allow to map a locale to a specific url. May be useful for
87
+ # overriding embedded english locale:
88
+ #
89
+ # Rails::Timeago.map_locale :en, "better/locales/en.js"
90
+ #
91
+ def self.map_locale(locale, url)
92
+ @locale_map ||= {}
93
+ @locale_map[locale.to_s] = url
94
+ end
95
+
96
+ def self.mapped_locale(locale)
97
+ @locale_map ||= {}
98
+ @locale_map[locale.to_s]
99
+ end
100
+
86
101
  def self.locale_path
87
102
  File.dirname(__FILE__) + '/../vendor/assets/javascripts/locales/'
88
103
  end
@@ -124,6 +139,7 @@ module Rails
124
139
 
125
140
  def self.has_locale(locale)
126
141
  return locales.include? locale if locales.any?
142
+ return true if @locale_map and @locale_map[locale.to_s]
127
143
  return has_locale_file locale
128
144
  end
129
145
 
@@ -56,11 +56,18 @@ module Rails
56
56
  end
57
57
 
58
58
  # Return a JavaScript tag to include jQuery timeago
59
- # locale file for current or given locale.
59
+ # or custom mapped locale file for current or given locale.
60
60
  def timeago_script_tag(locale = nil)
61
61
  locale = ::Rails::Timeago.lookup_locale locale
62
- return javascript_include_tag 'locales/' + ::Rails::Timeago.locale_file_name(locale) if locale != "en"
63
- ''
62
+
63
+ file = ::Rails::Timeago.mapped_locale locale
64
+ return javascript_include_tag file if file
65
+
66
+ if locale != 'en'
67
+ javascript_include_tag 'locales/' + ::Rails::Timeago.locale_file_name(locale)
68
+ else
69
+ '' # English locale is embedded in jQuery timeago plugin file.
70
+ end
64
71
  end
65
72
  end
66
73
  end
@@ -2,7 +2,7 @@ module Rails
2
2
  module Timeago
3
3
  module VERSION
4
4
  MAJOR = 1
5
- MINOR = 3
5
+ MINOR = 4
6
6
  PATCH = 0
7
7
  STAGE = nil
8
8
 
@@ -87,16 +87,35 @@ describe Rails::Timeago::Helper do
87
87
  end
88
88
 
89
89
  context "#timeago_script_tag" do
90
- it "should not return anything if locale is 'en'" do
90
+ it "should not return anything if locale is 'en' and no 'en' mapping exists" do
91
+ Rails::Timeago.map_locale :en, nil
91
92
  I18n.locale = "en"
92
93
  @stub.timeago_script_tag.should == ""
93
94
  end
94
95
 
96
+ it "should return mapped 'en' locale file if mapping exists" do
97
+ Rails::Timeago.map_locale :en, "better/locale/en.js"
98
+
99
+ I18n.locale = "en"
100
+ @stub.timeago_script_tag.should == '<script src="better/locale/en.js"></script>'
101
+
102
+ Rails::Timeago.map_locale :en, nil
103
+ end
104
+
95
105
  it "should return javascript tag with locale file" do
96
106
  I18n.locale = "de"
97
107
  @stub.timeago_script_tag.should == '<script src="locales/jquery.timeago.de.js"></script>'
98
108
  end
99
109
 
110
+ it "should return javascript tag with mapped locale file" do
111
+ Rails::Timeago.map_locale :de, "deutsch.js"
112
+
113
+ I18n.locale = "de"
114
+ @stub.timeago_script_tag.should == '<script src="deutsch.js"></script>'
115
+
116
+ Rails::Timeago.map_locale :de, nil
117
+ end
118
+
100
119
  it "should return javascript tag with full locale file if available" do
101
120
  I18n.locale = "zh-CN"
102
121
  @stub.timeago_script_tag.should == '<script src="locales/jquery.timeago.zh-CN.js"></script>'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-timeago
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-25 00:00:00.000000000 Z
12
+ date: 2012-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport