Sha256: 9a60ec1a8eff1e757d0b390e59ce20e44d4b1caed1341aefabdea0fa027cbcc7

Contents?: true

Size: 661 Bytes

Versions: 9

Compression:

Stored size: 661 Bytes

Contents

require 'chutney/linter'

module Chutney
  # service class to lint for invalid file names
  class InvalidFileName < Linter
    def lint
      feature do |f|
        base = File.basename(filename, '.*')
        if base != base.downcase || base =~ /[ -]/
          add_issue(I18n.t('linters.invalid_file_name', recommended_name: recommend(filename)), f)
        end
      end
    end
    
    def recommend(filename)
      File.basename(filename, '.*').gsub(/::/, '/')
          .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
          .gsub(/([a-z\d])([A-Z])/, '\1_\2')
          .tr('-', '_')
          .tr(' ', '_')
          .downcase << '.feature'
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
chutney-2.2.1 lib/chutney/linter/invalid_file_name.rb
chutney-2.1.1 lib/chutney/linter/invalid_file_name.rb
chutney-2.1.0 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.3.1 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.3 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.2 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.1 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.0 lib/chutney/linter/invalid_file_name.rb
chutney-2.0.0.rc1 lib/chutney/linter/invalid_file_name.rb