lib/kasket/visitor.rb in kasket-4.2.1 vs lib/kasket/visitor.rb in kasket-4.3.0

- old
+ new

@@ -43,11 +43,11 @@ query end def visit_Arel_Nodes_SelectCore(node, *_) return :unsupported if node.groups.any? - return :unsupported if node.having + return :unsupported if (ActiveRecord::VERSION::MAJOR < 5 ? node.having : node.havings.present?) return :unsupported if node.set_quantifier return :unsupported if (!node.source || node.source.empty?) return :unsupported if node.projections.size != 1 select = node.projections[0] @@ -60,11 +60,15 @@ parts.include?(:unsupported) ? :unsupported : parts end def visit_Arel_Nodes_Limit(node, *_) - {:limit => node.value.to_i} + if ActiveRecord::VERSION::MAJOR < 5 + {:limit => node.value.to_i} + else + {:limit => visit(node.value).to_i} + end end def visit_Arel_Nodes_JoinSource(node, *_) return :unsupported if !node.left || node.right.any? return :unsupported if !node.left.is_a?(Arel::Table) @@ -107,23 +111,26 @@ node.to_s end end def visit_Arel_Nodes_BindParam(x, *_) - visit(@binds.shift[1]) + if ActiveRecord::VERSION::MAJOR < 5 + visit(@binds.shift[1]) + else + visit(@binds.shift) + end end def visit_Array(node, *_) node.map {|value| visit(value) } end def visit_Arel_Nodes_Casted(node, *_) quoted(node.val) end - #TODO: We are actually not using this? def quoted(node) - @model_class.connection.quote(node, self.last_column) + @model_class.connection.quote(node) end alias :visit_String :literal alias :visit_Fixnum :literal alias :visit_TrueClass :literal