Sha256: 31c0d053b0f69c238509141a53b0b5238700e487961326472bcf91b524300a6a

Contents?: true

Size: 927 Bytes

Versions: 9

Compression:

Stored size: 927 Bytes

Contents

module SCSSLint
  # Checks that the declared names of functions, mixins, and variables are all
  # lowercase and use hyphens instead of underscores.
  class Linter::DeclaredName < Linter
    include LinterRegistry

    def visit_function(node)
      check(node, 'function')
      yield # Continue into content block of this function definition
    end

    def visit_mixindef(node)
      check(node, 'mixin')
      yield # Continue into content block of this mixin definition
    end

    def visit_variable(node)
      check(node, 'variable')
      yield # Continue into expression tree for this variable definition
    end

  private

    def check(node, node_type)
      if node_has_bad_name?(node)
        fixed_name = node.name.downcase.gsub(/_/, '-')

        add_lint(node, "Name of #{node_type} `#{node.name}` should " <<
                       "be written in lowercase as `#{fixed_name}`")
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
scss-lint-0.17.1 lib/scss_lint/linter/declared_name.rb
scss-lint-0.17.0 lib/scss_lint/linter/declared_name.rb
scss-lint-0.16.1 lib/scss_lint/linter/declared_name.rb
scss-lint-0.16.0 lib/scss_lint/linter/declared_name.rb
scss-lint-0.15.0 lib/scss_lint/linter/declared_name.rb
scss-lint-0.14.0 lib/scss_lint/linter/declared_name.rb
scss-lint-0.13.0 lib/scss_lint/linter/declared_name.rb
scss-lint-0.12.1 lib/scss_lint/linter/declared_name.rb
scss-lint-0.12.0 lib/scss_lint/linter/declared_name.rb