class ActiveScaffold::Generators::InstallGenerator
Public Instance Methods
add_concern_routes()
click to toggle source
# File lib/generators/active_scaffold/install_generator.rb, line 9 def add_concern_routes route 'concern :active_scaffold, ActiveScaffold::Routing::Basic.new(association: true)' route 'concern :active_scaffold_association, ActiveScaffold::Routing::Association.new' end
add_to_javascript_manifest()
click to toggle source
# File lib/generators/active_scaffold/install_generator.rb, line 14 def add_to_javascript_manifest file = 'app/assets/javascripts/application.js' unless File.exist?(file) if Rails.version >= '6.0' create_javascript_manifest file return end say_status :missing, file, :red return if options[:pretend] raise Thor::Error, "JS file #{file} is required for ActiveScaffold" end original_js = File.binread(file) if original_js.include?('require active_scaffold') say_status('skipped', "insert into #{file}", :yellow) else insert_into_file file, after: %r{//= require +.*ujs['"]?\n} do "//= require active_scaffold\n" end end setup_jquery file, original_js end
add_to_stylesheet_manifest()
click to toggle source
# File lib/generators/active_scaffold/install_generator.rb, line 36 def add_to_stylesheet_manifest file = 'app/assets/stylesheets/application.css' return unless File.exist?(file) original_css = File.binread(file) if original_css.match?(/require active_scaffold$/) say_status('skipped', 'insert into app/assets/stylesheets/application.css', :yellow) else insert_into_file 'app/assets/stylesheets/application.css', before: %r{[ ]*\*/} do " *= require active_scaffold\n" end end end
Protected Instance Methods
create_javascript_manifest(file)
click to toggle source
# File lib/generators/active_scaffold/install_generator.rb, line 51 def create_javascript_manifest(file) FileUtils.mkdir_p File.dirname(file) File.open(file, 'w') do |f| f << "// This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's // vendor/assets/javascripts directory can be referenced here using a relative path. // // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the // compiled file. JavaScript code in this file should be added after the last require_* statement. // // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details // about supported directives. // //= require active_scaffold " say_status('create', file) end insert_into_file 'app/views/layouts/application.html.erb', after: /javascript_pack_tag 'application'.*\n/ do " <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', 'data-turbo-track': 'reload' %>\n" end append_to_file 'config/initializers/assets.rb' do "Rails.application.config.assets.precompile += %w( application.js )\n" end setup_jquery file, where: 'active_scaffold' end
setup_jquery(file, original_js = nil, where: 'ujs')
click to toggle source
# File lib/generators/active_scaffold/install_generator.rb, line 79 def setup_jquery(file, original_js = nil, where: 'ujs') original_js ||= File.binread(file) if ActiveScaffold.js_framework == :jquery unless original_js.include?('require jquery') insert_into_file file, before: %r{//= require +.*#{where}['"]?\n} do "//= require jquery\n" end end else say_status('missing', 'no jquery-rails gem, load jquery in your layout, or add jquery-rails to Gemfile and add //= require jquery to application.js', :red) end end