Class: Avo::TailwindBuilder
- Inherits:
-
Object
- Object
- Avo::TailwindBuilder
- Defined in:
- lib/avo/tailwind_builder.rb
Class Method Summary collapse
- .build ⇒ Object
- .enabled? ⇒ Boolean
- .tailwindcss_available? ⇒ Boolean
-
.tailwindcss_rails_version_supported? ⇒ Boolean
tailwindcss-rails depends on tailwindcss-ruby at every major version, so requiring "tailwindcss/ruby" succeeds even when the host app is pinned to tailwindcss-rails 3.x (Tailwind CSS v3).
- .watch ⇒ Object
Instance Method Summary collapse
Class Method Details
.build ⇒ Object
6 7 8 |
# File 'lib/avo/tailwind_builder.rb', line 6 def self.build new.build end |
.enabled? ⇒ Boolean
21 22 23 |
# File 'lib/avo/tailwind_builder.rb', line 21 def self.enabled? Avo.configuration.tailwindcss_integration_enabled && tailwindcss_available? && tailwindcss_rails_version_supported? end |
.tailwindcss_available? ⇒ Boolean
14 15 16 17 18 19 |
# File 'lib/avo/tailwind_builder.rb', line 14 def self.tailwindcss_available? require "tailwindcss/ruby" true rescue LoadError false end |
.tailwindcss_rails_version_supported? ⇒ Boolean
tailwindcss-rails depends on tailwindcss-ruby at every major version, so requiring "tailwindcss/ruby" succeeds even when the host app is pinned to tailwindcss-rails 3.x (Tailwind CSS v3). Avo's build pipeline emits Tailwind v4-only syntax, so we only enable the integration when tailwindcss-rails (if bundled at all) is >= 4.0.0. Apps that manage tailwindcss-ruby directly (no tailwindcss-rails) are unaffected by this check.
30 31 32 33 34 35 |
# File 'lib/avo/tailwind_builder.rb', line 30 def self.tailwindcss_rails_version_supported? spec = Gem.loaded_specs["tailwindcss-rails"] return true unless spec Gem::Version.new(spec.version) >= Gem::Version.new("4.0.0") end |
.watch ⇒ Object
10 11 12 |
# File 'lib/avo/tailwind_builder.rb', line 10 def self.watch new.watch end |
Instance Method Details
#build ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/avo/tailwind_builder.rb', line 37 def build return true unless self.class.enabled? run_engine_css_prebuilds generate_input_file success = run_tailwindcss("--minify") log_build_failure unless success success end |
#watch ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/avo/tailwind_builder.rb', line 47 def watch return true unless self.class.enabled? run_engine_css_prebuilds generate_input_file run_tailwindcss("--watch") end |