Sha256: 654bb2accdc3ecbb4493120b9c3e7228fa862d71aa4f9726b94ea23c4f795f7d

Contents?: true

Size: 1.16 KB

Versions: 9

Compression:

Stored size: 1.16 KB

Contents

require "active_support/all"

module Godmin
  module Generators
    class Base < Rails::Generators::Base
      def self.source_paths
        %w(authentication install policy resource).map do |path|
          File.expand_path("../../../generators/godmin/#{path}/templates", __FILE__)
        end
      end

      private

      def namespace
        @namespace ||= Rails::Generators.namespace
      end

      def namespaced?
        @namespaced ||= namespace.present?
      end

      def namespaced_path
        @namespaced_path ||= begin
          if namespaced?
            namespace.name.split("::").map(&:underscore)
          else
            []
          end
        end
      end

      def module_namespacing(&block)
        content = capture(&block)
        content = wrap_with_namespace(content) if namespaced?
        concat(content)
      end

      def indent(content, multiplier = 2)
        spaces = " " * multiplier
        content.each_line.map { |line| line.blank? ? line : "#{spaces}#{line}" }.join
      end

      def wrap_with_namespace(content)
        content = indent(content).chomp
        "module #{namespace.name}\n#{content}\nend\n"
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
godmin-1.5.0 lib/godmin/generators/base.rb
godmin-1.4.0 lib/godmin/generators/base.rb
godmin-1.3.1 lib/godmin/generators/base.rb
godmin-1.3.0 lib/godmin/generators/base.rb
godmin-1.2.0 lib/godmin/generators/base.rb
godmin-1.1.0 lib/godmin/generators/base.rb
godmin-1.0.0 lib/godmin/generators/base.rb
godmin-0.12.4 lib/godmin/generators/base.rb
godmin-0.12.3 lib/godmin/generators/base.rb