Class: HolePunch::GroupDSL

Inherits:
BaseDSL
  • Object
show all
Defined in:
lib/holepunch/dsl.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseDSL

#env, #eval_dsl

Constructor Details

#initialize(env, id) ⇒ GroupDSL

Returns a new instance of GroupDSL.



64
65
66
# File 'lib/holepunch/dsl.rb', line 64

def initialize(env, id)
  super(env, SecurityGroup.new(id, dependency: false))
end

Class Method Details

.evaluate(env, *args, &block) ⇒ Object



60
61
62
# File 'lib/holepunch/dsl.rb', line 60

def self.evaluate(env, *args, &block)
  new(env, *args).eval_dsl(&block)
end

Instance Method Details

#desc(str) ⇒ Object



68
69
70
# File 'lib/holepunch/dsl.rb', line 68

def desc(str)
  @model.desc = str
end

#icmp(*sources) ⇒ Object Also known as: ping



72
73
74
75
# File 'lib/holepunch/dsl.rb', line 72

def icmp(*sources)
  sources << '0.0.0.0/0' if sources.empty?
  @model.ingresses << Permission.new(:icmp, 0, sources.flatten)
end

#tcp(ports, *sources) ⇒ Object



78
79
80
81
# File 'lib/holepunch/dsl.rb', line 78

def tcp(ports, *sources)
  sources << '0.0.0.0/0' if sources.empty?
  @model.ingresses << Permission.new(:tcp, ports, sources.flatten)
end

#udp(ports, *sources) ⇒ Object



83
84
85
86
# File 'lib/holepunch/dsl.rb', line 83

def udp(ports, *sources)
  sources << '0.0.0.0/0' if sources.empty?
  @model.ingresses << Permission.new(:udp, ports, sources.flatten)
end