Class: MirrorMirror::Transformation::BorderRadius

Inherits:
PropertyTransformation show all
Defined in:
lib/mirror-mirror/transformation/border_radius.rb

Instance Method Summary collapse

Methods inherited from PropertyTransformation

instances, #transform_expression, #transform_expression?, #transform_name, #transform_name?

Methods inherited from Base

inherited, instances

Instance Method Details

#flip_corners!(list) ⇒ Object



32
33
34
35
36
# File 'lib/mirror-mirror/transformation/border_radius.rb', line 32

def flip_corners!(list)
  list[0], list[1] = list[1], list[0] if list.size > 1
  list[2], list[3] = list[3], list[2] if list.size > 3
  nil
end

#transform_value(name, value) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/mirror-mirror/transformation/border_radius.rb', line 7

def transform_value(name, value)
  values = value.split(/ +/)
  h_radii = []
  v_radii = []
  has_separator = false
  values.each do |v|
    if v == "/"
      has_separator = true
      next
    end
    if has_separator
      v_radii << v
    else
      h_radii << v
    end
  end
  flip_corners!(h_radii)
  flip_corners!(v_radii)
  values[0...h_radii.size] = h_radii
  if v_radii.any?
    values[(h_radii.size+1)..(h_radii.size+v_radii.size)] = v_radii
  end
  values.join(" ")
end

#transform_value?(name) ⇒ Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/mirror-mirror/transformation/border_radius.rb', line 3

def transform_value?(name)
  name == "border-radius"
end