Sha256: 8cc4f9e93c8606fa9786c59989c7d40e8deba9321d7a25bf172aae6b147244cb
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true module Boppers module Generator class Plugin < Thor::Group include Thor::Actions attr_accessor :plugin_type desc "Generate a new Boopers plugin structure" def self.source_root File.join(__dir__, "plugin") end def copy_files template "#{plugin_type}/gemspec.erb", "#{plugin_name}.gemspec" copy_file "Gemfile" copy_file ".gitignore" copy_file ".rubocop.yml" copy_file "CODE_OF_CONDUCT.md" copy_file "LICENSE.txt" copy_file "Rakefile" template "#{plugin_type}/README.erb", "README.md" end def copy_lib_files template "#{plugin_type}/entry.erb", "lib/#{plugin_name}.rb" template "#{plugin_type}/main.erb", "lib/boppers/#{plugin_dir}#{name}.rb" template "#{plugin_type}/version.erb", "lib/boppers/#{plugin_dir}#{name}/version.rb" end def copy_test_files template "test/test_helper.erb", "test/test_helper.rb" test_file_name = name.tr("-", "_") template "#{plugin_type}/test_file.erb", "test/boppers/#{plugin_dir}#{test_file_name}_test.rb" end def run_commands inside destination_root do run "git init" run "bundle install" end end private def bopper? plugin_type == "bopper" end private def plugin_name File.basename(destination_root) end private def name plugin_name .gsub(/^boppers-/, "") .gsub(/-notifier$/, "") end private def plugin_namespace name .tr("-", "_") .gsub(/_(.)/) { ::Regexp.last_match(1).upcase } .gsub(/^(.)/) { ::Regexp.last_match(1).upcase } end private def plugin_dir "notifier/" unless bopper? end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
boppers-0.0.11 | lib/boppers/generator/plugin.rb |