server-gem-listen 0.1.1 → 0.2.1
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/README.md +6 -3
- data/lib/server_gem_listen.rb +5 -3
- data/lib/server_gem_listen/listener.rb +27 -7
- data/lib/server_gem_listen/{puma.rb → server.rb} +3 -3
- data/lib/server_gem_listen/version.rb +1 -1
- data/server-gem-listen.gemspec +3 -3
- metadata +28 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1b9f87a624c8be221edeb444b12e4ef42838d6cda87389dfb93aac4542cd7c3
|
4
|
+
data.tar.gz: 89581f67c9f7236a14c7b5000596061146472f42081419bfc15acc31cd4e4d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73f07290d1c10e9d6226f1897a6379ee25839e9d9cfe80035160614b183ccd05ccdd5b329a4640b76d946789e5cc0a7b8537fee893fada97d49520cecb7bf9fb
|
7
|
+
data.tar.gz: f67c6dd26aa732d9249df0e9c9a036c7a403ae6800ed69cdc33adc544c09fad76df53176f95dc99fc6e3f33cb23ecff78134deb16f656b58363e8d3c633718e9
|
data/README.md
CHANGED
@@ -7,9 +7,12 @@ gem install server-gem-listen
|
|
7
7
|
```
|
8
8
|
|
9
9
|
## Usage
|
10
|
-
|
11
|
-
|
10
|
+
Execute the command below under your project root:
|
11
|
+
```
|
12
|
+
server-gem-listen
|
13
|
+
```
|
14
|
+
This will launch `rails s` wrapped with gem watcher.
|
12
15
|
|
13
16
|
## License
|
14
17
|
|
15
|
-
|
18
|
+
Server Gem Listen is released under the [MIT License](https://opensource.org/licenses/MIT).
|
data/lib/server_gem_listen.rb
CHANGED
@@ -3,14 +3,16 @@ require "awesome_print"
|
|
3
3
|
require "bundler"
|
4
4
|
require "listen"
|
5
5
|
require "server_gem_listen/listener"
|
6
|
-
require "server_gem_listen/
|
6
|
+
require "server_gem_listen/server"
|
7
7
|
require "server_gem_listen/version"
|
8
8
|
|
9
9
|
module ServerGemListen
|
10
|
+
NOTIFICATION_PREFIX = '=> Server Gem Listen:'
|
11
|
+
|
10
12
|
def self.launch
|
11
|
-
puts
|
13
|
+
puts "#{NOTIFICATION_PREFIX} launch default server"
|
12
14
|
Bundler.configure
|
13
|
-
|
15
|
+
Server.start
|
14
16
|
Listener.start
|
15
17
|
end
|
16
18
|
end
|
@@ -2,13 +2,10 @@ module ServerGemListen
|
|
2
2
|
module Listener
|
3
3
|
class << self
|
4
4
|
def start
|
5
|
-
|
6
|
-
notify(*args)
|
7
|
-
Puma.restart
|
8
|
-
end
|
9
|
-
|
10
|
-
listener.start
|
5
|
+
listen_events.start
|
11
6
|
sleep
|
7
|
+
rescue Interrupt => e
|
8
|
+
puts "\n#{ServerGemListen::NOTIFICATION_PREFIX} interrupted"
|
12
9
|
end
|
13
10
|
|
14
11
|
private
|
@@ -18,10 +15,33 @@ module ServerGemListen
|
|
18
15
|
files.each_pair do |key, value|
|
19
16
|
next if value.empty?
|
20
17
|
value.map! { |v| v.gsub(ENV['GEM_HOME'], '') }
|
21
|
-
|
18
|
+
puts "#{ServerGemListen::NOTIFICATION_PREFIX} #{'file'.pluralize(value.size)} #{key}"
|
22
19
|
ap value
|
23
20
|
end
|
24
21
|
end
|
22
|
+
|
23
|
+
def listen_events
|
24
|
+
gems = Bundler.definition.specs.to_hash.keys
|
25
|
+
Listen.to(ENV['GEM_HOME']) do |*args|
|
26
|
+
process_event(gems, *args)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def process_event(gems, *args)
|
31
|
+
return unless need_restart?(gems, *args)
|
32
|
+
notify(*args)
|
33
|
+
Server.restart
|
34
|
+
end
|
35
|
+
|
36
|
+
def need_restart?(gems, *args)
|
37
|
+
args.each do |arg|
|
38
|
+
arg.each do |path|
|
39
|
+
matches = gems.select { |gem| path.include? gem }
|
40
|
+
return true unless matches.empty?
|
41
|
+
end
|
42
|
+
end
|
43
|
+
false
|
44
|
+
end
|
25
45
|
end
|
26
46
|
end
|
27
47
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module ServerGemListen
|
2
|
-
module
|
2
|
+
module Server
|
3
3
|
class << self
|
4
4
|
def start
|
5
5
|
Thread.new do
|
6
|
-
system 'rails s'
|
6
|
+
system './bin/rails s'
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
def restart
|
11
|
-
puts
|
11
|
+
puts "#{ServerGemListen::NOTIFICATION_PREFIX} Restart Puma"
|
12
12
|
stop
|
13
13
|
start
|
14
14
|
end
|
data/server-gem-listen.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["vavgustov@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Automatically reload rails server on gem source changes.}
|
13
|
-
spec.description = %q{
|
13
|
+
spec.description = %q{Not for actual development or production usage. You can use this gem for quick 'scientific' experiments with core.}
|
14
14
|
spec.homepage = "https://github.com/vavgustov/server-gem-listen."
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
28
28
|
|
29
|
+
spec.add_runtime_dependency "activesupport", "> 5.0", "< 6"
|
30
|
+
spec.add_runtime_dependency "awesome_print", ">= 1.6", "< 1.9"
|
29
31
|
spec.add_runtime_dependency "bundler", "~> 1.16"
|
30
|
-
spec.add_runtime_dependency "awesome_print", "~> 1.8"
|
31
|
-
spec.add_runtime_dependency "activesupport", "~> 5.1"
|
32
32
|
spec.add_runtime_dependency "listen", "~> 3.1"
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: server-gem-listen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Avgustov
|
@@ -39,47 +39,59 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.0'
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '6'
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
|
-
- - "
|
55
|
+
- - ">"
|
53
56
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
57
|
+
version: '5.0'
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '6'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: awesome_print
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.6'
|
68
|
+
- - "<"
|
60
69
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
70
|
+
version: '1.9'
|
62
71
|
type: :runtime
|
63
72
|
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
65
74
|
requirements:
|
66
|
-
- - "
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.6'
|
78
|
+
- - "<"
|
67
79
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
80
|
+
version: '1.9'
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
82
|
+
name: bundler
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
72
84
|
requirements:
|
73
85
|
- - "~>"
|
74
86
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
87
|
+
version: '1.16'
|
76
88
|
type: :runtime
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
92
|
- - "~>"
|
81
93
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
94
|
+
version: '1.16'
|
83
95
|
- !ruby/object:Gem::Dependency
|
84
96
|
name: listen
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +106,8 @@ dependencies:
|
|
94
106
|
- - "~>"
|
95
107
|
- !ruby/object:Gem::Version
|
96
108
|
version: '3.1'
|
97
|
-
description:
|
109
|
+
description: Not for actual development or production usage. You can use this gem
|
110
|
+
for quick 'scientific' experiments with core.
|
98
111
|
email:
|
99
112
|
- vavgustov@gmail.com
|
100
113
|
executables:
|
@@ -118,7 +131,7 @@ files:
|
|
118
131
|
- exe/server-gem-listen
|
119
132
|
- lib/server_gem_listen.rb
|
120
133
|
- lib/server_gem_listen/listener.rb
|
121
|
-
- lib/server_gem_listen/
|
134
|
+
- lib/server_gem_listen/server.rb
|
122
135
|
- lib/server_gem_listen/version.rb
|
123
136
|
- server-gem-listen.gemspec
|
124
137
|
homepage: https://github.com/vavgustov/server-gem-listen.
|