Commit 6b037511b4a9541c892fdf559ac4bd81856d0dac
1 parent
2f6c86d9
Exists in
master
and in
29 other branches
named_scope_monkey_patch: move to solr plugin
Showing
2 changed files
with
57 additions
and
57 deletions
Show diff stats
plugins/solr/vendor/plugins/named_scope_with_applied_names/init.rb
0 → 100644
@@ -0,0 +1,57 @@ | @@ -0,0 +1,57 @@ | ||
1 | +require_dependency 'active_record/named_scope' | ||
2 | + | ||
3 | +if Rails::VERSION::STRING < "2.3.99" | ||
4 | + | ||
5 | + module ::ActiveRecord | ||
6 | + | ||
7 | + module NamedScope | ||
8 | + | ||
9 | + module ClassMethods | ||
10 | + | ||
11 | + def named_scope_with_applied_names name, options = {}, &block | ||
12 | + named_scope_without_applied_names name, options, &block | ||
13 | + | ||
14 | + name = name.to_sym | ||
15 | + scopes[name] = lambda do |parent_scope, *args| | ||
16 | + scope = Scope.new(parent_scope, case options | ||
17 | + when Hash | ||
18 | + options | ||
19 | + when Proc | ||
20 | + if self.model_name != parent_scope.model_name | ||
21 | + options.bind(parent_scope).call(*args) | ||
22 | + else | ||
23 | + options.call(*args) | ||
24 | + end | ||
25 | + end, &block) | ||
26 | + scope.scope_name = name | ||
27 | + scope | ||
28 | + end | ||
29 | + end | ||
30 | + alias_method_chain :named_scope, :applied_names | ||
31 | + end | ||
32 | + | ||
33 | + class Scope | ||
34 | + attr_accessor :scope_name, :scopes_applied | ||
35 | + | ||
36 | + def initialize_with_applied_names proxy_scope, options, &block | ||
37 | + initialize_without_applied_names proxy_scope, options, &block | ||
38 | + self.scopes_applied ||= [] | ||
39 | + self.scopes_applied += proxy_scope.send :scopes_applied if Scope === proxy_scope | ||
40 | + | ||
41 | + # unrelated bugfix: use if instead of unless | ||
42 | + if (Scope === proxy_scope || ActiveRecord::Associations::AssociationCollection === proxy_scope) | ||
43 | + @current_scoped_methods_when_defined = proxy_scope.send(:current_scoped_methods) | ||
44 | + end | ||
45 | + end | ||
46 | + alias_method_chain :initialize, :applied_names | ||
47 | + | ||
48 | + def scope_name= name | ||
49 | + @scope_name = name | ||
50 | + self.scopes_applied << @scope_name | ||
51 | + end | ||
52 | + | ||
53 | + end | ||
54 | + | ||
55 | + end | ||
56 | + end | ||
57 | +end |
vendor/plugins/monkey_patches/named_scope_with_applied_names/init.rb
@@ -1,57 +0,0 @@ | @@ -1,57 +0,0 @@ | ||
1 | -require_dependency 'active_record/named_scope' | ||
2 | - | ||
3 | -if Rails::VERSION::STRING < "2.3.99" | ||
4 | - | ||
5 | - module ::ActiveRecord | ||
6 | - | ||
7 | - module NamedScope | ||
8 | - | ||
9 | - module ClassMethods | ||
10 | - | ||
11 | - def named_scope_with_applied_names name, options = {}, &block | ||
12 | - named_scope_without_applied_names name, options, &block | ||
13 | - | ||
14 | - name = name.to_sym | ||
15 | - scopes[name] = lambda do |parent_scope, *args| | ||
16 | - scope = Scope.new(parent_scope, case options | ||
17 | - when Hash | ||
18 | - options | ||
19 | - when Proc | ||
20 | - if self.model_name != parent_scope.model_name | ||
21 | - options.bind(parent_scope).call(*args) | ||
22 | - else | ||
23 | - options.call(*args) | ||
24 | - end | ||
25 | - end, &block) | ||
26 | - scope.scope_name = name | ||
27 | - scope | ||
28 | - end | ||
29 | - end | ||
30 | - alias_method_chain :named_scope, :applied_names | ||
31 | - end | ||
32 | - | ||
33 | - class Scope | ||
34 | - attr_accessor :scope_name, :scopes_applied | ||
35 | - | ||
36 | - def initialize_with_applied_names proxy_scope, options, &block | ||
37 | - initialize_without_applied_names proxy_scope, options, &block | ||
38 | - self.scopes_applied ||= [] | ||
39 | - self.scopes_applied += proxy_scope.send :scopes_applied if Scope === proxy_scope | ||
40 | - | ||
41 | - # unrelated bugfix: use if instead of unless | ||
42 | - if (Scope === proxy_scope || ActiveRecord::Associations::AssociationCollection === proxy_scope) | ||
43 | - @current_scoped_methods_when_defined = proxy_scope.send(:current_scoped_methods) | ||
44 | - end | ||
45 | - end | ||
46 | - alias_method_chain :initialize, :applied_names | ||
47 | - | ||
48 | - def scope_name= name | ||
49 | - @scope_name = name | ||
50 | - self.scopes_applied << @scope_name | ||
51 | - end | ||
52 | - | ||
53 | - end | ||
54 | - | ||
55 | - end | ||
56 | - end | ||
57 | -end |