class Archfiend::Generators::Daemon
Public Class Methods
source_root()
click to toggle source
@return Path to templates, used by Thor
# File lib/archfiend/generators/daemon.rb, line 11 def self.source_root File.join(File.dirname(__FILE__), 'daemon', 'templates') end
Public Instance Methods
create()
click to toggle source
Creates a new daemon
# File lib/archfiend/generators/daemon.rb, line 16 def create # Init phase, creating directory structure and applying templates extensions.run_with_init_callbacks do create_from_templates end # Exec phase, running any due setup extensions.run_with_exec_callbacks do bundle_install unless skip_bundle_install? end end
current_dir()
click to toggle source
@return [Pathname] Path from which Archfiend
was started
# File lib/archfiend/generators/daemon.rb, line 44 def current_dir Pathname.new(File.expand_path(Dir.pwd)) end
daemon_destination_dir()
click to toggle source
@return [Pathname] The absolute path of the newly created daemon
# File lib/archfiend/generators/daemon.rb, line 39 def daemon_destination_dir Pathname.new(File.expand_path(File.join(Dir.pwd, daemon_name))) end
daemon_path()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 48 def daemon_path Pathname.new(daemon_name) end
processed_template_contents(source)
click to toggle source
@param source [String] relative path to the template to be processed @return [String] the evaluated template contents
# File lib/archfiend/generators/daemon.rb, line 30 def processed_template_contents(source) context = instance_eval('binding') source = File.expand_path(find_in_source_paths(source)) CapturableERB.new(::File.binread(source), nil, '-', '@output_buffer').tap do |erb| erb.filename = source end.result(context) end
Private Instance Methods
app()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 90 def app directory 'app', daemon_path.join('app') end
bin()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 94 def bin directory 'bin', daemon_path.join('bin') chmod daemon_path.join('bin', 'start'), 'a+x' chmod daemon_path.join('bin', 'console'), 'a+x' end
bundle_install()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 130 def bundle_install if defined? Bundler Bundler.with_clean_env do inside daemon_name do run 'bundle install' end end else inside daemon_name do run 'bundle install' end end end
camelized_daemon_name()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 67 def camelized_daemon_name @camelized_daemon_name ||= daemon_name.camelize end
config_directory()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 101 def config_directory directory 'config', daemon_path.join('config') end
create_from_templates()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 63 def create_from_templates %w[readme rakefile gemfile app bin config_directory db lib log spec tmp rubocop].each { |action| __send__(action) } end
db()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 105 def db directory 'db', daemon_path.join('db') end
extensions()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 59 def extensions @extensions ||= Extensions.new(generator_options, self, 'daemon') end
gemfile()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 86 def gemfile template 'Gemfile', daemon_path.join('Gemfile') end
generator_options()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 55 def generator_options @generator_options ||= Options.new(args) end
lib()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 109 def lib directory 'lib', daemon_path.join('lib') end
log()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 113 def log directory 'log', daemon_path.join('log') end
rakefile()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 82 def rakefile template 'Rakefile', daemon_path.join('Rakefile') end
readme()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 78 def readme template 'README.md', daemon_path.join('README.md') end
relative_archfiend_path()
click to toggle source
@return Relative path to this gem, to be used in the Gemfile
# File lib/archfiend/generators/daemon.rb, line 72 def relative_archfiend_path gem_dir = Pathname.new(File.expand_path(File.join('..', '..', '..'), __dir__)) gem_dir.relative_path_from(daemon_destination_dir) end
rubocop()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 122 def rubocop template '.rubocop.yml', daemon_path.join('.rubocop.yml') end
skip_bundle_install?()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 144 def skip_bundle_install? false end
spec()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 117 def spec template '.rspec', daemon_path.join('.rspec') directory 'spec', daemon_path.join('spec') end
tmp()
click to toggle source
# File lib/archfiend/generators/daemon.rb, line 126 def tmp empty_directory daemon_path.join('tmp') end