class AlgebraDB::Exec::Delivery
Something we can hand off to a connection to get back ruby values to play with.
Public Class Methods
new(query_builder, select_decoder)
click to toggle source
# File lib/algebra_db/exec/delivery.rb, line 7 def initialize(query_builder, select_decoder) @query_builder = query_builder @select_decoder = select_decoder end
Public Instance Methods
execute!(connection) { |decode_row| ... }
click to toggle source
# File lib/algebra_db/exec/delivery.rb, line 12 def execute!(connection) return enum_for(:execute!, connection) unless block_given? execute_raw!(connection) do |result| result.type_map = @select_decoder.pg_type_map result.each do |row| yield @select_decoder.decode_row(row) end end end
execute_raw!(connection) { |res| ... }
click to toggle source
Execute a query raw, IE, don't do decoding.
# File lib/algebra_db/exec/delivery.rb, line 25 def execute_raw!(connection) sb = SyntaxBuilder.new.tap { |t| @query_builder.render_syntax(t) } # rubocop:disable Style/ExplicitBlockArgument connection.exec_params(sb.syntax, sb.params) do |res| yield res end # rubocop:enable Style/ExplicitBlockArgument end