Module: Schema2type

Defined in:
lib/schema2type/cli.rb,
lib/schema2type/version.rb,
lib/schema2type/covert_service.rb,
lib/schema2type/schema_converter.rb

Defined Under Namespace

Classes: CovertService, SchemaConverter

Constant Summary collapse

DEFAULT_SCHEMA_PATH =
"./db/schema.rb".freeze
DEFAULT_NAME_SPACE =
"schema".freeze
VERSION =
'0.4.0'

Class Method Summary collapse

Class Method Details

.execute(input_file:, out_file:, name_space:, is_snake_case:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/schema2type/cli.rb', line 5

def self.execute(input_file:, out_file:, name_space:, is_snake_case:)
  resultHash = eval(File.read(input_file || DEFAULT_SCHEMA_PATH), CovertService.new(is_snake_case).get_binding)

  File.open(out_file, "w") do |f|
    f.puts <<~EOS
      /* eslint no-unused-vars: 0 */

      /**
       * auto-generated file
       * schema version: #{resultHash[:version]}
       * This file was automatically generated by schema2type
       */
      declare namespace #{name_space || DEFAULT_NAME_SPACE} {
        #{resultHash[:lines]}
      }
    EOS
  end
end