class IpPermission

Public Class Methods

new(group, ip, ingress, exclusions) click to toggle source
# File lib/ec2/ip_permission.rb, line 4
def initialize(group, ip, ingress, exclusions)
  @group = group
  @ip = ip
  @ingress = ingress
  @exclusions = exclusions
end

Public Instance Methods

traffic() click to toggle source
# File lib/ec2/ip_permission.rb, line 11
def traffic
  cidr_traffic + group_traffic
end

Private Instance Methods

cidr_traffic() click to toggle source
# File lib/ec2/ip_permission.rb, line 20
def cidr_traffic
  @ip.ip_ranges
    .select { |range| !@exclusions.match(range)}
    .collect { |range|
    Traffic.new(@ingress, range.cidr_ip, @group.name, port_range)
  }
end
group_traffic() click to toggle source
# File lib/ec2/ip_permission.rb, line 28
def group_traffic
  @ip.groups
    .select { |gp| !@exclusions.match(gp.name)}
    .collect { |gp|
    Traffic.new(@ingress, gp.name, @group.name, port_range)
  }
end
port_range() click to toggle source
# File lib/ec2/ip_permission.rb, line 16
def port_range
  @ip.protocol == '-1' ? '*' : [@ip.from, @ip.to].uniq.join('-') + '/' + @ip.protocol
end