Class: Polyn::Cli::SchemaGenerator

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/polyn/cli/schema_generator.rb

Overview

Generates a new JSON Schema file for a message

Instance Method Summary collapse

Instance Method Details

#check_nameObject



28
29
30
# File 'lib/polyn/cli/schema_generator.rb', line 28

def check_name
  Polyn::Cli::Naming.validate_message_name!(name)
end

#createObject



40
41
42
43
# File 'lib/polyn/cli/schema_generator.rb', line 40

def create
  say "Creating new schema for #{file_name}"
  template "generators/schema.json", File.join(options.dir, "schemas/#{file_name}")
end

#file_nameObject



32
33
34
# File 'lib/polyn/cli/schema_generator.rb', line 32

def file_name
  @file_name ||= File.join(subdir, "#{name}.json")
end

#nameObject



17
18
19
# File 'lib/polyn/cli/schema_generator.rb', line 17

def name
  @name ||= message_name.split("/").last
end

#schema_idObject



36
37
38
# File 'lib/polyn/cli/schema_generator.rb', line 36

def schema_id
  Polyn::Cli::Naming.dot_to_colon(name)
end

#subdirObject



21
22
23
24
25
26
# File 'lib/polyn/cli/schema_generator.rb', line 21

def subdir
  @subdir ||= begin
    split = message_name.split("/") - [name]
    split.join("/")
  end
end