Class: Mutant::Matcher::Config Private

Inherits:
Object
  • Object
show all
Includes:
Unparser::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.

{
  ignore:            :syntax,
  start_expressions: :syntax,
  subject_filters:   :inspect,
  subjects:          :syntax
}.freeze
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(anima.attribute_names.to_h { |name| [name, []] })
LOADER =

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.

Transform::Sequence.new(
  [
    Transform::Hash.new(
      optional: [
        Transform::Hash::Key.new('subjects', expression_array),
        Transform::Hash::Key.new('ignore', expression_array)
      ],
      required: []
    ),
    Transform::Hash::Symbolize.new,
    ->(attributes) { Either::Right.new(DEFAULT.with(attributes)) }
  ]
)

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:



65
66
67
# File 'lib/mutant/matcher/config.rb', line 65

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)


54
55
56
# File 'lib/mutant/matcher/config.rb', line 54

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:



74
75
76
77
78
79
# File 'lib/mutant/matcher/config.rb', line 74

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