class YamlLint

Public Class Methods

new(file, config={}) click to toggle source
# File lib/yaml-lint.rb, line 36
def initialize(file, config={})
  @file = file
  @config = config
  @config[:quiet] = true if @config[:veryquiet]
  @config[:nocheckfileext] ||= false
end

Public Instance Methods

do_lint() click to toggle source
# File lib/yaml-lint.rb, line 43
def do_lint
  unless File.exists? @file
    error "File #{@file} does not exist"
    return 0
  else
    if File.directory? @file
      directory = format_directory(@file)
      return self.parse_directory directory
    else
      return self.parse_file @file
    end
  end
end
parse_directory(directory) click to toggle source
# File lib/yaml-lint.rb, line 57
def parse_directory(directory)
  Dir.glob("#{directory}/*").inject(0) do |mem, fdir|
    next mem if (Array(@config[:exclude])).include? File.basename(fdir)
    if File.directory? fdir
      mem + parse_directory(fdir)
    else
      mem + parse_file(fdir)
    end
  end
end
parse_file(file) click to toggle source
# File lib/yaml-lint.rb, line 68
def parse_file(file)
  if (not File.extname(file) =~ /.(yaml|yml)$/) && (not @config[:nocheckfileext])
    if @config[:ignorenoyaml]
      info "File : #{file}, Ignored"
      return 0
    end
    error "The extension of the file #{file} should be .yaml or .yml"
    return 1
  end
  begin
    YAML.load_file(file)
  rescue Exception => err
    error "File : #{file}, error: #{err}"
    return 1
  else
    info "File : #{file}, Syntax OK"
    return 0
  end
end

Private Instance Methods

format_directory(directory) click to toggle source
# File lib/yaml-lint.rb, line 90
def format_directory(directory)
  directory[-1] == '/' ? directory.chop : directory
end