trendi18n 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/LICENSE +22 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +19 -0
  4. data/Rakefile +54 -0
  5. data/VERSION +1 -0
  6. data/app/models/translation.rb +125 -0
  7. data/generators/trendi18n/templates/migrations/create_translations.rb +22 -0
  8. data/generators/trendi18n/trendi18n_generator.rb +8 -0
  9. data/lib/commands.rb +39 -0
  10. data/lib/file.rb +8 -0
  11. data/lib/trendi18n.rb +78 -0
  12. data/rails/init.rb +5 -0
  13. data/spec/test_application/README +243 -0
  14. data/spec/test_application/Rakefile +10 -0
  15. data/spec/test_application/app/controllers/application_controller.rb +10 -0
  16. data/spec/test_application/app/controllers/translations_controller.rb +41 -0
  17. data/spec/test_application/app/views/layouts/application.rhtml +15 -0
  18. data/spec/test_application/app/views/translations/_form.html.erb +11 -0
  19. data/spec/test_application/app/views/translations/edit.html.erb +6 -0
  20. data/spec/test_application/app/views/translations/index.html.erb +32 -0
  21. data/spec/test_application/app/views/translations/new.html.erb +7 -0
  22. data/spec/test_application/app/views/translations/show.html.erb +5 -0
  23. data/spec/test_application/config/boot.rb +110 -0
  24. data/spec/test_application/config/database.yml +25 -0
  25. data/spec/test_application/config/environment.rb +44 -0
  26. data/spec/test_application/config/environments/cucumber.rb +28 -0
  27. data/spec/test_application/config/environments/development.rb +17 -0
  28. data/spec/test_application/config/environments/production.rb +28 -0
  29. data/spec/test_application/config/environments/test.rb +34 -0
  30. data/spec/test_application/config/initializers/new_rails_defaults.rb +21 -0
  31. data/spec/test_application/config/initializers/session_store.rb +15 -0
  32. data/spec/test_application/config/locales/en.yml +5 -0
  33. data/spec/test_application/config/routes.rb +46 -0
  34. data/spec/test_application/db/migrate/20091208195455_create_translations.rb +22 -0
  35. data/spec/test_application/db/schema.rb +31 -0
  36. data/spec/test_application/db/seeds.rb +7 -0
  37. data/spec/test_application/features/dynamic_translation.feature +5 -0
  38. data/spec/test_application/features/managing_translations.feature +62 -0
  39. data/spec/test_application/features/static_translation.feature +13 -0
  40. data/spec/test_application/features/step_definitions/translations_steps.rb +12 -0
  41. data/spec/test_application/features/step_definitions/webrat_steps.rb +189 -0
  42. data/spec/test_application/features/support/env.rb +47 -0
  43. data/spec/test_application/features/support/paths.rb +42 -0
  44. data/spec/test_application/features/support/version_check.rb +31 -0
  45. data/spec/test_application/lib/tasks/cucumber.rake +46 -0
  46. data/spec/test_application/lib/tasks/rspec.rake +146 -0
  47. data/spec/test_application/public/404.html +30 -0
  48. data/spec/test_application/public/422.html +30 -0
  49. data/spec/test_application/public/500.html +30 -0
  50. data/spec/test_application/public/favicon.ico +0 -0
  51. data/spec/test_application/public/robots.txt +5 -0
  52. data/spec/test_application/script/about +4 -0
  53. data/spec/test_application/script/autospec +6 -0
  54. data/spec/test_application/script/console +3 -0
  55. data/spec/test_application/script/cucumber +17 -0
  56. data/spec/test_application/script/dbconsole +3 -0
  57. data/spec/test_application/script/destroy +3 -0
  58. data/spec/test_application/script/generate +3 -0
  59. data/spec/test_application/script/performance/benchmarker +3 -0
  60. data/spec/test_application/script/performance/profiler +3 -0
  61. data/spec/test_application/script/plugin +3 -0
  62. data/spec/test_application/script/runner +3 -0
  63. data/spec/test_application/script/server +3 -0
  64. data/spec/test_application/script/spec +10 -0
  65. data/spec/test_application/spec/backend_spec.rb +158 -0
  66. data/spec/test_application/spec/models/translation_spec.rb +109 -0
  67. data/spec/test_application/spec/rcov.opts +3 -0
  68. data/spec/test_application/spec/spec.opts +4 -0
  69. data/spec/test_application/spec/spec_helper.rb +54 -0
  70. metadata +156 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/generate'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../../config/boot', __FILE__)
3
+ require 'commands/performance/benchmarker'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../../config/boot', __FILE__)
3
+ require 'commands/performance/profiler'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/plugin'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/runner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/server'
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ if ARGV.any? {|arg| %w[--drb -X --generate-options -G --help -h --version -v].include?(arg)}
3
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
4
+ else
5
+ gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
6
+ ENV["RAILS_ENV"] ||= 'test'
7
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment") unless defined?(RAILS_ROOT)
8
+ end
9
+ require 'spec/autorun'
10
+ exit ::Spec::Runner::CommandLine.run
@@ -0,0 +1,158 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ I18n.backend = Trendi18n::Backend::Trendi18n.new
4
+
5
+
6
+
7
+ describe Trendi18n::Backend::Trendi18n do
8
+
9
+ before do
10
+ I18n.backend.is_a?(Trendi18n::Backend::Trendi18n).should == true
11
+ @data = [{
12
+ :key => "key1", :translation => "Translation of key1"
13
+ }, {
14
+ :key => "key2", :scope => "scope1.subscope1", :translation => "Translation of key2"
15
+ }, {
16
+ :key => "key3", :scope => "scope1.subscope2", :translation => "Translation of key3"
17
+ }]
18
+ for attributes in @data do
19
+ Translation.create!(attributes)
20
+ end
21
+ end
22
+
23
+
24
+ describe "caching" do
25
+ before(:each) do
26
+ I18n.reload!
27
+ @translation = Translation.create(:locale => "en",:key => "test_key", :translation => "test_translations")
28
+ end
29
+
30
+ it "should lookup the key in db when the firts time it is used" do
31
+ Translation.should_receive(:lookup).once.and_return(@translation)
32
+ I18n.t("test_key")
33
+ end
34
+
35
+ it "should use cache when the key is used more then one time" do
36
+ Translation.should_receive(:lookup).once.and_return(@translation)
37
+ 2.times { I18n.t("test_key")}
38
+ end
39
+
40
+ it "should clear cache after backend reload" do
41
+ Translation.should_receive(:lookup).twice.and_return(@translation)
42
+ I18n.t("test_key")
43
+ I18n.reload!
44
+ I18n.t("test_key")
45
+ end
46
+
47
+ describe "up-to-date status" do
48
+
49
+ it "should be up-to-date when there is no translations" do
50
+ Translation.destroy_all
51
+ I18n.backend.up_to_date?.should == true
52
+ end
53
+
54
+ it "should be up-to-date when there is new translations but nothing was read yet" do
55
+ # translation is created in before block
56
+ I18n.backend.up_to_date?.should == true
57
+ end
58
+
59
+ it "should be up-to-date after update existing translation but before read it" do
60
+ @translation.translation = "New translation"
61
+ @translation.save
62
+ I18n.backend.up_to_date?.should == true
63
+ end
64
+
65
+ it "should be up-to-date after beckend reload" do
66
+ I18n.reload!
67
+ I18n.backend.up_to_date?.should == true
68
+ end
69
+
70
+ it "should be up-to-date when we read existing translation after changes in db" do
71
+ Translation.create(:locale => "en", :key => "new_key", :translation => "new translation")
72
+ I18n.t("test_key")
73
+ I18n.backend.up_to_date?.should == true
74
+ end
75
+
76
+ it "should still be up-to-date when we was looking for new translation" do
77
+ I18n.t("non_existing_key")
78
+ I18n.backend.up_to_date? == true
79
+ end
80
+
81
+ it "should be up-to-date even translation is updated after use" do
82
+ I18n.t("test_key")
83
+ @translation.update_attribute("created_at", 2.minutes.ago)
84
+ I18n.backend.up_to_date?.should == true
85
+ end
86
+ end
87
+ end
88
+
89
+ describe "standard i18n functionality" do
90
+
91
+ it "should find translation without scopes" do
92
+ I18n.t(:key1).should == "Translation of key1"
93
+ end
94
+
95
+ describe "if there is no translation" do
96
+
97
+ it "should return a default string value" do
98
+ I18n.t(:non_existing_key, :default => "This key not exists").should == "This key not exists"
99
+ end
100
+
101
+ it "should return default translation given as symbol"
102
+
103
+ it "should return default translation from string in array"
104
+
105
+ it "should return default translation from symbol in array"
106
+
107
+ end
108
+
109
+ describe "while looking for translations with scopes" do
110
+
111
+ it "should look up translation with scope (as a string) in options" do
112
+ I18n.t(:key2, :scope => "scope1.subscope1").should == "Translation of key2"
113
+ end
114
+
115
+ it "should look up translation with scope (as a array of symbols) in options" do
116
+ I18n.t(:key2, :scope => [:scope1, :subscope1]).should == "Translation of key2"
117
+ end
118
+
119
+ it "should look up translation with scope (as a symbol) in options" do
120
+ I18n.t(:key2, :scope => "scope1.subscope1".to_sym).should == "Translation of key2"
121
+ end
122
+
123
+ it "should look up translation with scope info in key (as a string)" do
124
+ I18n.t("scope1.subscope1.key2").should == "Translation of key2"
125
+ end
126
+
127
+ it "should look up translation with scope info in key (as a symbol)" do
128
+ I18n.t("scope1.subscope1.key2".to_sym).should == "Translation of key2"
129
+ end
130
+
131
+ it "should look up translation with scope info in key and scope options" do
132
+ I18n.t("subscope1.key2".to_sym, :scope => "scope1").should == "Translation of key2"
133
+ end
134
+
135
+ end
136
+
137
+ describe "multi-translations" do
138
+
139
+ it "should look up many translations at once" do
140
+ I18n.t([:key1, "scope1.subscope1.key2"]).should == ["Translation of key1", "Translation of key2"]
141
+ end
142
+
143
+ it "should look up many translations at once, with scope option" do
144
+ I18n.t(["subscope1.key2", "subscope2.key3"], :scope => :scope1).should == ["Translation of key2", "Translation of key3"]
145
+ end
146
+
147
+ end
148
+
149
+ describe "while scope given as a key" do
150
+
151
+ it "should translate to hash of translations"
152
+
153
+ end
154
+
155
+
156
+ end
157
+
158
+ end
@@ -0,0 +1,109 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Translation do
4
+ before(:all) do
5
+ @valid_attributes = {
6
+ :locale => "en",
7
+ :key => "test",
8
+ :scope =>"TestScope",
9
+ :default => "test",
10
+ :translation => "test_transation",
11
+ :zero => "non test",
12
+ :one => "one test",
13
+ :few => "few test",
14
+ :many => "many test"
15
+ }
16
+ end
17
+
18
+
19
+ describe "state assigment" do
20
+
21
+ before do
22
+ @state_test_attributes = [
23
+ {:locale => "en",
24
+ :key => "state_test1",
25
+ :default => "default1"
26
+ },
27
+ {:locale => "en",
28
+ :key => "state_test2",
29
+ :translation => "translation2"
30
+ },
31
+ {:key => "status_test3 {{count}}",
32
+ :translation => "translation3",
33
+ :one => "one_translation3"
34
+ },
35
+ { :key => "state_test4 {{count}}",
36
+ :translation => "translation4",
37
+ :one => "one_translation4",
38
+ :zero => "zero_translation4",
39
+ :many => "many_translation4"
40
+ }
41
+ ]
42
+
43
+ @state_test_results = ["new", "finished", "unfinished", "finished"]
44
+ end
45
+
46
+ it "should assign state to new created model" do
47
+ for data in @state_test_attributes do
48
+ model = Translation.new(data)
49
+ model.save!
50
+ model.state.should == @state_test_results[@state_test_attributes.index(data)]
51
+ end
52
+ end
53
+
54
+ end
55
+
56
+ it "should lookup for new translations" do
57
+ translation_new = Translation.lookup("en", "key", nil, "scope")
58
+ translation_new.default.should == "key"
59
+ translation_exists = Translation.lookup("en", "key", nil, "scope")
60
+ translation_exists.should == translation_new
61
+ end
62
+
63
+ it "should be with count" do
64
+ Translation.new(:key => "I have {{count}} plural forms").with_count?.should_not == nil
65
+ end
66
+
67
+ it "should not be with count" do
68
+ Translation.new(:key => "I do not have count").with_count?.should == nil
69
+ end
70
+
71
+ it "should create translation with correct scope when translation is missing on lookup" do
72
+ Translation.lookup(:en, :some_key, nil, [:scope, :subscope])
73
+ Translation.find_by_key_and_scope("some_key", "scope.subscope").should_not == nil
74
+ end
75
+
76
+ it "should not save translations with not properly attributes" do
77
+ Translation.new(@valid_attributes.merge(:key => nil)).save.should == false
78
+ Translation.new(@valid_attributes.merge(:locale => "p")).save.should == false
79
+ Translation.new(@valid_attributes.merge(:locale => "too long locale")).save.should == false
80
+ Translation.create!(@valid_attributes)
81
+ Translation.new(@valid_attributes).save.should == false
82
+ end
83
+
84
+ it "should find translation by normalized keys" do
85
+ translation = Translation.create(@valid_attributes.merge(:key => "Key", :scope => "Scope.With.Dots"))
86
+ Translation.find_by_string_normalized_key("Scope.With.Dots.Key").should == translation
87
+ end
88
+
89
+ it "should find using find_by_string_normalized_key using simple key as attribute" do
90
+ translation = Translation.create(@valid_attributes.merge(:key => "SimpleKey", :scope => nil ))
91
+ Translation.find_by_string_normalized_key(translation.key).should == translation
92
+ end
93
+
94
+ it "should return array of all locale values form db" do
95
+ Translation.read_base
96
+ Translation.create!(:key => "key", :locale => "pl")
97
+ Translation.create!(:key => "key", :locale => "en")
98
+ Translation.create!(:key => "key", :locale => "nl")
99
+ Translation.get_locales.should == ["en", "nl", "pl"]
100
+ end
101
+
102
+ it "should return correct plural form (using count argument)" do
103
+ Translation.create!(:key => "with_count", :translation => "translation", :zero => "none", :one => "one", :many => "many ({{count}})")
104
+ I18n.t("with_count", :count => 0).should == "none"
105
+ I18n.t("with_count", :count => 1).should == "one"
106
+ I18n.t("with_count", :count => 2).should == "many (2)"
107
+ end
108
+
109
+ end
@@ -0,0 +1,3 @@
1
+ --exclude "spec/*,gems/*"
2
+ --include-file "trendi18n.rb,app/models/translation.rb"
3
+ --rails
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,54 @@
1
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
+ # from the project root directory.
3
+ ENV["RAILS_ENV"] ||= 'test'
4
+ require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
5
+ require 'spec/autorun'
6
+ require 'spec/rails'
7
+
8
+ # Uncomment the next line to use webrat's matchers
9
+ #require 'webrat/integrations/rspec-rails'
10
+
11
+ # Requires supporting files with custom matchers and macros, etc,
12
+ # in ./support/ and its subdirectories.
13
+ Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
14
+
15
+ Spec::Runner.configure do |config|
16
+ # If you're not using ActiveRecord you should remove these
17
+ # lines, delete config/database.yml and disable :active_record
18
+ # in your config/boot.rb
19
+ config.use_transactional_fixtures = true
20
+ config.use_instantiated_fixtures = false
21
+ config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
22
+
23
+ # == Fixtures
24
+ #
25
+ # You can declare fixtures for each example_group like this:
26
+ # describe "...." do
27
+ # fixtures :table_a, :table_b
28
+ #
29
+ # Alternatively, if you prefer to declare them only once, you can
30
+ # do so right here. Just uncomment the next line and replace the fixture
31
+ # names with your fixtures.
32
+ #
33
+ # config.global_fixtures = :table_a, :table_b
34
+ #
35
+ # If you declare global fixtures, be aware that they will be declared
36
+ # for all of your examples, even those that don't use them.
37
+ #
38
+ # You can also declare which fixtures to use (for example fixtures for test/fixtures):
39
+ #
40
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
41
+ #
42
+ # == Mock Framework
43
+ #
44
+ # RSpec uses it's own mocking framework by default. If you prefer to
45
+ # use mocha, flexmock or RR, uncomment the appropriate line:
46
+ #
47
+ # config.mock_with :mocha
48
+ # config.mock_with :flexmock
49
+ # config.mock_with :rr
50
+ #
51
+ # == Notes
52
+ #
53
+ # For more information take a look at Spec::Runner::Configuration and Spec::Runner
54
+ end
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trendi18n
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.1
5
+ platform: ruby
6
+ authors:
7
+ - Piotr Misiurek
8
+ - Piotr Marciniak
9
+ - "\xC5\x81ukasz Piestrzeniewicz"
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-12-15 00:00:00 +01:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: rails
19
+ type: :runtime
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 2.3.5
26
+ version:
27
+ description: Database backend for i18n (localization files are still supported). This is beta version so give me your feedback
28
+ email: p.misiurek@gmail.com
29
+ executables: []
30
+
31
+ extensions: []
32
+
33
+ extra_rdoc_files:
34
+ - LICENSE
35
+ - README.rdoc
36
+ files:
37
+ - LICENSE
38
+ - MIT-LICENSE
39
+ - README.rdoc
40
+ - Rakefile
41
+ - VERSION
42
+ - app/models/translation.rb
43
+ - generators/trendi18n/templates/migrations/create_translations.rb
44
+ - generators/trendi18n/trendi18n_generator.rb
45
+ - lib/commands.rb
46
+ - lib/file.rb
47
+ - lib/trendi18n.rb
48
+ - rails/init.rb
49
+ - spec/test_application/README
50
+ - spec/test_application/Rakefile
51
+ - spec/test_application/app/controllers/application_controller.rb
52
+ - spec/test_application/app/controllers/translations_controller.rb
53
+ - spec/test_application/app/views/layouts/application.rhtml
54
+ - spec/test_application/app/views/translations/_form.html.erb
55
+ - spec/test_application/app/views/translations/edit.html.erb
56
+ - spec/test_application/app/views/translations/index.html.erb
57
+ - spec/test_application/app/views/translations/new.html.erb
58
+ - spec/test_application/app/views/translations/show.html.erb
59
+ - spec/test_application/config/boot.rb
60
+ - spec/test_application/config/database.yml
61
+ - spec/test_application/config/environment.rb
62
+ - spec/test_application/config/environments/cucumber.rb
63
+ - spec/test_application/config/environments/development.rb
64
+ - spec/test_application/config/environments/production.rb
65
+ - spec/test_application/config/environments/test.rb
66
+ - spec/test_application/config/initializers/new_rails_defaults.rb
67
+ - spec/test_application/config/initializers/session_store.rb
68
+ - spec/test_application/config/locales/en.yml
69
+ - spec/test_application/config/routes.rb
70
+ - spec/test_application/db/migrate/20091208195455_create_translations.rb
71
+ - spec/test_application/db/schema.rb
72
+ - spec/test_application/db/seeds.rb
73
+ - spec/test_application/features/dynamic_translation.feature
74
+ - spec/test_application/features/managing_translations.feature
75
+ - spec/test_application/features/static_translation.feature
76
+ - spec/test_application/features/step_definitions/translations_steps.rb
77
+ - spec/test_application/features/step_definitions/webrat_steps.rb
78
+ - spec/test_application/features/support/env.rb
79
+ - spec/test_application/features/support/paths.rb
80
+ - spec/test_application/features/support/version_check.rb
81
+ - spec/test_application/lib/tasks/cucumber.rake
82
+ - spec/test_application/lib/tasks/rspec.rake
83
+ - spec/test_application/public/404.html
84
+ - spec/test_application/public/422.html
85
+ - spec/test_application/public/500.html
86
+ - spec/test_application/public/favicon.ico
87
+ - spec/test_application/public/robots.txt
88
+ - spec/test_application/script/about
89
+ - spec/test_application/script/autospec
90
+ - spec/test_application/script/console
91
+ - spec/test_application/script/cucumber
92
+ - spec/test_application/script/dbconsole
93
+ - spec/test_application/script/destroy
94
+ - spec/test_application/script/generate
95
+ - spec/test_application/script/performance/benchmarker
96
+ - spec/test_application/script/performance/profiler
97
+ - spec/test_application/script/plugin
98
+ - spec/test_application/script/runner
99
+ - spec/test_application/script/server
100
+ - spec/test_application/script/spec
101
+ - spec/test_application/spec/backend_spec.rb
102
+ - spec/test_application/spec/models/translation_spec.rb
103
+ - spec/test_application/spec/rcov.opts
104
+ - spec/test_application/spec/spec.opts
105
+ - spec/test_application/spec/spec_helper.rb
106
+ has_rdoc: true
107
+ homepage: http://github.com/bragi/trendi18n
108
+ licenses: []
109
+
110
+ post_install_message:
111
+ rdoc_options:
112
+ - --charset=UTF-8
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "0"
120
+ version:
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: "0"
126
+ version:
127
+ requirements: []
128
+
129
+ rubyforge_project:
130
+ rubygems_version: 1.3.5
131
+ signing_key:
132
+ specification_version: 3
133
+ summary: Database backend for i18n
134
+ test_files:
135
+ - spec/test_application/app/controllers/application_controller.rb
136
+ - spec/test_application/app/controllers/translations_controller.rb
137
+ - spec/test_application/config/boot.rb
138
+ - spec/test_application/config/environment.rb
139
+ - spec/test_application/config/environments/cucumber.rb
140
+ - spec/test_application/config/environments/development.rb
141
+ - spec/test_application/config/environments/production.rb
142
+ - spec/test_application/config/environments/test.rb
143
+ - spec/test_application/config/initializers/new_rails_defaults.rb
144
+ - spec/test_application/config/initializers/session_store.rb
145
+ - spec/test_application/config/routes.rb
146
+ - spec/test_application/db/migrate/20091208195455_create_translations.rb
147
+ - spec/test_application/db/schema.rb
148
+ - spec/test_application/db/seeds.rb
149
+ - spec/test_application/features/step_definitions/webrat_steps.rb
150
+ - spec/test_application/features/step_definitions/translations_steps.rb
151
+ - spec/test_application/features/support/env.rb
152
+ - spec/test_application/features/support/paths.rb
153
+ - spec/test_application/features/support/version_check.rb
154
+ - spec/test_application/spec/backend_spec.rb
155
+ - spec/test_application/spec/models/translation_spec.rb
156
+ - spec/test_application/spec/spec_helper.rb