def method_missing(method, *args, &block)
if is_scope?(method)
add_scope(method, *args, &block)
return self
elsif method == :search_count
merge_search one_class.search(*args), self.args, options
return scoped_count
elsif method.to_s[/^each_with_.*/].nil? && !@array.respond_to?(method)
super
elsif !SafeMethods.include?(method.to_s)
populate
end
if method.to_s[/^each_with_.*/] && !@array.respond_to?(method)
each_with_attribute method.to_s.gsub(/^each_with_/, ''), &block
else
@array.send(method, *args, &block)
end
end