lib/scss_lint/linter/hex_linter.rb in scss-lint-0.6 vs lib/scss_lint/linter/hex_linter.rb in scss-lint-0.6.5

- old
+ new

@@ -2,44 +2,32 @@ module SCSSLint class Linter::HexLinter < Linter include LinterRegistry - class << self - def run(engine) - lints = [] - engine.tree.each do |node| - if node.is_a?(Sass::Tree::PropNode) - lints << check_valid_hex_value(node) - end - end - lints.compact + def visit_prop(node) + if node.value.is_a?(Sass::Script::String) && + node.value.to_s =~ /#(\h{3,6})/ + add_lint(node) unless valid_hex?($1) end + end - def description - 'Hexadecimal color codes should be lowercase and in 3-digit form where possible' - end + def description + 'Hexadecimal color codes should be lowercase and in 3-digit form where possible' + end - private + private - def check_valid_hex_value(prop_node) - if prop_node.value.is_a?(Sass::Script::String) && - prop_node.value.to_s =~ /#(\h{3,6})/ - return create_lint(prop_node) unless valid_hex?($1) - end - end + def valid_hex?(hex) + [3,6].include?(hex.length) && + hex.downcase == hex && + !can_be_condensed(hex) + end - def valid_hex?(hex) - [3,6].include?(hex.length) && - hex.downcase == hex && - !can_be_condensed(hex) - end - - def can_be_condensed(hex) - hex.length == 6 && - hex[0] == hex[1] && - hex[2] == hex[3] && - hex[4] == hex[5] - end + def can_be_condensed(hex) + hex.length == 6 && + hex[0] == hex[1] && + hex[2] == hex[3] && + hex[4] == hex[5] end end end