simple_model_translations 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/Gemfile CHANGED
@@ -1,10 +1,2 @@
1
1
  source :rubygems
2
-
3
- gem 'activerecord', '~> 3.0.0'
4
-
5
- group :test do
6
- gem 'database_cleaner', '~> 0.5.2'
7
- gem 'sqlite3-ruby', '~> 1.3.1'
8
- gem 'shoulda', '~> 2.11.3'
9
- gem 'rspec', '~> 2.0.0'
10
- end
2
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,3 +1,9 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ simple_model_translations (0.1.8)
5
+ activerecord (~> 3.0.0)
6
+
1
7
  GEM
2
8
  remote: http://rubygems.org/
3
9
  specs:
@@ -39,4 +45,5 @@ DEPENDENCIES
39
45
  database_cleaner (~> 0.5.2)
40
46
  rspec (~> 2.0.0)
41
47
  shoulda (~> 2.11.3)
48
+ simple_model_translations!
42
49
  sqlite3-ruby (~> 1.3.1)
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Pavel Forkert
1
+ Copyright (c) 2010 Pavel Forkert
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,13 +1,12 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
+ require 'simple_model_translations/version'
2
3
 
3
4
  require 'rubygems'
4
5
  require 'rake'
5
- require 'simple_model_translations/version'
6
6
  require 'rspec/core/rake_task'
7
7
  require 'rake/rdoctask'
8
8
 
9
9
  RSpec::Core::RakeTask.new(:spec) do |spec|
10
- spec.rspec_opts = %w(-fs --color)
11
10
  end
12
11
 
13
12
  Rake::RDocTask.new do |rdoc|
@@ -1,3 +1,4 @@
1
+ require 'active_record'
1
2
  require 'simple_model_translations/base'
2
3
  require 'simple_model_translations/class_methods'
3
4
  require 'simple_model_translations/instance_methods'
@@ -53,7 +53,8 @@ module SimpleModelTranslations
53
53
  has_many :translations, :class_name => translation_class.name, :dependent => :destroy, :autosave => true
54
54
 
55
55
  if options[:attributes]
56
- accepts_nested_attributes_for :translations, :allow_destroy => true
56
+ nested_attributes = options[:attributes].is_a?(Hash) ? options[:attributes] : {}
57
+ accepts_nested_attributes_for :translations, nested_attributes.reverse_merge(:allow_destroy => true)
57
58
  end
58
59
  end
59
60
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleModelTranslations
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.summary = 'Simple ActiveRecord translations for Rails 3'
14
14
  s.description = 'Simple ActiveRecord translations for Rails 3'
15
15
  s.require_path = 'lib'
16
- s.files = Dir.glob('{spec,lib}/**/*') + %w(Gemfile Gemfile.lock LICENSE Rakefile README.rdoc simple_model_translations.gemspec)
16
+ s.files = Dir.glob('{spec,lib}/**/*') + %w(Gemfile Gemfile.lock LICENSE Rakefile README.rdoc simple_model_translations.gemspec .rspec)
17
17
  s.test_files = Dir.glob('spec/**/*')
18
18
  s.extra_rdoc_files = %w(LICENSE README.rdoc)
19
19
 
data/spec/data/schema.rb CHANGED
@@ -32,13 +32,18 @@ ActiveRecord::Schema.define do
32
32
  t.string :name
33
33
  end
34
34
 
35
- create_table :categories, :force => true do |t|
36
- end
37
-
35
+ create_table :categories, :force => true
38
36
  create_table :category_translations, :force => true do |t|
39
37
  t.string :locale
40
38
  t.references :category
41
39
  t.string :name
42
40
  end
41
+
42
+ create_table :some_models, :force => true
43
+ create_table :some_model_translations, :force => true do |t|
44
+ t.string :locale
45
+ t.references :some_models
46
+ t.string :name
47
+ end
43
48
  end
44
49
 
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe SimpleModelTranslations do
4
+ context 'when generating nested attributes' do
5
+ before do
6
+ SomeModel = Class.new(ActiveRecord::Base)
7
+ end
8
+
9
+ after do
10
+ Object.send(:remove_const, :SomeModel)
11
+ end
12
+
13
+ it 'can use options[:attributes] as a Hash' do
14
+ options = { :reject_if => lambda { |attrs| attrs[:name].blank? } }
15
+ SomeModel.should_receive(:accepts_nested_attributes_for).with(:translations, options.merge(:allow_destroy => true))
16
+ SomeModel.translates :name, :attributes => options
17
+ end
18
+
19
+ it 'can use options[:attributes] as a Boolean' do
20
+ SomeModel.should_receive(:accepts_nested_attributes_for).with(:translations, { :allow_destroy => true })
21
+ SomeModel.translates :name, :attributes => true
22
+ end
23
+
24
+ it "should enable translations' deletion by default" do
25
+ SomeModel.should_receive(:accepts_nested_attributes_for).with(:translations, { :allow_destroy => true })
26
+ SomeModel.translates :name, :attributes => true
27
+ end
28
+
29
+ it "should allow to disable translations' deletion" do
30
+ SomeModel.should_receive(:accepts_nested_attributes_for).with(:translations, { :allow_destroy => false })
31
+ SomeModel.translates :name, :attributes => { :allow_destroy => false }
32
+ end
33
+ end
34
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,5 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
1
  require 'bundler'
4
- Bundler.require(:default, :test)
5
-
6
- require 'rspec'
7
- require 'shoulda'
8
- require 'active_record'
9
- require 'simple_model_translations'
2
+ Bundler.require(:default, :development)
10
3
 
11
4
  ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
12
5
  DatabaseCleaner.strategy = :transaction
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_model_translations
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 7
10
- version: 0.1.7
9
+ - 8
10
+ version: 0.1.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pavel Forkert
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-23 00:00:00 +03:00
18
+ date: 2010-11-10 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -113,6 +113,7 @@ files:
113
113
  - spec/class_methods_spec.rb
114
114
  - spec/data/models.rb
115
115
  - spec/data/schema.rb
116
+ - spec/nested_attributes_spec.rb
116
117
  - spec/simple_model_translations_spec.rb
117
118
  - spec/spec_helper.rb
118
119
  - spec/validations_spec.rb
@@ -129,6 +130,7 @@ files:
129
130
  - Rakefile
130
131
  - README.rdoc
131
132
  - simple_model_translations.gemspec
133
+ - .rspec
132
134
  has_rdoc: true
133
135
  homepage: http://github.com/fxposter/simple_model_translations
134
136
  licenses: []
@@ -171,6 +173,7 @@ test_files:
171
173
  - spec/class_methods_spec.rb
172
174
  - spec/data/models.rb
173
175
  - spec/data/schema.rb
176
+ - spec/nested_attributes_spec.rb
174
177
  - spec/simple_model_translations_spec.rb
175
178
  - spec/spec_helper.rb
176
179
  - spec/validations_spec.rb