Sha256: 964ee70dbf12c6704fd965ec9fe063b10d55369dbf71996aca5c71c72141a792
Contents?: true
Size: 836 Bytes
Versions: 3
Compression:
Stored size: 836 Bytes
Contents
# frozen_string_literal: true require "json" require "bq_coaster" require "bq_coaster/generators/base" module BqCoaster module Generators class Schema < Base def generate JSON.pretty_generate( definitions.map { |n, d| parse(n, d) }.flatten ) end private def nested?(definition) !( definition.nil? || BqCoaster.edge_properties.any? { |c| definition.key?(c) } ) end def parse(name, definition, prefix = "") if nested?(definition) definition.map { |n, d| parse(n, d, "#{prefix}#{name}_") } else { name: "#{prefix}#{name}", type: (definition&._type || "string").upcase, mode: (definition&._mode || "nullable").upcase } end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bq_coaster-0.2.2 | lib/bq_coaster/generators/schema.rb |
bq_coaster-0.2.1 | lib/bq_coaster/generators/schema.rb |
bq_coaster-0.2.0 | lib/bq_coaster/generators/schema.rb |