Class: PolicyCheck::ModuleBuilder

Inherits:
Module
  • Object
show all
Defined in:
lib/policy_check/module_builder.rb

Overview

Module Builder to define methods to make decisions

Instance Method Summary collapse

Constructor Details

#initialize(name, &block) ⇒ ModuleBuilder

PolicyCheck#policy method will call this method to create a ModuleBuilder instance



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/policy_check/module_builder.rb', line 9

def initialize(name, &block) # rubocop:disable Lint/MissingSuper, Metrics/MethodLength
  define_method name ? "#{name}?" : "valid?" do
    errors = ErrorList.new(self, &block)
    errors.valid?
  end

  if name.nil?
    define_method "invalid?" do
      errors = ErrorList.new(self, &block)
      !errors.valid?
    end
  end

  define_method name ? "#{name}_errors" : "error_messages" do
    errors = ErrorList.new(self, &block)
    errors.error_messages
  end
end