Module: AdapterHelper::RgbToHex

Included in:
Premailer::Adapter::Nokogiri, Premailer::Adapter::NokogiriFast, Premailer::Adapter::Nokogumbo
Defined in:
lib/premailer/adapter/rgb_to_hex.rb

Instance Method Summary collapse

Instance Method Details

#ensure_hex(color) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/premailer/adapter/rgb_to_hex.rb', line 24

def ensure_hex(color)
  match_data = is_rgb?(color)
  if match_data
    "#{to_hex(match_data[1])}#{to_hex(match_data[2])}#{to_hex(match_data[3])}"
  else
    color
  end
end

#is_rgb?(color) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/premailer/adapter/rgb_to_hex.rb', line 9

def is_rgb?(color)
  pattern = %r{
  rgb
  \(\s*    # literal open, with optional whitespace
  (\d{1,3})   # capture 1-3 digits
  \s*,\s*     # comma, with optional whitespace
  (\d{1,3})   # capture 1-3 digits
  \s*,\s*     # comma, with optional whitespace
  (\d{1,3})   # capture 1-3 digits
  \s*\)       # literal close, with optional whitespace
  }x

  pattern.match(color)
end

#to_hex(str) ⇒ Object



5
6
7
# File 'lib/premailer/adapter/rgb_to_hex.rb', line 5

def to_hex(str)
  str.to_i.to_s(16).rjust(2, '0').upcase
end