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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7982adc5226a56d2d965c0ea68f74dc6b5b8939b8433cf1ea67fe356f2c97464
4
- data.tar.gz: a2538faf2cc0f993c4a00db2cb992b6b0a59d27c7a07d7892fbc9f85cd4b68bb
3
+ metadata.gz: 8d91dd32f1438886ca1a40b2247d897fed66ae5b83e312ae58da597d31372a66
4
+ data.tar.gz: 9d3ea58aaf49fd6537c90808e9824371ddf8c6fd0bc6cd01e8cfcaf853d6051d
5
5
  SHA512:
6
- metadata.gz: 5d297b5099d806c23234014f81f743e2245f3d9c6a7fe1aa39c34c5f879587dc54771e5b26f2bc6fb64f885dd3b34cc5e8410ada60e65a8649e6c5bd9eaff471
7
- data.tar.gz: cbdba6f6d284b02d1e37c414fc26fa15a046e64920b3dae937f3c8dedc0bf53774a53c78d8202928796d0fee229ece714be5adc4674b299a1f13dae858c6ae86
6
+ metadata.gz: 756e9e6636f484d41e41b11331623dd7e6ed0c311a90a0a2e037eed60b5c655dc65f02ae53023bc8f496137747999f6f27dd9659dea986619f1f5afe9f0083b3
7
+ data.tar.gz: 8a58deecca120364099db7ce59a7f1000ca66ca581339407fd882b1700da6974bf9b2060ca7602556e22ee31c89f7e0c095f0323ea8a3d4ff74687928ab805cb
@@ -1,9 +1,19 @@
1
1
  # Hanami::Reloader
2
2
  Code reloading for Hanami
3
3
 
4
- ## v0.3.0 - 2020-02-10
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
@@ -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
- module Utils # rubocop:disable Style/Documentation
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"
@@ -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
- def call(*)
13
- path = Hanami.root.join(".hanami.server.guardfile")
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
- guard "rack", port: ENV["HANAMI_PORT"] || 2300 do
18
- watch(%r{config/*})
19
- watch(%r{lib/*})
20
- watch(%r{apps/*})
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::Command
28
- desc "Starts the server with code reloading (only development) reloader"
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
- def call(*)
31
- exec "bundle exec guard -n f -i -G .hanami.server.guardfile"
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Hanami
4
4
  module Reloader
5
- VERSION = "0.3.0"
5
+ VERSION = "1.0.0.alpha1"
6
6
  end
7
7
  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.3.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: 2020-02-10 00:00:00.000000000 Z
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: '1.3'
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: '1.3'
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.3.0
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: '0'
122
+ version: 1.3.1
122
123
  requirements: []
123
- rubygems_version: 3.1.2
124
+ rubygems_version: 3.0.2
124
125
  signing_key:
125
126
  specification_version: 4
126
127
  summary: Hanami reloader