Sha256: 9bbaa440acd6136c519b10e26f78f229b93ddc66b6f40b487d6a0a122a52061f
Contents?: true
Size: 1.49 KB
Versions: 2
Compression:
Stored size: 1.49 KB
Contents
require "rails/generators" require "fileutils" module Generators module Avo class ToolGenerator < ::Rails::Generators::Base argument :name, type: :string, required: true source_root File.expand_path("templates", __dir__) namespace "avo:tool" def handle # Sidebar items template "tool/sidebar_item.tt", "app/views/avo/sidebar/items/_#{file_name}.html.erb" # Add controller if it doesn't exist controller_path = "app/controllers/avo/tools_controller.rb" unless File.file?(Rails.root.join(controller_path)) template "tool/controller.tt", controller_path end # Add controller method inject_into_class controller_path, "Avo::ToolsController" do <<-METHOD def #{file_name} @page_title = "#{human_name}" add_breadcrumb "#{human_name}" end METHOD end # Add view file template "tool/view.tt", "app/views/avo/tools/#{file_name}.html.erb" route <<-ROUTE namespace :#{::Avo.configuration.root_path.gsub('/', '')} do get "#{file_name}", to: "tools##{file_name}" end ROUTE end no_tasks do def file_name name.to_s.underscore end def controller_name file_name.to_s end def human_name file_name.humanize end def in_code(text) "<code class='p-1 rounded bg-gray-500 text-white text-sm'>#{text}</code>" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
avo-1.3.0.pre.1 | lib/generators/avo/tool_generator.rb |
avo-1.2.2 | lib/generators/avo/tool_generator.rb |