lib/supernova/criteria.rb in supernova-0.3.2 vs lib/supernova/criteria.rb in supernova-0.3.3
- old
+ new
@@ -168,15 +168,19 @@
def method_missing(*args, &block)
if args.length == 1 && Array.new.respond_to?(args.first)
to_a.send(args.first, &block)
elsif self.named_scope_defined?(args.first)
- self.merge(self.clazz.send(*args)) # merge named scope and current criteria
+ self.merge(self.search_options[:named_scope_class].send(*args)) # merge named scope and current criteria
else
super
end
end
+ def named_scope_class(clazz)
+ merge_search_options :named_scope_class, clazz
+ end
+
def named_scope_defined?(name)
- self.clazz && self.clazz.respond_to?(:defined_named_search_scopes) && clazz.defined_named_search_scopes.respond_to?(:include?) && clazz.defined_named_search_scopes.include?(name)
+ self.search_options[:named_scope_class] && self.search_options[:named_scope_class].respond_to?(:defined_named_search_scopes) && self.search_options[:named_scope_class].defined_named_search_scopes.respond_to?(:include?) && self.search_options[:named_scope_class].defined_named_search_scopes.include?(name)
end
end
\ No newline at end of file