Class: Mutant::Matcher::Config Private

Inherits:
Object
  • Object
show all
Includes:
Adamantium
Defined in:
lib/mutant/matcher/config.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Subject matcher configuration

Constant Summary collapse

INSPECT_FORMAT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

"#<#{self} %s>"
ATTRIBUTE_DELIMITER =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

' '
ATTRIBUTE_FORMAT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

'%s: [%s]'
ENUM_DELIMITER =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

','
EMPTY_ATTRIBUTES =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

'empty'
PRESENTATIONS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

IceNine.deep_freeze(
  ignore_expressions: :syntax,
  match_expressions:  :syntax,
  start_expressions:  :syntax,
  subject_filters:    :inspect
)
DEFAULT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

new(Hash[anima.attribute_names.map { |name| [name, []] }])

Instance Method Summary collapse

Instance Method Details

#add(attribute, value) ⇒ Config

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Add value to configurable collection

Parameters:

  • attribute (Symbol)
  • value (Object)

Returns:



43
44
45
# File 'lib/mutant/matcher/config.rb', line 43

def add(attribute, value)
  with(attribute => public_send(attribute) + [value])
end

#inspectString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Inspection string

Returns:

  • (String)


32
33
34
# File 'lib/mutant/matcher/config.rb', line 32

def inspect
  INSPECT_FORMAT % inspect_attributes
end

#merge(other) ⇒ Config

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Merge with other config

Parameters:

Returns:



52
53
54
55
56
57
58
# File 'lib/mutant/matcher/config.rb', line 52

def merge(other)
  self.class.new(
    to_h
      .map { |name, value| [name, value + other.public_send(name)] }
      .to_h
  )
end