Class: TailwindMerge::Merger

Inherits:
Object
  • Object
show all
Includes:
Config, ModifierUtils
Defined in:
lib/tailwind_merge.rb

Constant Summary collapse

SPLIT_CLASSES_REGEX =
/\s+/

Constants included from ModifierUtils

TailwindMerge::ModifierUtils::IMPORTANT_MODIFIER

Constants included from Config

Config::ALIGN, Config::BLEND_MODES, Config::BREAKS, Config::DEFAULTS, Config::LENGTH_WITH_EMPTY_AND_ARBITRARY, Config::LINE_STYLES, Config::NUMBER_AND_ARBITRARY, Config::NUMBER_WITH_AUTO_AND_ARBITRARY, Config::OVERFLOW, Config::OVERSCROLL, Config::POSITIONS, Config::SPACING_WITH_ARBITRARY, Config::SPACING_WITH_AUTO_AND_ARBITRARY, Config::THEME_KEYS, Config::VALID_THEME_IDS, Config::ZERO_AND_EMPTY

Constants included from Validators

Validators::ARBITRARY_VALUE_REGEX, Validators::COLOR_FUNCTION_REGEX, Validators::FRACTION_REGEX, Validators::IMAGE_LABELS, Validators::IMAGE_REGEX, Validators::IS_ANY, Validators::IS_ARBITRARY_IMAGE, Validators::IS_ARBITRARY_LENGTH, Validators::IS_ARBITRARY_NUMBER, Validators::IS_ARBITRARY_POSITION, Validators::IS_ARBITRARY_SHADOW, Validators::IS_ARBITRARY_SIZE, Validators::IS_ARBITRARY_VALUE, Validators::IS_INTEGER, Validators::IS_LENGTH, Validators::IS_NUMBER, Validators::IS_PERCENT, Validators::IS_TSHIRT_SIZE, Validators::LENGTH_UNIT_REGEX, Validators::SHADOW_REGEX, Validators::SIZE_LABELS, Validators::STRING_LENGTHS, Validators::TSHIRT_UNIT_REGEX

Instance Method Summary collapse

Methods included from ModifierUtils

#sort_modifiers, #split_modifiers

Methods included from Config

#merge_configs

Methods included from Validators

arbitrary_value?, integer?, numeric?

Constructor Details

#initialize(config: {}) ⇒ Merger

Returns a new instance of Merger.



21
22
23
24
25
26
27
28
29
30
# File 'lib/tailwind_merge.rb', line 21

def initialize(config: {})
  @config = if config.key?(:theme)
    merge_configs(config)
  else
    TailwindMerge::Config::DEFAULTS.merge(config)
  end

  @class_utils = TailwindMerge::ClassUtils.new(@config)
  @cache = LruRedux::Cache.new(@config[:cache_size], @config[:ignore_empty_cache])
end

Instance Method Details

#merge(classes) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/tailwind_merge.rb', line 32

def merge(classes)
  normalized = classes.is_a?(Array) ? classes.compact.join(" ") : classes.to_s

  @cache.getset(normalized) do
    merge_class_list(normalized).freeze
  end
end