Sha256: d13ef57e8e12f29b62afe8373e17efef961a99fad888e2c8a0d9f5d89834223e

Contents?: true

Size: 1.52 KB

Versions: 9

Compression:

Stored size: 1.52 KB

Contents

require 'rails/generators/base'

module Mtdevise
  module Generators

    module ViewPathTemplates
      extend ActiveSupport::Concern
      
        included do
          class_option :views, aliases: "-v", type: :array, desc: "Select specific view directories to generate (devise, layouts, mtdevise)"
          public_task :copy_views
        end
      
        # module ClassMethods
        #   def hide!
        #     Rails::Generators.hide_namespace self.namespace
        #   end
        # end
      
        def copy_views
          if options[:views]
            options[:views].each do |directory|
              view_directory directory.to_sym
            end
            else
              view_directory :devise
              view_directory :layouts
              view_directory :shared
              view_directory :mtdevise
          end
        end
      
      protected
      
      def view_directory(name, _target_path = nil)
        directory name.to_s, _target_path || "#{target_path}/#{name}" do |content|
          content
        end
      end
      
      def target_path
        @target_path ||= "app/views"
      end

    end

    class SharedViewsGenerator < Rails::Generators::Base
      include ViewPathTemplates
      source_root File.expand_path("../../../../app/views", __FILE__)
      desc "Copies Mtdevise views to your application."
      hide!
    end
    
    class ViewsGenerator < Rails::Generators::Base
      desc "Copies Mtdevise views to your application."
      invoke SharedViewsGenerator
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mtdevise-4.1.2 lib/generators/mtdevise/views_generator.rb
mtdevise-4.1.1 lib/generators/mtdevise/views_generator.rb
mtdevise-4.1.0 lib/generators/mtdevise/views_generator.rb
mtdevise-4.0.0 lib/generators/mtdevise/views_generator.rb
mtdevise-3.10.2 lib/generators/mtdevise/views_generator.rb
mtdevise-3.10.1 lib/generators/mtdevise/views_generator.rb
mtdevise-3.10.0 lib/generators/mtdevise/views_generator.rb
mtdevise-3.9.1 lib/generators/mtdevise/views_generator.rb
mtdevise-3.9.0 lib/generators/mtdevise/views_generator.rb