class Slickr::Generators::InstallGenerator

Public Instance Methods

admin_user_ability() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 238
def admin_user_ability
  template "ability.rb", "app/models/ability.rb"

  puts "Slickr yml for webpacker"
end
alter_webpack_module_exports() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 111
def alter_webpack_module_exports
  replace_line = "module.exports = environment.toWebpackConfig()"
  dev_dest_file = "config/webpack/development.js"
  pro_dest_file = "config/webpack/production.js"
  test_dest_file = "config/webpack/test.js"
  dev_existing_content = File.read(dev_dest_file)
  pro_existing_content = File.read(pro_dest_file)
  test_existing_content = File.read(test_dest_file)
  new_content = "module.exports = merge(environment.toWebpackConfigForRailsEngine(), customConfig)"

  unless dev_existing_content.include? new_content
    gsub_file(dev_dest_file, replace_line) do |match|
      "#{new_content}"
    end

    puts "Altered webpack development.js"
  else
    puts "development.js already altered"
  end

  unless pro_existing_content.include? new_content
    gsub_file(pro_dest_file, replace_line) do |match|
      "#{new_content}"
    end

    puts "Altered webpack development.js"
  else
    puts "development.js already altered"
  end

  unless test_existing_content.include? new_content
    gsub_file(test_dest_file, replace_line) do |match|
      "#{new_content}"
    end

    puts "Altered webpack development.js"
  else
    puts "development.js already altered"
  end
end
alter_webpack_requires() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 70
def alter_webpack_requires
  starting_line = "const environment = require('./environment')"
  dev_dest_file = "config/webpack/development.js"
  pro_dest_file = "config/webpack/production.js"
  test_dest_file = "config/webpack/test.js"
  dev_existing_content = File.read(dev_dest_file)
  pro_existing_content = File.read(pro_dest_file)
  test_existing_content = File.read(test_dest_file)
  new_content = "const merge = require('webpack-merge')\nconst customConfig = require('./custom_webpack')"

  unless dev_existing_content.include? new_content
    gsub_file(dev_dest_file, starting_line) do |match|
      "#{match}\n#{new_content}"
    end

    puts "Altered webpack development.js"
  else
    puts "development.js already altered"
  end

  unless pro_existing_content.include? new_content
    gsub_file(pro_dest_file, starting_line) do |match|
      "#{match}\n#{new_content}"
    end

    puts "Altered webpack production.js"
  else
    puts "production.js already altered"
  end

  unless test_existing_content.include? new_content
    gsub_file(test_dest_file, starting_line) do |match|
      "#{match}\n#{new_content}"
    end

    puts "Altered webpack test.js"
  else
    puts "test.js already altered"
  end
end
custom_webpack() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 64
def custom_webpack
  template "custom_webpack.js", "config/webpack/custom_webpack.js"

  puts "Custom webpack js for webpacker"
end
db_migrations() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 22
def db_migrations
  migration_template "migrations/create_slickr_pages.rb", "db/migrate/create_slickr_pages.rb"
  migration_template "migrations/change_page_tree_structure.rb", "db/migrate/change_page_tree_structure.rb"
  migration_template "migrations/create_versions.rb", "db/migrate/create_versions.rb"
  migration_template "migrations/add_object_changes_to_versions.rb", "db/migrate/add_object_changes_to_versions.rb"
  migration_template "migrations/change_slickr_pages_page_id_attribute.rb", "db/migrate/change_slickr_pages_page_id_attribute.rb"
  migration_template "migrations/create_slickr_images.rb", "db/migrate/create_slickr_images.rb"
  migration_template "migrations/add_meta_data_to_versions.rb", "db/migrate/add_meta_data_to_versions.rb"
  migration_template "migrations/create_slickr_event_logs.rb", "db/migrate/create_slickr_event_logs.rb"
  migration_template "migrations/add_roles_names_and_avatars_to_admin_users.rb", "db/migrate/add_roles_names_and_avatars_to_admin_users.rb"
  migration_template "migrations/add_subheader_to_slickr_pages.rb", "db/migrate/add_subheader_to_slickr_pages.rb"
  migration_template "migrations/add_header_image_to_slickr_pages.rb", "db/migrate/add_header_image_to_slickr_pages.rb"
  migration_template "migrations/rename_slickr_pages_og_title_2_and_og_description_2.rb", "db/migrate/rename_slickr_pages_og_title_2_and_og_description_2.rb"
  migration_template "migrations/create_slickr_settings.rb", "db/migrate/create_slickr_settings.rb"
  migration_template "migrations/rename_slickr_pages_meta_title.rb", "db/migrate/rename_slickr_pages_meta_title.rb"

  puts "Database migrations added"
end
extend_active_admin_initializer() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 256
def extend_active_admin_initializer
  dest_file = "config/initializers/active_admin.rb"
  existing_content = File.read(dest_file)
  new_content = "  config.authorization_adapter = ActiveAdmin::CanCanAdapter"

  unless existing_content.include? new_content
    gsub_file(dest_file, "# CanCanAdapter or make your own. Please refer to documentation.") do |match|
      "#{match}\n#{new_content}"
    end

    puts "AdminUser authorization with CanCan"
  else
    puts "AdminUser already authorized with CanCan"
  end
end
extend_admin_user_class() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 222
def extend_admin_user_class
  dest_file = "app/models/admin_user.rb"
  existing_content = File.read(dest_file)
  new_content = "  include Slickr::SlickrAdminUser\n  ROLES = [:admin, :editor, :author, :contributor]"

  unless existing_content.include? new_content
    gsub_file(dest_file, "class AdminUser < ApplicationRecord") do |match|
      "#{match}\n#{new_content}"
    end

    puts "AdminUser extended by Slickr class and roles added"
  else
    puts "AdminUser already extended by Slickr"
  end
end
extend_babel_to_ignore_node_modules() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 168
def extend_babel_to_ignore_node_modules
  dest_file = ".babelrc"
  existing_content = File.read(dest_file)
  new_content = '"ignore": "node_modules",'

  unless existing_content.include? new_content
    gsub_file(dest_file, '"presets": [') do |match|
      "#{new_content}\n  #{match}"
    end

    puts "Babel extended to ignore node modules"
  else
    puts "Babel already ignoring node modules"
  end
end
extend_babel_to_use_stage_1() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 152
def extend_babel_to_use_stage_1
  dest_file = ".babelrc"
  existing_content = File.read(dest_file)
  new_content = '"stage-1"'

  unless existing_content.include? new_content
    gsub_file(dest_file, '"react"') do |match|
      "#{match},\n    #{new_content}"
    end

    puts "Babel extended to use stage-1"
  else
    puts "Babel already using stage-1"
  end
end
extend_package_json() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 184
def extend_package_json
  dest_file = "package.json"
  existing_content = File.read(dest_file)
  new_content_1 = '"slickr": "git+https://github.com/primate-inc/slickr#master"'
  new_content_2 = '"babel-preset-stage-1": "^6.24.1"'
  new_content_3 = '"ignore-loader": "^0.1.2"'

  unless existing_content.include? new_content_1
    gsub_file(dest_file, '"dependencies": {') do |match|
      "#{match}\n    #{new_content_1},"
    end

    puts "Package.json extended to Slickr"
  else
    puts "Package.json already using Slickr"
  end

  unless existing_content.include? new_content_2
    gsub_file(dest_file, '"devDependencies": {') do |match|
      "#{match}\n    #{new_content_2},"
    end

    puts "Babel extended to use stage-1"
  else
    puts "Babel already using stage-1"
  end

  unless existing_content.include? new_content_3
    gsub_file(dest_file, '"devDependencies": {') do |match|
      "#{match}\n    #{new_content_3},"
    end

    puts "Package.json extended to use ignore-loader"
  else
    puts "Package.json already using ignore-loader"
  end
end
extend_slickr_page() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 250
def extend_slickr_page
  template "page.rb", "app/models/slickr/page.rb"

  puts "Slickr Page extended"
end
extend_webpack_environment() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 47
def extend_webpack_environment
  insert_after_line = "const { environment } = require('@rails/webpacker')"
  dest_file = "config/webpack/environment.js"
  existing_content = File.read(dest_file)
  new_content = File.read(File.join(File.dirname(__FILE__), '/templates/environment.js'))

  unless existing_content.include? new_content
    gsub_file(dest_file, insert_after_line) do |match|
      "#{match}\n#{new_content}"
    end

    puts "Extended webpacker environment to get packs from Slickr engine"
  else
    puts "Webpacker environment already extended"
  end
end
no_blank_slate() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 10
def no_blank_slate
  template "active_admin_no_blank_slate.rb", "config/initializers/active_admin_no_blank_slate.rb"

  puts "No blank slate for Slickr images"
end
page_edit_megadraft_extensions() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 272
def page_edit_megadraft_extensions
  template "javascript_extensions/page_edit/additional_megadraft_actions.js", "app/javascript/slickr_extensions/page_edit/additional_megadraft_actions.js"
  template "javascript_extensions/page_edit/additional_megadraft_decorators.js", "app/javascript/slickr_extensions/page_edit/additional_megadraft_decorators.js"
  template "javascript_extensions/page_edit/actions/additional_actions.js", "app/javascript/slickr_extensions/page_edit/actions/additional_actions.js"
  template "javascript_extensions/page_edit/components/content/additional_entity_inputs.js", "app/javascript/slickr_extensions/page_edit/components/content/additional_entity_inputs.js"
  template "javascript_extensions/page_edit/components/content/editor_state_change.js", "app/javascript/slickr_extensions/page_edit/components/content/editor_state_change.js"
  template "javascript_extensions/page_edit/containers/additional_prop_types.js", "app/javascript/slickr_extensions/page_edit/containers/additional_prop_types.js"
  template "javascript_extensions/page_edit/decorators/pdf_link_component.jsx", "app/javascript/slickr_extensions/page_edit/decorators/pdf_link_component.jsx"
  template "javascript_extensions/page_edit/entity_inputs/pdf_link_input.jsx", "app/javascript/slickr_extensions/page_edit/entity_inputs/pdf_link_input.jsx"
  template "javascript_extensions/page_edit/plugins/plugin_list.js", "app/javascript/slickr_extensions/page_edit/plugins/plugin_list.js"
  template "javascript_extensions/page_edit/reducers/additional_reducers.js", "app/javascript/slickr_extensions/page_edit/reducers/additional_reducers.js"
  template "javascript_extensions/page_edit/reducers/loaded_pdfs.js", "app/javascript/slickr_extensions/page_edit/reducers/loaded_pdfs.js"

  puts "Sample megadraft extensions added"
end
scg_map() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 16
def scg_map
  template "active_admin_svg_map.rb", "config/initializers/active_admin_svg_map.rb"

  puts "SVG map added for Slickr"
end
slickr_page_templates() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 288
def slickr_page_templates
  template "slickr_page_template.html.erb", "app/views/slickr_page_templates/home.html.erb"
  template "slickr_page_template.html.erb", "app/views/slickr_page_templates/contact.html.erb"
  template "slickr_page_template.html.erb", "app/views/slickr_page_templates/landing.html.erb"
  template "slickr_page_template.html.erb", "app/views/slickr_page_templates/standard.html.erb"

  puts "Sample page templates added"
end
slickr_setting_yml() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 244
def slickr_setting_yml
  template "setting.yml", "config/setting.yml"

  puts "Slickr Setting yml"
end
slickr_yml() click to toggle source
# File lib/generators/slickr/install_generator.rb, line 41
def slickr_yml
  template "slickr.yml", "config/slickr.yml"

  puts "Slickr yml for webpacker"
end