Class: ArchUnit::Layers::FluentApi::LayerDependencyRuleBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb

Overview

Immutable stage adding an allowlist or blocklist policy for one layer.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(architecture, layer_name) ⇒ LayerDependencyRuleBuilder

Returns a new instance of LayerDependencyRuleBuilder.



10
11
12
13
14
# File 'lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb', line 10

def initialize(architecture, layer_name)
  @architecture = architecture_value(architecture)
  @layer_name = layer_name_value(layer_name)
  freeze
end

Instance Attribute Details

#architectureObject (readonly)

Returns the value of attribute architecture.



8
9
10
# File 'lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb', line 8

def architecture
  @architecture
end

#layer_nameObject (readonly)

Returns the value of attribute layer_name.



8
9
10
# File 'lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb', line 8

def layer_name
  @layer_name
end

Instance Method Details

#may_not_depend_on_layers(*layer_names) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb', line 20

def may_not_depend_on_layers(*layer_names)
  if layer_names.empty?
    raise ArgumentError, 'may_not_depend_on_layers requires at least one layer name'
  end

  architecture.__send__(:with_forbidden_dependencies, layer_name, layer_names)
end

#may_only_depend_on_layers(*layer_names) ⇒ Object



16
17
18
# File 'lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb', line 16

def may_only_depend_on_layers(*layer_names)
  architecture.__send__(:with_allowed_dependencies, layer_name, layer_names)
end