Class: Mt::Wall::DSL::GroupBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mt/wall/dsl/group_builder.rb

Overview

Block context for the ‘group` verb. Declares member hosts and/or other groups by name. Membership is resolved and flattened later by the Compiler (RouterOS address-lists are not nestable).

group "frontend" do
  member "web"
  member "api"
end

Instance Method Summary collapse

Constructor Details

#initialize(name, comment: nil) ⇒ GroupBuilder

Returns a new instance of GroupBuilder.



15
16
17
18
19
# File 'lib/mt/wall/dsl/group_builder.rb', line 15

def initialize(name, comment: nil)
  @name = name
  @comment = comment
  @members = []
end

Instance Method Details

#member(name) ⇒ void

This method returns an undefined value.

Parameters:

  • name (String)

    name of a host or another group



23
24
25
# File 'lib/mt/wall/dsl/group_builder.rb', line 23

def member(name)
  @members << Validators.validate_name!(name, label: "member")
end

#to_groupModel::Group

Materialize the collected members into a Model::Group.

Returns:



29
30
31
32
# File 'lib/mt/wall/dsl/group_builder.rb', line 29

def to_group
  Model::Group.new(name: Validators.validate_name!(@name, label: "group"),
                   members: @members, comment: @comment)
end