Sha256: 381dbe2b403dbdb3de6734b32c4dacbcad1d8c3631bed6f577412d02c7dc80f8

Contents?: true

Size: 1.21 KB

Versions: 56

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

require 'rails'
require 'rails/generators'

module Solidus
  module Views
    class OverrideGenerator < ::Rails::Generators::Base
      def self.views_folder
        Spree::Frontend::Engine.root.join('app', 'views', 'spree')
      end

      VIEWS = Dir.glob(views_folder.join('**', '*'))

      desc "Override solidus frontend views in your app. You can either provide single files or complete folders."

      class_option :only,
        type: :string,
        default: nil,
        desc: "Name of file or folder to copy exclusively. Can be a substring."

      source_root views_folder

      def copy_views
        views_to_copy.each do |file|
          next if File.directory?(file)

          dest_file = Pathname.new(file).relative_path_from(source_dir)
          copy_file file, Rails.root.join('app', 'views', 'spree', dest_file)
        end
      end

      private

      def views_to_copy
        if @options['only']
          VIEWS.select do |view|
            Pathname.new(view).relative_path_from(source_dir).to_s.include?(@options['only'])
          end
        else
          VIEWS
        end
      end

      def source_dir
        self.class.views_folder
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
solidus_frontend-4.0.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-4.0.0.dev lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.4.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.1.9 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.4.0.dev lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.3.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.5 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.4 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.3 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.1.8 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.0.8 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.2 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.3.0.alpha lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.2.0.alpha lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.0.7 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.11.17 lib/generators/solidus/views/override_generator.rb
solidus_frontend-3.1.7 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.11.16 lib/generators/solidus/views/override_generator.rb