lib/searchlogic/named_scopes/ordering.rb in searchlogic-2.4.32 vs lib/searchlogic/named_scopes/ordering.rb in searchlogic-2.5.0
- old
+ new
@@ -8,38 +8,36 @@
# See the README for a more detailed explanation.
module Ordering
def condition?(name) # :nodoc:
super || ordering_condition?(name)
end
-
+
private
def ordering_condition?(name) # :nodoc:
!ordering_condition_details(name).nil?
end
-
- def method_missing(name, *args, &block)
+
+ def create_condition(name)
if name == :order
named_scope name, lambda { |scope_name|
return {} if !condition?(scope_name)
send(scope_name).proxy_options
}
- send(name, *args)
elsif details = ordering_condition_details(name)
create_ordering_conditions(details[:column])
- send(name, *args)
else
super
end
end
-
+
def ordering_condition_details(name)
if name.to_s =~ /^(ascend|descend)_by_(#{column_names.join("|")})$/
{:order_as => $1, :column => $2}
elsif name.to_s =~ /^order$/
{}
end
end
-
+
def create_ordering_conditions(column)
named_scope("ascend_by_#{column}".to_sym, {:order => "#{table_name}.#{column} ASC"})
named_scope("descend_by_#{column}".to_sym, {:order => "#{table_name}.#{column} DESC"})
end
end