pio 0.15.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/examples/features_new.rb +15 -15
- data/examples/packet_in_new.rb +5 -5
- data/features/features_read.feature +5 -0
- data/lib/pio/dhcp/field_util.rb +1 -1
- data/lib/pio/features.rb +2 -2
- data/lib/pio/lldp/frame.rb +1 -1
- data/lib/pio/open_flow/message.rb +6 -3
- data/lib/pio/open_flow/phy_port.rb +27 -16
- data/lib/pio/packet_in.rb +4 -4
- data/lib/pio/port_status.rb +7 -3
- data/lib/pio/version.rb +1 -1
- data/pio.gemspec +6 -6
- data/spec/pio/mac_spec.rb +1 -1
- metadata +14 -14
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f75df3f4f4091dda09de3b77789eea400df989dc
         | 
| 4 | 
            +
              data.tar.gz: 1cc6ef0de733c14e84efe1fff569ed7de0943c03
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 19d72385b493052449cd2de18df8bed3a6385fb452ffc52883f6b9f781b09c9807596869920d59fce09dc812e5f9d9434be249f27389095ce650655b69e1d7e2
         | 
| 7 | 
            +
              data.tar.gz: 6862a78e369025dc34d89086a8f10cf4fd7ca19dbdea867de0d583350cb4fd9c937f4cef1bb09117e87912d5d747ec4c5deeb8c9f5bfafccb87c155d079baaa3
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -3,6 +3,11 @@ | |
| 3 3 | 
             
            ## develop (unreleased)
         | 
| 4 4 |  | 
| 5 5 |  | 
| 6 | 
            +
            ## 0.15.2 (2/18/2015)
         | 
| 7 | 
            +
            ### Changes
         | 
| 8 | 
            +
            * [#128](https://github.com/trema/pio/pull/128): Field accessors return Ruby primitives (Fixnum, Symbol, etc.).
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 6 11 | 
             
            ## 0.15.1 (2/17/2015)
         | 
| 7 12 | 
             
            ### Bugs fixed
         | 
| 8 13 | 
             
            * [#127](https://github.com/trema/pio/pull/127): Make OpenFlow classes thread safe.
         | 
    
        data/examples/features_new.rb
    CHANGED
    
    | @@ -6,20 +6,20 @@ request.to_binary  # => Features Request message in binary format. | |
| 6 6 | 
             
            # The Features xid (transaction_id)
         | 
| 7 7 | 
             
            # should be same as that of the request.
         | 
| 8 8 | 
             
            reply = Pio::Features::Reply.new(
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 9 | 
            +
              xid: request.xid,
         | 
| 10 | 
            +
              dpid: 0x123,
         | 
| 11 | 
            +
              n_buffers: 0x100,
         | 
| 12 | 
            +
              n_tables: 0xfe,
         | 
| 13 | 
            +
              capabilities: [:flow_stats, :table_stats, :port_stats,
         | 
| 14 | 
            +
                             :queue_stats, :arp_match_ip],
         | 
| 15 | 
            +
              actions: [:output, :set_vlan_vid, :set_vlan_pcp, :strip_vlan,
         | 
| 16 | 
            +
                        :set_dl_src, :set_dl_dst, :set_nw_src, :set_nw_dst,
         | 
| 17 | 
            +
                        :set_nw_tos, :set_tp_src, :set_tp_dst, :enqueue],
         | 
| 18 | 
            +
              ports: [{ port_no: 1,
         | 
| 19 | 
            +
                        hardware_address: '11:22:33:44:55:66',
         | 
| 20 | 
            +
                        name: 'port123',
         | 
| 21 | 
            +
                        config: [:port_down],
         | 
| 22 | 
            +
                        state: [:link_down],
         | 
| 23 | 
            +
                        curr: [:port_10gb_fd, :port_copper] }]
         | 
| 24 24 | 
             
                    )
         | 
| 25 25 | 
             
            reply.to_binary  # => Features Reply message in binary format.
         | 
    
        data/examples/packet_in_new.rb
    CHANGED
    
    | @@ -10,10 +10,10 @@ data_dump = [ | |
| 10 10 | 
             
            ].pack('C*')
         | 
| 11 11 |  | 
| 12 12 | 
             
            packet_in = Pio::PacketIn.new(
         | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 13 | 
            +
              transaction_id: 0,
         | 
| 14 | 
            +
              buffer_id: 0xffffff00,
         | 
| 15 | 
            +
              in_port: 1,
         | 
| 16 | 
            +
              reason: :no_match,
         | 
| 17 | 
            +
              data: data_dump
         | 
| 18 18 | 
             
                        )
         | 
| 19 19 | 
             
            packet_in.to_binary  # => Packet-In message in binary format.
         | 
| @@ -32,6 +32,7 @@ Feature: Pio::Features.read | |
| 32 32 | 
             
                | capabilities                 | [:flow_stats, :table_stats, :port_stats, :arp_match_ip]                                                                                                   |
         | 
| 33 33 | 
             
                | actions                      | [:output, :set_vlan_vid, :set_vlan_pcp, :strip_vlan, :set_dl_src, :set_dl_dst, :set_nw_src, :set_nw_dst, :set_nw_tos, :set_tp_src, :set_tp_dst, :enqueue] |
         | 
| 34 34 | 
             
                | ports.length                 | 3                                                                                                                                                         |
         | 
| 35 | 
            +
                | ports.first.datapath_id      | 1                                                                                                                                                         |
         | 
| 35 36 | 
             
                | ports.first.port_no          | 2                                                                                                                                                         |
         | 
| 36 37 | 
             
                | ports.first.mac_address      | 16:7d:a4:37:ba:10                                                                                                                                         |
         | 
| 37 38 | 
             
                | ports.first.hardware_address | 16:7d:a4:37:ba:10                                                                                                                                         |
         | 
| @@ -43,6 +44,7 @@ Feature: Pio::Features.read | |
| 43 44 | 
             
                | ports.first.supported        | []                                                                                                                                                        |
         | 
| 44 45 | 
             
                | ports.first.peer             | []                                                                                                                                                        |
         | 
| 45 46 | 
             
                | ports.last.port_no           | 1                                                                                                                                                         |
         | 
| 47 | 
            +
                | ports.last.number            | 1                                                                                                                                                         |
         | 
| 46 48 | 
             
                | ports.last.mac_address       | 62:94:3a:f6:40:db                                                                                                                                         |
         | 
| 47 49 | 
             
                | ports.last.hardware_address  | 62:94:3a:f6:40:db                                                                                                                                         |
         | 
| 48 50 | 
             
                | ports.last.name              | trema1-0                                                                                                                                                  |
         | 
| @@ -52,3 +54,6 @@ Feature: Pio::Features.read | |
| 52 54 | 
             
                | ports.last.advertised        | []                                                                                                                                                        |
         | 
| 53 55 | 
             
                | ports.last.supported         | []                                                                                                                                                        |
         | 
| 54 56 | 
             
                | ports.last.peer              | []                                                                                                                                                        |
         | 
| 57 | 
            +
                | ports.last.up?               | true                                                                                                                                                      |
         | 
| 58 | 
            +
                | ports.last.down?             | false                                                                                                                                                     |
         | 
| 59 | 
            +
                | ports.last.local?            | false                                                                                                                                                     |
         | 
    
        data/lib/pio/dhcp/field_util.rb
    CHANGED
    
    
    
        data/lib/pio/features.rb
    CHANGED
    
    
    
        data/lib/pio/lldp/frame.rb
    CHANGED
    
    
| @@ -39,19 +39,22 @@ module Pio | |
| 39 39 | 
             
                  end
         | 
| 40 40 | 
             
                  # rubocop:enable MethodLength
         | 
| 41 41 |  | 
| 42 | 
            +
                  # rubocop:disable MethodLength
         | 
| 42 43 | 
             
                  def self._define_open_flow_accessors
         | 
| 43 44 | 
             
                    proc do
         | 
| 44 | 
            -
                      def_delegators :@format, : | 
| 45 | 
            +
                      def_delegators :@format, :snapshot
         | 
| 46 | 
            +
                      def_delegators :snapshot, :open_flow_header
         | 
| 45 47 | 
             
                      def_delegators :open_flow_header, :ofp_version
         | 
| 46 48 | 
             
                      def_delegators :open_flow_header, :message_type
         | 
| 47 49 | 
             
                      def_delegators :open_flow_header, :message_length
         | 
| 48 50 | 
             
                      def_delegators :open_flow_header, :transaction_id
         | 
| 49 51 | 
             
                      def_delegator :open_flow_header, :transaction_id, :xid
         | 
| 50 52 |  | 
| 51 | 
            -
                      def_delegators  | 
| 52 | 
            -
                      def_delegator  | 
| 53 | 
            +
                      def_delegators :snapshot, :body
         | 
| 54 | 
            +
                      def_delegator :snapshot, :body, :user_data
         | 
| 53 55 | 
             
                    end
         | 
| 54 56 | 
             
                  end
         | 
| 57 | 
            +
                  # rubocop:enable MethodLength
         | 
| 55 58 |  | 
| 56 59 | 
             
                  def self._define_self_read
         | 
| 57 60 | 
             
                    proc do
         | 
| @@ -52,28 +52,39 @@ module Pio | |
| 52 52 | 
             
                  port_feature :supported
         | 
| 53 53 | 
             
                  port_feature :peer
         | 
| 54 54 |  | 
| 55 | 
            -
                   | 
| 56 | 
            -
                   | 
| 55 | 
            +
                  # rubocop:disable MethodLength
         | 
| 56 | 
            +
                  def snapshot
         | 
| 57 | 
            +
                    super.tap do |ss|
         | 
| 58 | 
            +
                      def ss.datapath_id
         | 
| 59 | 
            +
                        @datapath_id || fail
         | 
| 60 | 
            +
                      end
         | 
| 57 61 |  | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 62 | 
            +
                      def ss.dpid
         | 
| 63 | 
            +
                        @datapath_id || fail
         | 
| 64 | 
            +
                      end
         | 
| 61 65 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 66 | 
            +
                      def ss.number
         | 
| 67 | 
            +
                        port_no
         | 
| 68 | 
            +
                      end
         | 
| 65 69 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 70 | 
            +
                      def ss.mac_address
         | 
| 71 | 
            +
                        hardware_address
         | 
| 72 | 
            +
                      end
         | 
| 69 73 |  | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 74 | 
            +
                      def ss.up?
         | 
| 75 | 
            +
                        !down?
         | 
| 76 | 
            +
                      end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                      def ss.down?
         | 
| 79 | 
            +
                        config.include?(:port_down) || state.include?(:link_down)
         | 
| 80 | 
            +
                      end
         | 
| 73 81 |  | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 82 | 
            +
                      def ss.local?
         | 
| 83 | 
            +
                        port_no == PortNumber::NUMBERS[:local]
         | 
| 84 | 
            +
                      end
         | 
| 85 | 
            +
                    end
         | 
| 76 86 | 
             
                  end
         | 
| 87 | 
            +
                  # rubocop:enable MethodLength
         | 
| 77 88 | 
             
                end
         | 
| 78 89 | 
             
              end
         | 
| 79 90 | 
             
            end
         | 
    
        data/lib/pio/packet_in.rb
    CHANGED
    
    | @@ -91,16 +91,16 @@ module Pio | |
| 91 91 | 
             
              end
         | 
| 92 92 |  | 
| 93 93 | 
             
              OpenFlow::Message.factory(PacketIn, OpenFlow::PACKET_IN) do
         | 
| 94 | 
            -
                attr_accessor :datapath_id
         | 
| 95 | 
            -
                alias_method :dpid, :datapath_id
         | 
| 96 | 
            -
                alias_method :dpid=, :datapath_id=
         | 
| 97 | 
            -
             | 
| 98 94 | 
             
                def_delegators :body, :buffer_id
         | 
| 99 95 | 
             
                def_delegators :body, :total_len
         | 
| 100 96 | 
             
                def_delegators :body, :in_port
         | 
| 101 97 | 
             
                def_delegators :body, :reason
         | 
| 102 98 | 
             
                def_delegators :body, :data
         | 
| 103 99 |  | 
| 100 | 
            +
                attr_accessor :datapath_id
         | 
| 101 | 
            +
                alias_method :dpid, :datapath_id
         | 
| 102 | 
            +
                alias_method :dpid=, :datapath_id=
         | 
| 103 | 
            +
             | 
| 104 104 | 
             
                def parsed_data
         | 
| 105 105 | 
             
                  @parsed_data ||= PacketIn::DataParser.read(data)
         | 
| 106 106 | 
             
                end
         | 
    
        data/lib/pio/port_status.rb
    CHANGED
    
    | @@ -31,10 +31,14 @@ module Pio | |
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              OpenFlow::Message.factory(PortStatus, OpenFlow::PORT_STATUS) do
         | 
| 34 | 
            -
                def_delegators :body, : | 
| 34 | 
            +
                def_delegators :body, :reason
         | 
| 35 35 |  | 
| 36 | 
            -
                 | 
| 37 | 
            -
             | 
| 36 | 
            +
                attr_writer :datapath_id
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                def desc
         | 
| 39 | 
            +
                  @desc ||= @format.body.desc.snapshot
         | 
| 40 | 
            +
                  @desc.instance_variable_set :@datapath_id, @datapath_id
         | 
| 41 | 
            +
                  @desc
         | 
| 38 42 | 
             
                end
         | 
| 39 43 | 
             
              end
         | 
| 40 44 | 
             
            end
         | 
    
        data/lib/pio/version.rb
    CHANGED
    
    
    
        data/pio.gemspec
    CHANGED
    
    | @@ -37,11 +37,11 @@ Gem::Specification.new do |gem| | |
| 37 37 | 
             
              gem.add_dependency 'bindata', '~> 2.1.0'
         | 
| 38 38 |  | 
| 39 39 | 
             
              gem.add_development_dependency 'rake'
         | 
| 40 | 
            -
              gem.add_development_dependency 'bundler', '~> 1.8. | 
| 40 | 
            +
              gem.add_development_dependency 'bundler', '~> 1.8.2'
         | 
| 41 41 | 
             
              gem.add_development_dependency 'pry', '~> 0.10.1'
         | 
| 42 42 |  | 
| 43 43 | 
             
              # Guard
         | 
| 44 | 
            -
              gem.add_development_dependency 'guard', '~> 2. | 
| 44 | 
            +
              gem.add_development_dependency 'guard', '~> 2.12.1'
         | 
| 45 45 | 
             
              gem.add_development_dependency 'guard-bundler', '~> 2.1.0'
         | 
| 46 46 | 
             
              gem.add_development_dependency 'guard-cucumber', '~> 1.5.3'
         | 
| 47 47 | 
             
              gem.add_development_dependency 'guard-rspec', '~> 4.5.0'
         | 
| @@ -58,11 +58,11 @@ Gem::Specification.new do |gem| | |
| 58 58 | 
             
              # Test
         | 
| 59 59 | 
             
              gem.add_development_dependency 'codeclimate-test-reporter', '~> 0.4.6'
         | 
| 60 60 | 
             
              gem.add_development_dependency 'coveralls', '~> 0.7.9'
         | 
| 61 | 
            -
              gem.add_development_dependency 'cucumber', '~> 1.3. | 
| 61 | 
            +
              gem.add_development_dependency 'cucumber', '~> 1.3.19'
         | 
| 62 62 | 
             
              gem.add_development_dependency 'flay', '~> 2.6.1'
         | 
| 63 63 | 
             
              gem.add_development_dependency 'flog', '~> 4.3.2'
         | 
| 64 | 
            -
              gem.add_development_dependency 'reek', '~>  | 
| 64 | 
            +
              gem.add_development_dependency 'reek', '~> 2.0.0'
         | 
| 65 65 | 
             
              gem.add_development_dependency 'rspec', '~> 3.2.0'
         | 
| 66 | 
            -
              gem.add_development_dependency 'rspec-given', '~> 3. | 
| 67 | 
            -
              gem.add_development_dependency 'rubocop', '~> 0. | 
| 66 | 
            +
              gem.add_development_dependency 'rspec-given', '~> 3.7.0'
         | 
| 67 | 
            +
              gem.add_development_dependency 'rubocop', '~> 0.29.1'
         | 
| 68 68 | 
             
            end
         | 
    
        data/spec/pio/mac_spec.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pio
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.15. | 
| 4 | 
            +
              version: 0.15.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Yasuhito Takamiya
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-02- | 
| 11 | 
            +
            date: 2015-02-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bindata
         | 
| @@ -44,14 +44,14 @@ dependencies: | |
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - ~>
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 1.8. | 
| 47 | 
            +
                    version: 1.8.2
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ~>
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: 1.8. | 
| 54 | 
            +
                    version: 1.8.2
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: pry
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -72,14 +72,14 @@ dependencies: | |
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - ~>
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: 2. | 
| 75 | 
            +
                    version: 2.12.1
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 80 | 
             
                - - ~>
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: 2. | 
| 82 | 
            +
                    version: 2.12.1
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: guard-bundler
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -254,14 +254,14 @@ dependencies: | |
| 254 254 | 
             
                requirements:
         | 
| 255 255 | 
             
                - - ~>
         | 
| 256 256 | 
             
                  - !ruby/object:Gem::Version
         | 
| 257 | 
            -
                    version: 1.3. | 
| 257 | 
            +
                    version: 1.3.19
         | 
| 258 258 | 
             
              type: :development
         | 
| 259 259 | 
             
              prerelease: false
         | 
| 260 260 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 261 261 | 
             
                requirements:
         | 
| 262 262 | 
             
                - - ~>
         | 
| 263 263 | 
             
                  - !ruby/object:Gem::Version
         | 
| 264 | 
            -
                    version: 1.3. | 
| 264 | 
            +
                    version: 1.3.19
         | 
| 265 265 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 266 266 | 
             
              name: flay
         | 
| 267 267 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -296,14 +296,14 @@ dependencies: | |
| 296 296 | 
             
                requirements:
         | 
| 297 297 | 
             
                - - ~>
         | 
| 298 298 | 
             
                  - !ruby/object:Gem::Version
         | 
| 299 | 
            -
                    version:  | 
| 299 | 
            +
                    version: 2.0.0
         | 
| 300 300 | 
             
              type: :development
         | 
| 301 301 | 
             
              prerelease: false
         | 
| 302 302 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 303 303 | 
             
                requirements:
         | 
| 304 304 | 
             
                - - ~>
         | 
| 305 305 | 
             
                  - !ruby/object:Gem::Version
         | 
| 306 | 
            -
                    version:  | 
| 306 | 
            +
                    version: 2.0.0
         | 
| 307 307 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 308 308 | 
             
              name: rspec
         | 
| 309 309 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -324,28 +324,28 @@ dependencies: | |
| 324 324 | 
             
                requirements:
         | 
| 325 325 | 
             
                - - ~>
         | 
| 326 326 | 
             
                  - !ruby/object:Gem::Version
         | 
| 327 | 
            -
                    version: 3. | 
| 327 | 
            +
                    version: 3.7.0
         | 
| 328 328 | 
             
              type: :development
         | 
| 329 329 | 
             
              prerelease: false
         | 
| 330 330 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 331 331 | 
             
                requirements:
         | 
| 332 332 | 
             
                - - ~>
         | 
| 333 333 | 
             
                  - !ruby/object:Gem::Version
         | 
| 334 | 
            -
                    version: 3. | 
| 334 | 
            +
                    version: 3.7.0
         | 
| 335 335 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 336 336 | 
             
              name: rubocop
         | 
| 337 337 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 338 338 | 
             
                requirements:
         | 
| 339 339 | 
             
                - - ~>
         | 
| 340 340 | 
             
                  - !ruby/object:Gem::Version
         | 
| 341 | 
            -
                    version: 0. | 
| 341 | 
            +
                    version: 0.29.1
         | 
| 342 342 | 
             
              type: :development
         | 
| 343 343 | 
             
              prerelease: false
         | 
| 344 344 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 345 345 | 
             
                requirements:
         | 
| 346 346 | 
             
                - - ~>
         | 
| 347 347 | 
             
                  - !ruby/object:Gem::Version
         | 
| 348 | 
            -
                    version: 0. | 
| 348 | 
            +
                    version: 0.29.1
         | 
| 349 349 | 
             
            description: Pure ruby packet parser and generator.
         | 
| 350 350 | 
             
            email:
         | 
| 351 351 | 
             
            - yasuhito@gmail.com
         |