lib/supernova/criteria.rb in supernova-0.2.2 vs lib/supernova/criteria.rb in supernova-0.3.0
- old
+ new
@@ -26,10 +26,14 @@
end
def for_classes(clazzes)
merge_filters :classes, [clazzes].flatten
end
+
+ def attribute_mapping(mapping)
+ merge_search_options :attribute_mapping, mapping
+ end
def order(order_option)
merge_search_options :order, order_option
end
@@ -39,33 +43,33 @@
def group_by(group_option)
merge_search_options :group_by, group_option
end
- def search(query)
- merge_filters :search, query
+ def search(*terms)
+ merge_filters_array :search, terms
end
def with(filters)
merge_filters :with, filters
end
+ def where(*args)
+ with(*args)
+ end
+
def without(filters)
self.filters[:without] ||= Hash.new
filters.each do |key, value|
self.filters[:without][key] ||= Array.new
self.filters[:without][key] << value if !self.filters[:without][key].include?(value)
end
self
end
def select(*fields)
- self.search_options[:select] ||= Array.new
- fields.flatten.each do |field|
- self.search_options[:select] << field if !self.search_options[:select].include?(field)
- end
- self
+ merge_filters_array :select, fields
end
def conditions(filters)
merge_filters :conditions, filters
end
@@ -102,9 +106,17 @@
nil
end
def merge_filters(key, value)
merge_filters_or_search_options(self.filters, key, value)
+ end
+
+ def merge_filters_array(key, fields)
+ self.search_options[key] ||= Array.new
+ fields.flatten.each do |field|
+ self.search_options[key] << field if !self.search_options[key].include?(field)
+ end
+ self
end
def merge_search_options(key, value)
merge_filters_or_search_options(self.search_options, key, value)
end
\ No newline at end of file