globalize 4.0.0.alpha.2 → 4.0.0.alpha.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ca26136a9b1c4d772eee00815f732b7025d3b95
4
- data.tar.gz: 93b43c38d7a582487fa95042633d2cfc3776a0b4
3
+ metadata.gz: fd7e2e9e5d23a8dd6696722ddd3dfabc200f07e1
4
+ data.tar.gz: 340c3919bd3bdb8a5a3f821c12189d29df20e181
5
5
  SHA512:
6
- metadata.gz: cd0c34e725155990db83147a41fe87df89439655fad2093970543c63773545b2dd72ebb5908ce42b60aa0ac0c5971f4856490df5d6a62d0c44b7563b4e87beb4
7
- data.tar.gz: 25c39ad5e9cff3855f782b715d83be94cc44ffe88b87ad4db5aafea7f975808dddb78bc56a7571d6954464f8d9b5013295047d8bf9d2b0eb4dcb7bacf5d82791
6
+ metadata.gz: 53351f2d7268b5e183410c58331205e9f704a24f6e5e2df95813117c0915d62c5ba9dbca33531bff572c80672a315e1add169bbdc2e2686b68abc51f45815d6e
7
+ data.tar.gz: c411ea171a017727cf07d2bd6dcc4e83c71f88700f4cde510684a88422e6eda44bf2af10e43d9c87a4b2de54d089d546e334cb81930128bd8259bb1808e337df
data/Gemfile CHANGED
@@ -7,6 +7,10 @@ gem 'paper_trail', github: 'airblade/paper_trail', branch: 'master'
7
7
  # Per https://github.com/bmabey/database_cleaner/issues/224
8
8
  gem 'database_cleaner', github: 'bmabey/database_cleaner', branch: 'master'
9
9
 
10
+ platforms :rbx do
11
+ gem 'rubysl', '~> 2.0'
12
+ end
13
+
10
14
  group :test do
11
15
  gem 'pry'
12
16
  gem 'pry-nav'
@@ -1,39 +1,23 @@
1
- GIT
2
- remote: git://github.com/airblade/paper_trail.git
3
- revision: 44f2380ec6cd45c15a8b654d5e7d694499c6e11c
4
- branch: master
5
- specs:
6
- paper_trail (3.0.0.beta2)
7
- activerecord (>= 3.0, < 5.0)
8
-
9
- GIT
10
- remote: git://github.com/bmabey/database_cleaner.git
11
- revision: 6da38c4c1a565bbcc62ed9b84c2574537c6ebae2
12
- branch: master
13
- specs:
14
- database_cleaner (1.2.0)
15
-
16
1
  PATH
17
2
  remote: .
18
3
  specs:
19
- globalize (4.0.0.alpha.2)
4
+ globalize (4.0.0.alpha.3)
20
5
  activemodel (>= 4.0.0)
21
6
  activerecord (>= 4.0.0)
22
- paper_trail (~> 3.0.0.beta)
23
7
 
24
8
  GEM
25
9
  remote: https://rubygems.org/
26
10
  specs:
27
- activemodel (4.0.0)
28
- activesupport (= 4.0.0)
11
+ activemodel (4.0.1)
12
+ activesupport (= 4.0.1)
29
13
  builder (~> 3.1.0)
30
- activerecord (4.0.0)
31
- activemodel (= 4.0.0)
14
+ activerecord (4.0.1)
15
+ activemodel (= 4.0.1)
32
16
  activerecord-deprecated_finders (~> 1.0.2)
33
- activesupport (= 4.0.0)
17
+ activesupport (= 4.0.1)
34
18
  arel (~> 4.0.0)
35
19
  activerecord-deprecated_finders (1.0.3)
36
- activesupport (4.0.0)
20
+ activesupport (4.0.1)
37
21
  i18n (~> 0.6, >= 0.6.4)
38
22
  minitest (~> 4.2)
39
23
  multi_json (~> 1.3)
@@ -41,10 +25,10 @@ GEM
41
25
  tzinfo (~> 0.3.37)
42
26
  arel (4.0.1)
43
27
  atomic (1.1.14)
44
- atomic (1.1.14-java)
45
28
  builder (3.1.4)
46
29
  coderay (1.0.9)
47
- ffi (1.9.0-java)
30
+ database_cleaner (1.2.0)
31
+ ffi (1.9.3-java)
48
32
  i18n (0.6.5)
49
33
  json (1.8.1)
50
34
  json (1.8.1-java)
@@ -73,8 +57,6 @@ GEM
73
57
  sqlite3 (1.3.7)
74
58
  thread_safe (0.1.3)
75
59
  atomic
76
- thread_safe (0.1.3-java)
77
- atomic
78
60
  tzinfo (0.3.38)
79
61
 
80
62
  PLATFORMS
@@ -82,11 +64,10 @@ PLATFORMS
82
64
  ruby
83
65
 
84
66
  DEPENDENCIES
85
- database_cleaner!
67
+ database_cleaner (>= 1.2.0)
86
68
  globalize!
87
69
  minitest
88
70
  minitest-colorize
89
- paper_trail!
90
71
  pry
91
72
  pry-nav
92
73
  rake
@@ -2,7 +2,6 @@ require 'active_record'
2
2
  require 'patches/active_record/xml_attribute_serializer'
3
3
  require 'patches/active_record/query_method'
4
4
  require 'patches/active_record/uniqueness_validator'
5
- require 'patches/active_record/relation'
6
5
 
7
6
  module Globalize
8
7
  autoload :ActiveRecord, 'globalize/active_record'
@@ -8,6 +8,6 @@ module Globalize
8
8
  autoload :InstanceMethods, 'globalize/active_record/instance_methods'
9
9
  autoload :Migration, 'globalize/active_record/migration'
10
10
  autoload :Translation, 'globalize/active_record/translation'
11
- autoload :Relation, 'globalize/active_record/relation'
11
+ autoload :QueryMethods, 'globalize/active_record/query_methods'
12
12
  end
13
13
  end
@@ -58,16 +58,6 @@ module Globalize
58
58
  "#{translation_class.table_name}.#{name}"
59
59
  end
60
60
 
61
- def relation
62
- relation = Relation.new(self, arel_table)
63
-
64
- if finder_needs_type_condition?
65
- relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name)
66
- else
67
- relation
68
- end
69
- end
70
-
71
61
  def respond_to_missing?(method_id, include_private = false)
72
62
  supported_on_missing?(method_id) || super
73
63
  end
@@ -135,7 +125,16 @@ module Globalize
135
125
  record
136
126
  end
137
127
 
138
- protected
128
+ private
129
+
130
+ # Override the default relation method in order to return a subclass
131
+ # of ActiveRecord::Relation with custom finder methods for translated
132
+ # attributes.
133
+ def relation
134
+ super.extending!(QueryMethods)
135
+ end
136
+
137
+ protected
139
138
 
140
139
  def translated_attr_accessor(name)
141
140
  define_method(:"#{name}=") do |value|
@@ -1,6 +1,6 @@
1
1
  module Globalize
2
2
  module ActiveRecord
3
- class Relation < ::ActiveRecord::Relation
3
+ module QueryMethods
4
4
 
5
5
  attr_accessor :translations_reload_needed
6
6
 
@@ -8,7 +8,7 @@ module Globalize
8
8
  def not(opts, *rest)
9
9
  if parsed = @scope.parse_translated_conditions(opts)
10
10
  @scope.translations_reload_needed = true
11
- @scope.with_translations_in_this_locale.where.not(parsed, *rest)
11
+ @scope.with_translations_in_fallbacks.where.not(parsed, *rest)
12
12
  else
13
13
  super
14
14
  end
@@ -20,7 +20,7 @@ module Globalize
20
20
  WhereChain.new(spawn)
21
21
  elsif parsed = parse_translated_conditions(opts)
22
22
  self.translations_reload_needed = true
23
- super(parsed, *rest).with_translations_in_this_locale
23
+ super(parsed, *rest).with_translations_in_fallbacks
24
24
  else
25
25
  super
26
26
  end
@@ -28,7 +28,7 @@ module Globalize
28
28
 
29
29
  def exists?(conditions = :none)
30
30
  if parsed = parse_translated_conditions(conditions)
31
- with_translations_in_this_locale.exists?(parsed)
31
+ with_translations_in_fallbacks.exists?(parsed)
32
32
  else
33
33
  super
34
34
  end
@@ -47,8 +47,8 @@ module Globalize
47
47
  END_RUBY
48
48
  end
49
49
 
50
- def with_translations_in_this_locale
51
- with_translations(Globalize.locale)
50
+ def with_translations_in_fallbacks
51
+ with_translations(Globalize.fallbacks)
52
52
  end
53
53
 
54
54
  def parse_translated_conditions(opts)
@@ -58,6 +58,19 @@ module Globalize
58
58
  opts
59
59
  end
60
60
  end
61
+
62
+ def where_values_hash
63
+ equalities = with_default_scope.where_values.grep(Arel::Nodes::Equality).find_all { |node|
64
+ node.left.relation.name == translations_table_name
65
+ }
66
+
67
+ binds = Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
68
+
69
+ super.merge(Hash[equalities.map { |where|
70
+ name = where.left.name
71
+ [name, binds.fetch(name.to_s) { where.right }]
72
+ }])
73
+ end
61
74
  end
62
75
  end
63
76
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: globalize
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha.2
4
+ version: 4.0.0.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2013-10-24 00:00:00.000000000 Z
17
+ date: 2013-12-18 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord
@@ -155,7 +155,7 @@ files:
155
155
  - lib/globalize/active_record/exceptions.rb
156
156
  - lib/globalize/active_record/instance_methods.rb
157
157
  - lib/globalize/active_record/migration.rb
158
- - lib/globalize/active_record/relation.rb
158
+ - lib/globalize/active_record/query_methods.rb
159
159
  - lib/globalize/active_record/translation.rb
160
160
  - lib/globalize/active_record.rb
161
161
  - lib/globalize/interpolation.rb
@@ -165,7 +165,6 @@ files:
165
165
  - lib/i18n/missing_translations_log_handler.rb
166
166
  - lib/i18n/missing_translations_raise_handler.rb
167
167
  - lib/patches/active_record/query_method.rb
168
- - lib/patches/active_record/relation.rb
169
168
  - lib/patches/active_record/uniqueness_validator.rb
170
169
  - lib/patches/active_record/xml_attribute_serializer.rb
171
170
  - Gemfile
@@ -192,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
191
  version: 1.3.1
193
192
  requirements: []
194
193
  rubyforge_project: '[none]'
195
- rubygems_version: 2.1.0
194
+ rubygems_version: 2.0.14
196
195
  signing_key:
197
196
  specification_version: 4
198
197
  summary: Rails I18n de-facto standard library for ActiveRecord model/data translation
@@ -1,20 +0,0 @@
1
- module ActiveRecord
2
- class Relation
3
- if ::ActiveRecord::VERSION::STRING >= "3.2.1"
4
- def where_values_hash
5
- _translations_table_name = klass.respond_to?(:translations_table_name) ? klass.translations_table_name : nil
6
-
7
- equalities = with_default_scope.where_values.grep(Arel::Nodes::Equality).find_all { |node|
8
- [table_name, _translations_table_name].compact.include? node.left.relation.name
9
- }
10
-
11
- binds = Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
12
-
13
- Hash[equalities.map { |where|
14
- name = where.left.name
15
- [name, binds.fetch(name.to_s) { where.right } ]
16
- }].with_indifferent_access
17
- end
18
- end
19
- end
20
- end