Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
From and lock should be defined to be consistent with other ivars. Li…
…mit and offset are always defined, no need to test that.

[#4253 state:committed]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
  • Loading branch information
miloops authored and jeremy committed Mar 22, 2010
1 parent 4f5de7f commit d289e15
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 19 deletions.
7 changes: 2 additions & 5 deletions activerecord/lib/active_record/relation.rb
Expand Up @@ -15,13 +15,10 @@ class Relation
def initialize(klass, table)
@klass, @table = klass, table

@readonly_value = nil
@create_with_value = nil
@implicit_readonly = nil
@limit_value = nil
@offset_value = nil
@loaded = nil

SINGLE_VALUE_METHODS.each {|v| instance_variable_set(:"@#{v}_value", nil)}
(ASSOCIATION_METHODS + MULTI_VALUE_METHODS).each {|v| instance_variable_set(:"@#{v}_values", [])}
end

Expand Down Expand Up @@ -62,7 +59,7 @@ def to_a

preload = @preload_values
preload += @includes_values unless eager_loading?
preload.each {|associations| @klass.send(:preload_associations, @records, associations) }
preload.each {|associations| @klass.send(:preload_associations, @records, associations) }

# @readonly_value is true only if set explicity. @implicit_readonly is true if there are JOINS and no explicit SELECT.
readonly = @readonly_value.nil? ? @implicit_readonly : @readonly_value
Expand Down
18 changes: 4 additions & 14 deletions activerecord/lib/active_record/relation/query_methods.rb
Expand Up @@ -134,13 +134,8 @@ def build_arel
arel = h.is_a?(String) ? arel.having(h) : arel.having(*h)
end

if defined?(@limit_value) && @limit_value.present?
arel = arel.take(@limit_value)
end

if defined?(@offset_value) && @offset_value.present?
arel = arel.skip(@offset_value)
end
arel = arel.take(@limit_value) if @limit_value.present?
arel = arel.skip(@offset_value) if @offset_value.present?

@group_values.uniq.each do |g|
arel = arel.group(g) if g.present?
Expand All @@ -163,19 +158,14 @@ def build_arel
arel = arel.project(quoted_table_name + '.*')
end

arel =
if defined?(@from_value) && @from_value.present?
arel.from(@from_value)
else
arel.from(quoted_table_name)
end
arel = @from_value.present? ? arel.from(@from_value) : arel.from(quoted_table_name)

case @lock_value
when TrueClass
arel = arel.lock
when String
arel = arel.lock(@lock_value)
end if defined?(@lock_value)
end if @lock_value.present?

arel
end
Expand Down

0 comments on commit d289e15

Please sign in to comment.