Sha256: 5c3876df5f2ae3396f770c969a297dd272928ee47232ddb4649b2368ee70ee27

Contents?: true

Size: 1.14 KB

Versions: 16

Compression:

Stored size: 1.14 KB

Contents

require 'rails'

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 |v|
            Pathname.new(v).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

16 entries across 16 versions & 1 rubygems

Version Path
solidus_frontend-2.4.2 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.2.2 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.4.1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.4.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.4.0.rc1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.4.0.beta1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.0.rc3 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.0.rc2 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.0.rc1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.3.0.beta1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.2.1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.2.0 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.2.0.rc1 lib/generators/solidus/views/override_generator.rb
solidus_frontend-2.2.0.beta1 lib/generators/solidus/views/override_generator.rb