tailwindcss-rails 2.1.0-x86_64-darwin → 2.2.0-x86_64-darwin

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: '08cedd3293d65207e22e3c3a02af3878b026b4b341768868c2d382c4872f5b9a'
4
- data.tar.gz: 2b7fbc8d61466ea7ba829b7c092e333718ccb92eebc6073a2fbb84db950a7056
3
+ metadata.gz: aa6bb6c071f73439e619c7a1dd4ca4beb31ff824964e82324b955c264e74dd89
4
+ data.tar.gz: c5d9bc9742229e908051a8ed8380e3f77ce1af46755ce016922019d847e22e27
5
5
  SHA512:
6
- metadata.gz: 6d2e657d35232ff71a0c21903784aea813b4be53479582d242fc4e0b2bc30e1a5103f78257d2f93353831067e4fb005a5e724f9cab3c80e7f7143078ecf5cb05
7
- data.tar.gz: e33c17691cc2d005ece856c7633310afae393c71dd29b0b121587560c70a5c9abbdcdb10a6a1ddc04a9a0028995e781ee45458a745e5f2e5249d134a876c33d1
6
+ metadata.gz: eb03a06a680115075b3a0c0888366eb3ae90146b5b33c3d922ed06afb0a25704454c05cbe9d7b385fa8695ee7037a1d3e09dfa238db80ddd82e074da56865ddb
7
+ data.tar.gz: e0b338f1bab2224b716739fc467572652a3011db22ac1acc9b4b8d35fafef32f966ccc64d1a182ba8d999196dfff4e74bfd5ece4c9068c69011162634f16463e
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-darwin
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