Class: Omnitest::Command::Generate::Documentation

Inherits:
Thor::Group
  • Object
show all
Includes:
Omnitest::Core::FileSystem, Psychic::Code2Doc::CodeHelper, Psychic::Code2Doc::SnippetHelper, Thor::Actions
Defined in:
lib/omnitest/command/generators/documentation.rb

Constant Summary collapse

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#projectObject (readonly)

Returns the value of attribute project.



15
16
17
# File 'lib/omnitest/command/generators/documentation.rb', line 15

def project
  @project
end

#project_basedirObject (readonly)

Returns the value of attribute project_basedir.



15
16
17
# File 'lib/omnitest/command/generators/documentation.rb', line 15

def project_basedir
  @project_basedir
end

#project_nameObject (readonly)

Returns the value of attribute project_name.



15
16
17
# File 'lib/omnitest/command/generators/documentation.rb', line 15

def project_name
  @project_name
end

#projectsObject (readonly)

Returns the value of attribute projects.



15
16
17
# File 'lib/omnitest/command/generators/documentation.rb', line 15

def projects
  @projects
end

Class Method Details

.generator_namesObject



22
23
24
# File 'lib/omnitest/command/generators/documentation.rb', line 22

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

.generator_not_found(generator) ⇒ Object



26
27
28
29
# File 'lib/omnitest/command/generators/documentation.rb', line 26

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

.generatorsObject



18
19
20
# File 'lib/omnitest/command/generators/documentation.rb', line 18

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

.source_rootObject



31
32
33
# File 'lib/omnitest/command/generators/documentation.rb', line 31

def source_root
  Omnitest::RESOURCES_DIR
end

Instance Method Details

#apply_templateObject



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/omnitest/command/generators/documentation.rb', line 68

def apply_template
  if options[:template]
    generator_script = "#{options[:template]}_template.rb"
    apply(generator_script)
  else
    case options[:scope]
    when 'global'
      @projects = Omnitest.filter_projects(project_regexp)
      process_directory
    when 'project'
      Omnitest.filter_projects(project_regexp).each do | project |
        bind_project_variables(project)
        process_directory
      end
    when 'scenario'
      Omnitest.scenarios(project_regexp, scenario_regexp).each do | scenario |
        bind_scenario_variables(scenario)
        process_directory
      end
    end
  end
end

#set_source_and_destinationObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/omnitest/command/generators/documentation.rb', line 52

def set_source_and_destination
  unless options[:template] || File.exist?(options[:source])
    abort 'Either the --source directory must exist, or --template must be specified'
  end

  if options[:template]
    generator = self.class.generators.find { |d| File.basename(d) == options[:template] }
    abort self.class.generator_not_found(generator) if generator.nil?
    source_paths << generator
  else
    source_paths << Pathname(options[:source]).expand_path
  end

  self.destination_root = options[:destination]
end

#setupObject



47
48
49
50
# File 'lib/omnitest/command/generators/documentation.rb', line 47

def setup
  Omnitest.update_config!(options)
  Omnitest.setup
end