From faf14aeed6cc79bd356f2ac9739362b2ba5732bc Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Sun, 25 Jul 2010 17:42:18 -0700 Subject: more unfactoring before we refactor --- lib/arel/algebra/relations/operations/skip.rb | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/arel/algebra/relations/operations/skip.rb b/lib/arel/algebra/relations/operations/skip.rb index 43db134ea0..f6a58d15bd 100644 --- a/lib/arel/algebra/relations/operations/skip.rb +++ b/lib/arel/algebra/relations/operations/skip.rb @@ -1,7 +1,28 @@ module Arel class Skip < Compound - attributes :relation, :skipped - deriving :initialize, :== - requires :skipping + attr_reader :relation, :skipped + + def initialize relation, skipped + super(relation) + @skipped = skipped + end + + def == other + super || + Skip === other && + relation == other.relation && + skipped == other.skipped + end + + def engine + engine = relation.engine + + # Temporary check of whether or not the engine supports where. + if engine.respond_to?(:supports) && !engine.supports(:skipping) + Memory::Engine.new + else + engine + end + end end end -- cgit v1.2.3