refatctoring of some code repetition in spawn_methods
This commit is contained in:
parent
2b773e148b
commit
1564b085e2
|
@ -50,10 +50,7 @@ module ActiveRecord
|
|||
# Post.order('id asc').except(:order) # discards the order condition
|
||||
# Post.where('id > 10').order('id asc').except(:where) # discards the where condition but keeps the order
|
||||
def except(*skips)
|
||||
result = Relation.new(klass, table, values.except(*skips))
|
||||
result.default_scoped = default_scoped
|
||||
result.extend(*extending_values) if extending_values.any?
|
||||
result
|
||||
relation_with values.except(*skips)
|
||||
end
|
||||
|
||||
# Removes any condition from the query other than the one(s) specified in +onlies+.
|
||||
|
@ -61,11 +58,16 @@ module ActiveRecord
|
|||
# Post.order('id asc').only(:where) # discards the order condition
|
||||
# Post.order('id asc').only(:where, :order) # uses the specified order
|
||||
def only(*onlies)
|
||||
result = Relation.new(klass, table, values.slice(*onlies))
|
||||
result.default_scoped = default_scoped
|
||||
result.extend(*extending_values) if extending_values.any?
|
||||
result
|
||||
relation_with values.slice(*onlies)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def relation_with(values) # :nodoc:
|
||||
result = Relation.new(klass, table, values)
|
||||
result.default_scoped = default_scoped
|
||||
result.extend(*extending_values) if extending_values.any?
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue