er18ern 0.0.6 → 0.0.7

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/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source :gemcutter
2
+
3
+ gem 'ermahgerd'
4
+ gem 'rack'
5
+ gem 'sinatra'
6
+ gem 'i18n'
7
+
8
+ group :test do
9
+ gem 'rspec'
10
+ gem 'pry'
11
+ gem 'rack-test'
12
+ end
@@ -0,0 +1,43 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ coderay (1.0.8)
5
+ diff-lcs (1.1.3)
6
+ ermahgerd (0.0.1)
7
+ i18n (0.6.1)
8
+ method_source (0.8.1)
9
+ pry (0.9.10)
10
+ coderay (~> 1.0.5)
11
+ method_source (~> 0.8)
12
+ slop (~> 3.3.1)
13
+ rack (1.4.3)
14
+ rack-protection (1.2.0)
15
+ rack
16
+ rack-test (0.6.2)
17
+ rack (>= 1.0)
18
+ rspec (2.12.0)
19
+ rspec-core (~> 2.12.0)
20
+ rspec-expectations (~> 2.12.0)
21
+ rspec-mocks (~> 2.12.0)
22
+ rspec-core (2.12.2)
23
+ rspec-expectations (2.12.1)
24
+ diff-lcs (~> 1.1.3)
25
+ rspec-mocks (2.12.1)
26
+ sinatra (1.3.3)
27
+ rack (~> 1.3, >= 1.3.6)
28
+ rack-protection (~> 1.2)
29
+ tilt (~> 1.3, >= 1.3.3)
30
+ slop (3.3.3)
31
+ tilt (1.3.3)
32
+
33
+ PLATFORMS
34
+ ruby
35
+
36
+ DEPENDENCIES
37
+ ermahgerd
38
+ i18n
39
+ pry
40
+ rack
41
+ rack-test
42
+ rspec
43
+ sinatra
@@ -1,241 +1,6 @@
1
- module Er18Ern
2
-
3
- class LocaleCookie
4
- def initialize(app)
5
- @app = app
6
- end
7
-
8
- def call(env)
9
- request = Rack::Request.new(env)
10
- request_locale = request.params["locale"] || request.cookies["eylocale"]
11
- if request_locale && I18n.available_locales.include?(request_locale.to_sym)
12
- I18n.locale = request_locale
13
- else
14
- I18n.locale = I18n.default_locale
15
- end
16
- status, headers, body = @app.call(env)
17
- cookie = {:value => I18n.locale, :expires => Time.now + 10.days, :domain => request.host.gsub(/^[^\.]*/,""), :path => "/"}
18
- Rack::Utils.set_cookie_header!(headers, "eylocale", cookie)
19
- [status, headers, body]
20
- end
21
- end
22
-
23
- class JustRaise
24
- def call(exception, locale, key, options)
25
- raise "Missing Translation: #{exception}"
26
- end
27
- end
28
-
29
- class RailsApp
30
- def self.setup!
31
- if ["test", "development"].include?(Rails.env)
32
- I18n.exception_handler = JustRaise.new
33
- end
34
- Array.class_eval do
35
- def to_br_sentence
36
- case length
37
- when 0
38
- ""
39
- when 1
40
- self[0].to_s.dup
41
- when 2
42
- two_words_connector = I18n.translate(:'support.array.br_two_words_connector')
43
- "#{self[0]}#{two_words_connector}#{self[1]}".html_safe
44
- else
45
- words_connector = I18n.translate(:'support.array.br_words_connector')
46
- last_word_connector = I18n.translate(:'support.array.br_last_word_connector')
47
- "#{self[0...-1].join(words_connector)}#{last_word_connector}#{self[-1]}".html_safe
48
- end
49
- end
50
- end
51
- ActiveModel::Errors.class_eval do
52
- def full_message(attribute, message)
53
- return message if attribute == :base
54
- attr_name = attribute.to_s.tr('.', '_').humanize
55
- attr_name = @base.class.human_attribute_name(attribute, :default => attr_name)
56
- I18n.t(:"errors.formats.attributes.#{attribute}", {
57
- :default => [:"errors.format","%{attribute} %{message}"],
58
- :attribute => attr_name,
59
- :message => message
60
- })
61
- end
62
- end
63
- end
64
- end
65
-
66
- require 'ermahgerd'
67
- module ImprovedErmahgerd
68
-
69
- def self.translate(words)
70
- words.gsub(/([{]?)([&]?)\w+/) do |word|
71
- if $1 == "{" || $2 == "&"
72
- word
73
- else
74
- translate_word(word.upcase)
75
- end
76
- end
77
- end
78
-
79
- def self.translate_word(word)
80
- case word
81
- when "ENGINE"
82
- "ERNGIN"
83
- when "YARD"
84
- "YERD"
85
- else
86
- Ermahgerd.translate_word(word)
87
- end
88
- end
89
-
90
- end
91
-
92
- class Translator
93
- attr_accessor :locales_dir, :google_translator_hax_locale_dirs
94
-
95
- def en_source_yaml
96
- @en_source_yaml ||= YAML::load_file(File.expand_path('en.yml', self.locales_dir))
97
- end
98
-
99
- def generate_ermahgerd!
100
- traverse = Proc.new do |x, translator|
101
- if x.is_a?(Hash)
102
- result = {}
103
- x.each do |k, v|
104
- result[k] = traverse.call(v, translator)
105
- end
106
- result
107
- else
108
- translator.call(x)
109
- end
110
- end
111
-
112
- errm = {}
113
- errm['ermahgerd'] = en_source_yaml["en"]
114
-
115
- #save ermahgerd
116
- File.open(File.expand_path('ermahgerd.yml', self.locales_dir), "w") do |fp|
117
- fp.write(traverse.call(errm, lambda{|x| ImprovedErmahgerd.translate(x)}).to_yaml)
118
- end
119
- end
1
+ require File.dirname(__FILE__) + '/er18ern/middleware'
2
+ require File.dirname(__FILE__) + '/er18ern/rails_app_helper'
3
+ require File.dirname(__FILE__) + '/er18ern/improved_ermahgerd'
120
4
 
121
- def resave_en!
122
- #re-save EN
123
- File.open(File.expand_path('en.yml', self.locales_dir), "w") do |fp|
124
- fp.write(en_source_yaml.to_yaml)
125
- end
126
- end
127
-
128
- def found_keys
129
- @found_keys ||= begin
130
- found_keys = {}
131
- key_collector = Proc.new do |x, key_prefix|
132
- if x.is_a?(Hash)
133
- result = {}
134
- x.each do |k, v|
135
- result[k] = key_collector.call(v, "#{key_prefix}.#{k}")
136
- end
137
- result
138
- else
139
- found_keys[key_prefix] = x
140
- end
141
- end
142
- key_collector.call(en_source_yaml["en"], "")
143
- found_keys
144
- end
145
- end
146
-
147
- def generate_google_translations!
148
- vals = found_keys.values.uniq.map do |val|
149
- strip_string(val)
150
- end
151
-
152
- File.open(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs), "w") do |fp|
153
- fp.write(vals.join("\n---\n"))
154
- end
155
- end
156
-
157
- def save_engrish!
158
- enstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
159
- engrishstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_AGAIN', self.google_translator_hax_locale_dirs)).split("\n---\n")
160
- engrish = doitstuff(enstuff, found_keys, "engrish", engrishstuff)
161
-
162
- File.open(File.expand_path('engrish.yml', self.locales_dir), "w") do |fp|
163
- fp.write(engrish.to_yaml)
164
- end
165
- end
166
-
167
- def save_jp!
168
- enstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
169
- jpstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_OUTPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
170
- jp = doitstuff(enstuff, found_keys, "jp", jpstuff)
171
-
172
- File.open(File.expand_path('jp.yml', self.locales_dir), "w") do |fp|
173
- fp.write(jp.to_yaml)
174
- end
175
- end
176
-
177
- def copy_missing_into!(place)
178
- en_source_yaml["en"]
179
- output = YAML::load_file(File.expand_path("#{place}.yml", self.locales_dir))
180
- traverse = Proc.new do |x, y|
181
- if x.is_a?(Hash)
182
- x.each do |k, v|
183
- y[k] ||= v
184
- traverse.call(v, y[k])
185
- end
186
- end
187
- end
188
- traverse.call(en_source_yaml["en"], output[place])
189
- File.open(File.expand_path("#{place}.yml", self.locales_dir), "w") do |fp|
190
- fp.write(output.to_yaml)
191
- end
192
- end
193
-
194
- private
195
-
196
- def doitstuff(enstuff, found_keys, locale, stuff)
197
- lookup = {}
198
- found_keys.each do |k, v|
199
- if index = enstuff.index(strip_string(v))
200
- lookup[k] = stuff && stuff[index]
201
- end
202
- end
203
-
204
- jp = {locale => {}}
205
- lookup.each do |k, v|
206
- hash = jp[locale]
207
- last = nil
208
- k.split(".").each do |key_part|
209
- unless key_part.empty?
210
- last_hash = hash
211
- last = Proc.new do |str|
212
- en_string = found_keys[k]
213
- en_string_parts = strip_string(en_string).split("***")
214
- jp_string_parts = str.split("***")
215
- en_string_parts.each_with_index do |part, index|
216
- jp_corresponding = jp_string_parts[index] || "" # "MISSING TRANSLATION"
217
- en_string = en_string.gsub(part.to_s, jp_corresponding)
218
- end
219
- last_hash[key_part] = en_string
220
- end
221
- hash[key_part] ||= {}
222
- hash = hash[key_part]
223
- end
224
- end
225
- last.call(v)
226
- end
227
- jp
228
- end
229
-
230
- def strip_string(str)
231
- str.gsub(/([%]?)([&]?)([{]?)\w+([;]?)([}]?)/) do |word|
232
- if $1 == "%" || $2 == "&"
233
- "***"
234
- else
235
- word
236
- end
237
- end
238
- end
239
-
240
- end
5
+ module Er18Ern
241
6
  end
@@ -0,0 +1,178 @@
1
+ require 'ermahgerd'
2
+
3
+ module Er18Ern
4
+ module ImprovedErmahgerd
5
+
6
+ def self.translate(words)
7
+ words.gsub(/([{]?)([&]?)\w+/) do |word|
8
+ if $1 == "{" || $2 == "&"
9
+ word
10
+ else
11
+ translate_word(word.upcase)
12
+ end
13
+ end
14
+ end
15
+
16
+ def self.translate_word(word)
17
+ case word
18
+ when "ENGINE"
19
+ "ERNGIN"
20
+ when "YARD"
21
+ "YERD"
22
+ else
23
+ Ermahgerd.translate_word(word)
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ class Translator
30
+ attr_accessor :locales_dir, :google_translator_hax_locale_dirs
31
+
32
+ def en_source_yaml
33
+ @en_source_yaml ||= YAML::load_file(File.expand_path('en.yml', self.locales_dir))
34
+ end
35
+
36
+ def generate_ermahgerd!
37
+ traverse = Proc.new do |x, translator|
38
+ if x.is_a?(Hash)
39
+ result = {}
40
+ x.each do |k, v|
41
+ result[k] = traverse.call(v, translator)
42
+ end
43
+ result
44
+ else
45
+ translator.call(x)
46
+ end
47
+ end
48
+
49
+ errm = {}
50
+ errm['ermahgerd'] = en_source_yaml["en"]
51
+
52
+ #save ermahgerd
53
+ File.open(File.expand_path('ermahgerd.yml', self.locales_dir), "w") do |fp|
54
+ fp.write(traverse.call(errm, lambda{|x| ImprovedErmahgerd.translate(x)}).to_yaml)
55
+ end
56
+ end
57
+
58
+ def resave_en!
59
+ #re-save EN
60
+ File.open(File.expand_path('en.yml', self.locales_dir), "w") do |fp|
61
+ fp.write(en_source_yaml.to_yaml)
62
+ end
63
+ end
64
+
65
+ def found_keys
66
+ @found_keys ||= begin
67
+ found_keys = {}
68
+ key_collector = Proc.new do |x, key_prefix|
69
+ if x.is_a?(Hash)
70
+ result = {}
71
+ x.each do |k, v|
72
+ result[k] = key_collector.call(v, "#{key_prefix}.#{k}")
73
+ end
74
+ result
75
+ else
76
+ found_keys[key_prefix] = x
77
+ end
78
+ end
79
+ key_collector.call(en_source_yaml["en"], "")
80
+ found_keys
81
+ end
82
+ end
83
+
84
+ def generate_google_translations!
85
+ vals = found_keys.values.uniq.map do |val|
86
+ strip_string(val)
87
+ end
88
+
89
+ File.open(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs), "w") do |fp|
90
+ fp.write(vals.join("\n---\n"))
91
+ end
92
+ end
93
+
94
+ def save_engrish!
95
+ enstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
96
+ engrishstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_AGAIN', self.google_translator_hax_locale_dirs)).split("\n---\n")
97
+ engrish = doitstuff(enstuff, found_keys, "engrish", engrishstuff)
98
+
99
+ File.open(File.expand_path('engrish.yml', self.locales_dir), "w") do |fp|
100
+ fp.write(engrish.to_yaml)
101
+ end
102
+ end
103
+
104
+ def save_jp!
105
+ enstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_INPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
106
+ jpstuff = File.read(File.expand_path('GOOGLE_TRANSLATE_OUTPUT', self.google_translator_hax_locale_dirs)).split("\n---\n")
107
+ jp = doitstuff(enstuff, found_keys, "jp", jpstuff)
108
+
109
+ File.open(File.expand_path('jp.yml', self.locales_dir), "w") do |fp|
110
+ fp.write(jp.to_yaml)
111
+ end
112
+ end
113
+
114
+ def copy_missing_into!(place)
115
+ en_source_yaml["en"]
116
+ output = YAML::load_file(File.expand_path("#{place}.yml", self.locales_dir))
117
+ traverse = Proc.new do |x, y|
118
+ if x.is_a?(Hash)
119
+ x.each do |k, v|
120
+ y[k] ||= v
121
+ traverse.call(v, y[k])
122
+ end
123
+ end
124
+ end
125
+ traverse.call(en_source_yaml["en"], output[place])
126
+ File.open(File.expand_path("#{place}.yml", self.locales_dir), "w") do |fp|
127
+ fp.write(output.to_yaml)
128
+ end
129
+ end
130
+
131
+ private
132
+
133
+ def doitstuff(enstuff, found_keys, locale, stuff)
134
+ lookup = {}
135
+ found_keys.each do |k, v|
136
+ if index = enstuff.index(strip_string(v))
137
+ lookup[k] = stuff && stuff[index]
138
+ end
139
+ end
140
+
141
+ jp = {locale => {}}
142
+ lookup.each do |k, v|
143
+ hash = jp[locale]
144
+ last = nil
145
+ k.split(".").each do |key_part|
146
+ unless key_part.empty?
147
+ last_hash = hash
148
+ last = Proc.new do |str|
149
+ en_string = found_keys[k]
150
+ en_string_parts = strip_string(en_string).split("***")
151
+ jp_string_parts = str.split("***")
152
+ en_string_parts.each_with_index do |part, index|
153
+ jp_corresponding = jp_string_parts[index] || "" # "MISSING TRANSLATION"
154
+ en_string = en_string.gsub(part.to_s, jp_corresponding)
155
+ end
156
+ last_hash[key_part] = en_string
157
+ end
158
+ hash[key_part] ||= {}
159
+ hash = hash[key_part]
160
+ end
161
+ end
162
+ last.call(v)
163
+ end
164
+ jp
165
+ end
166
+
167
+ def strip_string(str)
168
+ str.gsub(/([%]?)([&]?)([{]?)\w+([;]?)([}]?)/) do |word|
169
+ if $1 == "%" || $2 == "&"
170
+ "***"
171
+ else
172
+ word
173
+ end
174
+ end
175
+ end
176
+
177
+ end
178
+ end
@@ -0,0 +1,26 @@
1
+ require 'i18n'
2
+
3
+ module Er18Ern
4
+ class LocaleCookie
5
+
6
+ DAYS = 24 * 60 * 60
7
+
8
+ def initialize(app)
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ request = Rack::Request.new(env)
14
+ request_locale = request.params["locale"] || request.cookies["eylocale"]
15
+ if request_locale && I18n.available_locales.include?(request_locale.to_sym)
16
+ I18n.locale = request_locale
17
+ else
18
+ I18n.locale = I18n.default_locale
19
+ end
20
+ status, headers, body = @app.call(env)
21
+ cookie = {:value => I18n.locale, :expires => Time.now + (10 * DAYS), :domain => request.host.gsub(/^[^\.]*/,""), :path => "/"}
22
+ Rack::Utils.set_cookie_header!(headers, "eylocale", cookie)
23
+ [status, headers, body]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ module Er18Ern
2
+ class JustRaise
3
+ def call(exception, locale, key, options)
4
+ raise "Missing Translation: #{exception}"
5
+ end
6
+ end
7
+
8
+ class RailsApp
9
+ def self.setup!
10
+ if ["test", "development"].include?(Rails.env)
11
+ I18n.exception_handler = JustRaise.new
12
+ end
13
+ Array.class_eval do
14
+ def to_br_sentence
15
+ case length
16
+ when 0
17
+ ""
18
+ when 1
19
+ self[0].to_s.dup
20
+ when 2
21
+ two_words_connector = I18n.translate(:'support.array.br_two_words_connector')
22
+ "#{self[0]}#{two_words_connector}#{self[1]}".html_safe
23
+ else
24
+ words_connector = I18n.translate(:'support.array.br_words_connector')
25
+ last_word_connector = I18n.translate(:'support.array.br_last_word_connector')
26
+ "#{self[0...-1].join(words_connector)}#{last_word_connector}#{self[-1]}".html_safe
27
+ end
28
+ end
29
+ end
30
+ ActiveModel::Errors.class_eval do
31
+ def full_message(attribute, message)
32
+ return message if attribute == :base
33
+ attr_name = attribute.to_s.tr('.', '_').humanize
34
+ attr_name = @base.class.human_attribute_name(attribute, :default => attr_name)
35
+ I18n.t(:"errors.formats.attributes.#{attribute}", {
36
+ :default => [:"errors.format","%{attribute} %{message}"],
37
+ :attribute => attr_name,
38
+ :message => message
39
+ })
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module Er18Ern
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,3 @@
1
+ ruby -v
2
+ bundle install
3
+ bundle exec rspec -cfs spec
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Er18Ern::ImprovedErmahgerd do
4
+ it 'is improved' do
5
+ # check yaml loading and whatever else it is doing
6
+ end
7
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'support/my_app'
3
+ require 'rack/test'
4
+
5
+ include Rack::Test::Methods
6
+
7
+ def app
8
+ MyApp
9
+ end
10
+
11
+ describe Er18Ern::LocaleCookie do
12
+ describe 'setting a cookie' do
13
+
14
+ before do
15
+ I18n.available_locales = [:en, :jp]
16
+ end
17
+
18
+ it 'will set a default locale cookie of :en if no locale is passed' do
19
+ rack_mock_session.cookie_jar["eylocale"].should == nil
20
+ get "/"
21
+ rack_mock_session.cookie_jar["eylocale"].should == "en"
22
+ end
23
+
24
+ it 'will set the locale cookie of locale passed' do
25
+ rack_mock_session.cookie_jar["eylocale"].should == nil
26
+ get "/?locale=jp"
27
+ rack_mock_session.cookie_jar["eylocale"].should == "jp"
28
+ end
29
+
30
+ it 'will keep the locale cookie if exist, when no locale is passed' do
31
+ get "/?locale=jp"
32
+ rack_mock_session.cookie_jar["eylocale"].should == "jp"
33
+ get "/"
34
+ rack_mock_session.cookie_jar["eylocale"].should == "jp"
35
+ end
36
+
37
+ it 'will reset the cookie if a locale is passed' do
38
+ get "/"
39
+ rack_mock_session.cookie_jar["eylocale"].should == "en"
40
+ get "/?locale=jp"
41
+ rack_mock_session.cookie_jar["eylocale"].should == "jp"
42
+ end
43
+
44
+ end
45
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Er18Ern::RailsApp do
4
+
5
+ # hax
6
+ class Rails
7
+ def self.env
8
+ "test"
9
+ end
10
+ end
11
+ class ActiveModel
12
+ class Errors
13
+ end
14
+ end
15
+
16
+ describe 'has a setup method which does things that depend on the Rails environment' do
17
+ before do
18
+ Er18Ern::RailsApp.setup!
19
+ end
20
+
21
+ it 'sets exception handler' do
22
+ I18n.exception_handler.class.should == Er18Ern::JustRaise
23
+ end
24
+
25
+ it 'monkey patches Array' do
26
+ Array.new.methods.map(&:to_s).include?("to_br_sentence").should be_true
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/../lib/er18ern'
2
+ require 'rack'
3
+ require 'pry'
4
+ require 'sinatra'
5
+ require 'sinatra/base'
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../lib/er18ern'
2
+ require 'sinatra/base'
3
+
4
+ class MyApp < Sinatra::Base
5
+
6
+ use Er18Ern::LocaleCookie
7
+
8
+ get '/' do
9
+ 'WAZZA'
10
+ end
11
+
12
+ end
metadata CHANGED
@@ -1,82 +1,82 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: er18ern
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 6
10
- version: 0.0.6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jacob & Others too ashamed to admit it
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-12-06 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: ermahgerd
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
34
30
  description: i18n helpers (with ermahgerd)
35
- email:
31
+ email:
36
32
  - jacob@engineyard.com
37
33
  executables: []
38
-
39
34
  extensions: []
40
-
41
35
  extra_rdoc_files: []
42
-
43
- files:
36
+ files:
37
+ - Gemfile
38
+ - Gemfile.lock
44
39
  - README.md
45
40
  - er18ern.gemspec
46
41
  - lib/er18ern.rb
42
+ - lib/er18ern/improved_ermahgerd.rb
43
+ - lib/er18ern/middleware.rb
44
+ - lib/er18ern/rails_app_helper.rb
47
45
  - lib/er18ern/version.rb
46
+ - script/ci
47
+ - spec/improved_ermahgerd_spec.rb
48
+ - spec/middleware_spec.rb
49
+ - spec/rails_app_helper_spec.rb
50
+ - spec/spec_helper.rb
51
+ - spec/support/my_app.rb
48
52
  homepage: https://github.com/engineyard/er18ern
49
53
  licenses: []
50
-
51
54
  post_install_message:
52
55
  rdoc_options: []
53
-
54
- require_paths:
56
+ require_paths:
55
57
  - lib
56
- required_ruby_version: !ruby/object:Gem::Requirement
58
+ required_ruby_version: !ruby/object:Gem::Requirement
57
59
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 3
62
- segments:
63
- - 0
64
- version: "0"
65
- required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
65
  none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
74
70
  requirements: []
75
-
76
71
  rubyforge_project:
77
72
  rubygems_version: 1.8.24
78
73
  signing_key:
79
74
  specification_version: 3
80
75
  summary: i18n helpers
81
- test_files: []
82
-
76
+ test_files:
77
+ - spec/improved_ermahgerd_spec.rb
78
+ - spec/middleware_spec.rb
79
+ - spec/rails_app_helper_spec.rb
80
+ - spec/spec_helper.rb
81
+ - spec/support/my_app.rb
82
+ has_rdoc: