lib/scoped_search.rb in scoped_search-4.0.0 vs lib/scoped_search.rb in scoped_search-4.1.0
- old
+ new
@@ -22,12 +22,17 @@
base.class_attribute :scoped_search_definition
end
# Export the scoped_search method fo defining the search options.
# This method will create a definition instance for the class if it does not yet exist,
- # and use the object as block argument and retun value.
+ # or if a parent definition exists then it will create a new one inheriting it,
+ # and use the object as block argument and return value.
def scoped_search(*definitions)
self.scoped_search_definition ||= ScopedSearch::Definition.new(self)
+ unless self.scoped_search_definition.klass == self # inheriting the parent
+ self.scoped_search_definition = ScopedSearch::Definition.new(self)
+ end
+
definitions.each do |definition|
if definition[:on].kind_of?(Array)
definition[:on].each { |field| self.scoped_search_definition.define(definition.merge(:on => field)) }
else
self.scoped_search_definition.define(definition)