lolita-translation 0.6.3 → 0.7.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.
- checksums.yaml +7 -0
- data/Gemfile +13 -1
- data/README.md +4 -4
- data/Rakefile +3 -1
- data/app/assets/javascripts/lolita/translation/application.js +1 -2
- data/lib/lolita-translation/builder/abstract_builder.rb +5 -5
- data/lib/lolita-translation/builder/active_record_builder.rb +13 -14
- data/lib/lolita-translation/configuration.rb +4 -4
- data/lib/lolita-translation/locales.rb +2 -2
- data/lib/lolita-translation/lolita/component_hooks.rb +6 -6
- data/lib/lolita-translation/record.rb +9 -9
- data/lib/lolita-translation/version.rb +2 -2
- data/lolita-translation.gemspec +2 -13
- data/spec/features/record_language_switch_spec.rb +13 -0
- data/spec/{requests → features}/record_saving_spec.rb +10 -10
- data/spec/integrations/active_record_integration_spec.rb +38 -39
- data/spec/lolita-translation/builder/abstract_builder_spec.rb +6 -14
- data/spec/lolita-translation/builder/active_record_builder_spec.rb +6 -12
- data/spec/lolita-translation/configuration_spec.rb +16 -20
- data/spec/lolita-translation/locales_spec.rb +6 -6
- data/spec/lolita-translation/lolita/tab_extension_spec.rb +2 -2
- data/spec/lolita-translation/migrator_spec.rb +11 -16
- data/spec/lolita-translation/migrators/active_record_migrator_spec.rb +7 -12
- data/spec/rails_helper.rb +2 -2
- data/spec/spec_helper.rb +9 -23
- data/spec/tasks/lolita_translation_spec.rb +5 -10
- data/spec/test_app/app/models/post.rb +1 -0
- metadata +11 -165
- data/spec/requests/record_language_switch_spec.rb +0 -16
@@ -2,21 +2,21 @@ require 'spec_helper'
|
|
2
2
|
require 'ar_schema'
|
3
3
|
ARSchema.connect!
|
4
4
|
|
5
|
-
describe "Integration with ActiveRecord" do
|
5
|
+
describe "Integration with ActiveRecord" do
|
6
6
|
|
7
|
-
before(:each) do
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
context "configuration defination" do
|
7
|
+
# before(:each) do
|
8
|
+
# ActiveRecord::Base.connection.execute("DELETE FROM categories")
|
9
|
+
# ActiveRecord::Base.connection.execute("DELETE FROM products")
|
10
|
+
# end
|
11
|
+
context "configuration defination" do
|
12
12
|
|
13
|
-
before
|
13
|
+
before do
|
14
14
|
Object.send(:remove_const, :Product) rescue nil
|
15
15
|
klass = Class.new(ActiveRecord::Base)
|
16
16
|
Object.const_set(:Product,klass)
|
17
17
|
end
|
18
18
|
|
19
|
-
it "should have class method for translation configuration" do
|
19
|
+
it "should have class method for translation configuration" do
|
20
20
|
Product.class_eval do
|
21
21
|
include Lolita::Translation
|
22
22
|
end
|
@@ -25,17 +25,17 @@ describe "Integration with ActiveRecord" do
|
|
25
25
|
Product.should.respond_to?(:translate)
|
26
26
|
end
|
27
27
|
|
28
|
-
it "should create configuration when class is loaded with field names to translate" do
|
29
|
-
Product.class_eval do
|
28
|
+
it "should create configuration when class is loaded with field names to translate" do
|
29
|
+
Product.class_eval do
|
30
30
|
include Lolita::Translation
|
31
31
|
translate :name, :description
|
32
32
|
end
|
33
33
|
Product.translations_configuration.should be_kind_of(Lolita::Translation::Configuration)
|
34
34
|
end
|
35
35
|
|
36
|
-
it "should accept block and yield configuration" do
|
36
|
+
it "should accept block and yield configuration" do
|
37
37
|
block_called = false
|
38
|
-
Product.class_eval do
|
38
|
+
Product.class_eval do
|
39
39
|
include Lolita::Translation
|
40
40
|
translate :name, :description do |conf|
|
41
41
|
block_called = true
|
@@ -45,35 +45,34 @@ describe "Integration with ActiveRecord" do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
context "record" do
|
48
|
+
context "record" do
|
49
49
|
let(:category){Category.create(:name => "category_name", :default_locale => "en")}
|
50
50
|
|
51
|
-
before
|
51
|
+
before do
|
52
52
|
I18n.default_locale = :en
|
53
53
|
Object.send(:remove_const, :Category) rescue nil
|
54
54
|
klass = Class.new(ActiveRecord::Base)
|
55
55
|
Object.const_set(:Category,klass)
|
56
|
-
Category.class_eval do
|
56
|
+
Category.class_eval do
|
57
57
|
include Lolita::Translation
|
58
58
|
attr_accessible :name, :default_locale
|
59
59
|
translate :name
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
it "should have default locale" do
|
64
|
-
category = Category.create(:name => Faker::Name.first_name, :default_locale => "en")
|
63
|
+
it "should have default locale" do
|
65
64
|
I18n.default_locale = :lv
|
66
65
|
category.original_locale.to_s.should eq("en")
|
67
66
|
end
|
68
67
|
|
69
|
-
it "should have translations" do
|
68
|
+
it "should have translations" do
|
70
69
|
category.translations.should be_empty
|
71
70
|
category.update_attributes(:name => "updated",:translations_attributes => [{:name => "translation-lv", :locale => "lv"}])
|
72
71
|
category.errors.should be_empty
|
73
72
|
category.translations.reload.should have(1).item
|
74
73
|
end
|
75
74
|
|
76
|
-
it "should return translatable attribute in current locale" do
|
75
|
+
it "should return translatable attribute in current locale" do
|
77
76
|
I18n.default_locale = :lv
|
78
77
|
I18n.locale = :lv
|
79
78
|
category.name.should eq("category_name")
|
@@ -82,22 +81,22 @@ describe "Integration with ActiveRecord" do
|
|
82
81
|
category.update_attributes(:name => "updated",:translations_attributes => [{:name => "translation-lv", :locale => "lv"}])
|
83
82
|
I18n.locale = :lv
|
84
83
|
category.name.should eq("translation-lv")
|
85
|
-
I18n.locale = :ru
|
84
|
+
I18n.locale = :ru
|
86
85
|
category.name.should eq("updated")
|
87
86
|
end
|
88
87
|
|
89
|
-
it "should switch attribute to different locale" do
|
88
|
+
it "should switch attribute to different locale" do
|
90
89
|
category.name.should eq("category_name")
|
91
90
|
category.update_attributes(:translations_attributes => [{:name => "translation-lv", :locale => "lv"}])
|
92
91
|
category.name.in(:lv).should eq("translation-lv")
|
93
92
|
end
|
94
93
|
end
|
95
|
-
|
94
|
+
|
96
95
|
context "saving" do
|
97
96
|
let(:category){Category.create(:name => "category_name", :default_locale => :en)}
|
98
97
|
let(:product){ Product.create(:name => "product_name", :description => "product_description") }
|
99
98
|
|
100
|
-
before(:each) do
|
99
|
+
before(:each) do
|
101
100
|
I18n.locale = :en
|
102
101
|
I18n.default_locale = :lv
|
103
102
|
Object.send(:remove_const, :Category) rescue nil
|
@@ -106,19 +105,19 @@ describe "Integration with ActiveRecord" do
|
|
106
105
|
Object.const_set(:Category,klass)
|
107
106
|
product_klass = Class.new(ActiveRecord::Base)
|
108
107
|
Object.const_set(:Product,product_klass)
|
109
|
-
Category.class_eval do
|
108
|
+
Category.class_eval do
|
110
109
|
include Lolita::Translation
|
111
110
|
attr_accessible :name, :default_locale
|
112
111
|
translate :name
|
113
112
|
end
|
114
|
-
Product.class_eval do
|
113
|
+
Product.class_eval do
|
115
114
|
include Lolita::Translation
|
116
115
|
attr_accessible :name, :default_locale
|
117
116
|
translate :name, :description
|
118
117
|
end
|
119
118
|
end
|
120
|
-
|
121
|
-
it "should create translations for object" do
|
119
|
+
|
120
|
+
it "should create translations for object" do
|
122
121
|
new_cat = Category.create({
|
123
122
|
:name => "cat_name",
|
124
123
|
:original_locale => :en,
|
@@ -131,7 +130,7 @@ describe "Integration with ActiveRecord" do
|
|
131
130
|
new_cat.translations.should have(2).items
|
132
131
|
end
|
133
132
|
|
134
|
-
it "should save translation as nested attributes" do
|
133
|
+
it "should save translation as nested attributes" do
|
135
134
|
category.translations.should be_empty
|
136
135
|
category.update_attributes(:translations_attributes => [
|
137
136
|
{:name => "translation-lv", :locale => "lv"},
|
@@ -141,7 +140,7 @@ describe "Integration with ActiveRecord" do
|
|
141
140
|
category.translations.should have(2).items
|
142
141
|
end
|
143
142
|
|
144
|
-
it "should save locale for record if it accepts it" do
|
143
|
+
it "should save locale for record if it accepts it" do
|
145
144
|
I18n.locale = :lv
|
146
145
|
category.original_locale.should eq(:en)
|
147
146
|
product.original_locale.should eq(:lv)
|
@@ -156,7 +155,7 @@ describe "Integration with ActiveRecord" do
|
|
156
155
|
category.errors.keys.should include(:"translations.locale")
|
157
156
|
end
|
158
157
|
|
159
|
-
it "translation record should be associated with original record" do
|
158
|
+
it "translation record should be associated with original record" do
|
160
159
|
transl1 = CategoryTranslation.new(:name => "translation-lv", :locale => "lv")
|
161
160
|
transl1.category = category
|
162
161
|
transl1.save
|
@@ -166,21 +165,21 @@ describe "Integration with ActiveRecord" do
|
|
166
165
|
transl2.errors.keys.should include(:"category")
|
167
166
|
end
|
168
167
|
|
169
|
-
it "should validate that locale is presented" do
|
168
|
+
it "should validate that locale is presented" do
|
170
169
|
transl1 = CategoryTranslation.new(:name => "translation-lv")
|
171
|
-
transl1.category = category
|
170
|
+
transl1.category = category
|
172
171
|
transl1.save
|
173
172
|
transl1.errors.keys.should eq([:"locale"])
|
174
173
|
end
|
175
174
|
|
176
|
-
it "should validate that locale is unique for each original record" do
|
175
|
+
it "should validate that locale is unique for each original record" do
|
177
176
|
transl1 = category.translations.create(:name => "translation-lv", :locale => "lv")
|
178
177
|
transl2 = category.translations.create(:name => "translation-lv", :locale => "lv")
|
179
178
|
transl1.errors.should be_empty
|
180
179
|
transl2.errors.keys.should eq([:"locale"])
|
181
180
|
end
|
182
181
|
|
183
|
-
it "should use default locale for records without default locale field" do
|
182
|
+
it "should use default locale for records without default locale field" do
|
184
183
|
product.update_attributes(:translations_attributes => [
|
185
184
|
{ :name => "product_name-ru", :locale => "ru"}
|
186
185
|
])
|
@@ -192,23 +191,23 @@ describe "Integration with ActiveRecord" do
|
|
192
191
|
end
|
193
192
|
end
|
194
193
|
|
195
|
-
context "migrating" do
|
196
|
-
before(:each) do
|
194
|
+
context "migrating" do
|
195
|
+
before(:each) do
|
197
196
|
Object.send(:remove_const,:Comment) rescue nil
|
198
197
|
c_class = Class.new(ActiveRecord::Base)
|
199
198
|
Object.const_set(:Comment,c_class)
|
200
|
-
c_class.class_eval do
|
199
|
+
c_class.class_eval do
|
201
200
|
include Lolita::Translation
|
202
201
|
translate :body
|
203
202
|
end
|
204
203
|
ActiveRecord::Base.connection.execute("DROP TABLE comments_translations") rescue nil
|
205
204
|
end
|
206
205
|
|
207
|
-
after(:each) do
|
206
|
+
after(:each) do
|
208
207
|
Object.send(:remove_const,:Comment) rescue nil
|
209
208
|
end
|
210
209
|
|
211
|
-
it "should sync translation table through migrations" do
|
210
|
+
it "should sync translation table through migrations" do
|
212
211
|
ActiveRecord::Base.connection.tables.should_not include("comments_translations")
|
213
212
|
Comment.sync_translation_table!
|
214
213
|
ActiveRecord::Base.connection.tables.should include("comments_translations")
|
@@ -24,23 +24,15 @@ describe Lolita::Translation::Builder::AbstractBuilder do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should return class name like <Scoped::ClassName>Translation for class name 'Scoped::ClassName'" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
klass.new(some_class).class_name.should eq("Scoped::ClassNameTranslation")
|
31
|
-
ensure
|
32
|
-
Object.send(:remove_const, :Scoped)
|
33
|
-
end
|
27
|
+
stub_const('Scoped',Class.new)
|
28
|
+
set_class_name(some_class,"Scoped::ClassName")
|
29
|
+
klass.new(some_class).class_name.should eq("Scoped::ClassNameTranslation")
|
34
30
|
end
|
35
31
|
|
36
32
|
it "should create class with scoped name" do
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
klass.new(some_class).klass.name.should eq("Scoped::OtherClassNameTranslation")
|
41
|
-
ensure
|
42
|
-
Object.send(:remove_const, :Scoped)
|
43
|
-
end
|
33
|
+
stub_const('Scoped',Class.new)
|
34
|
+
set_class_name(some_class,"Scoped::OtherClassName")
|
35
|
+
klass.new(some_class).klass.name.should eq("Scoped::OtherClassNameTranslation")
|
44
36
|
end
|
45
37
|
|
46
38
|
it "should show warning when method that should be implemented in concrete builder is not implemented yet" do
|
@@ -4,27 +4,21 @@ require File.expand_path("lib/lolita-translation/builder/active_record_builder")
|
|
4
4
|
require File.expand_path("lib/lolita-translation/configuration")
|
5
5
|
ARSchema.connect!
|
6
6
|
|
7
|
-
describe Lolita::Translation::Builder::ActiveRecordBuilder do
|
7
|
+
describe Lolita::Translation::Builder::ActiveRecordBuilder do
|
8
8
|
let(:klass) { Lolita::Translation::Builder::ActiveRecordBuilder }
|
9
9
|
let(:config){ Lolita::Translation::Configuration.new(Product) }
|
10
|
-
before(:each) do
|
11
|
-
Object.send(:remove_const, :Product) if Object.const_defined?(:Product)
|
10
|
+
before(:each) do
|
12
11
|
a_klass = Class.new(ActiveRecord::Base)
|
13
|
-
|
12
|
+
stub_const('Product', a_klass)
|
14
13
|
end
|
15
14
|
|
16
|
-
|
17
|
-
Object.send(:remove_const, :Product) rescue nil
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
it "should build class with ActiveRecord::Base as superclass" do
|
15
|
+
it "should build class with ActiveRecord::Base as superclass" do
|
22
16
|
obj = klass.new(Product)
|
23
17
|
obj.build
|
24
18
|
obj.klass.superclass.should eq(ActiveRecord::Base)
|
25
19
|
end
|
26
20
|
|
27
|
-
it "should call class methods on klass" do
|
21
|
+
it "should call class methods on klass" do
|
28
22
|
obj = klass.new(Product, config)
|
29
23
|
obj.stub(:association_name).and_return(:product)
|
30
24
|
obj.build
|
@@ -36,5 +30,5 @@ describe Lolita::Translation::Builder::ActiveRecordBuilder do
|
|
36
30
|
obj.stub(:translations_association_name).and_return(:translations)
|
37
31
|
obj.build
|
38
32
|
Product.reflections.keys.should include(:translations)
|
39
|
-
end
|
33
|
+
end
|
40
34
|
end
|
@@ -3,10 +3,10 @@ require File.expand_path("lib/lolita-translation/configuration")
|
|
3
3
|
require File.expand_path("lib/lolita-translation/translation_class_builder")
|
4
4
|
require File.expand_path("lib/lolita-translation/errors")
|
5
5
|
|
6
|
-
describe Lolita::Translation::Configuration do
|
6
|
+
describe Lolita::Translation::Configuration do
|
7
7
|
let(:klass){Lolita::Translation::Configuration}
|
8
|
-
let(:some_class) do
|
9
|
-
Class.new do
|
8
|
+
let(:some_class) do
|
9
|
+
Class.new do
|
10
10
|
class << self
|
11
11
|
def table_exists?
|
12
12
|
true
|
@@ -15,54 +15,50 @@ describe Lolita::Translation::Configuration do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
before(:each) do
|
18
|
+
before(:each) do
|
19
19
|
Lolita::Translation::TranslationClassBuilder.any_instance.stub(:build_class).and_return("builder")
|
20
20
|
Lolita::Translation::TranslationClassBuilder.any_instance.stub(:override_attributes).and_return("attributes")
|
21
21
|
end
|
22
22
|
|
23
|
-
it "should have @klass attribute" do
|
23
|
+
it "should have @klass attribute" do
|
24
24
|
klass.new(some_class).klass.should eq(some_class)
|
25
25
|
end
|
26
26
|
|
27
|
-
it "should have @attributes attribute" do
|
27
|
+
it "should have @attributes attribute" do
|
28
28
|
klass.new(some_class, :name, :body).attributes.sort.should eq([:name,:body].sort)
|
29
29
|
end
|
30
30
|
|
31
|
-
it "should have @translation_class attribute" do
|
32
|
-
|
31
|
+
it "should have @translation_class attribute" do
|
32
|
+
stub_const('Product',some_class)
|
33
33
|
klass.new(some_class).translation_class.should eq("builder")
|
34
34
|
end
|
35
35
|
|
36
|
-
describe "locales" do
|
37
|
-
before
|
38
|
-
|
36
|
+
describe "locales" do
|
37
|
+
before do
|
38
|
+
stub_const('Product',some_class)
|
39
|
+
stub_const('Lolita::Translation::Locales', Class.new) unless defined?(Lolita::Translation::Locales)
|
39
40
|
end
|
40
41
|
|
41
|
-
|
42
|
-
Lolita::Translation.send(:remove_const,:Locales) rescue nil
|
43
|
-
end
|
44
|
-
it "can be received as option" do
|
45
|
-
Lolita::Translation.const_set(:Locales, Class.new)
|
42
|
+
it "can be received as option" do
|
46
43
|
Lolita::Translation::Locales.should_receive(:new).with([:en,:ru]).and_return([:en,:ru])
|
47
44
|
config = klass.new(some_class, :locales => [:en, :ru])
|
48
45
|
config.locales.should == [:en,:ru]
|
49
46
|
end
|
50
47
|
|
51
|
-
it "should fall back to Lolita::Translation.locales when no locales are passed" do
|
48
|
+
it "should fall back to Lolita::Translation.locales when no locales are passed" do
|
52
49
|
config = klass.new(some_class)
|
53
50
|
Lolita::Translation.stub(:locales).and_return([:lv,:ru])
|
54
51
|
config.locales.should eq(Lolita::Translation.locales)
|
55
52
|
end
|
56
53
|
|
57
|
-
it "can be as anonymous method" do
|
58
|
-
Lolita::Translation.const_set(:Locales, Class.new)
|
54
|
+
it "can be as anonymous method" do
|
59
55
|
Lolita::Translation::Locales.should_receive(:new).and_return([:lv,:ru])
|
60
56
|
config = klass.new(some_class, :locales => Proc.new{ [:lv,:ru] })
|
61
57
|
config.locales.should eq([:lv,:ru])
|
62
58
|
end
|
63
59
|
end
|
64
60
|
|
65
|
-
it "should yield block with self when called with block" do
|
61
|
+
it "should yield block with self when called with block" do
|
66
62
|
block_called = nil
|
67
63
|
translation_conf = klass.new(some_class) do |conf|
|
68
64
|
block_called = conf
|
@@ -1,20 +1,20 @@
|
|
1
1
|
require 'header'
|
2
2
|
require File.expand_path("lib/lolita-translation/locales")
|
3
3
|
|
4
|
-
describe Lolita::Translation::Locales do
|
5
|
-
let(:klass){ Lolita::Translation::Locales }
|
4
|
+
describe Lolita::Translation::Locales do
|
5
|
+
let(:klass){ ::Lolita::Translation::Locales }
|
6
6
|
|
7
|
-
it "should create new with given locales names" do
|
7
|
+
it "should create new with given locales names" do
|
8
8
|
obj = klass.new([:lv,:en,:ru])
|
9
9
|
obj.locale_names.should eq([:en,:lv,:ru])
|
10
10
|
end
|
11
11
|
|
12
|
-
it "should implement Enumerable and each element should be Locale" do
|
12
|
+
it "should implement Enumerable and each element should be Locale" do
|
13
13
|
obj = klass.new([:lv,:en,:ru])
|
14
14
|
obj.first.should be_kind_of(Lolita::Translation::Locale)
|
15
15
|
end
|
16
16
|
|
17
|
-
it "should return locales in order where first is locale that belongs to record" do
|
17
|
+
it "should return locales in order where first is locale that belongs to record" do
|
18
18
|
obj = klass.new([:lv,:en,:ru])
|
19
19
|
resource = double("resource")
|
20
20
|
transl_rec = double("transl-rec")
|
@@ -23,7 +23,7 @@ describe Lolita::Translation::Locales do
|
|
23
23
|
obj.by_resource_locale(resource).map{|r| r.name}.should eq([:ru,:en,:lv])
|
24
24
|
end
|
25
25
|
|
26
|
-
it "should return active locale" do
|
26
|
+
it "should return active locale" do
|
27
27
|
obj = klass.new([:lv,:en,:ru])
|
28
28
|
I18n.locale = :ru
|
29
29
|
obj.active.name.should eq(:ru)
|
@@ -32,7 +32,7 @@ describe "Lolita tab extension" do
|
|
32
32
|
|
33
33
|
it "should provide tab with #build_translations_nested_form with resource" do
|
34
34
|
c_class = Class.new(ActiveRecord::Base)
|
35
|
-
|
35
|
+
stub_const('Product',c_class)
|
36
36
|
c_class.class_eval do
|
37
37
|
include Lolita::Configuration
|
38
38
|
include Lolita::Translation
|
@@ -48,7 +48,7 @@ describe "Lolita tab extension" do
|
|
48
48
|
|
49
49
|
it "should add #original_locale field to original tab" do
|
50
50
|
c_class = Class.new(ActiveRecord::Base)
|
51
|
-
|
51
|
+
stub_const('Product',c_class)
|
52
52
|
c_class.class_eval do
|
53
53
|
include Lolita::Configuration
|
54
54
|
include Lolita::Translation
|
@@ -1,31 +1,26 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Lolita::Translation::Migrator do
|
3
|
+
describe Lolita::Translation::Migrator do
|
4
4
|
let(:klass) { Lolita::Translation::Migrator }
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
Object.send(:remove_const,:Comment) rescue nil
|
5
|
+
|
6
|
+
before(:each) do
|
8
7
|
c_class = Class.new(ActiveRecord::Base)
|
9
|
-
|
10
|
-
c_class.class_eval do
|
8
|
+
stub_const('Comment',c_class)
|
9
|
+
c_class.class_eval do
|
11
10
|
include Lolita::Translation
|
12
11
|
translate :body
|
13
12
|
end
|
14
13
|
end
|
15
14
|
|
16
|
-
|
17
|
-
Object.send(:remove_const,:Comment) rescue nil
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "Instance methods" do
|
15
|
+
describe "Instance methods" do
|
21
16
|
|
22
|
-
it "should have klass and config attributes" do
|
17
|
+
it "should have klass and config attributes" do
|
23
18
|
migrator = klass.new(Comment)
|
24
19
|
migrator.klass.should eq(Comment)
|
25
20
|
migrator.config.should eq(Comment.translations_configuration)
|
26
21
|
end
|
27
22
|
|
28
|
-
it "should raise error when #migrate called" do
|
23
|
+
it "should raise error when #migrate called" do
|
29
24
|
migrator = klass.new(Comment)
|
30
25
|
expect{
|
31
26
|
migrator.migrate
|
@@ -33,10 +28,10 @@ describe Lolita::Translation::Migrator do
|
|
33
28
|
end
|
34
29
|
end
|
35
30
|
|
36
|
-
describe "Class methods" do
|
37
|
-
it "should create concrete migrator for AR" do
|
31
|
+
describe "Class methods" do
|
32
|
+
it "should create concrete migrator for AR" do
|
38
33
|
klass.create(Comment).should be_kind_of(Lolita::Translation::Migrators::ActiveRecordMigrator)
|
39
34
|
end
|
40
35
|
end
|
41
36
|
|
42
|
-
end
|
37
|
+
end
|