Sha256: ec26ef0ea91da547d12cff84cabd0e1bf12230329781087984f910f620f29142

Contents?: true

Size: 632 Bytes

Versions: 100

Compression:

Stored size: 632 Bytes

Contents

require 'netaddr'

module Convection
  module Model
    module Mixin
      ##
      # Map IP protocol names to numbers
      ##
      module Protocol
        class << self
          def lookup(value)
            case value
            when :any then -1
            when :icmp then 1
            when :tcp then 6
            when :udp then 17
            else value
            end
          end
        end

        def protocol_property(name = :protocol, property_name = 'IpProtocol')
          property(name, property_name,
                   :transform => Mixin::Protocol.method(:lookup))
        end
      end
    end
  end
end

Version data entries

100 entries across 100 versions & 1 rubygems

Version Path
convection-2.3.1 lib/convection/model/mixin/protocol.rb
convection-2.3.0 lib/convection/model/mixin/protocol.rb
convection-2.2.29 lib/convection/model/mixin/protocol.rb
convection-2.2.28.pre.beta.2 lib/convection/model/mixin/protocol.rb
convection-2.2.28.pre.beta.1 lib/convection/model/mixin/protocol.rb
convection-2.2.27 lib/convection/model/mixin/protocol.rb
convection-2.2.26 lib/convection/model/mixin/protocol.rb
convection-2.2.25 lib/convection/model/mixin/protocol.rb
convection-2.2.24 lib/convection/model/mixin/protocol.rb
convection-2.2.23 lib/convection/model/mixin/protocol.rb
convection-2.2.22 lib/convection/model/mixin/protocol.rb
convection-2.2.21 lib/convection/model/mixin/protocol.rb
convection-2.2.20 lib/convection/model/mixin/protocol.rb
convection-2.2.19 lib/convection/model/mixin/protocol.rb
convection-2.2.18 lib/convection/model/mixin/protocol.rb
convection-2.2.17 lib/convection/model/mixin/protocol.rb
convection-2.2.16 lib/convection/model/mixin/protocol.rb
convection-2.2.15 lib/convection/model/mixin/protocol.rb
convection-2.2.14 lib/convection/model/mixin/protocol.rb
convection-2.2.13 lib/convection/model/mixin/protocol.rb