class Koine::SqlBuilder::SelectBuilder

Public Class Methods

new(from:, select:, where:, adapter:) click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 6
def initialize(from:, select:, where:, adapter:)
  @adapter = adapter
  @attributes = {
    select: select,
    from: from,
    where: where,
  }
end

Public Instance Methods

from(from) click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 19
def from(from)
  create(:from, From.new(from))
end
select(select = nil) click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 15
def select(select = nil)
  create(:select, Select.new(select))
end
to_s() click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 27
def to_s
  @attributes.values.map(&:to_s).map(&:strip).reject do |element|
    element == ''
  end.join(@adapter.joiner)
end
where(conditions = {}) click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 23
def where(conditions = {})
  create(:where, @attributes[:where].with_added_conditions(conditions))
end

Private Instance Methods

create(attribute, value) click to toggle source
# File lib/koine/sql_builder/select_builder.rb, line 35
def create(attribute, value)
  self.class.new(@attributes.merge(attribute => value, adapter: @adapter))
end