rails-i18nterface 0.1.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 (51) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README.md +109 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/rails_i18nterface/application.js +8 -0
  6. data/app/assets/javascripts/rails_i18nterface/base.js +62 -0
  7. data/app/assets/javascripts/rails_i18nterface/ender.js +3260 -0
  8. data/app/assets/javascripts/rails_i18nterface/ender.min.js +45 -0
  9. data/app/assets/stylesheets/rails_i18nterface/application.css +450 -0
  10. data/app/controllers/rails_i18nterface/application_controller.rb +4 -0
  11. data/app/controllers/rails_i18nterface/translate_controller.rb +255 -0
  12. data/app/helpers/rails_i18nterface/application_helper.rb +4 -0
  13. data/app/helpers/rails_i18nterface/translate_helper.rb +74 -0
  14. data/app/models/translation.rb +4 -0
  15. data/app/views/layouts/rails_i18nterface/translate.html.erb +13 -0
  16. data/app/views/rails_i18nterface/translate/_namespaces.html.erb +1 -0
  17. data/app/views/rails_i18nterface/translate/_pagination.html.erb +18 -0
  18. data/app/views/rails_i18nterface/translate/index.html.erb +132 -0
  19. data/config/routes.rb +7 -0
  20. data/db/migrate/20110921112044_create_translations.rb +18 -0
  21. data/lib/rails-i18nterface.rb +8 -0
  22. data/lib/rails-i18nterface/engine.rb +7 -0
  23. data/lib/rails-i18nterface/file.rb +35 -0
  24. data/lib/rails-i18nterface/keys.rb +192 -0
  25. data/lib/rails-i18nterface/log.rb +35 -0
  26. data/lib/rails-i18nterface/storage.rb +29 -0
  27. data/lib/rails-i18nterface/version.rb +3 -0
  28. data/lib/tasks/rails-i18nterface.rake +4 -0
  29. data/spec/controllers/translate_controller_spec.rb +135 -0
  30. data/spec/internal/app/assets/javascripts/application.js +2 -0
  31. data/spec/internal/app/assets/stylesheets/application.css +3 -0
  32. data/spec/internal/app/controllers/application_controller.rb +4 -0
  33. data/spec/internal/app/models/article.rb +11 -0
  34. data/spec/internal/app/views/application/index.html.erb +5 -0
  35. data/spec/internal/app/views/categories/category.erb +1 -0
  36. data/spec/internal/app/views/categories/category.html +1 -0
  37. data/spec/internal/app/views/categories/category.html.erb +1 -0
  38. data/spec/internal/app/views/categories/category.rhtml +5 -0
  39. data/spec/internal/config/database.yml +3 -0
  40. data/spec/internal/config/routes.rb +4 -0
  41. data/spec/internal/db/combustion_test.sqlite +0 -0
  42. data/spec/internal/db/schema.rb +3 -0
  43. data/spec/internal/log/test.log +521 -0
  44. data/spec/internal/public/favicon.ico +0 -0
  45. data/spec/lib/file_spec.rb +53 -0
  46. data/spec/lib/keys_spec.rb +179 -0
  47. data/spec/lib/log_spec.rb +46 -0
  48. data/spec/lib/storage_spec.rb +33 -0
  49. data/spec/requests/search_spec.rb +62 -0
  50. data/spec/spec_helper.rb +37 -0
  51. metadata +200 -0
File without changes
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsI18nterface::File do
4
+ describe "write" do
5
+ before(:each) do
6
+ @file = RailsI18nterface::File.new(file_path)
7
+ end
8
+
9
+ after(:each) do
10
+ FileUtils.rm(file_path)
11
+ end
12
+
13
+ it "writes all I18n messages for a locale to YAML file" do
14
+ @file.write(translations)
15
+ @file.read.should == RailsI18nterface::File.deep_stringify_keys(translations)
16
+ end
17
+
18
+ def translations
19
+ {
20
+ :en => {
21
+ :article => {
22
+ :title => "One Article"
23
+ },
24
+ :category => "Category"
25
+ }
26
+ }
27
+ end
28
+ end
29
+
30
+ describe "deep_stringify_keys" do
31
+ it "should convert all keys in a hash to strings" do
32
+ RailsI18nterface::File.deep_stringify_keys({
33
+ :en => {
34
+ :article => {
35
+ :title => "One Article"
36
+ },
37
+ :category => "Category"
38
+ }
39
+ }).should == {
40
+ "en" => {
41
+ "article" => {
42
+ "title" => "One Article"
43
+ },
44
+ "category" => "Category"
45
+ }
46
+ }
47
+ end
48
+ end
49
+
50
+ def file_path
51
+ File.join(File.dirname(__FILE__), "files", "en.yml")
52
+ end
53
+ end
@@ -0,0 +1,179 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsI18nterface::Keys do
4
+ before(:each) do
5
+ #I18n.stub!(:default_locale).and_return(:en)
6
+ #RailsI18nterface::Storage.stub!(:root_dir).and_return(i18n_files_dir)
7
+ @keys = RailsI18nterface::Keys.new
8
+ end
9
+
10
+ describe "to_a" do
11
+ it "extracts keys from I18n lookups in .rb, .html.erb, and .rhtml files" do
12
+ @keys.to_a.map(&:to_s).sort.should == ['article.key1', 'article.key2', 'article.key3', 'article.key4', 'article.key5',
13
+ 'category_erb.key1', 'category_html_erb.key1', 'category_rhtml.key1', 'js.alert']
14
+ end
15
+ end
16
+
17
+ describe "to_hash" do
18
+ it "return a hash with I18n keys and file lists" do
19
+ @keys.to_hash[:'article.key3'].should == ["app/models/article.rb"]
20
+ end
21
+ end
22
+
23
+ describe "i18n_keys" do
24
+ before(:each) do
25
+ I18n.backend.send(:init_translations) unless I18n.backend.initialized?
26
+ end
27
+
28
+ it "should return all keys in the I18n backend translations hash" do
29
+ I18n.backend.should_receive(:translations).and_return(translations)
30
+ @keys.i18n_keys(:en).should == ['articles.new.page_title', 'categories.flash.created', 'empty', 'home.about']
31
+ end
32
+
33
+ describe "untranslated_keys" do
34
+ before(:each) do
35
+ I18n.backend.stub!(:translations).and_return(translations)
36
+ end
37
+
38
+ it "should return a hash with keys with missing translations in each locale" do
39
+ @keys.untranslated_keys.should == {
40
+ :sv => ['articles.new.page_title', 'categories.flash.created', 'empty'],
41
+ :no => ["articles.new.page_title", "categories.flash.created", "empty", "home.about"]
42
+ }
43
+ end
44
+ end
45
+
46
+ describe "missing_keys" do
47
+ before(:each) do
48
+ @file_path = File.join(i18n_files_dir, "config", "locales", "en.yml")
49
+ RailsI18nterface::File.new(@file_path).write({
50
+ :en => {
51
+ :home => {
52
+ :page_title => false,
53
+ :intro => {
54
+ :one => "intro one",
55
+ :other => "intro other"
56
+ }
57
+ }
58
+ }
59
+ })
60
+ end
61
+
62
+ after(:each) do
63
+ FileUtils.rm(@file_path)
64
+ end
65
+
66
+ it "should return a hash with keys that are not in the locale file" do
67
+ @keys.stub!(:files).and_return({
68
+ :'home.page_title' => "app/views/home/index.rhtml",
69
+ :'home.intro' => 'app/views/home/index.rhtml',
70
+ :'home.signup' => "app/views/home/_signup.rhtml",
71
+ :'about.index.page_title' => "app/views/about/index.rhtml"
72
+ })
73
+ @keys.missing_keys.should == {
74
+ :'home.signup' => "app/views/home/_signup.rhtml",
75
+ :'about.index.page_title' => "app/views/about/index.rhtml"
76
+ }
77
+ end
78
+ end
79
+
80
+ describe "contains_key?" do
81
+ it "works" do
82
+ hash = {
83
+ :foo => {
84
+ :bar => {
85
+ :baz => false
86
+ }
87
+ }
88
+ }
89
+ RailsI18nterface::Keys.contains_key?(hash, "").should be_false
90
+ RailsI18nterface::Keys.contains_key?(hash, "foo").should be_true
91
+ RailsI18nterface::Keys.contains_key?(hash, "foo.bar").should be_true
92
+ RailsI18nterface::Keys.contains_key?(hash, "foo.bar.baz").should be_true
93
+ RailsI18nterface::Keys.contains_key?(hash, :"foo.bar.baz").should be_true
94
+ RailsI18nterface::Keys.contains_key?(hash, "foo.bar.baz.bla").should be_false
95
+ end
96
+ end
97
+
98
+ describe "translated_locales" do
99
+ before(:each) do
100
+ I18n.stub!(:default_locale).and_return(:en)
101
+ I18n.stub!(:available_locales).and_return([:sv, :no, :en, :root])
102
+ end
103
+
104
+ it "returns all avaiable except :root and the default" do
105
+ RailsI18nterface::Keys.translated_locales.should == [:sv, :no]
106
+ end
107
+ end
108
+
109
+ describe "to_deep_hash" do
110
+ it "convert shallow hash with dot separated keys to deep hash" do
111
+ RailsI18nterface::Keys.to_deep_hash(shallow_hash).should == deep_hash
112
+ end
113
+ end
114
+
115
+ describe "to_shallow_hash" do
116
+ it "converts a deep hash to a shallow one" do
117
+ RailsI18nterface::Keys.to_shallow_hash(deep_hash).should == shallow_hash
118
+ end
119
+ end
120
+
121
+ ##########################################################################
122
+ #
123
+ # Helper Methods
124
+ #
125
+ ##########################################################################
126
+
127
+ def translations
128
+ {
129
+ :en => {
130
+ :home => {
131
+ :about => "This site is about making money"
132
+ },
133
+ :articles => {
134
+ :new => {
135
+ :page_title => "New Article"
136
+ }
137
+ },
138
+ :categories => {
139
+ :flash => {
140
+ :created => "Category created"
141
+ }
142
+ },
143
+ :empty => nil
144
+ },
145
+ :sv => {
146
+ :home => {
147
+ :about => false
148
+ }
149
+ }
150
+ }
151
+ end
152
+ end
153
+
154
+ def shallow_hash
155
+ {
156
+ 'pressrelease.label.one' => "Pressmeddelande",
157
+ 'pressrelease.label.other' => "Pressmeddelanden",
158
+ 'article' => "Artikel",
159
+ 'category' => ''
160
+ }
161
+ end
162
+
163
+ def deep_hash
164
+ {
165
+ :pressrelease => {
166
+ :label => {
167
+ :one => "Pressmeddelande",
168
+ :other => "Pressmeddelanden"
169
+ }
170
+ },
171
+ :article => "Artikel",
172
+ :category => ''
173
+ }
174
+ end
175
+
176
+ def i18n_files_dir
177
+ File.expand_path(File.join("..", "..", "..", "spec", "internal"), __FILE__)
178
+ end
179
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsI18nterface::Log do
4
+ describe "write_to_file" do
5
+ before(:each) do
6
+ I18n.locale = :sv
7
+ I18n.backend.store_translations(:sv, from_texts)
8
+ keys = RailsI18nterface::Keys.new
9
+ @log = RailsI18nterface::Log.new(:sv, :en, RailsI18nterface::Keys.to_shallow_hash(from_texts).keys)
10
+ @log.stub!(:file_path).and_return(file_path)
11
+ FileUtils.rm_f file_path
12
+ end
13
+
14
+ after(:each) do
15
+ FileUtils.rm_f file_path
16
+ end
17
+
18
+ it "writes new log file with from texts" do
19
+ File.exists?(file_path).should be_false
20
+ @log.write_to_file
21
+ File.exists?(file_path).should be_true
22
+ RailsI18nterface::File.new(file_path).read.should == RailsI18nterface::File.deep_stringify_keys(from_texts)
23
+ end
24
+
25
+ it "merges from texts with current texts in log file and re-writes the log file" do
26
+ @log.write_to_file
27
+ I18n.backend.store_translations(:sv, {:category => "Kategori ny"})
28
+ @log.keys = ['category']
29
+ @log.write_to_file
30
+ RailsI18nterface::File.new(file_path).read['category'].should == "Kategori ny"
31
+ end
32
+
33
+ def file_path
34
+ File.join(File.dirname(__FILE__), "files", "from_sv_to_en.yml")
35
+ end
36
+
37
+ def from_texts
38
+ {
39
+ :article => {
40
+ :title => "En artikel"
41
+ },
42
+ :category => "Kategori"
43
+ }
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsI18nterface::Storage do
4
+ describe "write_to_file" do
5
+ before(:each) do
6
+ @storage = RailsI18nterface::Storage.new(:en)
7
+ end
8
+
9
+ it "writes all I18n messages for a locale to YAML file" do
10
+ I18n.backend.should_receive(:translations).and_return(translations)
11
+ @storage.stub!(:file_path).and_return(file_path)
12
+ file = mock(:file)
13
+ file.should_receive(:write).with(translations)
14
+ RailsI18nterface::File.should_receive(:new).with(file_path).and_return(file)
15
+ @storage.write_to_file
16
+ end
17
+
18
+ def file_path
19
+ File.join(File.dirname(__FILE__), "files", "en.yml")
20
+ end
21
+
22
+ def translations
23
+ {
24
+ :en => {
25
+ :article => {
26
+ :title => "One Article"
27
+ },
28
+ :category => "Category"
29
+ }
30
+ }
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'searching' do
4
+
5
+ describe 'keys' do
6
+
7
+ context 'using contains' do
8
+
9
+ it 'finds the correct keys' do
10
+ visit '/translate'
11
+ select 'Key contains', from: 'key_type'
12
+ fill_in 'key_pattern', with: 'ey2'
13
+ click_button 'Search'
14
+
15
+ page.should have_content 'key2'
16
+ end
17
+
18
+ end
19
+
20
+ context 'using starts with' do
21
+ it 'finds the correct keys' do
22
+ visit '/translate'
23
+ select 'Key starts with', from: 'key_type'
24
+ fill_in 'key_pattern', with: 'article.k'
25
+ click_button 'Search'
26
+
27
+ page.should have_content 'article.key2'
28
+ end
29
+ end
30
+ end
31
+
32
+ describe 'values' do
33
+
34
+ context 'using contains' do
35
+
36
+ it 'finds the correct values' do
37
+ visit '/translate'
38
+ select 'contains', from: 'text_type'
39
+ fill_in 'text_pattern', with: '1 year'
40
+ click_button 'Search'
41
+
42
+ page.should have_content 'over 1 year'
43
+ end
44
+
45
+ end
46
+
47
+ context 'using equals' do
48
+
49
+ it 'finds the correct values' do
50
+ visit '/translate'
51
+ select 'equals', from: 'text_type'
52
+ fill_in 'text_pattern', with: 'over 1 year'
53
+ click_button 'Search'
54
+
55
+ page.should have_content 'over 1 year'
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
62
+ end
@@ -0,0 +1,37 @@
1
+ ENV["RAILS_ENV"] ||= 'test'
2
+ $:<<File.expand_path("../../lib",__FILE__)
3
+
4
+ require 'rubygems'
5
+ require 'bundler'
6
+ require 'combustion'
7
+
8
+ Bundler.require :default, :test
9
+
10
+ require 'capybara/rspec'
11
+
12
+ Combustion.initialize! :active_record, :action_controller, :action_view, :sprockets
13
+
14
+ require 'rspec/rails'
15
+ require 'rspec/autorun'
16
+
17
+ require 'capybara/rails'
18
+ require 'rails-i18nterface'
19
+
20
+ new_root = File.expand_path(File.join("..", "internal"), __FILE__)
21
+
22
+ RSpec.configure do |config|
23
+ config.mock_with :rspec
24
+ config.use_transactional_fixtures = true
25
+ config.include Capybara::DSL, example_group: { file_path: /\bspec\/request\// }
26
+ config.include RailsI18nterface::Engine.routes.url_helpers
27
+ config.before(:each) do
28
+ RailsI18nterface::Storage.stub!(:root_dir).and_return(new_root)
29
+ RailsI18nterface::Keys.stub(:i18n_keys).and_return(:en)
30
+ I18n.stub!(:default_locale).and_return(:en)
31
+ I18n.stub!(:available_locales).and_return([:sv, :no, :en, :root])
32
+ end
33
+ end
34
+
35
+ # improve the performance of the specs suite by not logging anything
36
+ # see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
37
+ Rails.logger.level = 4
metadata ADDED
@@ -0,0 +1,200 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-i18nterface
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mose
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: combustion
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.4.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.13.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 2.13.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.13.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.13.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: capybara
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: A rails 3.1/4 engine adding an interface for translating and writing
98
+ translation files.
99
+ email:
100
+ - mose@mose.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - app/helpers/rails_i18nterface/application_helper.rb
106
+ - app/helpers/rails_i18nterface/translate_helper.rb
107
+ - app/models/translation.rb
108
+ - app/views/layouts/rails_i18nterface/translate.html.erb
109
+ - app/views/rails_i18nterface/translate/index.html.erb
110
+ - app/views/rails_i18nterface/translate/_pagination.html.erb
111
+ - app/views/rails_i18nterface/translate/_namespaces.html.erb
112
+ - app/assets/stylesheets/rails_i18nterface/application.css
113
+ - app/assets/javascripts/rails_i18nterface/application.js
114
+ - app/assets/javascripts/rails_i18nterface/ender.min.js
115
+ - app/assets/javascripts/rails_i18nterface/ender.js
116
+ - app/assets/javascripts/rails_i18nterface/base.js
117
+ - app/controllers/rails_i18nterface/application_controller.rb
118
+ - app/controllers/rails_i18nterface/translate_controller.rb
119
+ - config/routes.rb
120
+ - db/migrate/20110921112044_create_translations.rb
121
+ - lib/tasks/rails-i18nterface.rake
122
+ - lib/rails-i18nterface/storage.rb
123
+ - lib/rails-i18nterface/engine.rb
124
+ - lib/rails-i18nterface/log.rb
125
+ - lib/rails-i18nterface/version.rb
126
+ - lib/rails-i18nterface/keys.rb
127
+ - lib/rails-i18nterface/file.rb
128
+ - lib/rails-i18nterface.rb
129
+ - MIT-LICENSE
130
+ - Rakefile
131
+ - README.md
132
+ - spec/spec_helper.rb
133
+ - spec/internal/log/test.log
134
+ - spec/internal/app/models/article.rb
135
+ - spec/internal/app/views/application/index.html.erb
136
+ - spec/internal/app/views/categories/category.erb
137
+ - spec/internal/app/views/categories/category.rhtml
138
+ - spec/internal/app/views/categories/category.html.erb
139
+ - spec/internal/app/views/categories/category.html
140
+ - spec/internal/app/assets/stylesheets/application.css
141
+ - spec/internal/app/assets/javascripts/application.js
142
+ - spec/internal/app/controllers/application_controller.rb
143
+ - spec/internal/config/database.yml
144
+ - spec/internal/config/routes.rb
145
+ - spec/internal/db/schema.rb
146
+ - spec/internal/db/combustion_test.sqlite
147
+ - spec/internal/public/favicon.ico
148
+ - spec/lib/log_spec.rb
149
+ - spec/lib/keys_spec.rb
150
+ - spec/lib/file_spec.rb
151
+ - spec/lib/storage_spec.rb
152
+ - spec/requests/search_spec.rb
153
+ - spec/controllers/translate_controller_spec.rb
154
+ homepage: https://github.com/mose/rails-i18nterface
155
+ licenses:
156
+ - MIT
157
+ metadata: {}
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ requirements: []
173
+ rubyforge_project:
174
+ rubygems_version: 2.0.0.rc.2
175
+ signing_key:
176
+ specification_version: 4
177
+ summary: A rails 3.1/4 engine for translating in a web page.
178
+ test_files:
179
+ - spec/spec_helper.rb
180
+ - spec/internal/log/test.log
181
+ - spec/internal/app/models/article.rb
182
+ - spec/internal/app/views/application/index.html.erb
183
+ - spec/internal/app/views/categories/category.erb
184
+ - spec/internal/app/views/categories/category.rhtml
185
+ - spec/internal/app/views/categories/category.html.erb
186
+ - spec/internal/app/views/categories/category.html
187
+ - spec/internal/app/assets/stylesheets/application.css
188
+ - spec/internal/app/assets/javascripts/application.js
189
+ - spec/internal/app/controllers/application_controller.rb
190
+ - spec/internal/config/database.yml
191
+ - spec/internal/config/routes.rb
192
+ - spec/internal/db/schema.rb
193
+ - spec/internal/db/combustion_test.sqlite
194
+ - spec/internal/public/favicon.ico
195
+ - spec/lib/log_spec.rb
196
+ - spec/lib/keys_spec.rb
197
+ - spec/lib/file_spec.rb
198
+ - spec/lib/storage_spec.rb
199
+ - spec/requests/search_spec.rb
200
+ - spec/controllers/translate_controller_spec.rb