tailwindcss-rails 2.1.0-x64-mingw-ucrt → 2.2.0-x64-mingw-ucrt

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: 2bd47639d8cb606749ab20715f91bde403bb33db3c5b04154975562de5ee9ece
4
- data.tar.gz: 51b2148184155dfd035a6da315c8339c83e0a17c0df6c2fc8d61f75428a18b27
3
+ metadata.gz: 4e9c80fcd0b1cc33d701466a4495fb27e9c2781c2ba57599d8fcf307755ebbf2
4
+ data.tar.gz: 7df682b874320398c52aae3767a852abfce040d67ba0cf770f5289b63142b276
5
5
  SHA512:
6
- metadata.gz: 27eeaf07f7b5cb1bed5a65d408d232c475a4b854874a4bd6c72ff646855d0de2f4ea0d23fc8185e1d75b65f84cc83e36c83e8fa87ffbf880428f401949b34583
7
- data.tar.gz: af1ffb93c672a76efce40ce4babc6b72a39cb4139cb95267f132eb07cf36b09068565dce35a4da4c861744ce82fbabaf62b58bd3a833a8483d65385dcc1c5227
6
+ metadata.gz: 2f5648fbea61113c10453ac3068bdebdcfede957c2f5519e1b7de5629cc7a3bad5de207245a44def30ea5b64d832540e56f76fcc4dfd0ac619d4dd93d8d9c45a
7
+ data.tar.gz: 82c010da076ab7522066a7f659a296e99f48d33500d205f633e4db3988db92d4ef44b254561d4281309eb8bd5ac985ca7337cd37e729e0e5396476592e3abfaf
data/README.md CHANGED
@@ -60,10 +60,26 @@ The `tailwindcss:build` task is automatically attached to the `test:prepare` Rak
60
60
 
61
61
  ### Update assets automatically
62
62
 
63
- While you're developing your application, you want to run Tailwind in "watch" mode, so changes are automatically reflected in the generated CSS output. You can do this by:
63
+ While you're developing your application, you want to run Tailwind in "watch" mode, so changes are automatically reflected in the generated CSS output. You can do this in a few different ways:
64
64
 
65
- - running `rails tailwindcss:watch` as a separate process,
66
- - or by running `./bin/dev` which uses [foreman](https://github.com/ddollar/foreman) to start both the Tailwind watch process and the rails server in development mode.
65
+ - use the [Puma](https://puma.io/) plugin to integrate "watch" with `rails server`, or
66
+ - run `rails tailwindcss:watch` as a separate process, or
67
+ - run `bin/dev` which uses [Foreman](https://github.com/ddollar/foreman)
68
+
69
+ #### Puma plugin
70
+
71
+ The Puma plugin requires you to add this line to your `puma.rb` configuration:
72
+
73
+ ```ruby
74
+ plugin :tailwindcss if ENV.fetch("RAILS_ENV", "development") == "development"
75
+ ```
76
+
77
+ and then running `rails server` will run the Tailwind watch process in the background
78
+
79
+
80
+ #### Run `rails tailwindcss:watch`
81
+
82
+ This is a flexible command, which can be run with a few different options.
67
83
 
68
84
  If you are running `rails tailwindcss:watch` on a system that doesn't fully support file system events, pass a `poll` argument to the task to instruct tailwindcss to instead use polling: `rails tailwindcss:watch[poll]`. If you use `bin/dev` then you should modify your `Procfile.dev`.
69
85
 
@@ -72,6 +88,11 @@ If you are running `rails tailwindcss:watch` as a process in a Docker container,
72
88
  If you are running `rails tailwindcss:watch` in a docker container without a tty, pass the `always` argument to the task to instruct tailwindcss to keep the watcher alive even when `stdin` is closed: `rails tailwindcss:watch[always]`. If you use `bin/dev` then you should modify your `Procfile.dev`.
73
89
 
74
90
 
91
+ #### Foreman
92
+
93
+ Running `bin/dev` invokes Foreman to start both the Tailwind watch process and the rails server in development mode based on your `Procfile.dev` file.
94
+
95
+
75
96
  ### Debugging with unminified assets
76
97
 
77
98
  If you want unminified assets, you can pass a `debug` argument to the rake task, i.e. `rails tailwindcss:build[debug]` or `rails tailwindcss:watch[debug]`.
@@ -1,2 +1,2 @@
1
- web: env RUBY_DEBUG_OPEN=true bin/rails server -p 3000
1
+ web: bin/rails server
2
2
  css: bin/rails tailwindcss:watch
data/lib/install/dev CHANGED
@@ -5,4 +5,12 @@ if ! gem list foreman -i --silent; then
5
5
  gem install foreman
6
6
  fi
7
7
 
8
+ # Default to port 3000 if not specified
9
+ export PORT="${PORT:-3000}"
10
+
11
+ # Let the debug gem allow remote connections,
12
+ # but avoid loading until `debugger` is called
13
+ export RUBY_DEBUG_OPEN="true"
14
+ export RUBY_DEBUG_LAZY="true"
15
+
8
16
  exec foreman start -f Procfile.dev "$@"
@@ -0,0 +1,63 @@
1
+ require "puma/plugin"
2
+
3
+ Puma::Plugin.create do
4
+ attr_reader :puma_pid, :tailwind_pid, :log_writer
5
+
6
+ def start(launcher)
7
+ @log_writer = launcher.log_writer
8
+ @puma_pid = $$
9
+ @tailwind_pid = fork do
10
+ Thread.new { monitor_puma }
11
+ system(*Tailwindcss::Commands.watch_command)
12
+ end
13
+
14
+ launcher.events.on_stopped { stop_tailwind }
15
+
16
+ in_background do
17
+ monitor_tailwind
18
+ end
19
+ end
20
+
21
+ private
22
+ def stop_tailwind
23
+ Process.waitpid(tailwind_pid, Process::WNOHANG)
24
+ log "Stopping tailwind..."
25
+ Process.kill(:INT, tailwind_pid) if tailwind_pid
26
+ Process.wait(tailwind_pid)
27
+ rescue Errno::ECHILD, Errno::ESRCH
28
+ end
29
+
30
+ def monitor_puma
31
+ monitor(:puma_dead?, "Detected Puma has gone away, stopping tailwind...")
32
+ end
33
+
34
+ def monitor_tailwind
35
+ monitor(:tailwind_dead?, "Detected tailwind has gone away, stopping Puma...")
36
+ end
37
+
38
+ def monitor(process_dead, message)
39
+ loop do
40
+ if send(process_dead)
41
+ log message
42
+ Process.kill(:INT, $$)
43
+ break
44
+ end
45
+ sleep 2
46
+ end
47
+ end
48
+
49
+ def tailwind_dead?
50
+ Process.waitpid(tailwind_pid, Process::WNOHANG)
51
+ false
52
+ rescue Errno::ECHILD, Errno::ESRCH
53
+ true
54
+ end
55
+
56
+ def puma_dead?
57
+ Process.ppid != puma_pid
58
+ end
59
+
60
+ def log(...)
61
+ log_writer.log(...)
62
+ end
63
+ end
@@ -1,3 +1,3 @@
1
1
  module Tailwindcss
2
- VERSION = "2.1.0"
2
+ VERSION = "2.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tailwindcss-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-19 00:00:00.000000000 Z
11
+ date: 2024-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -72,6 +72,7 @@ files:
72
72
  - lib/install/dev
73
73
  - lib/install/tailwind.config.js
74
74
  - lib/install/tailwindcss.rb
75
+ - lib/puma/plugin/tailwindcss.rb
75
76
  - lib/tailwindcss-rails.rb
76
77
  - lib/tailwindcss/commands.rb
77
78
  - lib/tailwindcss/engine.rb