Sha256: 6f801b2fc0e0fdc092bba8130fee3f2ff263ea409adc9a2f7e942129b3cc1904

Contents?: true

Size: 761 Bytes

Versions: 4

Compression:

Stored size: 761 Bytes

Contents

require "tailwindcss/purger"

class Tailwindcss::Compressor
  def self.instance
    @instance ||= new
  end

  def self.call(input)
    instance.call(input)
  end

  def initialize(options = {})
    @options = {
      files_with_class_names: files_with_class_names,
      only_purge: %w[ tailwind ]
    }.merge(options).freeze
  end

  def call(input)
    if input[:name].in?(@options[:only_purge])
      { data: Tailwindcss::Purger.purge(input[:data], keeping_class_names_from_files: @options[:files_with_class_names]) }
    else
      input[:data]
    end
  end

  private
    def files_with_class_names
      Rails.root.glob("app/views/**/*.*") +
        Rails.root.glob("app/helpers/**/*.rb") +
        Rails.root.glob("app/javascript/**/*.js")
    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tailwindcss-rails-1.0.0 lib/tailwindcss/compressor.rb
tailwindcss-rails-0.5.4 lib/tailwindcss/compressor.rb
tailwindcss-rails-0.5.3 lib/tailwindcss/compressor.rb
tailwindcss-rails-0.5.2 lib/tailwindcss/compressor.rb