Class: Evil::Setup::Generator
- Includes:
- FileUtils
- Defined in:
- lib/evil/setup/generator.rb
Constant Summary collapse
- ASSET_PATH =
File.join(File.dirname(__FILE__), '..', '..', '..', 'assets')
- DIR_LAYOUT =
%w{ tmp public/images public/stylesheets public/javascripts plugins }
- ASSETS =
[ ['evil.css', 'public/stylesheets/evil.css'], ['evil.js', 'public/javascripts/evil.js'], ['evil-lib.js', 'public/javascripts/evil-lib.js'], ['logo.png', 'public/images/logo.png'], ['config.ru', 'config.ru'] ]
Instance Method Summary collapse
- #copy_assets! ⇒ Object
- #create_database! ⇒ Object
- #create_dir_tree! ⇒ Object
- #generate! ⇒ Object
-
#initialize(path) ⇒ Generator
constructor
A new instance of Generator.
- #set_cookie_secret! ⇒ Object
Constructor Details
#initialize(path) ⇒ Generator
Returns a new instance of Generator.
29 30 31 |
# File 'lib/evil/setup/generator.rb', line 29 def initialize(path) @path = path end |
Instance Method Details
#copy_assets! ⇒ Object
58 59 60 61 62 63 |
# File 'lib/evil/setup/generator.rb', line 58 def copy_assets! ASSETS.each do |file, dest| puts "File #{File.join(@path, dest)}" cp File.join(ASSET_PATH, file), File.join(@path, dest) end end |
#create_database! ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/evil/setup/generator.rb', line 49 def create_database! ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => File.join(@path, 'evil.db') ActiveRecord::Migration.extend Evil::Setup::Migration ActiveRecord::Migration.create_evil_tables end |
#create_dir_tree! ⇒ Object
42 43 44 45 46 47 |
# File 'lib/evil/setup/generator.rb', line 42 def create_dir_tree! DIR_LAYOUT.each do |dir| puts "Directory #{@path}/#{dir}" mkdir_p "#{@path}/#{dir}" end end |
#generate! ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/evil/setup/generator.rb', line 33 def generate! puts "Generating Evil application..." create_dir_tree! copy_assets! puts "Initializing database..." create_database! end |
#set_cookie_secret! ⇒ Object
65 66 67 68 69 |
# File 'lib/evil/setup/generator.rb', line 65 def rackup = File.read(File.join(@path, 'config.ru')) rackup.gsub!(/__SECRET__/, Digest::SHA1.hexdigest("__EVIL__#{Time.now.to_s}__#{rand(999999)}")) File.open(File.join(@path, 'config.ru'), 'w') { |f| f.write(rackup) } end |