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
|