Sha256: dcfa02c0d94c40aec5ee4285415b7a615f825afedbf3385272fb9d9f29d3a141
Contents?: true
Size: 956 Bytes
Versions: 4
Compression:
Stored size: 956 Bytes
Contents
# frozen_string_literal: true module Arel class InsertManager < Arel::TreeManager def initialize super @ast = Nodes::InsertStatement.new end def into table @ast.relation = table self end def columns; @ast.columns end def values= val; @ast.values = val; end def select select @ast.select = select end def insert fields return if fields.empty? if String === fields @ast.values = Nodes::SqlLiteral.new(fields) else @ast.relation ||= fields.first.first.relation values = [] fields.each do |column, value| @ast.columns << column values << value end @ast.values = create_values values, @ast.columns end self end def create_values values, columns Nodes::Values.new values, columns end def create_values_list(rows) Nodes::ValuesList.new(rows) end end end
Version data entries
4 entries across 4 versions & 3 rubygems