Class: Styles::SubEngines::Color

Inherits:
Base
  • Object
show all
Defined in:
lib/styles/sub_engines/color.rb

Defined Under Namespace

Modules: PropertyMixin

Instance Method Summary collapse

Instance Method Details

#process(line) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/styles/sub_engines/color.rb', line 5

def process(line)
  color_sub_engine_properties = extract_sub_engine_properties line.applicable_properties
  line_properties, match_properties = color_sub_engine_properties.partition do |p|
    property_type(p) == :line
  end

  line_colors = get_line_colors(line_properties)

  colored_line = line.to_s.chomp

  match_properties.each do |prop|
    next unless prop.valid_value?
    if prop.selector.is_a? String
      colored_line = apply_string_match_property(prop, line_colors, colored_line)
    elsif prop.selector.is_a? Regexp
      colored_line = apply_regex_match_property(prop, line_colors, colored_line)
    end
  end

  line.text = line_colors.any? ? "#{colors[line_colors]}#{colored_line}#{colors[:reset]}" : colored_line
  line
end