Skip to content

Commit

Permalink
skip cloning if arguments are blank
Browse files Browse the repository at this point in the history
  • Loading branch information
tenderlove committed Nov 23, 2010
1 parent 4ece7e0 commit dc320d5
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions activerecord/lib/active_record/relation/query_methods.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,26 @@ module QueryMethods
def includes(*args)
args.reject! {|a| a.blank? }

return clone if args.empty?
return self if args.empty?

relation = clone
relation.includes_values = (relation.includes_values + args).flatten.uniq
relation
end

def eager_load(*args)
return self if args.blank?

relation = clone
relation.eager_load_values += args unless args.blank?
relation.eager_load_values += args
relation
end

def preload(*args)
return self if args.blank?

relation = clone
relation.preload_values += args unless args.blank?
relation.preload_values += args
relation
end

Expand All @@ -43,22 +47,28 @@ def select(value = Proc.new)
end

def group(*args)
return self if args.blank?

relation = clone
relation.group_values += args.flatten unless args.blank?
relation.group_values += args.flatten
relation
end

def order(*args)
return self if args.blank?

relation = clone
relation.order_values += args.flatten unless args.blank?
relation.order_values += args.flatten
relation
end

def joins(*args)
return self if args.blank?

relation = clone

args.flatten!
relation.joins_values += args unless args.blank?
relation.joins_values += args

relation
end
Expand All @@ -70,14 +80,18 @@ def bind(value)
end

def where(opts, *rest)
return self if opts.blank?

relation = clone
relation.where_values += build_where(opts, rest) unless opts.blank?
relation.where_values += build_where(opts, rest)
relation
end

def having(*args)
return self if args.blank?

relation = clone
relation.having_values += build_where(*args) unless args.blank?
relation.having_values += build_where(*args)
relation
end

Expand Down

0 comments on commit dc320d5

Please sign in to comment.