Sha256: 876936d20b8b2fe4debcf46d7e730425a3ffc2e16375bea9b616e6ad0ef67196
Contents?: true
Size: 509 Bytes
Versions: 2
Compression:
Stored size: 509 Bytes
Contents
module BqFactory class QueryBuilder < Array attr_reader :schema def initialize(schema) @schema = schema end def build(rows) rows = [rows] unless rows.is_a? Array records = rows.flatten.map { |row| Record.new(schema, row) } build_query(records) end private def build_query(records) %{SELECT * FROM #{records.map { |record| build_subquery(record) }.join(', ')}} end def build_subquery(record) "(#{record.to_sql})" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bq_factory-0.2.0 | lib/bq_factory/query_builder.rb |
bq_factory-0.1.1 | lib/bq_factory/query_builder.rb |