Class: Corneal::Generators::AppGenerator

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/corneal/generators/app/app_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



28
29
30
# File 'lib/corneal/generators/app/app_generator.rb', line 28

def self.source_root
  File.expand_path(File.join(File.dirname(__FILE__), "templates"))
end

Instance Method Details

#create_app_directoryObject



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

def create_app_directory
  %w{app/controllers app/views app/models}.each do |dir|
    directory dir, File.join(@app_path, dir)
  end
end

#create_app_specObject



58
59
60
# File 'lib/corneal/generators/app/app_generator.rb', line 58

def create_app_spec
  template "spec/application_controller_spec.rb", File.join(@app_path, "spec/application_controller_spec.rb")
end

#create_capistrano_configObject



98
99
100
101
102
103
104
# File 'lib/corneal/generators/app/app_generator.rb', line 98

def create_capistrano_config
  if @capistrano
    inside(@app_path) do
      run('cap install')
    end
  end
end

#create_configObject



66
67
68
# File 'lib/corneal/generators/app/app_generator.rb', line 66

def create_config
  template "config.ru", File.join(@app_path, "config.ru")
end

#create_database_initializerObject



86
87
88
# File 'lib/corneal/generators/app/app_generator.rb', line 86

def create_database_initializer
  template("config/initializers/database.rb", File.join(@app_path, "config/initializers/database.rb")) unless @database.empty?
end

#create_db_configObject



82
83
84
# File 'lib/corneal/generators/app/app_generator.rb', line 82

def create_db_config
  template("config/db.yml", File.join(@app_path, "config/db.yml")) unless @database.empty?
end

#create_empty_directoriesObject

Create empty directories



33
34
35
36
37
38
39
40
41
42
# File 'lib/corneal/generators/app/app_generator.rb', line 33

def create_empty_directories
  %w{config/initializers lib spec}.each do |dir|
    empty_directory File.join(@app_path, dir)
  end

  empty_directory File.join(@app_path, 'db/migrate')

  create_file File.join(@app_path, "lib", ".gitkeep")
  template "config/environment.rb", File.join(@app_path, "config/environment.rb")
end

#create_gemfileObject



70
71
72
# File 'lib/corneal/generators/app/app_generator.rb', line 70

def create_gemfile
  template "Gemfile", File.join(@app_path, "Gemfile")
end

#create_public_directoryObject



44
45
46
47
48
49
50
# File 'lib/corneal/generators/app/app_generator.rb', line 44

def create_public_directory
  %w{public/stylesheets public/javascripts public/images}.each do |dir|
    directory dir, File.join(@app_path, dir)
  end

  template "public/favicon.ico", File.join(@app_path, "public/favicon.ico")
end

#create_rakefileObject



74
75
76
# File 'lib/corneal/generators/app/app_generator.rb', line 74

def create_rakefile
  template "Rakefile", File.join(@app_path, "Rakefile")
end

#create_readmeObject



78
79
80
# File 'lib/corneal/generators/app/app_generator.rb', line 78

def create_readme
  copy_file "README.md", File.join(@app_path, "README.md")
end

#create_redis_configObject



90
91
92
# File 'lib/corneal/generators/app/app_generator.rb', line 90

def create_redis_config
  copy_file("config/redis.yml", File.join(@app_path, "config/redis.yml")) if @redis
end

#create_redis_initializerObject



94
95
96
# File 'lib/corneal/generators/app/app_generator.rb', line 94

def create_redis_initializer
  template("config/initializers/redis.rb", File.join(@app_path, "config/initializers/redis.rb")) if @redis
end

#create_rvm_gemsetObject



106
107
108
109
110
111
112
113
114
# File 'lib/corneal/generators/app/app_generator.rb', line 106

def create_rvm_gemset
  if @rvm
    create_file(File.join(@app_path, '.ruby-version'), 'ruby-2.1.0')
    create_file(File.join(@app_path, '.ruby-gemset'), @app_path)

    @bundle = false
    puts "You need to run 'bundle install' manually."
  end
end

#create_spec_helperObject



62
63
64
# File 'lib/corneal/generators/app/app_generator.rb', line 62

def create_spec_helper
  template "spec/spec_helper.rb", File.join(@app_path, "spec/spec_helper.rb")
end

#initialize_git_repoObject



116
117
118
119
120
# File 'lib/corneal/generators/app/app_generator.rb', line 116

def initialize_git_repo
  inside(@app_path) do
    run('git init .') if @git
  end
end

#install_dependenciesObject



122
123
124
125
126
# File 'lib/corneal/generators/app/app_generator.rb', line 122

def install_dependencies
  inside(@app_path) do
    run('bundle') if @bundle
  end
end

#setupObject

Creates instance variables from options passed to corneal.



19
20
21
22
23
24
25
26
# File 'lib/corneal/generators/app/app_generator.rb', line 19

def setup
  @app_path = name.directory_name
  @name     = name.file_name

  options.each do |key, value|
    instance_variable_set "@#{key.to_s}".to_sym, value
  end
end