Sha256: 4280a2ca175fdc2df658eaf256c89ab5b7943cea2d78f60276f37fd89379b742

Contents?: true

Size: 536 Bytes

Versions: 2

Compression:

Stored size: 536 Bytes

Contents

# frozen_string_literal: true

module Guarda
  class PolicyFinder
    def initialize(controller_name)
      @controller_name = controller_name
    end

    def self.find(controller_name)
      new(controller_name).find
    end

    def find
      policy_class.presence || raise(NotFoundError, policy_class_name)
    end

    private

    attr_reader :controller_name

    def policy_class
      policy_class_name.safe_constantize
    end

    def policy_class_name
      controller_name.to_s.camelize.concat("Policy")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
guarda-0.4.0 lib/guarda/policy_finder.rb
guarda-0.2.0 lib/guarda/policy_finder.rb