hanami-reloader 0.3.0 → 1.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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