server-gem-listen 0.1.1 → 0.2.1
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/README.md +6 -3
- data/lib/server_gem_listen.rb +5 -3
- data/lib/server_gem_listen/listener.rb +27 -7
- data/lib/server_gem_listen/{puma.rb → server.rb} +3 -3
- data/lib/server_gem_listen/version.rb +1 -1
- data/server-gem-listen.gemspec +3 -3
- metadata +28 -15
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d1b9f87a624c8be221edeb444b12e4ef42838d6cda87389dfb93aac4542cd7c3
         | 
| 4 | 
            +
              data.tar.gz: 89581f67c9f7236a14c7b5000596061146472f42081419bfc15acc31cd4e4d4f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 73f07290d1c10e9d6226f1897a6379ee25839e9d9cfe80035160614b183ccd05ccdd5b329a4640b76d946789e5cc0a7b8537fee893fada97d49520cecb7bf9fb
         | 
| 7 | 
            +
              data.tar.gz: f67c6dd26aa732d9249df0e9c9a036c7a403ae6800ed69cdc33adc544c09fad76df53176f95dc99fc6e3f33cb23ecff78134deb16f656b58363e8d3c633718e9
         | 
    
        data/README.md
    CHANGED
    
    | @@ -7,9 +7,12 @@ gem install server-gem-listen | |
| 7 7 | 
             
            ```
         | 
| 8 8 |  | 
| 9 9 | 
             
            ## Usage
         | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 10 | 
            +
            Execute the command below under your project root:
         | 
| 11 | 
            +
            ```
         | 
| 12 | 
            +
            server-gem-listen
         | 
| 13 | 
            +
            ```
         | 
| 14 | 
            +
            This will launch `rails s` wrapped with gem watcher.
         | 
| 12 15 |  | 
| 13 16 | 
             
            ## License
         | 
| 14 17 |  | 
| 15 | 
            -
             | 
| 18 | 
            +
            Server Gem Listen is released under the [MIT License](https://opensource.org/licenses/MIT).
         | 
    
        data/lib/server_gem_listen.rb
    CHANGED
    
    | @@ -3,14 +3,16 @@ require "awesome_print" | |
| 3 3 | 
             
            require "bundler"
         | 
| 4 4 | 
             
            require "listen"
         | 
| 5 5 | 
             
            require "server_gem_listen/listener"
         | 
| 6 | 
            -
            require "server_gem_listen/ | 
| 6 | 
            +
            require "server_gem_listen/server"
         | 
| 7 7 | 
             
            require "server_gem_listen/version"
         | 
| 8 8 |  | 
| 9 9 | 
             
            module ServerGemListen
         | 
| 10 | 
            +
              NOTIFICATION_PREFIX = '=> Server Gem Listen:'
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
              def self.launch
         | 
| 11 | 
            -
                puts  | 
| 13 | 
            +
                puts "#{NOTIFICATION_PREFIX} launch default server"
         | 
| 12 14 | 
             
                Bundler.configure
         | 
| 13 | 
            -
                 | 
| 15 | 
            +
                Server.start
         | 
| 14 16 | 
             
                Listener.start
         | 
| 15 17 | 
             
              end
         | 
| 16 18 | 
             
            end
         | 
| @@ -2,13 +2,10 @@ module ServerGemListen | |
| 2 2 | 
             
              module Listener
         | 
| 3 3 | 
             
                class << self
         | 
| 4 4 | 
             
                  def start
         | 
| 5 | 
            -
                     | 
| 6 | 
            -
                      notify(*args)
         | 
| 7 | 
            -
                      Puma.restart
         | 
| 8 | 
            -
                    end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                    listener.start
         | 
| 5 | 
            +
                    listen_events.start
         | 
| 11 6 | 
             
                    sleep
         | 
| 7 | 
            +
                  rescue Interrupt => e
         | 
| 8 | 
            +
                    puts "\n#{ServerGemListen::NOTIFICATION_PREFIX} interrupted"
         | 
| 12 9 | 
             
                  end
         | 
| 13 10 |  | 
| 14 11 | 
             
                  private
         | 
| @@ -18,10 +15,33 @@ module ServerGemListen | |
| 18 15 | 
             
                    files.each_pair do |key, value|
         | 
| 19 16 | 
             
                      next if value.empty?
         | 
| 20 17 | 
             
                      value.map! { |v| v.gsub(ENV['GEM_HOME'], '') }
         | 
| 21 | 
            -
                       | 
| 18 | 
            +
                      puts "#{ServerGemListen::NOTIFICATION_PREFIX} #{'file'.pluralize(value.size)} #{key}"
         | 
| 22 19 | 
             
                      ap value
         | 
| 23 20 | 
             
                    end
         | 
| 24 21 | 
             
                  end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  def listen_events
         | 
| 24 | 
            +
                    gems = Bundler.definition.specs.to_hash.keys
         | 
| 25 | 
            +
                    Listen.to(ENV['GEM_HOME']) do |*args|
         | 
| 26 | 
            +
                      process_event(gems, *args)
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def process_event(gems, *args)
         | 
| 31 | 
            +
                    return unless need_restart?(gems, *args)
         | 
| 32 | 
            +
                    notify(*args)
         | 
| 33 | 
            +
                    Server.restart
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  def need_restart?(gems, *args)
         | 
| 37 | 
            +
                    args.each do |arg|
         | 
| 38 | 
            +
                      arg.each do |path|
         | 
| 39 | 
            +
                        matches = gems.select { |gem| path.include? gem }
         | 
| 40 | 
            +
                        return true unless matches.empty?
         | 
| 41 | 
            +
                      end
         | 
| 42 | 
            +
                    end
         | 
| 43 | 
            +
                    false
         | 
| 44 | 
            +
                  end
         | 
| 25 45 | 
             
                end
         | 
| 26 46 | 
             
              end
         | 
| 27 47 | 
             
            end
         | 
| @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            module ServerGemListen
         | 
| 2 | 
            -
              module  | 
| 2 | 
            +
              module Server
         | 
| 3 3 | 
             
                class << self
         | 
| 4 4 | 
             
                  def start
         | 
| 5 5 | 
             
                    Thread.new do
         | 
| 6 | 
            -
                      system 'rails s'
         | 
| 6 | 
            +
                      system './bin/rails s'
         | 
| 7 7 | 
             
                    end
         | 
| 8 8 | 
             
                  end
         | 
| 9 9 |  | 
| 10 10 | 
             
                  def restart
         | 
| 11 | 
            -
                    puts  | 
| 11 | 
            +
                    puts "#{ServerGemListen::NOTIFICATION_PREFIX} Restart Puma"
         | 
| 12 12 | 
             
                    stop
         | 
| 13 13 | 
             
                    start
         | 
| 14 14 | 
             
                  end
         | 
    
        data/server-gem-listen.gemspec
    CHANGED
    
    | @@ -10,7 +10,7 @@ Gem::Specification.new do |spec| | |
| 10 10 | 
             
              spec.email         = ["vavgustov@gmail.com"]
         | 
| 11 11 |  | 
| 12 12 | 
             
              spec.summary       = %q{Automatically reload rails server on gem source changes.}
         | 
| 13 | 
            -
              spec.description   = %q{ | 
| 13 | 
            +
              spec.description   = %q{Not for actual development or production usage. You can use this gem for quick 'scientific' experiments with core.}
         | 
| 14 14 | 
             
              spec.homepage      = "https://github.com/vavgustov/server-gem-listen."
         | 
| 15 15 | 
             
              spec.license       = "MIT"
         | 
| 16 16 |  | 
| @@ -26,8 +26,8 @@ Gem::Specification.new do |spec| | |
| 26 26 | 
             
              spec.add_development_dependency "rake", "~> 10.0"
         | 
| 27 27 | 
             
              spec.add_development_dependency "rspec", "~> 3.0"
         | 
| 28 28 |  | 
| 29 | 
            +
              spec.add_runtime_dependency "activesupport", "> 5.0", "< 6"
         | 
| 30 | 
            +
              spec.add_runtime_dependency "awesome_print", ">= 1.6", "< 1.9"
         | 
| 29 31 | 
             
              spec.add_runtime_dependency "bundler", "~> 1.16"
         | 
| 30 | 
            -
              spec.add_runtime_dependency "awesome_print", "~> 1.8"
         | 
| 31 | 
            -
              spec.add_runtime_dependency "activesupport", "~> 5.1"
         | 
| 32 32 | 
             
              spec.add_runtime_dependency "listen", "~> 3.1"
         | 
| 33 33 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: server-gem-listen
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Vladimir Avgustov
         | 
| @@ -39,47 +39,59 @@ dependencies: | |
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '3.0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 42 | 
            +
              name: activesupport
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - - " | 
| 45 | 
            +
                - - ">"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: ' | 
| 47 | 
            +
                    version: '5.0'
         | 
| 48 | 
            +
                - - "<"
         | 
| 49 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 50 | 
            +
                    version: '6'
         | 
| 48 51 | 
             
              type: :runtime
         | 
| 49 52 | 
             
              prerelease: false
         | 
| 50 53 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 54 | 
             
                requirements:
         | 
| 52 | 
            -
                - - " | 
| 55 | 
            +
                - - ">"
         | 
| 53 56 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: ' | 
| 57 | 
            +
                    version: '5.0'
         | 
| 58 | 
            +
                - - "<"
         | 
| 59 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            +
                    version: '6'
         | 
| 55 61 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 62 | 
             
              name: awesome_print
         | 
| 57 63 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 64 | 
             
                requirements:
         | 
| 59 | 
            -
                - - " | 
| 65 | 
            +
                - - ">="
         | 
| 66 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            +
                    version: '1.6'
         | 
| 68 | 
            +
                - - "<"
         | 
| 60 69 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '1. | 
| 70 | 
            +
                    version: '1.9'
         | 
| 62 71 | 
             
              type: :runtime
         | 
| 63 72 | 
             
              prerelease: false
         | 
| 64 73 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 74 | 
             
                requirements:
         | 
| 66 | 
            -
                - - " | 
| 75 | 
            +
                - - ">="
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: '1.6'
         | 
| 78 | 
            +
                - - "<"
         | 
| 67 79 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: '1. | 
| 80 | 
            +
                    version: '1.9'
         | 
| 69 81 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name:  | 
| 82 | 
            +
              name: bundler
         | 
| 71 83 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 84 | 
             
                requirements:
         | 
| 73 85 | 
             
                - - "~>"
         | 
| 74 86 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: ' | 
| 87 | 
            +
                    version: '1.16'
         | 
| 76 88 | 
             
              type: :runtime
         | 
| 77 89 | 
             
              prerelease: false
         | 
| 78 90 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 91 | 
             
                requirements:
         | 
| 80 92 | 
             
                - - "~>"
         | 
| 81 93 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: ' | 
| 94 | 
            +
                    version: '1.16'
         | 
| 83 95 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 96 | 
             
              name: listen
         | 
| 85 97 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -94,7 +106,8 @@ dependencies: | |
| 94 106 | 
             
                - - "~>"
         | 
| 95 107 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 108 | 
             
                    version: '3.1'
         | 
| 97 | 
            -
            description:  | 
| 109 | 
            +
            description: Not for actual development or production usage. You can use this gem
         | 
| 110 | 
            +
              for quick 'scientific' experiments with core.
         | 
| 98 111 | 
             
            email:
         | 
| 99 112 | 
             
            - vavgustov@gmail.com
         | 
| 100 113 | 
             
            executables:
         | 
| @@ -118,7 +131,7 @@ files: | |
| 118 131 | 
             
            - exe/server-gem-listen
         | 
| 119 132 | 
             
            - lib/server_gem_listen.rb
         | 
| 120 133 | 
             
            - lib/server_gem_listen/listener.rb
         | 
| 121 | 
            -
            - lib/server_gem_listen/ | 
| 134 | 
            +
            - lib/server_gem_listen/server.rb
         | 
| 122 135 | 
             
            - lib/server_gem_listen/version.rb
         | 
| 123 136 | 
             
            - server-gem-listen.gemspec
         | 
| 124 137 | 
             
            homepage: https://github.com/vavgustov/server-gem-listen.
         |