Class: Tap::Generator::Generators::RootGenerator

Inherits:
Base show all
Defined in:
lib/tap/generator/generators/root/root_generator.rb

Overview

:startdoc: Tap::Generator::Generators::RootGenerator::generator a basic tap directory structure

Generates a tap root directory structure. Use the switches to generate a Tapfile and/or a tap config file:

root
|- Rakefile
|- lib
|- sample.gemspec
|- tap.yml
|- Tapfile
`- test
    |- tap_test_helper.rb
    |- tap_test_suite.rb
    `- tapfile_test.rb

Constant Summary

Constants inherited from Task

Task::DEFAULT_HELP_TEMPLATE

Instance Attribute Summary

Attributes inherited from Base

#prompt_in, #prompt_out, #template_dir

Attributes inherited from Task

#name

Attributes included from Support::Executable

#app, #batch, #dependencies, #method_name, #on_complete_block

Instance Method Summary collapse

Methods inherited from Base

#directories, #directory, #file, #initialize, #iterate, #log_relative, #process, #template, #template_files

Methods inherited from Task

execute, help, inherited, #initialize, #initialize_batch_obj, #inspect, instance, intern, load, #log, parse, parse!, #process, #to_s, use

Methods included from Support::Executable

#_execute, #batch_index, #batch_with, #batched?, #check_terminate, #depends_on, #enq, #execute, #fork, initialize, #initialize_batch_obj, #merge, #on_complete, #reset_dependencies, #resolve_dependencies, #sequence, #switch, #sync_merge, #unbatched_depends_on, #unbatched_enq, #unbatched_on_complete

Constructor Details

This class inherits a constructor from Tap::Generator::Base

Instance Method Details

#manifest(m, root, project_name = nil) ⇒ Object

::args ROOT, PROJECT_NAME=basename(ROOT)



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/tap/generator/generators/root/root_generator.rb', line 28

def manifest(m, root, project_name=nil)
  r = Tap::Root.new(root)
  project_name = File.basename(r.root) if project_name == nil
  
  m.directory r.root
  m.directory r['lib']
  
  template_files do |source, target|
    case
    when File.directory?(source)
      m.directory r[target]
      next
    when target == 'gemspec'
      m.template r[project_name + '.gemspec'], source, :project_name => project_name, :tapfile => tapfile, :config_file => config_file
      next
    when target =~ /tapfile/i
      next unless tapfile
    end
    
    m.template r[target], source, :project_name => project_name
  end
  
 ConfigGenerator.new(:doc => true).dump(m, r['tap'], Tap::App.configurations) do |configs|
    configs.each do |(key, config)|
      config.default = nil if key.to_s == 'root'
    end
  end if config_file
end