Class: Avm::SourceGenerators::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/source_generators/runner.rb

Constant Summary collapse

OPTION_NAME_VALUE_SEPARATOR =
':'

Instance Method Summary collapse

Instance Method Details

#generateObject



21
22
23
24
25
# File 'lib/avm/source_generators/runner.rb', line 21

def generate
  infom 'Generating...'
  generator.perform
  success "Source generated in \"#{generator.target_path}\""
end

#generator_uncachedObject



39
40
41
42
43
# File 'lib/avm/source_generators/runner.rb', line 39

def generator_uncached
  ::Avm::Registry.source_generators
    .detect_optional(stereotype_name, target_path, options) ||
    fatal_error("No generator found for stereotype \"#{stereotype_name}\"")
end

#help_extra_textString

Returns:

  • (String)


28
29
30
31
# File 'lib/avm/source_generators/runner.rb', line 28

def help_extra_text
  help_list_section('Stereotypes', ::Avm::Registry.source_generators.available
    .map(&:application_stereotype_name))
end

#optionsHash<String, String>

Returns:

  • (Hash<String, String>)


48
49
50
# File 'lib/avm/source_generators/runner.rb', line 48

def options
  parsed.option.to_h { |v| v.split(OPTION_NAME_VALUE_SEPARATOR) }
end

#runObject



16
17
18
19
# File 'lib/avm/source_generators/runner.rb', line 16

def run
  start_banner
  generate
end

#start_bannerObject



33
34
35
36
37
# File 'lib/avm/source_generators/runner.rb', line 33

def start_banner
  infov 'Stereotype', stereotype_name
  infov 'Target path', target_path
  infov 'Generator', generator.class
end

#target_pathObject



52
53
54
# File 'lib/avm/source_generators/runner.rb', line 52

def target_path
  parsed.target_path.to_pathname
end