tailwindcss-rails 2.1.0-x86_64-linux → 2.2.0-x86_64-linux

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: 77857a025d55627233fdd361eb7617f8ca67c7491d742e433146b34e6a539b55
4
- data.tar.gz: aac6c873e8e275b33c7c556c295b5edafcc3e96ee33672e48caf72b3b50b0153
3
+ metadata.gz: 927f8fce9cdd72071903d28bb3d9603c23e2d12070a1ff3e6204423a7a6886ed
4
+ data.tar.gz: d7691e03d2d6243e86683cc9e9a26501db5ddf1fdc5b2a917bcb5ba8058f9832
5
5
  SHA512:
6
- metadata.gz: 15b77767e1beb59b3d880f174aa528503018da117e68ce12e4d824ce73d82c26ab59daafb6823c0e86d9b81a13bb4243857a33637aec77f9651fbac59941884c
7
- data.tar.gz: 8cb6e8def4946b4db4b986f8a3f7c7669455dc3725591770e42ef8eed61d8793216bccf9ca597ece6002c5a02bd8a5935f595b9150f3fb56ffc68689905e4baf
6
+ metadata.gz: 3f6f26c3961a8bdbfe55abd864a3ddf14830af56f316b4f0b51424abb98656c32543b9ba9a3f2783a8cb85a312556bac4e4ce83600257041f428662ea633aa3a
7
+ data.tar.gz: 812495733d2eca65e6dbada82bdc08511851bfaa5596c1f9e63e84571c008f05205903f0683db613165c5844ff91ecf8641ba72869347aeb995dbce9c36febe7
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: x86_64-linux
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