Sha256: 0d47271cd972b5f21d460a4a7d64b0059c64b9e0fcf7b2ce27c447b53f7a7d32

Contents?: true

Size: 819 Bytes

Versions: 8

Compression:

Stored size: 819 Bytes

Contents

# frozen_string_literal: true

require "rails/generators"

module ActionPolicy
  module Generators
    class PolicyGenerator < ::Rails::Generators::NamedBase
      source_root File.expand_path("templates", __dir__)

      class_option :parent, type: :string, desc: "The parent class for the generated policy"

      def run_install_if_needed
        in_root do
          return if File.exist?("app/policies/application_policy.rb")
        end

        generate "action_policy:install"
      end

      def create_policy
        template "policy.rb", File.join("app/policies", class_path, "#{file_name}_policy.rb")
      end

      hook_for :test_framework

      private

      def parent_class_name
        parent || "ApplicationPolicy"
      end

      def parent
        options[:parent]
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
action_policy-0.7.3 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.7.2 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.7.1 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.7.0 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.6.9 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.6.8 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.6.7 lib/generators/action_policy/policy/policy_generator.rb
action_policy-0.6.6 lib/generators/action_policy/policy/policy_generator.rb