Sha256: 0881905b858cf0fa985711da50dcfa2c0f085e7f68d68314035f96a0ebae356b

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require "thor"
require "bq_coaster/ext/string"

module BqCoaster
  class Cli < Thor
    desc "schema <definition_file>", "Generate BigQuery schema JSON"
    def schema(definition_file)
      require "bq_coaster/generators/schema"
      puts Generators::Schema.new(definition_file, options).generate
    end

    desc "java_class <definition_file>", "Generate Java class"
    option :dataflow, type: :boolean, desc: "with Dataflow coder"
    option :class_name, type: :string, desc: "Java class name"
    option :package, type: :string, desc: "Java package name"
    def java_class(definition_file)
      require "bq_coaster/generators/java_class"
      puts Generators::JavaClass.new(definition_file, options).generate
    end

    desc "dataflow_converter <definition_file>",
      "Generate Java class that converts POJO generated by BqCoaster to TableRow class for Dataflow"
    option :class_name, type: :string, desc: "Java class name"
    option :source_class, type: :string, desc: "POJO class name"
    option :package, type: :string, desc: "Java package name"
    def dataflow_converter(definition_file)
      require "bq_coaster/generators/dataflow_converter"
      puts Generators::DataflowConverter.new(definition_file, options).generate
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bq_coaster-0.2.2 lib/bq_coaster/cli.rb
bq_coaster-0.2.1 lib/bq_coaster/cli.rb
bq_coaster-0.2.0 lib/bq_coaster/cli.rb