hanami-reloader 0.3.0 → 1.0.0.alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -2
- data/hanami-reloader.gemspec +33 -0
- data/lib/hanami/reloader.rb +1 -10
- data/lib/hanami/reloader/cli.rb +59 -13
- data/lib/hanami/reloader/version.rb +1 -1
- metadata +9 -8
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8d91dd32f1438886ca1a40b2247d897fed66ae5b83e312ae58da597d31372a66
         | 
| 4 | 
            +
              data.tar.gz: 9d3ea58aaf49fd6537c90808e9824371ddf8c6fd0bc6cd01e8cfcaf853d6051d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 756e9e6636f484d41e41b11331623dd7e6ed0c311a90a0a2e037eed60b5c655dc65f02ae53023bc8f496137747999f6f27dd9659dea986619f1f5afe9f0083b3
         | 
| 7 | 
            +
              data.tar.gz: 8a58deecca120364099db7ce59a7f1000ca66ca581339407fd882b1700da6974bf9b2060ca7602556e22ee31c89f7e0c095f0323ea8a3d4ff74687928ab805cb
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,9 +1,19 @@ | |
| 1 1 | 
             
            # Hanami::Reloader
         | 
| 2 2 | 
             
            Code reloading for Hanami
         | 
| 3 3 |  | 
| 4 | 
            -
            ##  | 
| 4 | 
            +
            ## v1.0.0.alpha1 - 2019-01-30
         | 
| 5 | 
            +
            ### Added
         | 
| 6 | 
            +
            - [Luca Guidi] Added support for `hanami server --no-code-reloading` to skip code reloading.
         | 
| 7 | 
            +
            - [Luca Guidi] Added `hanami server --guardfile` option to specify the path to `Guardfile`. It defaults to `Guardfile` at the root of the project.
         | 
| 8 | 
            +
            - [Luca Guidi] Added support for `hanami generate reloader --puma` to generate Puma specific configuration.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            ### Changed
         | 
| 11 | 
            +
            - [Luca Guidi] Drop support for Ruby: MRI 2.3, and 2.4.
         | 
| 12 | 
            +
            - [Luca Guidi] `hanami generate reloader` generates `Guardfile` (instead of `.hanami.server.guardfile`), with the Guard `:server` group.
         | 
| 13 | 
            +
            - [Luca Guidi] `hanami server` will look for `Guardfile` at the root of the project instead of `.hanami.server.guardfile`.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## v0.3.0 - 2019-01-18
         | 
| 5 16 | 
             
            ### Added
         | 
| 6 | 
            -
            - [Luca Guidi] Official support for Ruby 2.7.0
         | 
| 7 17 | 
             
            - [Luca Guidi] Official support for Ruby 2.6.0
         | 
| 8 18 | 
             
            - [Luca Guidi] Support for `bundler` 2.0+
         | 
| 9 19 |  | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            lib = File.expand_path("lib", __dir__)
         | 
| 4 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 5 | 
            +
            require "hanami/reloader/version"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Gem::Specification.new do |spec|
         | 
| 8 | 
            +
              spec.name          = "hanami-reloader"
         | 
| 9 | 
            +
              spec.version       = Hanami::Reloader::VERSION
         | 
| 10 | 
            +
              spec.authors       = ["Luca Guidi"]
         | 
| 11 | 
            +
              spec.email         = ["me@lucaguidi.com"]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              spec.summary       = "Hanami reloader"
         | 
| 14 | 
            +
              spec.description   = "Code reloading for Hanami"
         | 
| 15 | 
            +
              spec.homepage      = "http://hanamirb.org"
         | 
| 16 | 
            +
              spec.license       = "MIT"
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              spec.required_ruby_version = ">= 2.5.0"
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              spec.files         = `git ls-files -- lib/* CHANGELOG.md LICENSE.md README.md hanami-reloader.gemspec`.split($INPUT_RECORD_SEPARATOR)
         | 
| 21 | 
            +
              spec.bindir        = "exe"
         | 
| 22 | 
            +
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 23 | 
            +
              spec.require_paths = ["lib"]
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              spec.metadata["allowed_push_host"] = "https://rubygems.org"
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              spec.add_dependency "hanami",     "~> 2.0.alpha"
         | 
| 28 | 
            +
              spec.add_dependency "guard-rack", "~> 2.2"
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              spec.add_development_dependency "bundler", ">= 1.6", "< 3"
         | 
| 31 | 
            +
              spec.add_development_dependency "rake",    "~> 12.0"
         | 
| 32 | 
            +
              spec.add_development_dependency "rspec",   "~> 3.7"
         | 
| 33 | 
            +
            end
         | 
    
        data/lib/hanami/reloader.rb
    CHANGED
    
    | @@ -1,18 +1,9 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            require "hanami/cli/commands"
         | 
| 4 | 
            -
            require "hanami/utils"
         | 
| 5 4 |  | 
| 6 5 | 
             
            module Hanami
         | 
| 7 | 
            -
               | 
| 8 | 
            -
                # Monkey-patch `Hanami::Utils.reload!` to disable Ruby based code-reloading
         | 
| 9 | 
            -
                def self.reload!(directory)
         | 
| 10 | 
            -
                  require!(directory)
         | 
| 11 | 
            -
                  warn "Requiring #{directory}"
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              # Hanami::Reloader
         | 
| 6 | 
            +
              # Hanami reloader
         | 
| 16 7 | 
             
              module Reloader
         | 
| 17 8 | 
             
                require "hanami/reloader/version"
         | 
| 18 9 | 
             
                require "hanami/reloader/cli"
         | 
    
        data/lib/hanami/reloader/cli.rb
    CHANGED
    
    | @@ -3,32 +3,78 @@ | |
| 3 3 | 
             
            module Hanami
         | 
| 4 4 | 
             
              module Reloader
         | 
| 5 5 | 
             
                module CLI
         | 
| 6 | 
            +
                  # Guardfile
         | 
| 7 | 
            +
                  module Guardfile
         | 
| 8 | 
            +
                    def self.group
         | 
| 9 | 
            +
                      "server"
         | 
| 10 | 
            +
                    end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    def self.default_path
         | 
| 13 | 
            +
                      path("Guardfile")
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    def self.path(path)
         | 
| 17 | 
            +
                      Hanami.root.join(path)
         | 
| 18 | 
            +
                    end
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 6 21 | 
             
                  # Generate hanami-reloader configuration
         | 
| 7 22 | 
             
                  class Generate < Hanami::CLI::Commands::Command
         | 
| 8 | 
            -
                    requires "environment"
         | 
| 9 | 
            -
             | 
| 10 23 | 
             
                    desc "Generate configuration for code reloading"
         | 
| 11 24 |  | 
| 12 | 
            -
                     | 
| 13 | 
            -
             | 
| 25 | 
            +
                    option :guardfile, type: :string,  desc: "Path to Guardfile",               default: Guardfile.default_path.to_s
         | 
| 26 | 
            +
                    option :puma,      type: :boolean, desc: "Generate configuration for Puma", default: false
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    def call(**args)
         | 
| 29 | 
            +
                      path = Guardfile.path(args.fetch(:guardfile))
         | 
| 30 | 
            +
                      puma = args.fetch(:puma)
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                      generate_configuration(path, puma)
         | 
| 33 | 
            +
                      bundle_gems(puma)
         | 
| 34 | 
            +
                    end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                    private
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    def generate_configuration(path, puma)
         | 
| 39 | 
            +
                      guard = puma ? "puma" : "rack"
         | 
| 14 40 |  | 
| 15 41 | 
             
                      files.touch(path)
         | 
| 16 42 | 
             
                      files.append path, <<~CODE
         | 
| 17 | 
            -
                         | 
| 18 | 
            -
                           | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 43 | 
            +
                        group :#{Guardfile.group} do
         | 
| 44 | 
            +
                          guard "#{guard}", port: ENV["HANAMI_PORT"] || 2300 do
         | 
| 45 | 
            +
                            watch(%r{config/*})
         | 
| 46 | 
            +
                            watch(%r{lib/*})
         | 
| 47 | 
            +
                            watch(%r{apps/*})
         | 
| 48 | 
            +
                          end
         | 
| 21 49 | 
             
                        end
         | 
| 22 | 
            -
            CODE
         | 
| 50 | 
            +
                      CODE
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    def bundle_gems(puma)
         | 
| 54 | 
            +
                      return unless puma
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                      exec "bundle add guard-puma --skip-install --group=development"
         | 
| 23 57 | 
             
                    end
         | 
| 24 58 | 
             
                  end
         | 
| 25 59 |  | 
| 26 60 | 
             
                  # Override `hanami server` command
         | 
| 27 | 
            -
                  class Server < Hanami::CLI::Commands:: | 
| 28 | 
            -
                    desc " | 
| 61 | 
            +
                  class Server < Hanami::CLI::Commands::Server
         | 
| 62 | 
            +
                    option :guardfile,      type: :string,  desc: "Path to Guardfile", default: Guardfile.default_path.to_s
         | 
| 63 | 
            +
                    option :code_reloading, type: :boolean, desc: "Code reloading",    default: true
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    example [
         | 
| 66 | 
            +
                      "--no-code-reloading # Disable code reloading"
         | 
| 67 | 
            +
                    ]
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    def call(**args)
         | 
| 70 | 
            +
                      code_reloading = args.fetch(:code_reloading)
         | 
| 29 71 |  | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 72 | 
            +
                      if code_reloading
         | 
| 73 | 
            +
                        path = Guardfile.path(args.fetch(:guardfile))
         | 
| 74 | 
            +
                        exec "bundle exec guard -n f -i -g #{Guardfile.group} -G #{path}"
         | 
| 75 | 
            +
                      else
         | 
| 76 | 
            +
                        super
         | 
| 77 | 
            +
                      end
         | 
| 32 78 | 
             
                    end
         | 
| 33 79 | 
             
                  end
         | 
| 34 80 | 
             
                end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: hanami-reloader
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 1.0.0.alpha1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Luca Guidi
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2019-01-30 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: hanami
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 2.0.alpha
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 2.0.alpha
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: guard-rack
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -96,6 +96,7 @@ files: | |
| 96 96 | 
             
            - CHANGELOG.md
         | 
| 97 97 | 
             
            - LICENSE.md
         | 
| 98 98 | 
             
            - README.md
         | 
| 99 | 
            +
            - hanami-reloader.gemspec
         | 
| 99 100 | 
             
            - lib/hanami-reloader.rb
         | 
| 100 101 | 
             
            - lib/hanami/reloader.rb
         | 
| 101 102 | 
             
            - lib/hanami/reloader/cli.rb
         | 
| @@ -113,14 +114,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 113 114 | 
             
              requirements:
         | 
| 114 115 | 
             
              - - ">="
         | 
| 115 116 | 
             
                - !ruby/object:Gem::Version
         | 
| 116 | 
            -
                  version: 2. | 
| 117 | 
            +
                  version: 2.5.0
         | 
| 117 118 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 118 119 | 
             
              requirements:
         | 
| 119 | 
            -
              - - " | 
| 120 | 
            +
              - - ">"
         | 
| 120 121 | 
             
                - !ruby/object:Gem::Version
         | 
| 121 | 
            -
                  version:  | 
| 122 | 
            +
                  version: 1.3.1
         | 
| 122 123 | 
             
            requirements: []
         | 
| 123 | 
            -
            rubygems_version: 3. | 
| 124 | 
            +
            rubygems_version: 3.0.2
         | 
| 124 125 | 
             
            signing_key: 
         | 
| 125 126 | 
             
            specification_version: 4
         | 
| 126 127 | 
             
            summary: Hanami reloader
         |