Class: DaemonKit::Generators::AppGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/daemon_kit/app/app_generator.rb

Constant Summary collapse

INSTALLERS =
%w( default amqp sqs cron ruote xmpp )
DEPLOYERS =
%w( capistrano )
TEST_FRAMEWORKS =
%w( none rspec test_unit )

Instance Method Summary collapse

Methods inherited from Base

desc

Constructor Details

#initialize(*args) ⇒ AppGenerator

Returns a new instance of AppGenerator.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 26

def initialize( *args )
  super

  unless INSTALLERS.include?( options[:installer] )
    raise Error, "Invalid value for --installer option. Supported installers are: #{INSTALLERS.join(', ')}"
  end

  if options[:deployer] && !DEPLOYERS.include?( options[:deployer] )
    raise Error, "Invalid value for --deployer option. Supported deployers are: #{DEPLOYERS.join(', ')}"
  end

  unless TEST_FRAMEWORKS.include?( options[:test_framework] )
    raise Error, "Invalid value for --test_framework option. Supported frameworks are: #{TEST_FRAMEWORKS.join(', ')}"
  end
end

Instance Method Details

#create_bin_filesObject



57
58
59
60
61
62
63
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 57

def create_bin_files
  empty_directory 'bin'
  template 'bin/daemon.tt', "bin/#{app_name}" do |content|
    "#{shebang}\n" + content
  end
  chmod "bin", 0755, :verbose => false
end

#create_config_filesObject



65
66
67
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 65

def create_config_files
  directory 'config'
end

#create_cucumberObject



133
134
135
136
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 133

def create_cucumber
  return unless options.cucumber?
  invoke DaemonKit::Generators::CucumberGenerator
end

#create_deployment_configObject



113
114
115
116
117
118
119
120
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 113

def create_deployment_config
  return unless options[:deployer]

  case options[:deployer]
  when 'capistrano'
    invoke DaemonKit::Generators::CapistranoGenerator
  end
end

#create_lib_execObject



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 96

def create_lib_exec
  case options[:installer]
  when 'default'
    directory 'libexec'
  when 'amqp'
    invoke DaemonKit::Generators::AmqpGenerator
  when 'sqs'
    invoke DaemonKit::Generators::SqsGenerator
  when 'cron'
    invoke DaemonKit::Generators::CronGenerator
  when 'ruote'
    invoke DaemonKit::Generators::RuoteGenerator
  when 'xmpp'
    invoke DaemonKit::Generators::XmppGenerator
  end
end

#create_lib_filesObject



92
93
94
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 92

def create_lib_files
  directory 'lib'
end

#create_log_directoryObject



80
81
82
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 80

def create_log_directory
  empty_directory 'log'
end

#create_readmeObject



48
49
50
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 48

def create_readme
  template 'README.tt', 'README'
end

#create_rootObject



42
43
44
45
46
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 42

def create_root
  self.destination_root = File.expand_path( app_path, destination_root )
  empty_directory('.')
  FileUtils.cd( destination_root )
end

#create_root_filesObject



52
53
54
55
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 52

def create_root_files
  copy_file 'Rakefile'
  template 'Gemfile.tt', 'Gemfile'
end

#create_script_filesObject



69
70
71
72
73
74
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 69

def create_script_files
  directory 'script' do |content|
    "#{shebang}\n" + content
  end
  chmod 'script', 0755, :verbose => false
end

#create_task_directoryObject



76
77
78
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 76

def create_task_directory
  empty_directory 'tasks'
end

#create_test_environmentObject



122
123
124
125
126
127
128
129
130
131
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 122

def create_test_environment
  return if options[:test_framework] == 'none'

  case options[:test_framework]
  when 'rspec'
    invoke DaemonKit::Generators::SpecGenerator
  when 'test_unit'
    invoke DaemonKit::Generators::TestUnitGenerator
  end
end

#create_tmp_directoryObject



84
85
86
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 84

def create_tmp_directory
  empty_directory 'tmp'
end

#create_vendor_directoryObject



88
89
90
# File 'lib/generators/daemon_kit/app/app_generator.rb', line 88

def create_vendor_directory
  empty_directory 'vendor'
end