Class: Evil::Client::Policy

Inherits:
Tram::Policy
  • Object
show all
Defined in:
lib/evil/client/policy.rb

Overview

Base class for policies that validate settings

Class Attribute Summary collapse

Class Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object (private)



52
53
54
# File 'lib/evil/client/policy.rb', line 52

def method_missing(*args)
  respond_to_missing?(*args) ? settings.__send__(*args) : super
end

Class Attribute Details

.settingsClass? (readonly)

Reference to the settings class whose instances validates the policy

Returns:

  • (Class, nil)


22
23
24
# File 'lib/evil/client/policy.rb', line 22

def settings
  @settings
end

Class Method Details

.for(settings) ⇒ Class

Subclasses itself for a settings class

Parameters:

  • settings (Class)

    Settings class to validate

Returns:

  • (Class)


12
13
14
15
16
# File 'lib/evil/client/policy.rb', line 12

def for(settings)
  Class.new(self).tap do |klass|
    klass.send :instance_variable_set, :@settings, settings
  end
end

.nameString? Also known as: to_s, to_sym, inspect

Delegates the name of the policy to the name of checked settings

Returns:

  • (String, nil)


28
29
30
# File 'lib/evil/client/policy.rb', line 28

def name
  "#{settings}.policy"
end