hanami-reloader 1.0.0.beta4 → 2.0.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/CHANGELOG.md +18 -0
- data/hanami-reloader.gemspec +2 -1
- data/lib/hanami/reloader/commands.rb +33 -13
- data/lib/hanami/reloader/version.rb +1 -1
- data/lib/hanami/reloader.rb +24 -1
- data/lib/hanami-reloader.rb +1 -1
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c0d0e893c89b578a0e297245fba34b1d945f51e83e1eb49124752ad5e125be0
|
4
|
+
data.tar.gz: b33608877874b06fa09b31179f29b6e933a7b0ea01b1efba4bf18d6f42be39c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35afb418f581321bf01c9c545cee648728ab05088a596ac7e923d3e291dc2e2c6ba34f97115d7a6c3b2732daa0081da44af08d7925e412c94e1725d93f16e08e
|
7
|
+
data.tar.gz: cc8ae84e5c8c382d12a9e676253b8e3cd5efa40ad898bbeb7cf3117ec3be157a67b30c6814470446878bfd53bc0044d47a7a66dda6fbb55e07c81973db7a6f5c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
Code reloading for Hanami 2
|
4
4
|
|
5
|
+
## v2.0.0 - 2022-11-22
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- [Tim Riley] Use Zeitwerk to autoload the gem
|
10
|
+
- [Luca Guidi] Generate new apps by requiring `guard-puma` `~> 0.8`
|
11
|
+
- [Tim Riley] Run bundle install after modifying `Gemfile`
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
|
15
|
+
- [Luca Guidi] Ensure to use the given HTTP port
|
16
|
+
|
17
|
+
## v2.0.0.rc1 - 2022-11-08
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
- [Luca Guidi] Follow `hanami` versioning
|
22
|
+
|
5
23
|
## v1.0.0.beta4 - 2022-10-24
|
6
24
|
|
7
25
|
### Changed
|
data/hanami-reloader.gemspec
CHANGED
@@ -25,7 +25,8 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
26
26
|
spec.metadata["rubygems_mfa_required"] = "true"
|
27
27
|
|
28
|
-
spec.add_dependency "hanami-cli", "~> 2.0
|
28
|
+
spec.add_dependency "hanami-cli", "~> 2.0"
|
29
|
+
spec.add_dependency "zeitwerk", "~> 2.6"
|
29
30
|
|
30
31
|
spec.add_development_dependency "bundler", ">= 1.6", "< 3"
|
31
32
|
spec.add_development_dependency "rake", "~> 13.0"
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "hanami/cli"
|
4
|
-
require "hanami/cli/command"
|
5
|
-
require "hanami/cli/commands"
|
6
|
-
require "hanami/cli/commands/app/server"
|
7
|
-
|
8
3
|
module Hanami
|
9
4
|
module Reloader
|
10
5
|
module Commands
|
@@ -27,6 +22,11 @@ module Hanami
|
|
27
22
|
class Install < Hanami::CLI::Command
|
28
23
|
desc "Generate configuration for code reloading"
|
29
24
|
|
25
|
+
def initialize(fs: Dry::Files.new, bundler: CLI::Bundler.new(fs: fs), **args)
|
26
|
+
super(fs: fs, **args)
|
27
|
+
@bundler = bundler
|
28
|
+
end
|
29
|
+
|
30
30
|
def call(*, **)
|
31
31
|
generate_configuration(Guardfile.default_path)
|
32
32
|
bundle_gems
|
@@ -34,6 +34,8 @@ module Hanami
|
|
34
34
|
|
35
35
|
private
|
36
36
|
|
37
|
+
attr_reader :bundler
|
38
|
+
|
37
39
|
def generate_configuration(path)
|
38
40
|
fs.write path, <<~CODE
|
39
41
|
# frozen_string_literal: true
|
@@ -52,6 +54,7 @@ module Hanami
|
|
52
54
|
def bundle_gems
|
53
55
|
fs.touch("Gemfile")
|
54
56
|
gemfile = fs.read("Gemfile")
|
57
|
+
|
55
58
|
return if gemfile.include?("guard-puma")
|
56
59
|
|
57
60
|
if gemfile.include?("group :development do")
|
@@ -62,15 +65,25 @@ module Hanami
|
|
62
65
|
fs.append "Gemfile", <<~CODE
|
63
66
|
|
64
67
|
group :development do
|
65
|
-
gem "guard-puma"
|
68
|
+
gem "guard-puma", "~> 0.8"
|
66
69
|
end
|
67
70
|
CODE
|
68
71
|
end
|
72
|
+
|
73
|
+
bundler.install!
|
69
74
|
end
|
70
75
|
end
|
71
76
|
|
72
77
|
# Override `hanami server` command
|
73
78
|
class Server < Hanami::CLI::Commands::App::Server
|
79
|
+
# @since 2.0.0
|
80
|
+
# @api private
|
81
|
+
DEFAULT_GUARD_PUMA_OPTIONS = ["-n", "f", "-i", "-g", Guardfile.group, "-G"].freeze
|
82
|
+
|
83
|
+
# @since 2.0.0
|
84
|
+
# @api private
|
85
|
+
OPTIONS_SEPARATOR = " "
|
86
|
+
|
74
87
|
option :guardfile, type: :string, desc: "Path to Guardfile", default: Guardfile.default_path.to_s
|
75
88
|
option :code_reloading, type: :boolean, desc: "Code reloading", default: true
|
76
89
|
|
@@ -84,18 +97,25 @@ module Hanami
|
|
84
97
|
code_reloading = args.fetch(:code_reloading)
|
85
98
|
|
86
99
|
if code_reloading
|
87
|
-
|
88
|
-
exec "bundle exec guard
|
100
|
+
guard_puma_env_vars!(**args)
|
101
|
+
exec "bundle exec guard #{guard_puma_options(**args)}"
|
89
102
|
else
|
90
103
|
super
|
91
104
|
end
|
92
105
|
end
|
106
|
+
|
107
|
+
private
|
108
|
+
|
109
|
+
def guard_puma_env_vars!(**args)
|
110
|
+
ENV["HANAMI_PORT"] = args.fetch(:port).to_s
|
111
|
+
end
|
112
|
+
|
113
|
+
def guard_puma_options(**args)
|
114
|
+
options = DEFAULT_GUARD_PUMA_OPTIONS.dup
|
115
|
+
options.push(Guardfile.path(args.fetch(:guardfile)))
|
116
|
+
options.join(OPTIONS_SEPARATOR)
|
117
|
+
end
|
93
118
|
end
|
94
119
|
end
|
95
120
|
end
|
96
121
|
end
|
97
|
-
|
98
|
-
if Hanami::CLI.within_hanami_app?
|
99
|
-
Hanami::CLI.after "install", Hanami::Reloader::Commands::Install
|
100
|
-
Hanami::CLI.register "server", Hanami::Reloader::Commands::Server
|
101
|
-
end
|
data/lib/hanami/reloader.rb
CHANGED
@@ -1,9 +1,32 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "hanami/cli"
|
4
|
+
require "zeitwerk"
|
5
|
+
|
3
6
|
module Hanami
|
4
7
|
# Hanami reloader
|
5
8
|
module Reloader
|
9
|
+
# @since 2.0.0
|
10
|
+
# @api private
|
11
|
+
def self.gem_loader
|
12
|
+
@gem_loader ||= Zeitwerk::Loader.new.tap do |loader|
|
13
|
+
root = File.expand_path("..", __dir__)
|
14
|
+
loader.tag = "hanami-reloader"
|
15
|
+
loader.inflector = Zeitwerk::GemInflector.new("#{root}/hanami-reloader.rb")
|
16
|
+
loader.push_dir(root)
|
17
|
+
loader.ignore(
|
18
|
+
"#{root}/hanami-reloader.rb",
|
19
|
+
"#{root}/hanami/controller/version.rb"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
gem_loader.setup
|
6
25
|
require_relative "reloader/version"
|
7
|
-
|
26
|
+
|
27
|
+
if Hanami::CLI.within_hanami_app?
|
28
|
+
Hanami::CLI.after "install", Commands::Install
|
29
|
+
Hanami::CLI.register "server", Commands::Server
|
30
|
+
end
|
8
31
|
end
|
9
32
|
end
|
data/lib/hanami-reloader.rb
CHANGED
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hanami-cli
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0
|
19
|
+
version: '2.0'
|
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: 2.0
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: zeitwerk
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.6'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.6'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,9 +132,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
132
|
version: '3.0'
|
119
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
|
-
- - "
|
135
|
+
- - ">="
|
122
136
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
137
|
+
version: '0'
|
124
138
|
requirements: []
|
125
139
|
rubygems_version: 3.3.7
|
126
140
|
signing_key:
|