Class: TailwindMerge::Merger
- Inherits:
-
Object
- Object
- TailwindMerge::Merger
- Includes:
- Config, ParseClassName, SortModifiers
- Defined in:
- lib/tailwind_merge.rb
Constant Summary collapse
- SPLIT_CLASSES_REGEX =
/\s+/
Constants included from ParseClassName
ParseClassName::IMPORTANT_MODIFIER, ParseClassName::MODIFIER_SEPARATOR, ParseClassName::MODIFIER_SEPARATOR_LENGTH
Constants included from Config
Config::DEFAULTS, Config::SCALE_ALIGN_PRIMARY_AXIS, Config::SCALE_ALIGN_SECONDARY_AXIS, Config::SCALE_BG_POSITION, Config::SCALE_BG_REPEAT, Config::SCALE_BG_SIZE, Config::SCALE_BLEND_MODE, Config::SCALE_BLUR, Config::SCALE_BORDER_WIDTH, Config::SCALE_BREAK, Config::SCALE_COLOR, Config::SCALE_GRADIENT_STOP_POSITION, Config::SCALE_GRID_AUTO_COLS_ROWS, Config::SCALE_GRID_COL_ROW_START_AND_END, Config::SCALE_GRID_COL_ROW_START_OR_END, Config::SCALE_GRID_TEMPLATE_COLS_ROWS, Config::SCALE_INSET, Config::SCALE_LINE_STYLE, Config::SCALE_MARGIN, Config::SCALE_MASK_IMAGE_POSITION, Config::SCALE_OVERFLOW, Config::SCALE_OVERSCROLL, Config::SCALE_POSITION, Config::SCALE_POSITION_WITH_ARBITRARY, Config::SCALE_RADIUS, Config::SCALE_ROTATE, Config::SCALE_SCALE, Config::SCALE_SIZING, Config::SCALE_SKEW, Config::SCALE_TRANSLATE, Config::SCALE_UNAMBIGUOUS_SPACING, Config::THEME_KEYS, Config::VALID_THEME_IDS
Constants included from Validators
Validators::ARBITRARY_VALUE_REGEX, Validators::ARBITRARY_VARIABLE_REGEX, Validators::COLOR_FUNCTION_REGEX, Validators::FRACTION_REGEX, Validators::IMAGE_REGEX, Validators::IS_ANY, Validators::IS_ANY_NON_ARBITRARY, 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_ARBITRARY_VARIABLE, Validators::IS_ARBITRARY_VARIABLE_FAMILY_NAME, Validators::IS_ARBITRARY_VARIABLE_IMAGE, Validators::IS_ARBITRARY_VARIABLE_LENGTH, Validators::IS_ARBITRARY_VARIABLE_POSITION, Validators::IS_ARBITRARY_VARIABLE_SHADOW, Validators::IS_ARBITRARY_VARIABLE_SIZE, Validators::IS_FRACTION, Validators::IS_IMAGE, Validators::IS_INTEGER, Validators::IS_LABEL_FAMILY_NAME, Validators::IS_LABEL_IMAGE, Validators::IS_LABEL_LENGTH, Validators::IS_LABEL_NUMBER, Validators::IS_LABEL_POSITION, Validators::IS_LABEL_SHADOW, Validators::IS_LABEL_SIZE, Validators::IS_LENGTH_ONLY, Validators::IS_NEVER, Validators::IS_NUMBER, Validators::IS_PERCENT, Validators::IS_SHADOW, Validators::IS_TSHIRT_SIZE, Validators::LENGTH_UNIT_REGEX, Validators::SHADOW_REGEX, Validators::TSHIRT_UNIT_REGEX
Instance Method Summary collapse
-
#initialize(config: {}) ⇒ Merger
constructor
A new instance of Merger.
- #merge(classes) ⇒ Object
Methods included from SortModifiers
Methods included from ParseClassName
#parse_class_name, #strip_important_modifier
Methods included from Config
Methods included from Validators
arbitrary_value?, arbitrary_variable?, integer?, numeric?
Constructor Details
#initialize(config: {}) ⇒ Merger
Returns a new instance of Merger.
23 24 25 26 27 28 |
# File 'lib/tailwind_merge.rb', line 23 def initialize(config: {}) @config = merge_config(config) @config[:important_modifier] = @config[:important_modifier].to_s @class_utils = TailwindMerge::ClassGroupUtils.new(@config) @cache = LruRedux::Cache.new(@config[:cache_size], @config[:ignore_empty_cache]) end |
Instance Method Details
#merge(classes) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/tailwind_merge.rb', line 30 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 |