class SchemaExtractor::Formatters::Bigquery
Public Instance Methods
extension()
click to toggle source
# File lib/schema_extractor/formatters/bigquery.rb, line 22 def extension ".json" end
format(schema)
click to toggle source
# File lib/schema_extractor/formatters/bigquery.rb, line 10 def format(schema) JSON.pretty_generate( schema.fields.map do |f| { name: f.name, type: bq_type(f), mode: bq_mode(f) } end ) end
Private Instance Methods
bq_mode(f)
click to toggle source
# File lib/schema_extractor/formatters/bigquery.rb, line 28 def bq_mode(f) f.nullable? && f.default.nil? ? "NULLABLE" : "REQUIRED" end
bq_type(f)
click to toggle source
# File lib/schema_extractor/formatters/bigquery.rb, line 32 def bq_type(f) case f.type when :boolean "BOOL" when :decimal, :float "FLOAT" when :integer "INTEGER" when :string "STRING" when :date "DATE" when :datetime "TIMESTAMP" else raise InvalidBigqueryFieldTypeError, "#{f.type} is invalid type for bigquery field." end end