Module: Pageflow::LinkmapPage::PaperclipProcessors::Colors::ConvertOutput

Defined in:
lib/pageflow/linkmap_page/paperclip_processors/colors.rb

Constant Summary collapse

HEX_COLOR_REGEXP =
/#[0-9a-f]{6,8}/i
TRANSPARENT =
'#00000000'.freeze

Class Method Summary collapse

Class Method Details

.parse_trim(output) ⇒ Object



193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/pageflow/linkmap_page/paperclip_processors/colors.rb', line 193

def parse_trim(output)
  trimmed_size, size_and_offset = output.split(' ')[2, 3]
  width, height = trimmed_size.split('x')

  if size_and_offset.ends_with?('-1-1')
    return {left: 0, top: 0, width: 0, height: 0}
  end

  _size, left, top = size_and_offset.split('+')

  {
    left: left.to_i,
    top: top.to_i,
    width: width.to_i,
    height: height.to_i
  }
end

.parse_unique_colors(output) ⇒ Object



181
182
183
184
185
186
187
188
189
190
191
# File 'lib/pageflow/linkmap_page/paperclip_processors/colors.rb', line 181

def parse_unique_colors(output)
  output
    .split("\n")
    .reject { |line| line.starts_with?('#') }
    .map { |line| line[HEX_COLOR_REGEXP] }
    .reject { |color| color == TRANSPARENT }
    .map { |color| color.tr('#', '') }
    .map(&:downcase)
    .map { |color| color.gsub(/(.{6})ff/, '\1') }
    .sort
end