tailwindcss-rails 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +24 -3
- data/lib/install/Procfile.dev +1 -1
- data/lib/install/dev +8 -0
- data/lib/puma/plugin/tailwindcss.rb +63 -0
- data/lib/tailwindcss/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de196b39f177a23353fe1b2264233a5dc43135997dbe64d977a023f4284ee895
|
4
|
+
data.tar.gz: 8e4a38a8f018572466852d7c3a7179f07b44715aa2618b7eddf509e2826e21a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efeb15889ec6cd234f64d2c2561833d0f3876bbf97c25070577e09be1ee499b1db11b0243f258f6bb3659ebc8e97cf93fe53c150a2b119372c7f1239567bfdf3
|
7
|
+
data.tar.gz: 51ec5b33d3e065b1c7c2d1f330c5b8b2d654bf6413e072ae3524557e87a2c01ddc8b7638c6d2c0b6144d77c5e30837b781c65f7953c3446f0b7061591b191d0e
|
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
|
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
|
-
-
|
66
|
-
-
|
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]`.
|
data/lib/install/Procfile.dev
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
web:
|
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
|
data/lib/tailwindcss/version.rb
CHANGED
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.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- lib/install/dev
|
71
71
|
- lib/install/tailwind.config.js
|
72
72
|
- lib/install/tailwindcss.rb
|
73
|
+
- lib/puma/plugin/tailwindcss.rb
|
73
74
|
- lib/tailwindcss-rails.rb
|
74
75
|
- lib/tailwindcss/commands.rb
|
75
76
|
- lib/tailwindcss/engine.rb
|