class Quails::PluginBuilder
The plugin builder allows you to override elements of the plugin generator without being forced to reverse the operations of the default generator.
This allows you to override entire operations, like the creation of the Gemfile, README, or JavaScript files, without needing to know exactly what those operations do so you can create another template action.
Constants
- PASSTHROUGH_OPTIONS
Public Instance Methods
app()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 20 def app if mountable? if api? directory "app", exclude_pattern: %r{app/(views|helpers)} else directory "app" empty_directory_with_keep_file "app/assets/images/#{namespaced_name}" end elsif full? empty_directory_with_keep_file "app/models" empty_directory_with_keep_file "app/controllers" empty_directory_with_keep_file "app/mailers" unless api? empty_directory_with_keep_file "app/assets/images/#{namespaced_name}" empty_directory_with_keep_file "app/helpers" empty_directory_with_keep_file "app/views" end end end
assets_manifest()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 133 def assets_manifest template "quails/engine_manifest.js", "app/assets/config/#{underscored_name}_manifest.js" end
bin(force = false)
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 157 def bin(force = false) bin_file = engine? ? "bin/quails.tt" : "bin/test.tt" template bin_file, force: force do |content| "#{shebang}\n" + content end chmod "bin", 0755, verbose: false end
config()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 73 def config template "config/routes.rb" if engine? end
gemfile()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 45 def gemfile template "Gemfile" end
gemfile_entry()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 165 def gemfile_entry return unless inside_application? gemfile_in_app_path = File.join(quails_app_path, "Gemfile") if File.exist? gemfile_in_app_path entry = "gem '#{name}', path: '#{relative_path}'" append_file gemfile_in_app_path, entry end end
gemspec()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 53 def gemspec template "%name%.gemspec" end
generate_test_dummy(force = false)
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 95 def generate_test_dummy(force = false) opts = (options || {}).slice(*PASSTHROUGH_OPTIONS) opts[:force] = force opts[:skip_bundle] = true opts[:skip_listen] = true opts[:skip_git] = true opts[:skip_turbolinks] = true invoke Quails::Generators::AppGenerator, [ File.expand_path(dummy_path, destination_root) ], opts end
gitignore()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 57 def gitignore template "gitignore", ".gitignore" end
javascripts()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 146 def javascripts return if options.skip_javascript? if mountable? template "quails/javascripts.js", "app/assets/javascripts/#{namespaced_name}/application.js" elsif full? empty_directory_with_keep_file "app/assets/javascripts/#{namespaced_name}" end end
lib()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 61 def lib template "lib/%namespaced_name%.rb" template "lib/tasks/%namespaced_name%_tasks.rake" template "lib/%namespaced_name%/version.rb" if engine? template "lib/%namespaced_name%/engine.rb" else template "lib/%namespaced_name%/railtie.rb" end end
license()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 49 def license template "MIT-LICENSE" end
rakefile()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 16 def rakefile template "Rakefile" end
readme()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 41 def readme template "README.md" end
stylesheets()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 137 def stylesheets if mountable? copy_file "quails/stylesheets.css", "app/assets/stylesheets/#{namespaced_name}/application.css" elsif full? empty_directory_with_keep_file "app/assets/stylesheets/#{namespaced_name}" end end
test()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 77 def test template "test/test_helper.rb" template "test/%namespaced_name%_test.rb" append_file "Rakefile", <<-EOF #{rakefile_test_tasks} task default: :test EOF if engine? template "test/integration/navigation_test.rb" end end
test_dummy_assets()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 115 def test_dummy_assets template "quails/javascripts.js", "#{dummy_path}/app/assets/javascripts/application.js", force: true template "quails/stylesheets.css", "#{dummy_path}/app/assets/stylesheets/application.css", force: true template "quails/dummy_manifest.js", "#{dummy_path}/app/assets/config/manifest.js", force: true end
test_dummy_clean()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 121 def test_dummy_clean inside dummy_path do remove_file "db/seeds.rb" remove_file "Gemfile" remove_file "lib/tasks" remove_file "public/robots.txt" remove_file "README.md" remove_file "test" remove_file "vendor" end end
test_dummy_config()
click to toggle source
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 107 def test_dummy_config template "quails/boot.rb", "#{dummy_path}/config/boot.rb", force: true template "quails/application.rb", "#{dummy_path}/config/application.rb", force: true if mountable? template "quails/routes.rb", "#{dummy_path}/config/routes.rb", force: true end end