kanrisuru 0.6.0 → 0.7.0
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/.github/CONTRIBUTING.md +17 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +9 -2
- data/README.md +4 -0
- data/kanrisuru.gemspec +1 -1
- data/lib/kanrisuru/core/path.rb +3 -3
- data/lib/kanrisuru/core/system.rb +9 -13
- data/lib/kanrisuru/os_package.rb +28 -14
- data/lib/kanrisuru/remote/env.rb +4 -0
- data/lib/kanrisuru/result.rb +4 -0
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/os_package_spec.rb +25 -1
- data/spec/unit/core/apt_spec.rb +1 -1
- data/spec/unit/core/ip_spec.rb +3 -3
- data/spec/unit/core/socket_spec.rb +3 -3
- data/spec/unit/core/system_spec.rb +1 -1
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: bb8de477e2168c782b7cb082a6a6760fd56aa6925f1820ee80e45baff76a7b27
         | 
| 4 | 
            +
              data.tar.gz: ad21e0b9787a2e42d8626a367f11b44ff97ec27f000a6ec8f7967d7b22da066d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0cdeb2cda038612234429eb9ca172f294f60bb8bdcb0d5db2490231dfc4ab4205ae240b3f8ef8ebab41b5de6ef9d2599c7db76dd0ebe229b8b896e3a831c8805
         | 
| 7 | 
            +
              data.tar.gz: b32d4fe02fe5897a8f56d827290516ceb393db63068f9cba3a4396b79e667dd62a332013fbb6fe674cd680ccd374faff877441f92f57048d5b782e244b23ec20
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # How to contribute
         | 
| 2 | 
            +
            Thank you for your interest in contributing to the Kanrisuru project. We appreciate any volunteers that want to help improve, grow and sustain the Kanrisuru code base!
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ## Submitting a bug
         | 
| 5 | 
            +
            * Do not open up a GitHub issue if the bug is a security vulnerability with the Kanrisuru project, instead send an email to engineeering@avamia.com for any security realted issues.
         | 
| 6 | 
            +
            * Check if there's already an existing issue before submitting a [similar one](https://github.com/avamia/kanrisuru/issues).
         | 
| 7 | 
            +
            * If you can't find a similar issue [open a new one](https://github.com/avamia/kanrisuru/issues/new?assignees=&labels=&template=bug_report.md). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## Adding a core feature
         | 
| 10 | 
            +
            * We always welcome improving the core Kanrisuru project. If we are missing a core command available on most linux distros, this would be a place to add that type of functionality.
         | 
| 11 | 
            +
            * Other ideas like performance optimization, additional testing, and ease of use are great ways of improving the project.
         | 
| 12 | 
            +
            * If you want to create something outside of the core project, see the next section.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            ## Adding a new module
         | 
| 15 | 
            +
            * If you want to extent Kanrisuru beyond the underlying system code base or core module packages, the best way is to create a new gem, in the format of `kanrisuru-package`. 
         | 
| 16 | 
            +
            * This helps keep the core Kanrisuru package from too much bloat.
         | 
| 17 | 
            +
            * See our developer module section to see how to build a new Kanrisuru module.
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            name: Bug report
         | 
| 3 | 
            +
            about: Create a report to help us improve
         | 
| 4 | 
            +
            title: ''
         | 
| 5 | 
            +
            labels: ''
         | 
| 6 | 
            +
            assignees: ''
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            ---
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            **Describe the bug**
         | 
| 11 | 
            +
            A clear and concise description of what the bug is.
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            **To Reproduce**
         | 
| 14 | 
            +
            Steps to reproduce the behavior:
         | 
| 15 | 
            +
            1. Go to '...'
         | 
| 16 | 
            +
            2. Click on '....'
         | 
| 17 | 
            +
            3. Scroll down to '....'
         | 
| 18 | 
            +
            4. See error
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            **Expected behavior**
         | 
| 21 | 
            +
            A clear and concise description of what you expected to happen.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            **Screenshots**
         | 
| 24 | 
            +
            If applicable, add screenshots to help explain your problem.
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            **Desktop (please complete the following information):**
         | 
| 27 | 
            +
             - OS: [e.g. Ubuntu]
         | 
| 28 | 
            +
             - Version [e.g. 22]
         | 
| 29 | 
            +
             - Ruby version: [e.g 2.7.4]
         | 
| 30 | 
            +
             | 
| 31 | 
            +
             | 
| 32 | 
            +
            **Additional context**
         | 
| 33 | 
            +
            Add any other context about the problem here.
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            name: Feature request
         | 
| 3 | 
            +
            about: Suggest an idea for this project
         | 
| 4 | 
            +
            title: ''
         | 
| 5 | 
            +
            labels: ''
         | 
| 6 | 
            +
            assignees: ''
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            ---
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            **Is your feature request related to a problem? Please describe.**
         | 
| 11 | 
            +
            A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            **Describe the solution you'd like**
         | 
| 14 | 
            +
            A clear and concise description of what you want to happen.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            **Describe alternatives you've considered**
         | 
| 17 | 
            +
            A clear and concise description of any alternative solutions or features you've considered.
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            **Additional context**
         | 
| 20 | 
            +
            Add any other context or screenshots about the feature request here.
         | 
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,13 @@ | |
| 1 | 
            +
            ## Kanrisuru 0.7.0 (August 8, 2021) ##
         | 
| 2 | 
            +
            * Simplify `FileInfo` struct for return object of `ls` command.
         | 
| 3 | 
            +
            * Rename `size` to `fsize` for the `OpenFile` struct to avoid method naming conflicts of the struct class. 
         | 
| 4 | 
            +
            * Allow `os_include` and `os_collection` to define multiple groupings of methods with the same namespace.
         | 
| 5 | 
            +
            * Add `clear` method for remote env class, to remove any session based env variables.
         | 
| 6 | 
            +
            * Add `to_s` method to result for quick analysis of string based return values. 
         | 
| 7 | 
            +
            * Remove duplicate `numeric` method in the utils module.
         | 
| 8 | 
            +
             | 
| 1 9 | 
             
            ## Kanrisuru 0.6.0 (August 1, 2021) ##
         | 
| 2 | 
            -
            * Add lsof implementation in system core module
         | 
| 10 | 
            +
            * Add `lsof` implementation in system core module
         | 
| 3 11 | 
             
            * Fix changelog formatting
         | 
| 4 12 | 
             
            * Add changelog url to gemspec
         | 
| 5 13 |  | 
| @@ -42,7 +50,6 @@ | |
| 42 50 | 
             
            * Fix `address_size` in `cpu` method call.
         | 
| 43 51 |  | 
| 44 52 | 
             
            ## Kanrisuru 0.3.0 (July 22, 2021) ##
         | 
| 45 | 
            -
             | 
| 46 53 | 
             
            * Add `lscpu` system core module 
         | 
| 47 54 | 
             
            * Replace `cpu` module internal fetching of data from `cpu_info` to `lscpu` struct.
         | 
| 48 55 |  | 
    
        data/README.md
    CHANGED
    
    | @@ -2,6 +2,10 @@ | |
| 2 2 | 
             
            [](https://github.com/avamia/kanrisuru/blob/main/LICENSE.txt) 
         | 
| 3 3 | 
             
             
         | 
| 4 4 |  | 
| 5 | 
            +
            <p align='center'>
         | 
| 6 | 
            +
              <img src="https://s3.us-east-2.amazonaws.com/kanrisuru.com/kanrisuru-banner-02.png" width="600" />
         | 
| 7 | 
            +
            </p>
         | 
| 8 | 
            +
             | 
| 5 9 | 
             
            # Kanrisuru
         | 
| 6 10 |  | 
| 7 11 | 
             
            Kanrisuru (manage) helps you remotely control infrastructure using Ruby. This is done over SSH. I'm working on building up some basic functionality to help quickly provision, deploy and manage a single host or cluster of hosts.
         | 
    
        data/kanrisuru.gemspec
    CHANGED
    
    | @@ -28,6 +28,6 @@ Gem::Specification.new do |gem| | |
| 28 28 |  | 
| 29 29 | 
             
              gem.metadata = {
         | 
| 30 30 | 
             
                'source_code_uri' => 'https://github.com/avamia/kanrisuru/',
         | 
| 31 | 
            -
                'changelog_uri' | 
| 31 | 
            +
                'changelog_uri' => 'https://github.com/avamia/kanrisuru/blob/main/CHANGELOG.md'
         | 
| 32 32 | 
             
              }
         | 
| 33 33 | 
             
            end
         | 
    
        data/lib/kanrisuru/core/path.rb
    CHANGED
    
    | @@ -9,10 +9,10 @@ module Kanrisuru | |
| 9 9 |  | 
| 10 10 | 
             
                  os_define :linux, :ls
         | 
| 11 11 | 
             
                  os_define :linux, :pwd
         | 
| 12 | 
            -
                  os_define :linux, :whoami
         | 
| 13 | 
            -
                  os_define :linux, :which
         | 
| 14 12 | 
             
                  os_define :linux, :realpath
         | 
| 15 13 | 
             
                  os_define :linux, :readlink
         | 
| 14 | 
            +
                  os_define :linux, :whoami
         | 
| 15 | 
            +
                  os_define :linux, :which
         | 
| 16 16 |  | 
| 17 17 | 
             
                  FilePath = Struct.new(:path)
         | 
| 18 18 | 
             
                  FileInfoId = Struct.new(:inode, :mode, :memory_blocks, :uid, :gid, :fsize, :date, :path, :type)
         | 
| @@ -46,7 +46,7 @@ module Kanrisuru | |
| 46 46 | 
             
                        type = values[1].include?('d') ? 'directory' : 'file'
         | 
| 47 47 | 
             
                        items <<
         | 
| 48 48 | 
             
                          if id
         | 
| 49 | 
            -
                             | 
| 49 | 
            +
                            FileInfo.new(
         | 
| 50 50 | 
             
                              values[0].to_i,
         | 
| 51 51 | 
             
                              Kanrisuru::Mode.new(values[1]),
         | 
| 52 52 | 
             
                              values[2].to_i,
         | 
| @@ -111,7 +111,7 @@ module Kanrisuru | |
| 111 111 | 
             
                    :file_descriptor,
         | 
| 112 112 | 
             
                    :type,
         | 
| 113 113 | 
             
                    :device,
         | 
| 114 | 
            -
                    : | 
| 114 | 
            +
                    :fsize,
         | 
| 115 115 | 
             
                    :inode,
         | 
| 116 116 | 
             
                    :name
         | 
| 117 117 | 
             
                  )
         | 
| @@ -220,9 +220,9 @@ module Kanrisuru | |
| 220 220 | 
             
                  end
         | 
| 221 221 |  | 
| 222 222 | 
             
                  def cpu_info(spec)
         | 
| 223 | 
            -
                    Kanrisuru.logger.info  | 
| 223 | 
            +
                    Kanrisuru.logger.info do
         | 
| 224 224 | 
             
                      'DEPRECATION WARNING: cpu_info will be removed in the upcoming major release. Use lscpu instead.'
         | 
| 225 | 
            -
                     | 
| 225 | 
            +
                    end
         | 
| 226 226 |  | 
| 227 227 | 
             
                    name =
         | 
| 228 228 | 
             
                      case spec
         | 
| @@ -320,7 +320,7 @@ module Kanrisuru | |
| 320 320 | 
             
                    Kanrisuru::Result.new(command)
         | 
| 321 321 | 
             
                  end
         | 
| 322 322 |  | 
| 323 | 
            -
                  def lsof( | 
| 323 | 
            +
                  def lsof(_opts = {})
         | 
| 324 324 | 
             
                    command = Kanrisuru::Command.new('lsof -F pcuftDsin')
         | 
| 325 325 |  | 
| 326 326 | 
             
                    execute_shell(command)
         | 
| @@ -331,7 +331,7 @@ module Kanrisuru | |
| 331 331 | 
             
                      current_pid = nil
         | 
| 332 332 | 
             
                      current_user = nil
         | 
| 333 333 | 
             
                      current_command = nil
         | 
| 334 | 
            -
             | 
| 334 | 
            +
             | 
| 335 335 | 
             
                      rows = []
         | 
| 336 336 |  | 
| 337 337 | 
             
                      lines.each do |line|
         | 
| @@ -343,22 +343,20 @@ module Kanrisuru | |
| 343 343 | 
             
                        when /^u/
         | 
| 344 344 | 
             
                          current_user = parse_lsof(line, 'u').to_i
         | 
| 345 345 | 
             
                        when /^f/
         | 
| 346 | 
            -
                          if current_row
         | 
| 347 | 
            -
                            rows << current_row
         | 
| 348 | 
            -
                          end
         | 
| 346 | 
            +
                          rows << current_row if current_row
         | 
| 349 347 |  | 
| 350 348 | 
             
                          current_row = OpenFile.new
         | 
| 351 349 | 
             
                          current_row.pid = current_pid
         | 
| 352 350 | 
             
                          current_row.command = current_command
         | 
| 353 351 | 
             
                          current_row.uid = current_user
         | 
| 354 352 |  | 
| 355 | 
            -
                          current_row.file_descriptor = parse_lsof(line, 'f') | 
| 353 | 
            +
                          current_row.file_descriptor = parse_lsof(line, 'f')
         | 
| 356 354 | 
             
                        when /^t/
         | 
| 357 355 | 
             
                          current_row.type = parse_lsof(line, 't')
         | 
| 358 356 | 
             
                        when /^D/
         | 
| 359 357 | 
             
                          current_row.device = parse_lsof(line, 'D')
         | 
| 360 358 | 
             
                        when /^s/
         | 
| 361 | 
            -
                          current_row. | 
| 359 | 
            +
                          current_row.fsize = parse_lsof(line, 's').to_i
         | 
| 362 360 | 
             
                        when /^i/
         | 
| 363 361 | 
             
                          current_row.inode = parse_lsof(line, 'i').to_i
         | 
| 364 362 | 
             
                        when /^n/
         | 
| @@ -366,9 +364,7 @@ module Kanrisuru | |
| 366 364 | 
             
                        end
         | 
| 367 365 | 
             
                      end
         | 
| 368 366 |  | 
| 369 | 
            -
                      if current_row
         | 
| 370 | 
            -
                        rows << current_row
         | 
| 371 | 
            -
                      end
         | 
| 367 | 
            +
                      rows << current_row if current_row
         | 
| 372 368 |  | 
| 373 369 | 
             
                      rows
         | 
| 374 370 | 
             
                    end
         | 
    
        data/lib/kanrisuru/os_package.rb
    CHANGED
    
    | @@ -46,13 +46,19 @@ module Kanrisuru | |
| 46 46 | 
             
                      ## Define the namespace as an eigen class instance on the host.
         | 
| 47 47 | 
             
                      ## Namespaced instances will access core host methods
         | 
| 48 48 | 
             
                      ## with @host instance variable.
         | 
| 49 | 
            -
                      namespace_class    = Kanrisuru::Remote::Cluster.const_set(Kanrisuru::Util.camelize(namespace), Class.new)
         | 
| 50 | 
            -
                      namespace_instance = Kanrisuru::Remote::Cluster.instance_variable_set("@#{namespace}", namespace_class.new)
         | 
| 51 49 |  | 
| 52 | 
            -
                       | 
| 53 | 
            -
                         | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 50 | 
            +
                      if Kanrisuru::Remote::Cluster.instance_variable_defined?("@#{namespace}")
         | 
| 51 | 
            +
                        namespace_class = Kanrisuru::Remote::Cluster.const_get(Kanrisuru::Util.camelize(namespace))
         | 
| 52 | 
            +
                        namespace_instance = instance_variable_get("@#{namespace}")
         | 
| 53 | 
            +
                      else
         | 
| 54 | 
            +
                        namespace_class    = Kanrisuru::Remote::Cluster.const_set(Kanrisuru::Util.camelize(namespace), Class.new)
         | 
| 55 | 
            +
                        namespace_instance = Kanrisuru::Remote::Cluster.instance_variable_set("@#{namespace}", namespace_class.new)
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                        class_eval do
         | 
| 58 | 
            +
                          define_method namespace do
         | 
| 59 | 
            +
                            namespace_instance.instance_variable_set(:@cluster, self)
         | 
| 60 | 
            +
                            namespace_instance
         | 
| 61 | 
            +
                          end
         | 
| 56 62 | 
             
                        end
         | 
| 57 63 | 
             
                      end
         | 
| 58 64 |  | 
| @@ -132,17 +138,25 @@ module Kanrisuru | |
| 132 138 | 
             
                      ## Define the namespace as an eigen class instance within the host class.
         | 
| 133 139 | 
             
                      ## Namespaced instances will access core host methods
         | 
| 134 140 | 
             
                      ## with @host instance variable.
         | 
| 135 | 
            -
                      namespace_class    = Kanrisuru::Remote::Host.const_set(Kanrisuru::Util.camelize(namespace), Class.new)
         | 
| 136 | 
            -
                      namespace_instance = Kanrisuru::Remote::Host.instance_variable_set("@#{namespace}", namespace_class.new)
         | 
| 137 | 
            -
             | 
| 138 | 
            -
                      namespace_class.class_eval(&include_method_bindings)
         | 
| 139 141 |  | 
| 140 | 
            -
                       | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 142 | 
            +
                      ## Check to see if the namespace was defined. If so, additional methods will be appended to the
         | 
| 143 | 
            +
                      ## existing namespace class definition, otherwise, a new namespace class and instance will be
         | 
| 144 | 
            +
                      ## defined with the methods added.
         | 
| 145 | 
            +
                      if Kanrisuru::Remote::Host.instance_variable_defined?("@#{namespace}")
         | 
| 146 | 
            +
                        namespace_class = Kanrisuru::Remote::Host.const_get(Kanrisuru::Util.camelize(namespace))
         | 
| 147 | 
            +
                        namespace_instance = instance_variable_get("@#{namespace}")
         | 
| 148 | 
            +
                      else
         | 
| 149 | 
            +
                        namespace_class    = Kanrisuru::Remote::Host.const_set(Kanrisuru::Util.camelize(namespace), Class.new)
         | 
| 150 | 
            +
                        namespace_instance = Kanrisuru::Remote::Host.instance_variable_set("@#{namespace}", namespace_class.new)
         | 
| 151 | 
            +
                        class_eval do
         | 
| 152 | 
            +
                          define_method namespace do
         | 
| 153 | 
            +
                            namespace_instance.instance_variable_set(:@host, self)
         | 
| 154 | 
            +
                            namespace_instance
         | 
| 155 | 
            +
                          end
         | 
| 144 156 | 
             
                        end
         | 
| 145 157 | 
             
                      end
         | 
| 158 | 
            +
             | 
| 159 | 
            +
                      namespace_class.class_eval(&include_method_bindings)
         | 
| 146 160 | 
             
                    else
         | 
| 147 161 | 
             
                      class_eval(&include_method_bindings)
         | 
| 148 162 | 
             
                    end
         | 
    
        data/lib/kanrisuru/remote/env.rb
    CHANGED
    
    
    
        data/lib/kanrisuru/result.rb
    CHANGED
    
    
    
        data/lib/kanrisuru/version.rb
    CHANGED
    
    
| @@ -16,7 +16,7 @@ module Kanrisuru | |
| 16 16 | 
             
              module TestNamespace
         | 
| 17 17 | 
             
                extend Kanrisuru::OsPackage::Define
         | 
| 18 18 |  | 
| 19 | 
            -
                os_define : | 
| 19 | 
            +
                os_define :linux, :tester
         | 
| 20 20 | 
             
                os_define :centos, :test_not_correct
         | 
| 21 21 |  | 
| 22 22 | 
             
                def tester
         | 
| @@ -25,17 +25,34 @@ module Kanrisuru | |
| 25 25 |  | 
| 26 26 | 
             
                def test_not_correct; end
         | 
| 27 27 | 
             
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              module TestNamespaceAdditions
         | 
| 30 | 
            +
                extend Kanrisuru::OsPackage::Define
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                os_define :linux, :add
         | 
| 33 | 
            +
                os_define :linux, :minus
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def add(a, b)
         | 
| 36 | 
            +
                  a + b
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def minus(a, b)
         | 
| 40 | 
            +
                  a - b
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 28 43 | 
             
            end
         | 
| 29 44 |  | 
| 30 45 | 
             
            module Kanrisuru
         | 
| 31 46 | 
             
              module Remote
         | 
| 32 47 | 
             
                class Host
         | 
| 33 48 | 
             
                  os_include Kanrisuru::TestInclude
         | 
| 49 | 
            +
                  os_include Kanrisuru::TestNamespaceAdditions, namespace: :asdf
         | 
| 34 50 | 
             
                  os_include Kanrisuru::TestNamespace, namespace: :asdf
         | 
| 35 51 | 
             
                end
         | 
| 36 52 |  | 
| 37 53 | 
             
                class Cluster
         | 
| 38 54 | 
             
                  os_collection Kanrisuru::TestInclude
         | 
| 55 | 
            +
                  os_collection Kanrisuru::TestNamespaceAdditions, namespace: :asdf
         | 
| 39 56 | 
             
                  os_collection Kanrisuru::TestNamespace, namespace: :asdf
         | 
| 40 57 | 
             
                end
         | 
| 41 58 | 
             
              end
         | 
| @@ -64,8 +81,15 @@ RSpec.describe Kanrisuru::OsPackage do | |
| 64 81 |  | 
| 65 82 | 
             
                expect(host).to respond_to(:asdf)
         | 
| 66 83 | 
             
                expect(host.asdf).to respond_to(:tester)
         | 
| 84 | 
            +
                expect(host.asdf).to respond_to(:add)
         | 
| 85 | 
            +
                expect(host.asdf).to respond_to(:minus)
         | 
| 86 | 
            +
             | 
| 67 87 | 
             
                expect(host.asdf.tester).to eq 'hello namespace'
         | 
| 88 | 
            +
                expect(host.asdf.add(1, 2)).to eq(3)
         | 
| 89 | 
            +
                expect(host.asdf.minus(3, 2)).to eq(1)
         | 
| 90 | 
            +
             | 
| 68 91 | 
             
                expect(host.tester).to eq('hello ubuntu')
         | 
| 92 | 
            +
             | 
| 69 93 | 
             
                expect { host.asdf.test_not_correct }.to raise_error(NoMethodError)
         | 
| 70 94 | 
             
                expect(cluster.asdf.tester).to be_instance_of(Array)
         | 
| 71 95 |  | 
    
        data/spec/unit/core/apt_spec.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ RSpec.describe Kanrisuru::Core::Apt do | |
| 11 11 | 
             
                expect(Kanrisuru::Core::Apt::PackageOverview.new).to respond_to(
         | 
| 12 12 | 
             
                  :package, :version, :suites, :architecture, :installed, :upgradeable, :automatic
         | 
| 13 13 | 
             
                )
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                expect(Kanrisuru::Core::Apt::PackageDetail.new).to respond_to(
         | 
| 16 16 | 
             
                  :package,
         | 
| 17 17 | 
             
                  :version,
         | 
    
        data/spec/unit/core/ip_spec.rb
    CHANGED
    
    | @@ -10,9 +10,9 @@ RSpec.describe Kanrisuru::Core::IP do | |
| 10 10 |  | 
| 11 11 | 
             
                expect(Kanrisuru::Core::IP::IP_ROUTE_TYPES).to(
         | 
| 12 12 | 
             
                  eq(%w[
         | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 13 | 
            +
                       unicast unreachable blackhole prohibit local
         | 
| 14 | 
            +
                       broadcast throw nat via anycast multicast
         | 
| 15 | 
            +
                     ])
         | 
| 16 16 | 
             
                )
         | 
| 17 17 |  | 
| 18 18 | 
             
                expect(Kanrisuru::Core::IP::IPLinkProperty.new).to respond_to(
         | 
| @@ -13,20 +13,20 @@ RSpec.describe Kanrisuru::Core::Socket do | |
| 13 13 | 
             
                  :rmem_alloc, :rcv_buf, :wmem_alloc, :snd_buf,
         | 
| 14 14 | 
             
                  :fwd_alloc, :wmem_queued, :ropt_mem, :back_log, :sock_drop
         | 
| 15 15 | 
             
                )
         | 
| 16 | 
            -
                expect(Kanrisuru::Core::Socket::TCP_STATES).to eq( | 
| 16 | 
            +
                expect(Kanrisuru::Core::Socket::TCP_STATES).to eq(
         | 
| 17 17 | 
             
                  %w[
         | 
| 18 18 | 
             
                    established syn-sent syn-recv
         | 
| 19 19 | 
             
                    fin-wait-1 fin-wait-2 time-wait
         | 
| 20 20 | 
             
                    closed close-wait last-ack listening closing
         | 
| 21 21 | 
             
                  ]
         | 
| 22 22 | 
             
                )
         | 
| 23 | 
            -
                expect(Kanrisuru::Core::Socket::OTHER_STATES).to eq( | 
| 23 | 
            +
                expect(Kanrisuru::Core::Socket::OTHER_STATES).to eq(
         | 
| 24 24 | 
             
                  %w[
         | 
| 25 25 | 
             
                    all connected synchronized bucket syn-recv
         | 
| 26 26 | 
             
                    big
         | 
| 27 27 | 
             
                  ]
         | 
| 28 28 | 
             
                )
         | 
| 29 | 
            -
                expect(Kanrisuru::Core::Socket::TCP_STATE_ABBR).to eq( | 
| 29 | 
            +
                expect(Kanrisuru::Core::Socket::TCP_STATE_ABBR).to eq(
         | 
| 30 30 | 
             
                  {
         | 
| 31 31 | 
             
                    'ESTAB' => 'established', 'LISTEN' => 'listening', 'UNCONN' => 'unconnected',
         | 
| 32 32 | 
             
                    'SYN-SENT' => 'syn-sent', 'SYN-RECV' => 'syn-recv', 'FIN-WAIT-1' => 'fin-wait-1',
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: kanrisuru
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.7.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ryan Mammina
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-08- | 
| 11 | 
            +
            date: 2021-08-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rspec
         | 
| @@ -114,6 +114,9 @@ executables: [] | |
| 114 114 | 
             
            extensions: []
         | 
| 115 115 | 
             
            extra_rdoc_files: []
         | 
| 116 116 | 
             
            files:
         | 
| 117 | 
            +
            - ".github/CONTRIBUTING.md"
         | 
| 118 | 
            +
            - ".github/ISSUE_TEMPLATE/bug_report.md"
         | 
| 119 | 
            +
            - ".github/ISSUE_TEMPLATE/feature_request.md"
         | 
| 117 120 | 
             
            - ".gitignore"
         | 
| 118 121 | 
             
            - ".rspec"
         | 
| 119 122 | 
             
            - ".rubocop.yml"
         |