class Covered::Policy::Autoload

Public Class Methods

new(name) click to toggle source
# File lib/covered/policy.rb, line 97
def initialize(name)
        @name = name
end

Public Instance Methods

call(*args) click to toggle source
# File lib/covered/policy.rb, line 113
def call(*args)
        self.new.call(*args)
end
new() click to toggle source
# File lib/covered/policy.rb, line 101
def new
        begin
                klass = Covered.const_get(@name)
        rescue NameError
                require_relative(snake_case(@name))
        end
        
        klass = Covered.const_get(@name)
        
        return klass.new
end
to_s() click to toggle source
# File lib/covered/policy.rb, line 117
def to_s
        "\#<#{self.class} loading #{@name}>"
end

Private Instance Methods

snake_case(name) click to toggle source
# File lib/covered/policy.rb, line 123
def snake_case(name)
        name.gsub(/(.+)(?=[A-Z\z])/){$1 + '_'}.downcase
end