capricorn 0.2.00 → 0.2.01
Sign up to get free protection for your applications and to get access to all the features.
- data/app_generators/engine/engine_generator.rb +12 -11
- data/app_generators/engine/templates/Gmfile +1 -1
- data/app_generators/engine/templates/config/initializers/rails_init.rb +1 -0
- data/app_generators/engine/templates/gitignore +7 -1
- data/lib/capricorn/actors/base_actor.rb +25 -8
- data/lib/capricorn/actors/plesk_actor.rb +28 -17
- data/lib/capricorn/app_runner.rb +20 -31
- data/lib/capricorn/apps/dev.rb +3 -3
- data/lib/capricorn/daemon.rb +17 -7
- data/lib/capricorn/extentions/rubygems_plugin.rb +1 -1
- data/lib/capricorn/extentions/thor_extentions.rb +1 -1
- data/lib/capricorn/job_queue.rb +2 -1
- data/lib/capricorn/satellite.rb +1 -1
- data/lib/capricorn/server.rb +2 -2
- data/lib/capricorn/server/daemon.rb +26 -31
- data/lib/capricorn/server/security.rb +17 -10
- data/lib/capricorn/system.rb +5 -7
- metadata +7 -6
@@ -3,8 +3,8 @@ class EngineGenerator < RubiGen::Base
|
|
3
3
|
|
4
4
|
def initialize(runtime_args, runtime_options = {})
|
5
5
|
super
|
6
|
-
@destination_root =
|
7
|
-
@engine_name =
|
6
|
+
@destination_root = File.expand_path('.')
|
7
|
+
@engine_name = args.shift.underscore
|
8
8
|
end
|
9
9
|
|
10
10
|
def manifest
|
@@ -23,15 +23,16 @@ class EngineGenerator < RubiGen::Base
|
|
23
23
|
m.directory "rails"
|
24
24
|
m.directory "tasks"
|
25
25
|
|
26
|
-
m.template('config/routes.rb',
|
27
|
-
m.template('
|
28
|
-
m.template('
|
29
|
-
m.template('init.rb',
|
30
|
-
m.template('
|
31
|
-
m.template('
|
32
|
-
m.template('
|
33
|
-
m.template('
|
34
|
-
m.template('
|
26
|
+
m.template('config/routes.rb', "config/routes.rb")
|
27
|
+
m.template('config/initializers/rails_init.rb', "config/initializers/rails_init.rb")
|
28
|
+
m.template('Gmfile', "Gmfile")
|
29
|
+
m.template('rails/init.rb', "rails/init.rb")
|
30
|
+
m.template('init.rb', "init.rb")
|
31
|
+
m.template('tasks/engine_tasks.rake', "tasks/#{engine_name}_tasks.rake")
|
32
|
+
m.template('README.rdoc', "README.rdoc")
|
33
|
+
m.template('MIT-LICENSE.txt', "MIT-LICENSE.txt")
|
34
|
+
m.template('lib/engine.rb', "lib/#{engine_name}.rb")
|
35
|
+
m.template('gitignore', ".gitignore")
|
35
36
|
|
36
37
|
end
|
37
38
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__)+'/../../init'
|
@@ -71,7 +71,7 @@ module Capricorn
|
|
71
71
|
gems_header = " # Gems added by engine_manager:\n \n"
|
72
72
|
|
73
73
|
gsub_file('config/environment.rb') do |content|
|
74
|
-
content.gsub!
|
74
|
+
content.gsub!(/^\s*config.gem.+\n/, '')
|
75
75
|
content.gsub! %r{#{Regexp.escape(rails_header)}(#{Regexp.escape(gems_header)})?},
|
76
76
|
"#{rails_header}#{gems_header}"
|
77
77
|
|
@@ -105,7 +105,7 @@ module Capricorn
|
|
105
105
|
FileUtils.mkdir_p("db/migrate", :verbose => true)
|
106
106
|
unlinked_migrations.concat(Dir.glob("#{path}/*.rb"))
|
107
107
|
linked_migrations.each do |migration, target|
|
108
|
-
if target.
|
108
|
+
if target[0,spec.full_gem_path.size] == spec.full_gem_path
|
109
109
|
unlinked_migrations.delete(target)
|
110
110
|
unused_migrations.delete(migration)
|
111
111
|
end
|
@@ -133,7 +133,14 @@ module Capricorn
|
|
133
133
|
end
|
134
134
|
system.as_user(system.web_user, system.web_group) do
|
135
135
|
unlinked_migrations.each do |migration|
|
136
|
-
|
136
|
+
|
137
|
+
begin
|
138
|
+
FileUtils.ln_s(migration, "db/migrate/#{File.basename(migration)}", :verbose => true)
|
139
|
+
rescue
|
140
|
+
FileUtils.rm_rf("db/migrate/#{File.basename(migration)}", :verbose => true)
|
141
|
+
retry
|
142
|
+
end
|
143
|
+
|
137
144
|
end
|
138
145
|
end
|
139
146
|
|
@@ -171,18 +178,30 @@ module Capricorn
|
|
171
178
|
# install a gem.
|
172
179
|
def gem_install(name, options={})
|
173
180
|
gem_cmd('install', name, options)
|
181
|
+
gem_refresh
|
182
|
+
end
|
183
|
+
|
184
|
+
def gem_refresh
|
185
|
+
original_paths = Gem.path
|
186
|
+
Gem.refresh
|
187
|
+
Gem.send(:set_paths, original_paths.compact.join(File::PATH_SEPARATOR))
|
174
188
|
end
|
175
189
|
|
176
190
|
# check if a gem is installed
|
177
191
|
def gem_installed(name, options)
|
178
192
|
version = options[:version] || '0.0.0'
|
179
193
|
options = { :version => version, :installed => true }
|
180
|
-
(gem_cmd('list', name, options).strip
|
194
|
+
(gem_cmd('list', name, options).strip =~ /true/)
|
181
195
|
end
|
182
196
|
|
183
197
|
# update a gem
|
184
198
|
def gem_update(name, options={})
|
185
|
-
!(gem_cmd('update', name, options) =~ /Nothing to update/)
|
199
|
+
if !(gem_cmd('update', name, options) =~ /Nothing to update/)
|
200
|
+
gem_refresh
|
201
|
+
true
|
202
|
+
else
|
203
|
+
false
|
204
|
+
end
|
186
205
|
end
|
187
206
|
|
188
207
|
# ensure the presence of a gem
|
@@ -207,9 +226,7 @@ module Capricorn
|
|
207
226
|
"--#{k}=#{v.inspect}"
|
208
227
|
end
|
209
228
|
end
|
210
|
-
|
211
|
-
Gem.refresh
|
212
|
-
output
|
229
|
+
user_run(user, "#{gem_bin_path} #{cmd} #{args.join(' ')}")
|
213
230
|
end
|
214
231
|
|
215
232
|
end
|
@@ -60,17 +60,30 @@ module Capricorn
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def create_database
|
63
|
-
db_name = satellite
|
63
|
+
db_name = database_name_for(satellite)
|
64
64
|
db_user = db_name[0,13]
|
65
65
|
db_pswd = (rand(1_000_000_000) + 10_000).to_s
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
create_database_for(satellite, :d, db_name, db_user, db_pswd)
|
68
|
+
create_database_for(satellite, :t, db_name, db_user, db_pswd)
|
69
|
+
create_database_for(satellite, :p, db_name, db_user, db_pswd)
|
71
70
|
|
72
71
|
system.as_user(system.web_user, system.web_group) do
|
73
|
-
|
72
|
+
db_file = File.join(system.satellite_root, 'config', 'database.yml')
|
73
|
+
write_database_config(db_file, db_name, db_user, db_pswd)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def drop_databases
|
78
|
+
db_name = satellite.domain.downcase.gsub(/[^a-z]+/, '_')[0,63]
|
79
|
+
|
80
|
+
system.drop_database("#{db_name}_d")
|
81
|
+
system.drop_database("#{db_name}_t")
|
82
|
+
system.drop_database("#{db_name}_p")
|
83
|
+
end
|
84
|
+
|
85
|
+
def write_database_config(db_file, db_name, db_user, db_pswd)
|
86
|
+
File.open(db_file, 'w+') { |f| f.write(%{
|
74
87
|
development:
|
75
88
|
adapter: mysql
|
76
89
|
database: #{db_name}_d
|
@@ -97,19 +110,17 @@ production:
|
|
97
110
|
host: localhost
|
98
111
|
encoding: utf8
|
99
112
|
socket: /var/lib/mysql/mysql.sock
|
100
|
-
}
|
101
|
-
|
102
|
-
db_file = File.join(system.satellite_root, 'config', 'database.yml')
|
103
|
-
File.open(db_file, 'w+') { |f| f.write config }
|
104
|
-
end
|
113
|
+
}) }
|
105
114
|
end
|
106
115
|
|
107
|
-
def
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
116
|
+
def database_name_for(satellite)
|
117
|
+
satellite.domain.downcase.gsub(/[^a-z]+/, '_')[0,63]
|
118
|
+
end
|
119
|
+
|
120
|
+
def create_database_for(satellite, environment, db_name, db_user, db_pswd)
|
121
|
+
db_name = "#{db_name}_#{environment}"
|
122
|
+
db_user = "#{db_user}_u#{environment}"
|
123
|
+
system.create_database(satellite.basedomain, db_name, db_user, db_pswd)
|
113
124
|
end
|
114
125
|
|
115
126
|
module Helper
|
data/lib/capricorn/app_runner.rb
CHANGED
@@ -25,7 +25,7 @@ module Capricorn
|
|
25
25
|
(options[:all] || k.group_name == group) &&
|
26
26
|
Thor::Util.constant_to_thor_path(k.name) =~ search
|
27
27
|
end
|
28
|
-
display_klasses(
|
28
|
+
display_klasses(classes)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -44,48 +44,37 @@ module Capricorn
|
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
|
-
def display_klasses(
|
48
|
-
klasses -= [Thor, Capricorn::AppRunner]
|
49
|
-
raise Error, "No Thor tasks available" if klasses.empty?
|
47
|
+
def display_klasses(klasses = Thor.subclasses)
|
48
|
+
klasses -= [Thor, Capricorn::AppRunner]
|
50
49
|
|
51
|
-
if
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
column_width = [max_name + 4, modules_label.size + 1].max
|
56
|
-
|
57
|
-
print "%-#{column_width}s" % modules_label
|
58
|
-
puts namespaces_label
|
59
|
-
print "%-#{column_width}s" % ("-" * modules_label.size)
|
60
|
-
puts "-" * namespaces_label.size
|
50
|
+
if klasses.empty?
|
51
|
+
puts "\033[1;34mNo Thor tasks available\033[0m"
|
52
|
+
else
|
53
|
+
maxima = column_maxima_for(klasses)
|
61
54
|
|
62
|
-
|
63
|
-
|
64
|
-
puts info[:constants].map { |c| Thor::Util.constant_to_thor_path(c) }.join(", ")
|
65
|
-
end
|
66
|
-
|
67
|
-
puts
|
55
|
+
puts # add some spacing
|
56
|
+
klasses.each { |k| display_tasks(k, maxima.first, maxima.last) }
|
68
57
|
end
|
69
|
-
|
58
|
+
end
|
59
|
+
|
60
|
+
def column_maxima_for(klasses)
|
70
61
|
# Calculate the largest base class name
|
71
|
-
|
62
|
+
klass_with_longest_name = klasses.max do |x,y|
|
72
63
|
Thor::Util.constant_to_thor_path(x.name).size <=> Thor::Util.constant_to_thor_path(y.name).size
|
73
|
-
end
|
64
|
+
end
|
65
|
+
max_base = klass_with_longest_name.name.size
|
74
66
|
|
75
67
|
# Calculate the size of the largest option description
|
76
68
|
max_left_item = klasses.max do |x,y|
|
77
|
-
(x.maxima.usage + x.maxima.opt).to_i
|
69
|
+
total_x = (x.maxima.usage + x.maxima.opt).to_i
|
70
|
+
total_y = (y.maxima.usage + y.maxima.opt).to_i
|
71
|
+
total_x <=> total_y
|
78
72
|
end
|
79
73
|
|
80
74
|
max_left = max_left_item.maxima.usage + max_left_item.maxima.opt
|
81
75
|
|
82
|
-
|
83
|
-
|
84
|
-
klasses.each { |k| display_tasks(k, max_base, max_left); }
|
85
|
-
else
|
86
|
-
puts "\033[1;34mNo Thor tasks available\033[0m"
|
87
|
-
end
|
88
|
-
end
|
76
|
+
return [max_base, max_left]
|
77
|
+
end
|
89
78
|
|
90
79
|
def display_tasks(klass, max_base, max_left)
|
91
80
|
if klass.tasks.values.length > 1
|
data/lib/capricorn/apps/dev.rb
CHANGED
@@ -4,10 +4,10 @@ module Capricorn
|
|
4
4
|
module Apps # :nodoc:
|
5
5
|
|
6
6
|
class Dev < Thor
|
7
|
-
desc "activate DOMAIN", "turn an existing satelite into a development satelite"
|
8
|
-
def activate(domain)
|
7
|
+
desc "activate DOMAIN NAME", "turn an existing satelite into a development satelite"
|
8
|
+
def activate(domain, name)
|
9
9
|
Capricorn.runtime_gem('rubigen', Capricorn::RUBIGEN_VERSION)
|
10
|
-
Capricorn.client.make_development_satellite(domain)
|
10
|
+
Capricorn.client.make_development_satellite(domain, name)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
data/lib/capricorn/daemon.rb
CHANGED
@@ -41,15 +41,10 @@ module Capricorn
|
|
41
41
|
puts "Pid file #{PidFile.pid_file} already exists. Not starting."
|
42
42
|
exit 1
|
43
43
|
end
|
44
|
-
Capricorn::Daemon::PidFile.store(Process.pid)
|
45
|
-
Dir.chdir Capricorn.system.root
|
46
|
-
File.umask 0000
|
47
44
|
|
48
|
-
|
45
|
+
setup_child
|
46
|
+
regitser_handlers(daemon, &block)
|
49
47
|
|
50
|
-
trap("TERM") { daemon.stop; exit }
|
51
|
-
at_exit { Capricorn::Daemon::PidFile.destroy if $master }
|
52
|
-
at_exit(&block) if block
|
53
48
|
daemon.start
|
54
49
|
end
|
55
50
|
puts "Daemon started."
|
@@ -66,6 +61,21 @@ module Capricorn
|
|
66
61
|
puts "Pid file found, but process was not running. The daemon may have died."
|
67
62
|
end
|
68
63
|
|
64
|
+
private
|
65
|
+
|
66
|
+
def self.setup_child
|
67
|
+
Capricorn::Daemon::PidFile.store(Process.pid)
|
68
|
+
Dir.chdir Capricorn.system.root
|
69
|
+
File.umask 0000
|
70
|
+
Capricorn::ExceptionHandler.redirect_std
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.regitser_handlers(daemon, &block)
|
74
|
+
trap("TERM") { daemon.stop; exit }
|
75
|
+
at_exit { Capricorn::Daemon::PidFile.destroy if $master }
|
76
|
+
at_exit(&block) if block
|
77
|
+
end
|
78
|
+
|
69
79
|
end
|
70
80
|
end
|
71
81
|
end
|
@@ -20,7 +20,7 @@ module Gem # :nodoc:
|
|
20
20
|
alias_method :to_ruby_without_engines, :to_ruby # :nodoc:
|
21
21
|
def to_ruby # :nodoc:
|
22
22
|
code = to_ruby_without_engines
|
23
|
-
code.gsub!
|
23
|
+
code.gsub!(/s\.engine_dependencies\s+[=]([^\n]+)/, 's.instance_variable_set(:@engine_dependencies,\1)')
|
24
24
|
code
|
25
25
|
end
|
26
26
|
end
|
data/lib/capricorn/job_queue.rb
CHANGED
data/lib/capricorn/satellite.rb
CHANGED
data/lib/capricorn/server.rb
CHANGED
@@ -61,10 +61,10 @@ module Capricorn
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
def make_development_satellite(domain)
|
64
|
+
def make_development_satellite(domain, name)
|
65
65
|
satellite = Capricorn.system.find_satellite(domain)
|
66
66
|
if satellite
|
67
|
-
Capricorn.system.make_development_satellite(satellite)
|
67
|
+
Capricorn.system.make_development_satellite(satellite, name)
|
68
68
|
else
|
69
69
|
Capricorn.log "Satellite not found (#{domain})"
|
70
70
|
end
|
@@ -31,55 +31,50 @@ module Capricorn
|
|
31
31
|
# start the failsafe runner.
|
32
32
|
def start_with_failsafe
|
33
33
|
$master = true
|
34
|
-
stop_server = false
|
35
|
-
wait_before_start = 0
|
36
34
|
retries = 0
|
37
|
-
|
38
|
-
|
39
|
-
sleep(wait_before_start)
|
40
|
-
wait_before_start = 0
|
41
|
-
end
|
42
|
-
|
43
|
-
pid = Process.fork { self.run_server }
|
35
|
+
loop do
|
36
|
+
pid = self.run_server
|
44
37
|
return unless pid
|
45
38
|
Process.waitpid(pid, 0)
|
39
|
+
|
46
40
|
case $?.exitstatus
|
47
41
|
when Capricorn::STOP_STATUS
|
48
|
-
|
49
|
-
retries = 0
|
42
|
+
return
|
50
43
|
when Capricorn::RESTART_STATUS
|
51
|
-
|
52
|
-
retries = 0
|
44
|
+
retries = 0
|
53
45
|
when Capricorn::RELOAD_STATUS
|
54
|
-
stop_server = true
|
55
|
-
retries = 0
|
56
46
|
Capricorn::Daemon::PidFile.destroy
|
57
47
|
Capricorn.system.run %{#{Capricorn::BIN_PATH} #{ORIGINAL_ARGV.join(' ')}}
|
48
|
+
return
|
58
49
|
else
|
59
50
|
retries += 1
|
60
|
-
|
51
|
+
return if retries >= 3
|
61
52
|
end
|
53
|
+
|
54
|
+
sleep(2)
|
62
55
|
end
|
63
56
|
end
|
64
57
|
|
65
58
|
# start the actual DRb server
|
66
59
|
def run_server
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
60
|
+
Process.fork do
|
61
|
+
$master = false
|
62
|
+
Dir.chdir(Capricorn.system.root)
|
63
|
+
|
64
|
+
Capricorn.log "Server started"
|
65
|
+
uri = "druby://#{Capricorn.system.server_hostname}:#{Capricorn.system.server_port}"
|
66
|
+
DRb.start_service uri, self.proxy, self.options_for_server
|
67
|
+
Capricorn.log "listening at #{self.construct_uri(uri)}"
|
68
|
+
make_client_cert_public!
|
69
|
+
|
70
|
+
at_exit do
|
71
|
+
Capricorn.system.queue.stop!
|
72
|
+
Capricorn.log "Server stopped"
|
73
|
+
end
|
74
|
+
|
75
|
+
DRb.thread.join
|
76
|
+
exit($exitstatus || Capricorn::STOP_STATUS)
|
79
77
|
end
|
80
|
-
|
81
|
-
DRb.thread.join
|
82
|
-
exit($exitstatus || Capricorn::STOP_STATUS)
|
83
78
|
end
|
84
79
|
|
85
80
|
end
|
@@ -36,21 +36,28 @@ module Capricorn
|
|
36
36
|
FileUtils.mkdir_p('/tmp/quick_cert')
|
37
37
|
File.chmod(0700, '/tmp/quick_cert')
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
Capricorn.system.run "tar xzf QuickCert-1.0.2.tar.gz"
|
42
|
-
|
43
|
-
Dir.chdir('/tmp/quick_cert/QuickCert-1.0.2') do
|
44
|
-
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb config"
|
45
|
-
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb setup"
|
46
|
-
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb install"
|
47
|
-
end
|
48
|
-
end
|
39
|
+
download_quick_cert!
|
40
|
+
build_quick_cert!
|
49
41
|
|
50
42
|
FileUtils.rm_rf('/tmp/quick_cert')
|
51
43
|
end
|
52
44
|
end
|
53
45
|
|
46
|
+
def download_quick_cert!
|
47
|
+
Dir.chdir('/tmp/quick_cert') do
|
48
|
+
Capricorn.system.run "curl -O #{Capricorn::QUICK_CERT}"
|
49
|
+
Capricorn.system.run "tar xzf QuickCert-1.0.2.tar.gz"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def build_quick_cert!
|
54
|
+
Dir.chdir('/tmp/quick_cert/QuickCert-1.0.2') do
|
55
|
+
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb config"
|
56
|
+
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb setup"
|
57
|
+
Capricorn.system.run "#{Capricorn.system.ruby_path} ./setup.rb install"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
54
61
|
def dump_quick_cert_config!
|
55
62
|
return if File.file? Capricorn.system.path('quick_cert', 'qc_config')
|
56
63
|
|
data/lib/capricorn/system.rb
CHANGED
@@ -88,18 +88,16 @@ module Capricorn
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
def make_development_satellite(satellite)
|
91
|
+
def make_development_satellite(satellite, name)
|
92
92
|
if satellite
|
93
93
|
Capricorn.runtime_gem('rubigen', Capricorn::RUBIGEN_VERSION)
|
94
94
|
resolve_options_with satellite do
|
95
95
|
as_user(web_user, web_group) do
|
96
|
-
Dir.chdir(
|
96
|
+
Dir.chdir(satellite_root) do
|
97
97
|
|
98
|
-
|
99
|
-
|
100
|
-
FileUtils.rm_r("
|
101
|
-
FileUtils.rm_r("#{name}/README", :verbose => true) rescue nil
|
102
|
-
FileUtils.rm_r("#{name}/public/javascripts", :verbose => true) rescue nil
|
98
|
+
FileUtils.rm_r("doc", :verbose => true) rescue nil
|
99
|
+
FileUtils.rm_r("README", :verbose => true) rescue nil
|
100
|
+
FileUtils.rm_r("public/javascripts", :verbose => true) rescue nil
|
103
101
|
|
104
102
|
require 'rubigen/scripts/generate'
|
105
103
|
RubiGen::Base.use_application_sources!
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capricorn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.01
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Menke
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-06-16 00:00:00 +02:00
|
13
13
|
default_executable: capricorn
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -66,14 +66,15 @@ files:
|
|
66
66
|
- lib/capricorn.rb
|
67
67
|
- lib/rubygems_plugin.rb
|
68
68
|
- app_generators/engine/engine_generator.rb
|
69
|
-
- app_generators/engine/templates/
|
70
|
-
- app_generators/engine/templates/MIT-LICENSE.txt
|
71
|
-
- app_generators/engine/templates/README.rdoc
|
69
|
+
- app_generators/engine/templates/config/initializers/rails_init.rb
|
72
70
|
- app_generators/engine/templates/config/routes.rb
|
73
71
|
- app_generators/engine/templates/gitignore
|
72
|
+
- app_generators/engine/templates/Gmfile
|
74
73
|
- app_generators/engine/templates/init.rb
|
75
74
|
- app_generators/engine/templates/lib/engine.rb
|
75
|
+
- app_generators/engine/templates/MIT-LICENSE.txt
|
76
76
|
- app_generators/engine/templates/rails/init.rb
|
77
|
+
- app_generators/engine/templates/README.rdoc
|
77
78
|
- app_generators/engine/templates/tasks/engine_tasks.rake
|
78
79
|
has_rdoc: true
|
79
80
|
homepage: http://github.com/simonmenke/capricorn
|
@@ -99,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
100
|
requirements: []
|
100
101
|
|
101
102
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.3.
|
103
|
+
rubygems_version: 1.3.3
|
103
104
|
signing_key:
|
104
105
|
specification_version: 3
|
105
106
|
summary: Manage satellites
|