snmpjr 0.1.0-java
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 +15 -0
 - data/.gitignore +17 -0
 - data/.rspec +3 -0
 - data/.rvmrc +1 -0
 - data/.travis.yml +13 -0
 - data/Gemfile +9 -0
 - data/LICENSE.txt +22 -0
 - data/README.md +56 -0
 - data/Rakefile +13 -0
 - data/history.rdoc +7 -0
 - data/lib/snmpjr/pdu.rb +17 -0
 - data/lib/snmpjr/session.rb +22 -0
 - data/lib/snmpjr/target.rb +15 -0
 - data/lib/snmpjr/version.rb +3 -0
 - data/lib/snmpjr/wrappers/smi.rb +9 -0
 - data/lib/snmpjr/wrappers/snmp4j-2.3.1.jar +0 -0
 - data/lib/snmpjr/wrappers/snmp4j.rb +12 -0
 - data/lib/snmpjr/wrappers/transport.rb +9 -0
 - data/lib/snmpjr.rb +36 -0
 - data/snmpjr.gemspec +23 -0
 - data/spec/integration/snmpjr_spec.rb +16 -0
 - data/spec/snmpjr/pdu_spec.rb +29 -0
 - data/spec/snmpjr/session_spec.rb +37 -0
 - data/spec/snmpjr/target_spec.rb +38 -0
 - data/spec/snmpjr_spec.rb +56 -0
 - data/spec/spec_helper.rb +12 -0
 - metadata +78 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            !binary "U0hBMQ==":
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 4 
     | 
    
         
            +
                NDA5MDUxNDEyZmM2NjFiMzEyZDQzMjliMjY5YTlkOTlmNzBiZTAzZg==
         
     | 
| 
      
 5 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 6 
     | 
    
         
            +
                NTQ4ZmE0YjZhYjllOTE4YmMzYjk1YjEwZGUwZTkxNzFjN2VjNjM5YQ==
         
     | 
| 
      
 7 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 8 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 9 
     | 
    
         
            +
                MmQyYzA2NThlNWJkMGYyNDFkZTgzZWQ4ODJiZDI5MjZmYzFiODk0MmMxNDBi
         
     | 
| 
      
 10 
     | 
    
         
            +
                ZWU1YWY2ZGU4NGUxZmMxMWM3MjEyNGE0ZGY2ODI1OTc5OWQ2NjJhZWJmYzEx
         
     | 
| 
      
 11 
     | 
    
         
            +
                OGNhYWVmNTQ2MzFjY2IwNGFkNDRmNjk1ZThlNjYzMDNiMjM4M2M=
         
     | 
| 
      
 12 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 13 
     | 
    
         
            +
                ZWNjYTE1N2Y1MGVhM2FmOWIwZmQ2ZmI5NzA3ZWIxNzZjNDU3ZjVkN2ZjMTFk
         
     | 
| 
      
 14 
     | 
    
         
            +
                MTg4ZjliMmVlOWEwNjY3OTE4NDdjOWViYTAyMzQxNGMwMWVkMjEwODA2ODIy
         
     | 
| 
      
 15 
     | 
    
         
            +
                NzA2ZWNiNDI5NWE1MzE3YTI2NTFkYWQ1ODAyNTcyZGU1NWI5NGE=
         
     | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.rspec
    ADDED
    
    
    
        data/.rvmrc
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            rvm use --create jruby-1.7.16@snmpjr
         
     | 
    
        data/.travis.yml
    ADDED
    
    | 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            language: ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            rvm:
         
     | 
| 
      
 3 
     | 
    
         
            +
            - jruby-1.7.0
         
     | 
| 
      
 4 
     | 
    
         
            +
            - jruby-1.7.16
         
     | 
| 
      
 5 
     | 
    
         
            +
            deploy:
         
     | 
| 
      
 6 
     | 
    
         
            +
              provider: rubygems
         
     | 
| 
      
 7 
     | 
    
         
            +
              api_key:
         
     | 
| 
      
 8 
     | 
    
         
            +
                secure: C9X1OQ07eVDPqOEcKQOOo+Li18J5VQ6uwsua6fNb7Mvzm5RVYKdaYMjan6gSJNkprxk5yDt/LQSZBBSSluO0yqxzyFFFBqzswPPKsYys5HVW45rFLFDs83e2YtgACEnXfNozuWoy0i3jgpN/P+eqrBlNFfuHpm4di7IBmeZimDY=
         
     | 
| 
      
 9 
     | 
    
         
            +
              gem: snmpjr
         
     | 
| 
      
 10 
     | 
    
         
            +
              on:
         
     | 
| 
      
 11 
     | 
    
         
            +
                tags: true
         
     | 
| 
      
 12 
     | 
    
         
            +
                repo: zenonas/snmpjr
         
     | 
| 
      
 13 
     | 
    
         
            +
                all_branches: true
         
     | 
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE.txt
    ADDED
    
    | 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Copyright (c) 2014 Zen Kyprianou
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            MIT License
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 6 
     | 
    
         
            +
            a copy of this software and associated documentation files (the
         
     | 
| 
      
 7 
     | 
    
         
            +
            "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 8 
     | 
    
         
            +
            without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 9 
     | 
    
         
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 10 
     | 
    
         
            +
            permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 11 
     | 
    
         
            +
            the following conditions:
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be
         
     | 
| 
      
 14 
     | 
    
         
            +
            included in all copies or substantial portions of the Software.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 17 
     | 
    
         
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 18 
     | 
    
         
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 19 
     | 
    
         
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 20 
     | 
    
         
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 21 
     | 
    
         
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 22 
     | 
    
         
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Snmpjr
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            [](https://travis-ci.org/zenonas/snmpjr)
         
     | 
| 
      
 4 
     | 
    
         
            +
            Snmpjr aims to provide a clean and simple interface to use SNMP in your ruby code. It will wrap the popular SNMP4J library in Java.
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Please note the gem is still in early develpment. Do not use as of yet!
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            ## Features
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            * Simple Synchronous SNMP v2c Get requests
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## Requirements
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            * Java 1.6+
         
     | 
| 
      
 15 
     | 
    
         
            +
            * JRuby 1.7+
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            Add this line to your application's Gemfile:
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 22 
     | 
    
         
            +
            gem 'snmpjr'
         
     | 
| 
      
 23 
     | 
    
         
            +
            ```
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            And then execute:
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                $ bundle
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            Or install it yourself as:
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                $ gem install snmpjr
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 36 
     | 
    
         
            +
            # Initialize Snmpjr with host, port and a community
         
     | 
| 
      
 37 
     | 
    
         
            +
            snmp = Snmpjr.new(:host => '127.0.0.1', :port => 161, :community => 'public')
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            # Call get on any single Oid
         
     | 
| 
      
 40 
     | 
    
         
            +
            snmp.get '1.3.6.1.2.1.1.1.0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            => 'The result'
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            # Call get on an array of Oids'
         
     | 
| 
      
 44 
     | 
    
         
            +
            snmp.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.3.0']
         
     | 
| 
      
 45 
     | 
    
         
            +
            => ['First result', 'Second result']
         
     | 
| 
      
 46 
     | 
    
         
            +
            ```
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            When you request an Array of Oids these will be pulled sequentially
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            ## Contributing
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            1. Fork it ( https://github.com/zenonas/snmpjr/fork )
         
     | 
| 
      
 53 
     | 
    
         
            +
            2. Create your feature branch (`git checkout -b my-new-feature`)
         
     | 
| 
      
 54 
     | 
    
         
            +
            3. Commit your changes (`git commit -am 'Add some feature'`)
         
     | 
| 
      
 55 
     | 
    
         
            +
            4. Push to the branch (`git push origin my-new-feature`)
         
     | 
| 
      
 56 
     | 
    
         
            +
            5. Create a new Pull Request
         
     | 
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake/clean'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rake_rack'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            @external_dependencies = %w[jruby java]
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            task :default => [
         
     | 
| 
      
 7 
     | 
    
         
            +
              :clean,
         
     | 
| 
      
 8 
     | 
    
         
            +
              :"rake_rack:check_external_dependencies",
         
     | 
| 
      
 9 
     | 
    
         
            +
              :"rake_rack:code_quality:all",
         
     | 
| 
      
 10 
     | 
    
         
            +
              :"rake_rack:rspec",
         
     | 
| 
      
 11 
     | 
    
         
            +
              :"rake_rack:coverage:check_specs",
         
     | 
| 
      
 12 
     | 
    
         
            +
              :"rake_rack:ok",
         
     | 
| 
      
 13 
     | 
    
         
            +
            ]
         
     | 
    
        data/history.rdoc
    ADDED
    
    
    
        data/lib/snmpjr/pdu.rb
    ADDED
    
    | 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Snmpjr
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Pdu
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Constants
         
     | 
| 
      
 4 
     | 
    
         
            +
                  GET = -96
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def create oid
         
     | 
| 
      
 8 
     | 
    
         
            +
                  pdu = Snmpjr::Wrappers::PDU.new
         
     | 
| 
      
 9 
     | 
    
         
            +
                  oid = Snmpjr::Wrappers::SMI::OID.new oid
         
     | 
| 
      
 10 
     | 
    
         
            +
                  variable_binding = Snmpjr::Wrappers::SMI::VariableBinding.new oid
         
     | 
| 
      
 11 
     | 
    
         
            +
                  pdu.add variable_binding
         
     | 
| 
      
 12 
     | 
    
         
            +
                  pdu.type = Snmpjr::Pdu::Constants::GET
         
     | 
| 
      
 13 
     | 
    
         
            +
                  pdu
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'snmpjr/wrappers/transport'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class Snmpjr
         
     | 
| 
      
 4 
     | 
    
         
            +
              class Session
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def send pdu, target
         
     | 
| 
      
 8 
     | 
    
         
            +
                  snmp = Snmpjr::Wrappers::Snmp.new(Snmpjr::Wrappers::Transport::DefaultUdpTransportMapping.new)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  snmp.listen
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 12 
     | 
    
         
            +
                    result = snmp.send(pdu, target)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  rescue
         
     | 
| 
      
 14 
     | 
    
         
            +
                    raise "Failed to send SNMP package"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  ensure
         
     | 
| 
      
 16 
     | 
    
         
            +
                    snmp.close
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  result.response.variable_bindings.first.variable.to_s
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'snmpjr/wrappers/smi'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class Snmpjr
         
     | 
| 
      
 4 
     | 
    
         
            +
              class Target
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                def create options = {}
         
     | 
| 
      
 7 
     | 
    
         
            +
                  target = Snmpjr::Wrappers::CommunityTarget.new
         
     | 
| 
      
 8 
     | 
    
         
            +
                  target.community = Snmpjr::Wrappers::SMI::OctetString.new(options.fetch(:community))
         
     | 
| 
      
 9 
     | 
    
         
            +
                  target.address = Snmpjr::Wrappers::SMI::GenericAddress.parse("udp:#{options.fetch(:host)}/#{options.fetch(:port)}")
         
     | 
| 
      
 10 
     | 
    
         
            +
                  target.version = 1
         
     | 
| 
      
 11 
     | 
    
         
            +
                  target.timeout = 5000
         
     | 
| 
      
 12 
     | 
    
         
            +
                  target
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         Binary file 
     | 
    
        data/lib/snmpjr.rb
    ADDED
    
    | 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "snmpjr/version"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "snmpjr/pdu"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "snmpjr/session"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "snmpjr/target"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            class Snmpjr
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              def initialize options = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                @host = options.fetch(:host)
         
     | 
| 
      
 10 
     | 
    
         
            +
                @port = options.fetch(:port) || 161
         
     | 
| 
      
 11 
     | 
    
         
            +
                @community = options.fetch(:community)
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              def get oids
         
     | 
| 
      
 15 
     | 
    
         
            +
                target = Snmpjr::Target.new.create(:host => @host, :port => @port, :community => @community)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                case oids.class.to_s
         
     | 
| 
      
 18 
     | 
    
         
            +
                when 'String'
         
     | 
| 
      
 19 
     | 
    
         
            +
                  get_oid(oids, target)
         
     | 
| 
      
 20 
     | 
    
         
            +
                when 'Array'
         
     | 
| 
      
 21 
     | 
    
         
            +
                  oids.map{|oid|
         
     | 
| 
      
 22 
     | 
    
         
            +
                    get_oid(oid, target)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  }
         
     | 
| 
      
 24 
     | 
    
         
            +
                else
         
     | 
| 
      
 25 
     | 
    
         
            +
                  raise ArgumentError.new 'You can request a single Oid using a String, or multiple using an Array'
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              private
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              def get_oid oid, target
         
     | 
| 
      
 32 
     | 
    
         
            +
                pdu = Snmpjr::Pdu.new.create oid
         
     | 
| 
      
 33 
     | 
    
         
            +
                Snmpjr::Session.new.send(pdu, target)
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
    
        data/snmpjr.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'snmpjr/version'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name          = "snmpjr"
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.version       = Snmpjr::VERSION
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.authors       = ["Zen Kyprianou"]
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.email         = ["zen@kyprianou.eu"]
         
     | 
| 
      
 11 
     | 
    
         
            +
              spec.summary       = %q{Simple SNMP interface for JRuby}
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.description   = %q{Snmpjr aims to provide a clean and simple interface to use SNMP in your ruby code. It will wrap the popular SNMP4J library in Java.
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.homepage      = "https://github.com/zenonas/snmpjr"
         
     | 
| 
      
 15 
     | 
    
         
            +
              spec.license       = "MIT"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              spec.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
      
 18 
     | 
    
         
            +
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.require_paths = ["lib"]
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              spec.platform      = "java"
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'snmpjr'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe "snmpjr" do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              subject { Snmpjr.new(:host => 'demo.snmplabs.com', :port => 161, :community => 'public') }
         
     | 
| 
      
 6 
     | 
    
         
            +
              describe 'GET' do
         
     | 
| 
      
 7 
     | 
    
         
            +
                it "can perform a simple synchronous get request on an snmp agent" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  expect(subject.get '1.3.6.1.2.1.1.1.0').to eq 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                let(:expected) { ['SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', 'zeus.snmplabs.com'] }
         
     | 
| 
      
 12 
     | 
    
         
            +
                it "can perform a series of gets if passed an array of oids" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0']).to eq expected
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require production_code
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Snmpjr::Pdu do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe "#create" do
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                let(:pdu) { double Snmpjr::Wrappers::PDU }
         
     | 
| 
      
 7 
     | 
    
         
            +
                let(:oid) { double Snmpjr::Wrappers::SMI::OID }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:variable_binding) { double Snmpjr::Wrappers::SMI::VariableBinding }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                before do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::PDU).to receive(:new).and_return pdu
         
     | 
| 
      
 12 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::SMI::OID).to receive(:new).and_return oid
         
     | 
| 
      
 13 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::SMI::VariableBinding).to receive(:new).and_return variable_binding
         
     | 
| 
      
 14 
     | 
    
         
            +
                  allow(pdu).to receive(:type=)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  allow(pdu).to receive(:add)
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
                it "creates a GET Pdu" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  expect(pdu).to receive(:type=).with(Snmpjr::Pdu::Constants::GET)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  subject.create '1.2.3.4'
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                it "adds an SMI variable binding containing an oid to the pdu" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  expect(Snmpjr::Wrappers::SMI::OID).to receive(:new).with('1.2.3.4')
         
     | 
| 
      
 24 
     | 
    
         
            +
                  expect(Snmpjr::Wrappers::SMI::VariableBinding).to receive(:new).with(oid)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  expect(pdu).to receive(:add).with variable_binding
         
     | 
| 
      
 26 
     | 
    
         
            +
                  subject.create '1.2.3.4'
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require production_code
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Snmpjr::Session do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe "#send" do
         
     | 
| 
      
 5 
     | 
    
         
            +
                let(:transport_mapping) { double Snmpjr::Wrappers::Transport::DefaultUdpTransportMapping }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                let(:target) { double :target }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:pdu) { double :pdu }
         
     | 
| 
      
 9 
     | 
    
         
            +
                let(:result) { double :result }
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                let(:snmp_session) { double Snmpjr::Wrappers::Snmp }
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                before do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::Transport::DefaultUdpTransportMapping).to receive(:new).and_return transport_mapping
         
     | 
| 
      
 15 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::Snmp).to receive(:new).and_return snmp_session
         
     | 
| 
      
 16 
     | 
    
         
            +
                  allow(snmp_session).to receive(:send).and_return result
         
     | 
| 
      
 17 
     | 
    
         
            +
                  allow(result).to receive_message_chain('response.variable_bindings.first.variable.to_s')
         
     | 
| 
      
 18 
     | 
    
         
            +
                  allow(snmp_session).to receive(:listen)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  allow(snmp_session).to receive(:close)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                it "opens a new SNMP4J session with Udp transport mapping" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  expect(Snmpjr::Wrappers::Snmp).to receive(:new).with(transport_mapping)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  subject.send(pdu, target)
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                it "sends the pdu to the target" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  expect(snmp_session).to receive(:send).with(pdu, target)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  subject.send(pdu, target)
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                it "closes the connection" do
         
     | 
| 
      
 32 
     | 
    
         
            +
                  expect(snmp_session).to receive(:close)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  subject.send(pdu, target)
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require production_code
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Snmpjr::Target do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              describe "#create" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                let(:options) { { :host => '127.0.0.1', :port => 161, :community => 'some_community' } }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                it "creates an octet string for the community string" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                  expect(Snmpjr::Wrappers::SMI::OctetString).to receive(:new).with(options[:community])
         
     | 
| 
      
 10 
     | 
    
         
            +
                  subject.create(options)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                it "creates an smi address based on the ip and port name" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  expect(Snmpjr::Wrappers::SMI::GenericAddress).to receive(:parse).with("udp:127.0.0.1/161")
         
     | 
| 
      
 15 
     | 
    
         
            +
                  subject.create(options)
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                let(:community_target) { double Snmpjr::Wrappers::CommunityTarget }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                before do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  allow(Snmpjr::Wrappers::CommunityTarget).to receive(:new).and_return community_target
         
     | 
| 
      
 22 
     | 
    
         
            +
                  allow(community_target).to receive(:version=)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  allow(community_target).to receive(:timeout=)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  allow(community_target).to receive(:community=)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  allow(community_target).to receive(:address=)
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                it "sets the snmp version to v2c and the timeout to 5000ms" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  expect(community_target).to receive(:version=).with(1)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  expect(community_target).to receive(:timeout=).with(5000)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  subject.create(options)
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                it "returns the SNMP4J community target" do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  expect(subject.create(options).class).to eq community_target.class
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/snmpjr_spec.rb
    ADDED
    
    | 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require production_code
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Snmpjr do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe "#get" do
         
     | 
| 
      
 5 
     | 
    
         
            +
                context "when the call is synchronous" do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  let(:target) { double Snmpjr::Target }
         
     | 
| 
      
 8 
     | 
    
         
            +
                  let(:community_target) { double :community_target }
         
     | 
| 
      
 9 
     | 
    
         
            +
                  let(:session) { double Snmpjr::Session }
         
     | 
| 
      
 10 
     | 
    
         
            +
                  let(:pdu) { double Snmpjr::Pdu }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  let(:created_pdu_1) { double :created_pdu_1 }
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 14 
     | 
    
         
            +
                    allow(Snmpjr::Pdu).to receive(:new).and_return pdu
         
     | 
| 
      
 15 
     | 
    
         
            +
                    allow(pdu).to receive(:create).with('1.2.3.4.5.6').and_return created_pdu_1
         
     | 
| 
      
 16 
     | 
    
         
            +
                    allow(Snmpjr::Session).to receive(:new).and_return session
         
     | 
| 
      
 17 
     | 
    
         
            +
                    allow(session).to receive(:send)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    allow(Snmpjr::Target).to receive(:new).and_return target
         
     | 
| 
      
 19 
     | 
    
         
            +
                    allow(target).to receive(:create).with(agent_details).and_return community_target
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  let(:agent_details) { { :host => '127.0.0.1', :port => 161, :community => 'some_community' } }
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  subject { described_class.new(agent_details) }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  context 'when passed a single oid' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    it 'performs a synchronous get' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                      subject.get '1.2.3.4.5.6'
         
     | 
| 
      
 29 
     | 
    
         
            +
                      expect(session).to have_received(:send).with(created_pdu_1, community_target)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  context 'when passed multiple oids' do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    let(:created_pdu_2) { double :created_pdu_2 }
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 37 
     | 
    
         
            +
                      allow(pdu).to receive(:create).with('6.5.4.3.2.1').and_return created_pdu_2
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                    it 'performs multiple gets for each oid' do
         
     | 
| 
      
 41 
     | 
    
         
            +
                      subject.get ['1.2.3.4.5.6', '6.5.4.3.2.1']
         
     | 
| 
      
 42 
     | 
    
         
            +
                      expect(session).to have_received(:send).with(created_pdu_1, community_target)
         
     | 
| 
      
 43 
     | 
    
         
            +
                      expect(session).to have_received(:send).with(created_pdu_2, community_target)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  context 'when an invalid argument was passed in' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                    it 'raises an ArgumentError' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                      expect {
         
     | 
| 
      
 50 
     | 
    
         
            +
                        subject.get({'oid_value' => '1.3.4.5.6'})
         
     | 
| 
      
 51 
     | 
    
         
            +
                      }.to raise_error ArgumentError
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'simplecov'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'pry'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            SimpleCov.coverage_dir 'log/coverage/rspec'
         
     | 
| 
      
 5 
     | 
    
         
            +
            SimpleCov.add_filter "spec"
         
     | 
| 
      
 6 
     | 
    
         
            +
            SimpleCov.add_filter "vendor"
         
     | 
| 
      
 7 
     | 
    
         
            +
            SimpleCov.start
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            def production_code
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec = caller[0][/spec.+\.rb/]
         
     | 
| 
      
 11 
     | 
    
         
            +
              './' + spec.gsub('_spec','').gsub(/spec/, 'lib')
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,78 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: snmpjr
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: java
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Zen Kyprianou
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-10-12 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies: []
         
     | 
| 
      
 13 
     | 
    
         
            +
            description: ! 'Snmpjr aims to provide a clean and simple interface to use SNMP in
         
     | 
| 
      
 14 
     | 
    
         
            +
              your ruby code. It will wrap the popular SNMP4J library in Java.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            '
         
     | 
| 
      
 17 
     | 
    
         
            +
            email:
         
     | 
| 
      
 18 
     | 
    
         
            +
            - zen@kyprianou.eu
         
     | 
| 
      
 19 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 20 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 21 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 22 
     | 
    
         
            +
            files:
         
     | 
| 
      
 23 
     | 
    
         
            +
            - .gitignore
         
     | 
| 
      
 24 
     | 
    
         
            +
            - .rspec
         
     | 
| 
      
 25 
     | 
    
         
            +
            - .rvmrc
         
     | 
| 
      
 26 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
      
 27 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 28 
     | 
    
         
            +
            - LICENSE.txt
         
     | 
| 
      
 29 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 30 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 31 
     | 
    
         
            +
            - history.rdoc
         
     | 
| 
      
 32 
     | 
    
         
            +
            - lib/snmpjr.rb
         
     | 
| 
      
 33 
     | 
    
         
            +
            - lib/snmpjr/pdu.rb
         
     | 
| 
      
 34 
     | 
    
         
            +
            - lib/snmpjr/session.rb
         
     | 
| 
      
 35 
     | 
    
         
            +
            - lib/snmpjr/target.rb
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/snmpjr/version.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/snmpjr/wrappers/smi.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/snmpjr/wrappers/snmp4j-2.3.1.jar
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/snmpjr/wrappers/snmp4j.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/snmpjr/wrappers/transport.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            - snmpjr.gemspec
         
     | 
| 
      
 42 
     | 
    
         
            +
            - spec/integration/snmpjr_spec.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            - spec/snmpjr/pdu_spec.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
            - spec/snmpjr/session_spec.rb
         
     | 
| 
      
 45 
     | 
    
         
            +
            - spec/snmpjr/target_spec.rb
         
     | 
| 
      
 46 
     | 
    
         
            +
            - spec/snmpjr_spec.rb
         
     | 
| 
      
 47 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     | 
| 
      
 48 
     | 
    
         
            +
            homepage: https://github.com/zenonas/snmpjr
         
     | 
| 
      
 49 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 50 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 51 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 52 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 53 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 54 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 55 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 56 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 59 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 61 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 62 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 63 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 64 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 65 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 66 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 67 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 68 
     | 
    
         
            +
            rubygems_version: 2.4.2
         
     | 
| 
      
 69 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 70 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 71 
     | 
    
         
            +
            summary: Simple SNMP interface for JRuby
         
     | 
| 
      
 72 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 73 
     | 
    
         
            +
            - spec/integration/snmpjr_spec.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
            - spec/snmpjr/pdu_spec.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
            - spec/snmpjr/session_spec.rb
         
     | 
| 
      
 76 
     | 
    
         
            +
            - spec/snmpjr/target_spec.rb
         
     | 
| 
      
 77 
     | 
    
         
            +
            - spec/snmpjr_spec.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     |