iparith 0.0.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 +7 -0
 - data/iparith.gemspec +16 -0
 - data/lib/iparith/parse.rb +33 -0
 - data/lib/iparith.rb +14 -0
 - metadata +60 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 3761d3001222d5592a54018d056ea86729cfb8ceec3ca25db533ce21092123da
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ed031810b77bbd2ba3dcd6296953971e5f6d048b38bc1453a1874c7bf39ef72a
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f71038b507ebdf2f4ea4fe6cd19adac1523098c1251b59c4e62020fd05b4aaf6075548078f1440385d093611ca976f4b48aed5824d3ba6faa7e50cb381b434ec
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f28336e8721276954ee156e399eff790d14dda788255d57a227f18da4015ff274f009aac762ae4d791981aa05e18790c201d4c2fdff0446ec1a7efdcd133825b
         
     | 
    
        data/iparith.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 2 
     | 
    
         
            +
              spec.name          = 'iparith'
         
     | 
| 
      
 3 
     | 
    
         
            +
              spec.version       = '0.0.2'
         
     | 
| 
      
 4 
     | 
    
         
            +
              spec.authors       = ['Forgot-His-Name']
         
     | 
| 
      
 5 
     | 
    
         
            +
              spec.email         = ['103605633+Forgot-His-Name@users.noreply.github.com']
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              spec.summary       = 'Yet Another IP Calculator'
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.description   = 'IP manipulations, based on ipaddr gem'
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.homepage      = 'https://github.com/Forgot-His-Name/iparith'
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.license       = "BSD-3-Clause"
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              spec.files         = ['iparith.gemspec', 'lib/iparith.rb', 'lib/iparith/parse.rb']
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.require_paths = ['lib']
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              spec.add_runtime_dependency 'ipaddr', '~> 1.2'
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module IPArith
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              def self.macstr_valid?(macstr)
         
     | 
| 
      
 4 
     | 
    
         
            +
                return nil unless macstr.is_a? String
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                rg_raw = /\A([a-f0-9]{12})\z/
         
     | 
| 
      
 7 
     | 
    
         
            +
                mdata = rg_raw.match(macstr)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                mdata ? true : nil
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              def self.parse_macstr(mac_str)
         
     | 
| 
      
 13 
     | 
    
         
            +
                return nil unless mac_str.is_a? String
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                cleaned_str = mac_str.downcase
         
     | 
| 
      
 16 
     | 
    
         
            +
                cleaned_str.gsub!(/[-:.]/, '')
         
     | 
| 
      
 17 
     | 
    
         
            +
                cleaned_str.gsub!('с', 'c') # replace russian c
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                rg_raw = /\A([a-f0-9]{12})\z/
         
     | 
| 
      
 20 
     | 
    
         
            +
                mdata = rg_raw.match(cleaned_str)
         
     | 
| 
      
 21 
     | 
    
         
            +
                return mdata[1] if mdata
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                nil
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              def self.ipstr_valid?(ipstr)
         
     | 
| 
      
 27 
     | 
    
         
            +
                ::IPAddr.new ipstr
         
     | 
| 
      
 28 
     | 
    
         
            +
                true
         
     | 
| 
      
 29 
     | 
    
         
            +
              rescue ::IPAddr::InvalidAddressError, ::IPAddr::AddressFamilyError
         
     | 
| 
      
 30 
     | 
    
         
            +
                nil
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/iparith.rb
    ADDED
    
    | 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'ipaddr'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative 'iparith/check'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative 'iparith/parse'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module IPArith
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              def self.addr_to_int(str)
         
     | 
| 
      
 8 
     | 
    
         
            +
                addr = ::IPAddr.new str
         
     | 
| 
      
 9 
     | 
    
         
            +
                addr.to_i
         
     | 
| 
      
 10 
     | 
    
         
            +
              rescue ::IPAddr::InvalidAddressError, ::IPAddr::AddressFamilyError
         
     | 
| 
      
 11 
     | 
    
         
            +
                nil
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: iparith
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Forgot-His-Name
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire:
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-07-11 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: ipaddr
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.2'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.2'
         
     | 
| 
      
 27 
     | 
    
         
            +
            description: IP manipulations, based on ipaddr gem
         
     | 
| 
      
 28 
     | 
    
         
            +
            email:
         
     | 
| 
      
 29 
     | 
    
         
            +
            - 103605633+Forgot-His-Name@users.noreply.github.com
         
     | 
| 
      
 30 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 31 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 32 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 33 
     | 
    
         
            +
            files:
         
     | 
| 
      
 34 
     | 
    
         
            +
            - iparith.gemspec
         
     | 
| 
      
 35 
     | 
    
         
            +
            - lib/iparith.rb
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/iparith/parse.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            homepage: https://github.com/Forgot-His-Name/iparith
         
     | 
| 
      
 38 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 39 
     | 
    
         
            +
            - BSD-3-Clause
         
     | 
| 
      
 40 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 41 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
      
 42 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 43 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 45 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 46 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 47 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 48 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 49 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 50 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 55 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 56 
     | 
    
         
            +
            rubygems_version: 3.3.7
         
     | 
| 
      
 57 
     | 
    
         
            +
            signing_key:
         
     | 
| 
      
 58 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 59 
     | 
    
         
            +
            summary: Yet Another IP Calculator
         
     | 
| 
      
 60 
     | 
    
         
            +
            test_files: []
         
     |