class YamlLint
Public Class Methods
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
Source
# File lib/yaml-lint.rb, line 43 def do_lint unless File.exist? @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
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
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 if ::YAML.respond_to?(:unsafe_load) # Specific to psych 4.0+ payload = ::File.read(file) ::YAML.unsafe_load(payload) else ::YAML.load_file(file) end rescue Exception => err error "File : #{file}, error: #{err}" return 1 else info "File : #{file}, Syntax OK" return 0 end end
Private Instance Methods
Source
# File lib/yaml-lint.rb, line 96 def format_directory(directory) directory[-1] == '/' ? directory.chop : directory end