Class: Gemsmith::Skeletons::RailsSkeleton

Inherits:
BaseSkeleton show all
Defined in:
lib/gemsmith/skeletons/rails_skeleton.rb

Overview

Configures Ruby on Rails support.

Instance Method Summary collapse

Methods inherited from BaseSkeleton

create, #initialize

Constructor Details

This class inherits a constructor from Gemsmith::Skeletons::BaseSkeleton

Instance Method Details

#createObject



39
40
41
42
43
44
45
46
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 39

def create
  return unless configuration.create_rails?

  install_rails
  create_engine
  create_generator_files
  create_travis_gemfiles
end

#create_engineObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 15

def create_engine
  gem_name = configuration.gem_name

  cli.template "#{lib_root}/%gem_name%/engine.rb.tt", configuration.to_h
  cli.run "rails plugin new --skip #{gem_name} #{engine_options}"
  cli.remove_file "#{gem_name}/app/helpers/#{gem_name}/application_helper.rb", configuration.to_h
  cli.remove_file "#{gem_name}/lib/#{gem_name}/version.rb", configuration.to_h
  cli.remove_file "#{gem_name}/MIT-LICENSE", configuration.to_h
  cli.remove_file "#{gem_name}/README.rdoc", configuration.to_h
end

#create_generator_filesObject



26
27
28
29
30
31
32
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 26

def create_generator_files
  cli.empty_directory "#{generator_root}/templates"
  cli.template "#{generator_root}/install/install_generator.rb.tt", configuration.to_h
  cli.template "#{generator_root}/install/USAGE.tt", configuration.to_h
  cli.template "#{generator_root}/upgrade/upgrade_generator.rb.tt", configuration.to_h
  cli.template "#{generator_root}/upgrade/USAGE.tt", configuration.to_h
end

#create_travis_gemfilesObject



34
35
36
37
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 34

def create_travis_gemfiles
  return unless configuration.create_travis?
  cli.template "%gem_name%/gemfiles/rails-%rails_version%.x.gemfile.tt", configuration.to_h
end

#install_railsObject



9
10
11
12
13
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 9

def install_rails
  return if rails?
  return unless cli.yes?("Ruby on Rails is not installed. Would you like to install it (y/n)?")
  cli.run "gem install rails"
end

#rails?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/gemsmith/skeletons/rails_skeleton.rb', line 5

def rails?
  cli.run "command -v rails > /dev/null"
end