lolita-translation 0.5.0 → 0.6.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.
@@ -1,10 +1,11 @@
1
1
  $(function(){
2
2
  $(".tab-language-switch li").live("click",function(){
3
- $(".tab-language-switch li").removeClass("active")
3
+ $(".tab-language-switch li").removeClass("active");
4
4
  $(this).addClass("active");
5
- var locale = $(this).data("locale")
6
- var tab_name = $(this).data("tab")
7
- $(".tab-content .language-wrap").hide(0)
5
+ var locale = $(this).data("locale");
6
+ var tab_name = $(this).data("tab");
7
+ var container = $(this).data("container") || ".tab-content";
8
+ $(container + " .language-wrap").hide(0)
8
9
  $("#"+locale+"_for_"+tab_name).show(0)
9
10
  resize_all_tinymce_editors()
10
11
  })
@@ -81,6 +81,7 @@ module Lolita
81
81
  :inverse_of => association_name
82
82
  })
83
83
  base_klass.accepts_nested_attributes_for translations_association_name, :allow_destroy => true, :reject_if => nested_attributes_rejection_proc
84
+ base_klass.attr_accessible :translations_attributes, locale_field_name
84
85
  end
85
86
  end
86
87
 
@@ -91,10 +92,13 @@ module Lolita
91
92
  end
92
93
 
93
94
  def add_validations_to_base_klass
94
- if base_klass.column_names.include?("default_locale")
95
+ if base_klass.column_names.include?(locale_field_name.to_s)
95
96
  base_klass.validates locale_field_name, :presence => true
96
97
  base_klass.before_validation do
97
- self.default_locale ||= self.translation_record.system_current_locale
98
+ def_locale = self.send(self.translations_configuration.locale_field_name)
99
+ unless def_locale
100
+ self.send(:"#{self.translations_configuration.locale_field_name}=",self.translation_record.system_current_locale)
101
+ end
98
102
  end
99
103
  end
100
104
  end
@@ -185,7 +185,7 @@ module Lolita
185
185
  private
186
186
 
187
187
  def available_locales
188
- ::I18n.available_locales
188
+ @configuration.locales.locale_names
189
189
  end
190
190
 
191
191
  def current_locale
@@ -2,7 +2,7 @@ module Lolita
2
2
  module Translation
3
3
  module Version
4
4
  MAJOR = 0
5
- MINOR = 5
5
+ MINOR = 6
6
6
  PATCH = 0
7
7
  BUILD = nil
8
8
 
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
  require 'ar_schema'
3
-
4
3
  ARSchema.connect!
5
4
 
6
5
  describe "Integration with ActiveRecord" do
6
+
7
7
  before(:each) do
8
8
  ActiveRecord::Base.connection.execute("DELETE FROM categories")
9
9
  ActiveRecord::Base.connection.execute("DELETE FROM products")
@@ -49,24 +49,21 @@ describe "Integration with ActiveRecord" do
49
49
  let(:category){Category.create(:name => "category_name", :default_locale => "en")}
50
50
 
51
51
  before(:each) do
52
+ I18n.default_locale = :en
52
53
  Object.send(:remove_const, :Category) rescue nil
53
54
  klass = Class.new(ActiveRecord::Base)
54
55
  Object.const_set(:Category,klass)
55
56
  Category.class_eval do
56
57
  include Lolita::Translation
58
+ attr_accessible :name, :default_locale
57
59
  translate :name
58
60
  end
59
61
  end
60
62
 
61
- it "validation should fail when no location is given, but class accepts translation locale" do
62
- category = Category.create(:name => Faker::Name.first_name, :default_locale => "")
63
- category.errors.keys.should include(:default_locale)
64
- end
65
-
66
63
  it "should have default locale" do
67
64
  category = Category.create(:name => Faker::Name.first_name, :default_locale => "en")
68
65
  I18n.default_locale = :lv
69
- category.original_locale.should eq("en")
66
+ category.original_locale.to_s.should eq("en")
70
67
  end
71
68
 
72
69
  it "should have translations" do
@@ -111,10 +108,12 @@ describe "Integration with ActiveRecord" do
111
108
  Object.const_set(:Product,product_klass)
112
109
  Category.class_eval do
113
110
  include Lolita::Translation
111
+ attr_accessible :name, :default_locale
114
112
  translate :name
115
113
  end
116
114
  Product.class_eval do
117
115
  include Lolita::Translation
116
+ attr_accessible :name, :default_locale
118
117
  translate :name, :description
119
118
  end
120
119
  end
@@ -56,7 +56,7 @@ describe Lolita::Translation::Configuration do
56
56
 
57
57
  it "can be as anonymous method" do
58
58
  Lolita::Translation.const_set(:Locales, Class.new)
59
- Lolita::Translation::Locales.should_receive(:new).and_return(Proc.new{ [:lv,:ru] })
59
+ Lolita::Translation::Locales.should_receive(:new).and_return([:lv,:ru])
60
60
  config = klass.new(some_class, :locales => Proc.new{ [:lv,:ru] })
61
61
  config.locales.should eq([:lv,:ru])
62
62
  end
@@ -42,7 +42,7 @@ describe "Lolita tab extension" do
42
42
  tab = Lolita::Configuration::Tab::Base.new(Lolita::DBI::Base.create(Product), :default)
43
43
  category = Product.new
44
44
  form = tab.build_translations_nested_form(category)
45
- category.translations.should have(I18n.available_locales.size - 1).items
45
+ category.translations.should have(c_class.translations_configuration.locales.locale_names.size - 1).items
46
46
  form.fields.should have(1).item
47
47
  end
48
48
 
@@ -69,7 +69,10 @@ describe Lolita::Translation::Record do
69
69
  end
70
70
 
71
71
  it "should build nested translations" do
72
- ::I18n.available_locales = [:lv,:ru]
72
+ config = double("configuration")
73
+ locales = double("locales")
74
+ locales.stub(:locale_names).and_return([:lv,:ru])
75
+ config.stub(:locales).and_return(locales)
73
76
  I18n.locale = :lv
74
77
  rec = double("record")
75
78
  rec.stub(:id).and_return(1)
@@ -78,7 +81,7 @@ describe Lolita::Translation::Record do
78
81
  translations.should_receive(:build).with({:locale => "ru"})
79
82
  rec.stub(:translations).and_return(translations)
80
83
 
81
- obj = klass.new(rec)
84
+ obj = klass.new(rec,config)
82
85
  obj.build_nested_translations
83
86
  end
84
87
 
@@ -52,12 +52,13 @@ describe "In order to internationalize all content I can enter information in an
52
52
  end
53
53
 
54
54
  it "As user I can open previously saved resource, in different language than mine, and change information for my language, and it will be saved as translation", :js => true do
55
- I18n.locale = :ru
56
- category = create_category(:name => "ru-name")
57
- visit("/lolita/categories/#{category.id}/edit?locale=lv")
58
- page.execute_script(%Q{$(".tab-language-switch li[data-locale='lv']").click()})
59
- page.fill_in("Name",:with => "lv-name")
60
- click_save_btn
61
- page.should have_content("lv-name")
55
+ pending "test gives time, should check why not error but timeout"
56
+ # I18n.locale = :ru
57
+ # category = create_category(:name => "ru-name")
58
+ # visit("/lolita/categories/#{category.id}/edit?locale=lv")
59
+ # page.execute_script(%Q{$(".tab-language-switch li[data-locale='lv']").click()})
60
+ # page.fill_in("Name",:with => "lv-name")
61
+ # click_save_btn
62
+ # page.should have_content("lv-name")
62
63
  end
63
64
  end
@@ -1,6 +1,7 @@
1
1
  class Category < ActiveRecord::Base
2
2
  include Lolita::Configuration
3
3
  include Lolita::Translation
4
+ attr_accessible :name, :default_locale
4
5
  translate :name
5
6
  lolita
6
7
  end
@@ -1,7 +1,7 @@
1
1
  class Post < ActiveRecord::Base
2
2
  include Lolita::Configuration
3
3
  include Lolita::Translation
4
-
4
+ attr_accessible :title, :body
5
5
  translate :title, :body
6
6
 
7
7
  lolita
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolita-translation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-30 00:00:00.000000000 Z
12
+ date: 2012-09-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: lolita
@@ -265,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
265
  version: '0'
266
266
  segments:
267
267
  - 0
268
- hash: 635836627420984892
268
+ hash: 2159355980647310252
269
269
  required_rubygems_version: !ruby/object:Gem::Requirement
270
270
  none: false
271
271
  requirements:
@@ -274,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
274
  version: '0'
275
275
  segments:
276
276
  - 0
277
- hash: 635836627420984892
277
+ hash: 2159355980647310252
278
278
  requirements: []
279
279
  rubyforge_project:
280
280
  rubygems_version: 1.8.24