Class: Venus::Generators::InitGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/venus/init/init_generator.rb

Instance Method Summary collapse

Methods inherited from Base

next_migration_number, source_root

Instance Method Details

#asked_gemsObject



72
73
74
75
76
77
78
# File 'lib/generators/venus/init/init_generator.rb', line 72

def asked_gems
  generate 'venus:paginate' if @paginate
  generate 'venus:cron' if @whenever
  generate "venus:simple_form" if @simple_form
  generate "venus:better_errors" if @better_errors
  generate "venus:rails_panel" if @rails_panel
end

#asksObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/venus/init/init_generator.rb', line 10

def asks
  @paginate = ask?('install paginate gem "kaminari"?', true) unless has_gem?('kaminari')
  @whenever = ask?('install scheduling gem "whenever"?', true) unless has_gem?('whenever')
  @simple_form = ask?('install gem "simple_form"?', true) unless has_gem?('simple_form')
  @better_errors = ask?("install gem 'better_errors'", true)
  @rails_panel = ask?("install gem 'rails_panel'", true)

  @remove_gems = []
  ["coffee-rails", "sass-rails"].each do |gem_name|
    @remove_gems << gem_name unless ask?("use gem '#{gem_name}'", true)
  end

  @assets_gems = {}
  ["execjs", "therubyracer", "turbo-sprockets-rails3"].each do |gem_name|
    @assets_gems[gem_name] = ask?("gem '#{gem_name}' for assets", true)
  end

  @remove_require_tree = ask?("remove 'require_tree .' in application.css/js", true)
end

#assets_gemsObject



51
52
53
54
55
56
57
58
# File 'lib/generators/venus/init/init_generator.rb', line 51

def assets_gems
  if @assets_gems.select{|gem_name,y|y}.size > 0
    @assets_gems.each do |gem_name,y|
      opts = (gem_name == "therubyracer") ? { :platforms => :ruby } : {}
      append_gem_into_group(:assets, gem_name, opts) if y
    end
  end
end

#enable_email_delivery_errorObject



35
36
37
38
39
40
# File 'lib/generators/venus/init/init_generator.rb', line 35

def enable_email_delivery_error
  file = 'config/environments/development.rb'
  find = 'raise_delivery_errors = false'
  replace = 'raise_delivery_errors = true'
  replace_in_file(file, find, replace) if file_has_content?(file, find)
end

#gitignoreObject



60
61
62
63
# File 'lib/generators/venus/init/init_generator.rb', line 60

def gitignore
  add_gitignore ".DS_Store"
  add_gitignore "/public/assets"
end

#nameObject



6
7
8
# File 'lib/generators/venus/init/init_generator.rb', line 6

def name
  "initalize"
end

#remove_gemsObject



42
43
44
45
46
47
48
49
# File 'lib/generators/venus/init/init_generator.rb', line 42

def remove_gems
  if @remove_gems.size > 0
    @remove_gems.each do |gem_name|
      gsub_file("Gemfile", /\n.*?gem.+?#{gem_name}.+?\n/, "\n")
    end
    bundle_install
  end
end

#remove_require_treeObject



65
66
67
68
69
70
# File 'lib/generators/venus/init/init_generator.rb', line 65

def remove_require_tree
  if @remove_require_tree
    remove_line_from_file("app/assets/javascripts/application.js", "require_tree .")
    remove_line_from_file("app/assets/stylesheets/application.css", "require_tree .")
  end
end

#remove_usless_fileObject



30
31
32
33
# File 'lib/generators/venus/init/init_generator.rb', line 30

def remove_usless_file
  remove_file 'public/index.html'
  remove_file 'app/assets/images/rails.png'
end