Merge remote branch 'miloops/rails_master_fixes'

This commit is contained in:
Pratik Naik
2010-08-31 22:05:42 +01:00

View File

@@ -11,52 +11,63 @@ module ActiveRecord
def includes(*args)
args.reject! { |a| a.blank? }
clone.tap {|r| r.includes_values = (r.includes_values + args).flatten.uniq if args.present? }
args.present? ? clone.tap {|r| r.includes_values = (r.includes_values + args).flatten.uniq } : clone
end
def eager_load(*args)
clone.tap {|r| r.eager_load_values += args if args.present? }
args.present? ? clone.tap {|r| r.eager_load_values += args } : clone
end
def preload(*args)
clone.tap {|r| r.preload_values += args if args.present? }
args.present? ? clone.tap {|r| r.preload_values += args } : clone
end
def select(*args)
if block_given?
to_a.select {|*block_args| yield(*block_args) }
else
clone.tap {|r| r.select_values += args if args.present? }
args.present? ? clone.tap {|r| r.select_values += args } : clone
end
end
def group(*args)
clone.tap {|r| r.group_values += args.flatten if args.present? }
args.present? ? clone.tap {|r| r.group_values += args.flatten } : clone
end
def order(*args)
clone.tap {|r| r.order_values += args if args.present? }
args.present? ? clone.tap {|r| r.order_values += args } : clone
end
def reorder(*args)
clone.tap {|r| r.order_values = args if args.present? }
args.present? ? clone.tap {|r| r.order_values = args } : clone
end
def joins(*args)
args.flatten!
clone.tap {|r| r.joins_values += args if args.present? }
if args.present?
args.flatten!
clone.tap {|r| r.joins_values += args }
else
clone
end
end
def where(opts, *rest)
value = build_where(opts, rest)
copy = clone
copy.where_values += Array.wrap(value) if value
copy
if opts.present? && value = build_where(opts, rest)
copy = clone
copy.where_values += Array.wrap(value)
copy
else
clone
end
end
def having(*args)
value = build_where(*args)
clone.tap {|r| r.having_values += Array.wrap(value) if value.present? }
if args.present?
value = build_where(*args)
clone.tap {|r| r.having_values += Array.wrap(value) }
else
clone
end
end
def limit(value)