lib/pio/match.rb in pio-0.18.1 vs lib/pio/match.rb in pio-0.18.2
- old
+ new
@@ -1,11 +1,10 @@
require 'English'
require 'bindata'
require 'pio/open_flow'
require 'pio/type/ip_address'
require 'pio/type/mac_address'
-require 'forwardable'
module Pio
# Fields to match against flows
class Match
# Flow wildcards
@@ -125,30 +124,10 @@
def self.read(binary)
MatchFormat.read binary
end
- extend Forwardable
-
- def_delegators :@format, :wildcards
- def_delegators :@format, :in_port
- def_delegators :@format, :dl_vlan
- def_delegators :@format, :dl_src
- def_delegators :@format, :dl_dst
- def_delegators :@format, :dl_type
- def_delegators :@format, :nw_proto
- def_delegators :@format, :tp_src
- def_delegators :@format, :tp_dst
- def_delegators :@format, :nw_src
- def_delegators :@format, :nw_src_all
- def_delegators :@format, :nw_dst
- def_delegators :@format, :nw_dst_all
- def_delegators :@format, :dl_vlan_pcp
- def_delegators :@format, :nw_tos
- def_delegators :@format, :to_binary_s
- def_delegator :@format, :to_binary_s, :to_binary
-
# rubocop:disable MethodLength
# This method smells of :reek:FeatureEnvy
# This method smells of :reek:DuplicateMethodCall
def initialize(user_options)
flags = Wildcards::FLAGS.each_with_object({}) do |each, memo|
@@ -163,11 +142,19 @@
end
@format = MatchFormat.new({ wildcards: flags }.merge user_options)
end
# rubocop:enable MethodLength
+ def to_binary
+ @format.to_binary_s
+ end
+
def ==(other)
return false unless other
to_binary == other.to_binary
+ end
+
+ def method_missing(method, *args, &block)
+ @format.__send__ method, *args, &block
end
end
end