Class: Polytrix::Command::Generate::Documentation

Inherits:
Thor::Group
  • Object
show all
Includes:
Documentation::Helpers::CodeHelper, Util::FileSystem, Thor::Actions
Defined in:
lib/polytrix/command/generators/documentation.rb

Constant Summary collapse

BUILTIN_GENERATORS =
Dir["#{Polytrix::Reporters::GENERATORS_DIR}/*"].select { |f| File.directory? f }

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Documentation::Helpers::CodeHelper

#code_block, #highlighted_code, #initialize, #snippet_after, #snippet_between, #source, #source?

Methods included from Util::FileSystem

#find_file, #relativize

Methods included from Util::String

included

Methods included from Util::String::ClassMethods

#ansi2html, #escape_html, #highlight, #slugify

Class Method Details

.generator_namesObject



20
21
22
# File 'lib/polytrix/command/generators/documentation.rb', line 20

def generator_names
  generators.map { |d| File.basename d }
end

.generator_not_found(generator) ⇒ Object



24
25
26
27
# File 'lib/polytrix/command/generators/documentation.rb', line 24

def generator_not_found(generator)
  s = "ERROR: No generator named #{generator}, available generators: "
  s << generator_names.join(', ')
end

.generatorsObject



16
17
18
# File 'lib/polytrix/command/generators/documentation.rb', line 16

def generators
  BUILTIN_GENERATORS + Dir['tests/polytrix/generators/*'].select { |f| File.directory? f }
end

Instance Method Details

#apply_templateObject



53
54
55
56
# File 'lib/polytrix/command/generators/documentation.rb', line 53

def apply_template
  generator_script = "#{options[:template]}_template.rb"
  apply(generator_script)
end

#select_challengesObject



41
42
43
# File 'lib/polytrix/command/generators/documentation.rb', line 41

def select_challenges
  @challenges = Polytrix.filter_scenarios(regexp, options)
end

#set_source_and_destinationObject



45
46
47
48
49
50
51
# File 'lib/polytrix/command/generators/documentation.rb', line 45

def set_source_and_destination
  generator = self.class.generators.find { |d| File.basename(d) == options[:template] }
  abort self.class.generator_not_found(generator) if generator.nil?
  source_paths << generator

  self.destination_root = options[:destination]
end

#setupObject



37
38
39
# File 'lib/polytrix/command/generators/documentation.rb', line 37

def setup
  Polytrix.setup(options)
end