Sha256: 49b2dc34d11d5cc4d29e86bda36f4b6d704b302bdbe07ef446ea7d755a45a634

Contents?: true

Size: 1.77 KB

Versions: 1

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

module Hoboken
  module AddOns
    # Twitter Bootstrap support.
    #
    class TwitterBootstrap < ::Hoboken::Group
      def add_gem
        return unless sprockets?

        gem 'bootstrap', version: '5.0.0.beta3', group: :assets
      end

      def update_app
        return unless sprockets?

        indentation = classic? ? 2 : 6
        insert_into_file('app.rb', after: /require.*sprockets_chain.*\n/) do
          indent("require 'bootstrap'\n", indentation)
        end
      end

      def update_asset_files
        return unless sprockets?

        prepend_file('assets/styles.scss') do
          <<~CODE
            @import "bootstrap";

          CODE
        end

        prepend_file('assets/app.js') do
          <<~CODE
            //= require popper
            //= require bootstrap-sprockets
          CODE
        end
      end

      def update_sprockets_rake_tasks
        return unless sprockets?

        insert_into_file('tasks/sprockets.rake', after: /require 'sprockets'\n/) do
          "  require 'bootstrap'\n"
        end
      end

      def remove_normalize_css
        return unless sprockets?

        gsub_file(
          'views/layout.erb',
          '<link rel="stylesheet" type="text/css" ' \
          'href="//cdnjs.cloudflare.com/ajax/libs/normalize/2.1.3/normalize.min.css">',
          ''
        )
      end

      def reminders
        if sprockets?
          say "\nGemfile updated... don't forget to 'bundle install'"
        else
          text = <<~TEXT
            Sprockets is required. Please install the Sprockets add-on
            first (hoboken add:sprockets).
          TEXT

          say text, :red
        end
      end

      private

      def sprockets?
        Dir.exist?('assets')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hoboken-0.9.0 lib/hoboken/add_ons/twbs.rb