Class: LookbookVisualTester::VariantResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/lookbook_visual_tester/variant_resolver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input_variant) ⇒ VariantResolver

Returns a new instance of VariantResolver.



5
6
7
# File 'lib/lookbook_visual_tester/variant_resolver.rb', line 5

def initialize(input_variant)
  @input_variant = input_variant || {}
end

Instance Attribute Details

#input_variantObject (readonly)

Returns the value of attribute input_variant.



3
4
5
# File 'lib/lookbook_visual_tester/variant_resolver.rb', line 3

def input_variant
  @input_variant
end

Instance Method Details

#resolveObject



9
10
11
12
13
14
15
# File 'lib/lookbook_visual_tester/variant_resolver.rb', line 9

def resolve
  resolved = {}
  @input_variant.each do |key, label|
    resolved[key.to_sym] = resolve_value(key, label)
  end
  resolved
end

#slugObject



17
18
19
20
21
22
23
# File 'lib/lookbook_visual_tester/variant_resolver.rb', line 17

def slug
  return '' if @input_variant.empty?

  @input_variant.sort_by { |k, _v| k.to_s }.map do |key, label|
    "#{key}-#{sanitize(label)}"
  end.join('_')
end

#width_in_pixelsObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/lookbook_visual_tester/variant_resolver.rb', line 25

def width_in_pixels
  resolved_width = resolve[:width]
  return nil unless resolved_width

  if resolved_width.to_s.end_with?('px')
    resolved_width.to_i
  else
    nil # Ignore percentages or other units for resizing
  end
end