Sha256: 5bed7b6e0749471c3c1d4ff616e5cd11736e0956f9942e06f9be70dde86b1d9c

Contents?: true

Size: 787 Bytes

Versions: 9

Compression:

Stored size: 787 Bytes

Contents

require 'gherkin_lint/linter'

module GherkinLint
  # service class to lint for file name differs feature name
  class FileNameDiffersFeatureName < Linter
    def lint
      features do |file, feature|
        next unless feature.include? :name
        expected_feature_name = title_case file
        next if ignore_whitespaces(feature[:name]).casecmp(ignore_whitespaces(expected_feature_name)) == 0
        references = [reference(file, feature)]
        add_error(references, "Feature name should be '#{expected_feature_name}'")
      end
    end

    def title_case(value)
      value = File.basename(value, '.feature')
      value.split('_').collect(&:capitalize).join(' ')
    end

    def ignore_whitespaces(value)
      value.delete('-').delete('_').delete(' ')
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gherkin_lint-1.2.2 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-1.2.1 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-1.1.0 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-1.0.0 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-0.6.3 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-0.6.2 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-0.6.1 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-0.6.0 lib/gherkin_lint/linter/file_name_differs_feature_name.rb
gherkin_lint-0.5.0 lib/gherkin_lint/linter/file_name_differs_feature_name.rb