class Piculet::DSL::EC2::SecurityGroup
Public Class Methods
new(context, name, vpc, &block)
click to toggle source
# File lib/piculet/dsl/security-group.rb, line 7 def initialize(context, name, vpc, &block) @name = name @vpc = vpc @context = context.merge(:security_group_name => name) @result = OpenStruct.new({ :name => name, :tags => {}, :ingress => [], :egress => [], }) instance_eval(&block) end
Public Instance Methods
result()
click to toggle source
# File lib/piculet/dsl/security-group.rb, line 22 def result unless @result.description raise "SecurityGroup `#{@name}`: `description` is required" end @result end
Private Instance Methods
description(value)
click to toggle source
# File lib/piculet/dsl/security-group.rb, line 31 def description(value) @result.description = value end
egress(&block)
click to toggle source
# File lib/piculet/dsl/security-group.rb, line 57 def egress(&block) if @egress_is_defined raise "SecurityGroup `#{@name}`: `egress` is already defined" end unless @vpc raise "SecurityGroup `#{@name}`: Cannot define `egress` in classic" end @result.egress = Permissions.new(@context, @name, :egress, &block).result @egress_is_defined = true end
ingress(&block)
click to toggle source
# File lib/piculet/dsl/security-group.rb, line 48 def ingress(&block) if @ingress_is_defined raise "SecurityGroup `#{@name}`: `ingress` is already defined" end @result.ingress = Permissions.new(@context, @name, :ingress, &block).result @ingress_is_defined = true end