firefly_server 0.1.5 → 0.1.8

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: 476df5bfd719fcb644e35b7c9d00b5d1de23e57c6bc7a8bd42558fdb511f3fec
4
- data.tar.gz: 21c888d6b489c3fca4739c0a21257618129796aa70ddfcf7aaa078f2f0e90a54
3
+ metadata.gz: b04065ac45fbb29a180a7fbb66ff65a19bfebefe60b7241dc4f4c01a59d2c4df
4
+ data.tar.gz: 257c5ad4142e4226d8e09fd415df24ce096bd93a5b5b1f810ace5b2cd6527482
5
5
  SHA512:
6
- metadata.gz: 615797e1ac543e67d5ccea3e104ea9d3b29666564e7ad9143114afd61b5e2b2711663b98475093f5809ddbc0f7f4052ddaa9992bc5970e374057c657f88f73b0
7
- data.tar.gz: b61ec9285b97add32bc4ad5b8161e6be4c59a5689184dad1cdb776edeacd41e2d14b17b98e23a490bd8b4db4b375c202adeeb606a3b0cbc0e702cdcba3861c62
6
+ metadata.gz: 215736552cc3881b875c2598ad8e3dbdb9110401b9097b5952d26e3e41715be9ca2194509bbf4082d24324058363dda26b8a8e83d16917870f89214371c1066f
7
+ data.tar.gz: d22dfecd4e76b7933f1115be105927223604ff1d74b31e9622d7a747e918e657f4707b4b7b3f2dde5d080513a83d90138fe1e436e8872e47aa0d1b56cd2bf377
@@ -4,11 +4,13 @@ class FireflyServer
4
4
  exit_signals
5
5
  watch_paths
6
6
  ignore_paths
7
- file_change_callbacks
7
+ on_change_callbacks
8
+ on_start_callbacks
8
9
  ])
9
10
  attr_accessor(*%w[
10
11
  start_server
11
12
  stop_server
13
+ reload_server
12
14
  pid_file
13
15
  restart_attempt_throttle_threshold
14
16
  restart_attempt_throttle_sleep
@@ -22,19 +24,32 @@ class FireflyServer
22
24
  # watcher defaults
23
25
  self.watch_paths = []
24
26
  self.ignore_paths = []
25
- self.file_change_callbacks = []
27
+ self.on_change_callbacks = []
28
+ self.on_start_callbacks = []
26
29
  # override defaults
27
30
  params.each do |key, value|
28
31
  send("#{key}=", value)
29
32
  end
30
33
  end
31
34
 
32
- %w[ exit_signals watch_paths ignore_paths file_change_callbacks ].each do |accessor|
35
+ # accessors that require array values
36
+ %w[
37
+ exit_signals
38
+ watch_paths
39
+ ignore_paths
40
+ on_change_callbacks
41
+ on_start_callbacks
42
+ ].each do |accessor|
33
43
  define_method("#{accessor}=") { |values| instance_variable_set("@#{accessor}", Array(values)) }
34
44
  end
35
45
 
36
46
  def on_change(&block)
37
- file_change_callbacks << block if block
47
+ on_change_callbacks << block if block
48
+ self
49
+ end
50
+
51
+ def on_start(&block)
52
+ on_start_callbacks << block if block
38
53
  self
39
54
  end
40
55
 
@@ -9,7 +9,7 @@ class FireflyServer
9
9
  @listener = nil
10
10
  end
11
11
 
12
- def watch!(&file_change_callback)
12
+ def watch!(&on_change_callback)
13
13
  # prevent multiple listeners
14
14
  listener.stop if listener
15
15
  # always mute the Listen logger due to verbosity
@@ -38,7 +38,7 @@ class FireflyServer
38
38
  end
39
39
  end
40
40
  # trigger change callbacks
41
- callbacks = (configuration.file_change_callbacks + [file_change_callback]).compact
41
+ callbacks = (configuration.on_change_callbacks + [on_change_callback]).compact
42
42
  if !callbacks.empty?
43
43
  change_event = ChangeEvent.new(
44
44
  ignored: ignored,
@@ -1,3 +1,3 @@
1
1
  class FireflyServer
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -58,11 +58,22 @@ class FireflyServer
58
58
  puts "Added: #{files.added.join(", ")}" if files.added?
59
59
  puts "Removed: #{files.removed.join(", ")}" if files.removed?
60
60
  # stop server
61
- if files.modified? || files.added? || files.removed?
61
+ if files.added? || files.removed?
62
+ puts "Stopping Server: #{configuration.stop_server}"
63
+ %x(#{configuration.stop_server})
64
+ elsif files.modified? && configuration.reload_server && files.modified.map { |f| f.end_with?(".rb") }.uniq == [true]
65
+ puts "Reloading Server: #{configuration.reload_server}"
66
+ ENV["FIREFLY_MODIFIED_FILES"] = files.modified.join(",")
67
+ %x(#{configuration.reload_server})
68
+ elsif files.modified?
62
69
  puts "Stopping Server: #{configuration.stop_server}"
63
70
  %x(#{configuration.stop_server})
64
71
  end
65
72
  end
73
+ # on_start callbacks
74
+ configuration.on_start_callbacks.each do |on_start_callback|
75
+ on_start_callback.call(self)
76
+ end
66
77
  # server loop
67
78
  restart_attempt = 0
68
79
  loop do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firefly_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Griffith Chaffee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-03 00:00:00.000000000 Z
11
+ date: 2025-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubygems_version: 3.0.3
111
+ rubygems_version: 3.5.3
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: Restarts a web server when watched files or directories are changed.