fixing error on protected sanitize_sql - closes #111

This commit is contained in:
Ryan Bates 2010-08-06 23:24:04 -07:00
parent 7a17586eb3
commit f8631dcc93
2 changed files with 23 additions and 19 deletions

View File

@ -71,7 +71,7 @@ module CanCan
end
def sanitize_sql(conditions)
@sanitizer.sanitize_sql(conditions)
@sanitizer.send(:sanitize_sql, conditions)
end
# Takes two hashes and does a deep merge.

View File

@ -19,25 +19,29 @@ class Ability
end
end
# this class helps out in testing nesting and SQL conditions
# this class helps out in testing SQL conditions
class Person
def self.sanitize_sql(hash_cond)
case hash_cond
when Hash
sanitize_hash(hash_cond).join(' AND ')
when Array
hash_cond.shift.gsub('?'){"#{hash_cond.shift.inspect}"}
when String then hash_cond
class << self
protected
def sanitize_sql(hash_cond)
case hash_cond
when Hash
sanitize_hash(hash_cond).join(' AND ')
when Array
hash_cond.shift.gsub('?'){"#{hash_cond.shift.inspect}"}
when String then hash_cond
end
end
def sanitize_hash(hash)
hash.map do |name, value|
if Hash === value
sanitize_hash(value).map{|cond| "#{name}.#{cond}"}
else
"#{name}=#{value}"
end
end.flatten
end
end
def self.sanitize_hash(hash)
hash.map do |name, value|
if Hash === value
sanitize_hash(value).map{|cond| "#{name}.#{cond}"}
else
"#{name}=#{value}"
end
end.flatten
end
end