Class: PadlockAuth::Utils::AbstractBuilder Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/padlock_auth/utils/abstract_builder.rb

Overview

This class is abstract.

Abstract base class for implementing configuration builders.

Define a ‘validate!` method on the configuration instance to validate the configuration.

Examples:

class MyConfig
  class Builder < PadlockAuth::Utils::AbstractBuilder
    def name(value)
      config.instance_variable_set(:@name, value)
    end
  end

  def self.build(&block)
    Builder.new(self, &block).build
  end

  attr_reader :name
end

config = MyConfig.build do
  name 'My Name'
end

Direct Known Subclasses

Config::Builder, Token::Strategy::Builder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) { ... } ⇒ AbstractBuilder

Returns a new instance of AbstractBuilder.

Yields:

  • block to configure the instance



38
39
40
41
# File 'lib/padlock_auth/utils/abstract_builder.rb', line 38

def initialize(config, &)
  @config = config
  instance_eval(&) if block_given?
end

Instance Attribute Details

#configObject (readonly)



32
33
34
# File 'lib/padlock_auth/utils/abstract_builder.rb', line 32

def config
  @config
end

Instance Method Details

#buildObject

Builds and validates configuration.

Invokes ‘validate!` on the configuration instance if it responds to it.



49
50
51
52
# File 'lib/padlock_auth/utils/abstract_builder.rb', line 49

def build
  @config.validate! if @config.respond_to?(:validate!)
  @config
end