class Substation::DSL::Guard
A guard used for rejecting invalid names in {DSL}
Public Class Methods
new(_reserved_names = EMPTY_ARRAY)
click to toggle source
Initialize a new instance
@param [Enumerable<Symbol>] reserved_names
a list of reserved names
@return [undefined]
@api private
Calls superclass method
# File lib/substation/dsl/guard.rb, line 20 def initialize(_reserved_names = EMPTY_ARRAY) super end
Public Instance Methods
call(name, registry)
click to toggle source
Raise if {#name} is either reserved or already registered
@param [Symbol] name
the name to test
@param [#include?] registry
the registry to test
@raise [AlreadyRegisteredError]
if +name+ is already registered
@raise [ReservedNameError]
if +name+ is a reserved name
@return [undefined]
@api private
# File lib/substation/dsl/guard.rb, line 41 def call(name, registry) raise_if_already_registered(name, registry) raise_if_reserved(name) end
Private Instance Methods
raise_if_already_registered(name, registry)
click to toggle source
Raise if name
is already included in {#names}
@param [Symbol] name
the name to test
@raise [AlreadyRegisteredError]
@return [undefined]
@api private
# File lib/substation/dsl/guard.rb, line 58 def raise_if_already_registered(name, registry) if registry.include?(name) raise AlreadyRegisteredError.new(name) end end
raise_if_reserved(name)
click to toggle source
Raise if {Chain::DSL.methods} include name
@param [Symbol] name
the name to test
@raise [ReservedNameError]
@return [undefined]
@api private
# File lib/substation/dsl/guard.rb, line 74 def raise_if_reserved(name) if reserved_names.include?(name) raise ReservedNameError.new(name) end end