r18n-rails 4.0.0 → 5.0.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog.md +383 -0
  3. data/README.md +73 -59
  4. data/lib/r18n-rails.rb +32 -20
  5. data/lib/r18n-rails/filters.rb +2 -2
  6. data/lib/r18n-rails/helpers.rb +5 -6
  7. data/lib/r18n-rails/{controller.rb → hooks_helper.rb} +39 -15
  8. data/lib/r18n-rails/translated.rb +5 -4
  9. data/lib/r18n-rails/version.rb +7 -0
  10. metadata +217 -69
  11. data/.rspec +0 -1
  12. data/Rakefile +0 -15
  13. data/r18n-rails.gemspec +0 -32
  14. data/spec/app/app/controllers/application_controller.rb +0 -5
  15. data/spec/app/app/controllers/test_controller.rb +0 -50
  16. data/spec/app/app/i18n/en.yml +0 -6
  17. data/spec/app/app/i18n/filters.rb +0 -5
  18. data/spec/app/app/i18n/ru.yml +0 -2
  19. data/spec/app/app/mailers/test_mailer.rb +0 -9
  20. data/spec/app/app/models/post.rb +0 -6
  21. data/spec/app/app/views/test/format.html.erb +0 -1
  22. data/spec/app/app/views/test/helpers.html.erb +0 -4
  23. data/spec/app/app/views/test/safe.html.erb +0 -1
  24. data/spec/app/app/views/test_mailer/test.text.erb +0 -3
  25. data/spec/app/config.ru +0 -6
  26. data/spec/app/config/application.rb +0 -28
  27. data/spec/app/config/boot.rb +0 -6
  28. data/spec/app/config/environment.rb +0 -7
  29. data/spec/app/config/environments/test.rb +0 -14
  30. data/spec/app/config/initializers/r18n.rb +0 -4
  31. data/spec/app/config/initializers/secret_token.rb +0 -3
  32. data/spec/app/config/locales/en.yml +0 -7
  33. data/spec/app/config/locales/ru.yml +0 -20
  34. data/spec/app/config/routes.rb +0 -15
  35. data/spec/app/db/migrate/20091218123631_create_posts.rb +0 -14
  36. data/spec/app/db/schema.rb +0 -22
  37. data/spec/rails_spec.rb +0 -183
  38. data/spec/spec_helper.rb +0 -10
data/lib/r18n-rails.rb CHANGED
@@ -20,44 +20,56 @@
20
20
  require 'r18n-core'
21
21
  require 'r18n-rails-api'
22
22
 
23
+ require 'rails'
24
+ require 'action_controller'
25
+
23
26
  require_relative 'r18n-rails/helpers'
24
- require_relative 'r18n-rails/controller'
27
+ require_relative 'r18n-rails/hooks_helper'
25
28
  require_relative 'r18n-rails/translated'
26
29
  require_relative 'r18n-rails/filters'
27
30
 
28
31
  R18n.default_places { [Rails.root.join('app/i18n'), R18n::Loader::Rails.new] }
29
32
 
30
33
  ActionController::Base.helper(R18n::Rails::Helpers)
31
- ActionController::Base.include R18n::Rails::Controller
34
+ ActionController::Base.include R18n::Rails::HooksHelper::ForController
32
35
 
33
36
  if ActionController::Base.respond_to? :before_action
34
37
  ActionController::Base.send(:before_action, :set_r18n)
35
- if Rails.env.development?
36
- ActionController::Base.send(:before_action, :reload_r18n)
37
- end
38
+ ActionController::Base.send(:before_action, :reload_r18n) if Rails.env.development?
38
39
  else
39
40
  ActionController::Base.send(:before_filter, :set_r18n)
40
- if Rails.env.development?
41
- ActionController::Base.send(:before_filter, :reload_r18n)
42
- end
41
+ ActionController::Base.send(:before_filter, :reload_r18n) if Rails.env.development?
43
42
  end
44
43
 
45
- ActionMailer::Base.helper(R18n::Rails::Helpers) if defined? ActionMailer
44
+ if defined? ActionMailer
45
+ ActionMailer::Base.helper(R18n::Rails::Helpers)
46
+ ActionMailer::Base.include R18n::Rails::HooksHelper::ForMailer
47
+
48
+ if ActionMailer::Base.respond_to? :before_action
49
+ ActionMailer::Base.send(:before_action, :set_r18n)
50
+ ActionMailer::Base.send(:before_action, :reload_r18n) if Rails.env.development?
51
+ else
52
+ ActionMailer::Base.send(:before_filter, :set_r18n)
53
+ ActionMailer::Base.send(:before_filter, :reload_r18n) if Rails.env.development?
54
+ end
55
+ end
46
56
 
47
57
  ActiveSupport.on_load(:after_initialize) do
48
58
  env = ENV['LANG']
49
59
  env = env.split('.').first if env
50
- locale = env || I18n.default_locale.to_s
51
- if defined?(Rails::Console) && !defined?(Wirble)
52
- i18n = R18n::I18n.new(
53
- locale, R18n.default_places,
54
- off_filters: :untranslated,
55
- on_filters: :untranslated_bash
56
- )
57
- R18n.set(i18n)
58
- else
59
- R18n.set(locale)
60
- end
60
+ R18n::I18n.default = I18n.default_locale.to_s
61
+ locales = [env, I18n.default_locale.to_s]
62
+ options =
63
+ if defined?(Rails::Console) && !defined?(Wirble)
64
+ {
65
+ off_filters: :untranslated,
66
+ on_filters: :untranslated_bash
67
+ }
68
+ else
69
+ {}
70
+ end
71
+ i18n = R18n::I18n.new(locales, R18n.default_places, **options)
72
+ R18n.set(i18n)
61
73
 
62
74
  I18n.backend = R18n::Backend.new
63
75
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Load R18n filters from Rails app directory.
4
- #
5
3
  # Copyright (C) 2012 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
6
4
  #
7
5
  # This program is free software: you can redistribute it and/or modify
@@ -18,6 +16,7 @@
18
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
17
 
20
18
  module R18n
19
+ # Load R18n filters from Rails app directory.
21
20
  module Rails
22
21
  # Load and remove filters from ruby files in `app/i18n`.
23
22
  class Filters
@@ -27,6 +26,7 @@ module R18n
27
26
 
28
27
  # Path to filters. Should be set to `app/i18n`.
29
28
  attr_writer :path
29
+
30
30
  def path
31
31
  return @path if defined?(@path)
32
32
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # R18n helpers for Rails.
4
- #
5
3
  # Copyright (C) 2009 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
6
4
  #
7
5
  # This program is free software: you can redistribute it and/or modify
@@ -19,6 +17,7 @@
19
17
 
20
18
  module R18n
21
19
  module Rails
20
+ # R18n helpers for Rails.
22
21
  module Helpers
23
22
  # Return current R18n I18n object, to use R18n API:
24
23
  # * `r18n.available_locales` – available application translations.
@@ -49,11 +48,11 @@ module R18n
49
48
  # l Time.now # Rails I18n default format
50
49
  # l Time.now, format: :short # Rails I18n style
51
50
  # l Time.now, :human # R18n style
52
- def l(obj, *params)
53
- if params.empty? || params.first.is_a?(Hash)
54
- super(obj, *params)
51
+ def l(obj, *args, **kwargs)
52
+ if args.empty? || kwargs.any?
53
+ super(obj, *args, **kwargs)
55
54
  else
56
- r18n.l(obj, *params)
55
+ r18n.l(obj, *args, now: Time.zone.now, **kwargs)
57
56
  end
58
57
  end
59
58
  alias localize l
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Methods and filters to controllers.
4
- #
5
3
  # Copyright (C) 2009 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
6
4
  #
7
5
  # This program is free software: you can redistribute it and/or modify
@@ -21,14 +19,29 @@ require 'r18n-rails-api'
21
19
 
22
20
  module R18n
23
21
  module Rails
24
- module Controller
25
- include Helpers
22
+ # Methods and filters to controllers.
23
+ module HooksHelper
24
+ module Common
25
+ include Helpers
26
+
27
+ private
26
28
 
27
- private
29
+ # Clean cache and reload filters from ruby files in `app/i18n`.
30
+ # Used only for development.
31
+ def reload_r18n
32
+ R18n.clear_cache!
33
+ R18n::Rails::Filters.reload!
34
+ R18n.get.try(:reload!)
35
+ end
36
+ end
28
37
 
29
- # Auto detect user locales and change backend.
30
- def set_r18n
31
- R18n.set do
38
+ module ForController
39
+ include Common
40
+
41
+ private
42
+
43
+ # Auto detect user locales and set.
44
+ def set_r18n
32
45
  R18n::I18n.default = ::I18n.default_locale.to_s
33
46
  locales = R18n::I18n.parse_http(request.env['HTTP_ACCEPT_LANGUAGE'])
34
47
 
@@ -43,16 +56,27 @@ module R18n
43
56
  off_filters: :untranslated, on_filters: :untranslated_html
44
57
  )
45
58
  ::I18n.locale = i18n.locale.code.to_sym
46
- i18n
59
+ R18n.set i18n
60
+ ## To not prevent action
61
+ ## Also don't use `puts`
62
+ nil
47
63
  end
48
64
  end
49
65
 
50
- # Clean cache and reload filters from ruby files in `app/i18n`.
51
- # Used only for development.
52
- def reload_r18n
53
- R18n.clear_cache!
54
- R18n::Rails::Filters.reload!
55
- R18n.get.try(:reload!)
66
+ module ForMailer
67
+ include Common
68
+
69
+ private
70
+
71
+ # Set locale from `::I18n`
72
+ def set_r18n
73
+ R18n::I18n.default = ::I18n.default_locale.to_s
74
+ i18n = R18n::I18n.new(
75
+ ::I18n.locale, R18n.default_places,
76
+ off_filters: :untranslated, on_filters: :untranslated_html
77
+ )
78
+ R18n.set i18n
79
+ end
56
80
  end
57
81
  end
58
82
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ActiveRecord fix mixin to R18n::Translated.
4
- #
5
3
  # Copyright (C) 2011 Andrey “A.I.” Sitnik <andrey@sitnik.ru>
6
4
  #
7
5
  # This program is free software: you can redistribute it and/or modify
@@ -19,10 +17,13 @@
19
17
 
20
18
  module R18n
21
19
  module Translated
20
+ # ActiveRecord fix mixin to R18n::Translated.
22
21
  module Base
22
+ remove_method :unlocalized_methods
23
+
23
24
  def unlocalized_methods
24
- if defined?(ActiveRecord) && ancestors.include?(ActiveRecord::Base)
25
- column_names + column_names.map { |i| i + '=' } + instance_methods
25
+ if defined?(ActiveRecord) && self <= ActiveRecord::Base
26
+ column_names + column_names.map { |i| "#{i}=" } + instance_methods
26
27
  else
27
28
  instance_methods
28
29
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module R18n
4
+ module Rails
5
+ VERSION = '5.0.0'
6
+ end
7
+ end
metadata CHANGED
@@ -1,29 +1,218 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r18n-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Sitnik
8
- autorequire:
8
+ - Alexander Popov
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2020-01-30 00:00:00.000000000 Z
12
+ date: 2021-03-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: r18n-rails-api
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - '='
18
+ - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: 4.0.0
20
+ version: '5.0'
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - '='
25
+ - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 4.0.0
27
+ version: '5.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rails
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '5.0'
35
+ - - "<"
36
+ - !ruby/object:Gem::Version
37
+ version: '7'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '5.0'
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: '7'
48
+ - !ruby/object:Gem::Dependency
49
+ name: pry-byebug
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.9'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.9'
62
+ - !ruby/object:Gem::Dependency
63
+ name: gem_toys
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.7.1
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.7.1
76
+ - !ruby/object:Gem::Dependency
77
+ name: toys
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.11.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.11.0
90
+ - !ruby/object:Gem::Dependency
91
+ name: rubocop
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.6'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
104
+ - !ruby/object:Gem::Dependency
105
+ name: rubocop-performance
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.9'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.9'
118
+ - !ruby/object:Gem::Dependency
119
+ name: rubocop-rails
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.9'
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.9'
132
+ - !ruby/object:Gem::Dependency
133
+ name: rubocop-rake
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.5.1
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.5.1
146
+ - !ruby/object:Gem::Dependency
147
+ name: codecov
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.5.0
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.5.0
160
+ - !ruby/object:Gem::Dependency
161
+ name: rspec
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.10'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.10'
174
+ - !ruby/object:Gem::Dependency
175
+ name: rspec-rails
176
+ requirement: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '4.0'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '4.0'
188
+ - !ruby/object:Gem::Dependency
189
+ name: simplecov
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 0.21.0
195
+ type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 0.21.0
202
+ - !ruby/object:Gem::Dependency
203
+ name: sqlite3
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.4'
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '1.4'
27
216
  description: |2
28
217
  Out-of-box R18n support for Ruby on Rails.
29
218
  It is just a wrapper for R18n Rails API and R18n core libraries.
@@ -31,53 +220,34 @@ description: |2
31
220
  translation support for any classes, time and number localization, several
32
221
  user language support, agnostic core package with out-of-box support for
33
222
  Rails, Sinatra and desktop applications.
34
- email: andrey@sitnik.ru
223
+ email:
224
+ - andrey@sitnik.ru
225
+ - alex.wayfer@gmail.com
35
226
  executables: []
36
227
  extensions: []
37
228
  extra_rdoc_files:
38
229
  - README.md
39
230
  - LICENSE
40
231
  files:
41
- - ".rspec"
232
+ - ChangeLog.md
42
233
  - LICENSE
43
234
  - README.md
44
- - Rakefile
45
235
  - lib/r18n-rails.rb
46
- - lib/r18n-rails/controller.rb
47
236
  - lib/r18n-rails/filters.rb
48
237
  - lib/r18n-rails/helpers.rb
238
+ - lib/r18n-rails/hooks_helper.rb
49
239
  - lib/r18n-rails/translated.rb
50
- - r18n-rails.gemspec
51
- - spec/app/app/controllers/application_controller.rb
52
- - spec/app/app/controllers/test_controller.rb
53
- - spec/app/app/i18n/en.yml
54
- - spec/app/app/i18n/filters.rb
55
- - spec/app/app/i18n/ru.yml
56
- - spec/app/app/mailers/test_mailer.rb
57
- - spec/app/app/models/post.rb
58
- - spec/app/app/views/test/format.html.erb
59
- - spec/app/app/views/test/helpers.html.erb
60
- - spec/app/app/views/test/safe.html.erb
61
- - spec/app/app/views/test_mailer/test.text.erb
62
- - spec/app/config.ru
63
- - spec/app/config/application.rb
64
- - spec/app/config/boot.rb
65
- - spec/app/config/environment.rb
66
- - spec/app/config/environments/test.rb
67
- - spec/app/config/initializers/r18n.rb
68
- - spec/app/config/initializers/secret_token.rb
69
- - spec/app/config/locales/en.yml
70
- - spec/app/config/locales/ru.yml
71
- - spec/app/config/routes.rb
72
- - spec/app/db/migrate/20091218123631_create_posts.rb
73
- - spec/app/db/schema.rb
74
- - spec/rails_spec.rb
75
- - spec/spec_helper.rb
76
- homepage: https://github.com/r18n/r18n/tree/master/r18n-rails
240
+ - lib/r18n-rails/version.rb
241
+ homepage: https://github.com/r18n/r18n-rails
77
242
  licenses:
78
243
  - LGPL-3.0
79
- metadata: {}
80
- post_install_message:
244
+ metadata:
245
+ bug_tracker_uri: https://github.com/r18n/r18n-rails/issues
246
+ changelog_uri: https://github.com/r18n/r18n-rails/blob/5.0.0/ChangeLog.md
247
+ documentation_uri: http://www.rubydoc.info/gems/r18n-rails/5.0.0
248
+ homepage_uri: https://github.com/r18n/r18n-rails
249
+ source_code_uri: https://github.com/r18n/r18n-rails
250
+ post_install_message:
81
251
  rdoc_options: []
82
252
  require_paths:
83
253
  - lib
@@ -85,40 +255,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
255
  requirements:
86
256
  - - ">="
87
257
  - !ruby/object:Gem::Version
88
- version: '0'
258
+ version: '2.5'
259
+ - - "<"
260
+ - !ruby/object:Gem::Version
261
+ version: '4'
89
262
  required_rubygems_version: !ruby/object:Gem::Requirement
90
263
  requirements:
91
264
  - - ">="
92
265
  - !ruby/object:Gem::Version
93
266
  version: '0'
94
267
  requirements: []
95
- rubygems_version: 3.1.2
96
- signing_key:
268
+ rubygems_version: 3.2.3
269
+ signing_key:
97
270
  specification_version: 4
98
271
  summary: R18n for Rails
99
- test_files:
100
- - spec/app/app/controllers/application_controller.rb
101
- - spec/app/app/controllers/test_controller.rb
102
- - spec/app/app/i18n/en.yml
103
- - spec/app/app/i18n/filters.rb
104
- - spec/app/app/i18n/ru.yml
105
- - spec/app/app/mailers/test_mailer.rb
106
- - spec/app/app/models/post.rb
107
- - spec/app/app/views/test/format.html.erb
108
- - spec/app/app/views/test/helpers.html.erb
109
- - spec/app/app/views/test/safe.html.erb
110
- - spec/app/app/views/test_mailer/test.text.erb
111
- - spec/app/config.ru
112
- - spec/app/config/application.rb
113
- - spec/app/config/boot.rb
114
- - spec/app/config/environment.rb
115
- - spec/app/config/environments/test.rb
116
- - spec/app/config/initializers/r18n.rb
117
- - spec/app/config/initializers/secret_token.rb
118
- - spec/app/config/locales/en.yml
119
- - spec/app/config/locales/ru.yml
120
- - spec/app/config/routes.rb
121
- - spec/app/db/migrate/20091218123631_create_posts.rb
122
- - spec/app/db/schema.rb
123
- - spec/rails_spec.rb
124
- - spec/spec_helper.rb
272
+ test_files: []