class Arsenic::Newgem

Constants

COPY_DIRS
COPY_FILES

Public Class Methods

exit_on_failure?() click to toggle source
# File lib/arsenic.rb, line 42
def self.exit_on_failure?
  true
end
source_root() click to toggle source
# File lib/arsenic.rb, line 38
def self.source_root
  ENV.fetch("TEMPLATE", File.join(__dir__, "arsenic", "templates", "newgem"))
end

Public Instance Methods

copy_dirs() click to toggle source
# File lib/arsenic.rb, line 50
def copy_dirs
  COPY_DIRS.each { |dir| directory(dir) }
end
copy_files() click to toggle source
# File lib/arsenic.rb, line 46
def copy_files
  COPY_FILES.each { |file| template file }
end
copy_gemfiles() click to toggle source
# File lib/arsenic.rb, line 54
def copy_gemfiles
  template "gemfiles/rubocop.gemfile"
  return unless rails?

  template "gemfiles/jruby.gemfile"
  template "gemfiles/rails5.gemfile"
  template "gemfiles/rails6.gemfile"
  template "gemfiles/railsmaster.gemfile"
end
copy_gemspec() click to toggle source
# File lib/arsenic.rb, line 70
def copy_gemspec
  template "newgem.gemspec", "#{name}.gemspec"
end
copy_lib() click to toggle source
# File lib/arsenic.rb, line 64
def copy_lib
  template "lib/name.rb", "lib/#{name}.rb"
  directory "lib/dir", "lib/#{name_path}"
  remove_file "lib/#{name_path}/railtie.rb" unless rails?
end

Private Instance Methods

human_name() click to toggle source
# File lib/arsenic.rb, line 86
def human_name
  @human_name ||= name.split(/[-_]/).map(&:capitalize).join(" ")
end
module_name() click to toggle source
# File lib/arsenic.rb, line 80
def module_name
  @module_name ||= name.split("-").map { |mod|
    mod.split("_").map(&:capitalize).join
  }.join("::")
end
name_path() click to toggle source
# File lib/arsenic.rb, line 90
def name_path
  @name_path ||= name.tr("-", "/")
end
rails?() click to toggle source
# File lib/arsenic.rb, line 76
def rails?
  @rails ||= yes?("Need Rails stuff?")
end