Sha256: 9f65f0588cb54956459c4ac026d226f0922af8620b942bfdddd177d1f5281071
Contents?: true
Size: 1.11 KB
Versions: 100
Compression:
Stored size: 1.11 KB
Contents
# frozen-string-literal: true module Sequel module Plugins module PgRow module DatabaseMethods # Handle Sequel::Model instances in bound variables. def bound_variable_arg(arg, conn) case arg when Sequel::Model "(#{arg.values.values_at(*arg.columns).map{|v| bound_variable_array(v)}.join(',')})" else super end end # If a Sequel::Model instance is given, return it as-is # instead of attempting to convert it. def row_type(db_type, v) if v.is_a?(Sequel::Model) v else super end end private # Handle Sequel::Model instances in bound variable arrays. def bound_variable_array(arg) case arg when Sequel::Model "\"(#{arg.values.values_at(*arg.columns).map{|v| bound_variable_array(v)}.join(',').gsub(/("|\\)/, '\\\\\1')})\"" else super end end end end end Database.register_extension(:_model_pg_row, Plugins::PgRow::DatabaseMethods) end
Version data entries
100 entries across 83 versions & 2 rubygems