bin/review-validate in review-2.3.0 vs bin/review-validate in review-2.4.0
- old
+ new
@@ -1,52 +1,53 @@
#!/usr/bin/env ruby
-# Copyright (c) 2010-2016 Kenshi Muto
+# Copyright (c) 2010-2017 Kenshi Muto
#
# This program is free software
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
# For details of the GNU LGPL, see the file "COPYING".
#
# simple validator for Re:VIEW
+require 'pathname'
+bindir = Pathname.new(__FILE__).realpath.dirname
+$LOAD_PATH.unshift((bindir + '../lib').realpath)
+require 'review/logger'
+
block = nil
maxcolcount = 0
colcount = 0
ln = 0
-ARGF.each {|line|
+@logger = ReVIEW.logger
+
+ARGF.each do |line|
ln += 1
- if line =~ /\A\/\/([a-z]+)\{\s*\Z/ || line =~ /\A\/\/([a-z]+)\[.+?\{\s*\Z/
+ if line =~ %r{\A//([a-z]+)\{\s*\Z} || line =~ %r{\A//([a-z]+)\[.+?\{\s*\Z}
# block
new_block = $1
- puts "#{ln}: block #{new_block} started, but previous block #{block} didn't close yet." unless block.nil?
+ @logger.warn "#{ln}: block #{new_block} started, but previous block #{block} didn't close yet." if block
block = new_block
- elsif line =~ /\A\/\/\}/
- puts "#{ln}: block ended, but not opened." if block.nil?
+ elsif line =~ %r{\A//\}}
+ @logger.warn "#{ln}: block ended, but not opened." if block.nil?
block = nil
maxcolcount = 0
colcount = 0
elsif line =~ /\A(\d+\.)\s+/
# number
- unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
- puts "#{ln}: found '#{$1}' without the head space. Is it correct?"
- end
+ @logger.warn "#{ln}: found '#{$1}' without the head space. Is it correct?" unless %w[list emlist listnum emlistnum cmd image table].include?(block)
elsif line =~ /\A\*\s+/
# itemize
- unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
- puts "#{ln}: found '*' without the head space. Is it correct?"
- end
+ @logger.warn "#{ln}: found '*' without the head space. Is it correct?" unless %w[list emlist listnum emlistnum cmd image table].include?(block)
elsif line =~ /\A\s+(\d+\.)\s+/ && line =~ /\A\s+\*\s+/
- unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
- puts "#{ln}: found itemized list or numbered list in #{block}. Is it correct?"
- end
- elsif block == "table"
+ @logger.warn "#{ln}: found itemized list or numbered list in #{block}. Is it correct?" unless Tw[list emlist listnum emlistnum cmd image table].include?(block)
+ elsif block == 'table'
next if line.start_with?('#@')
if line !~ /\A\-\-\-\-\-/
# table
colcount = line.split("\t").size
maxcolcount = colcount if maxcolcount == 0
- puts "#{ln}: the number of table columns seems mismatch. (#{maxcolcount} != #{colcount})" if colcount != maxcolcount
+ @logger.warn "#{ln}: the number of table columns seems mismatch. (#{maxcolcount} != #{colcount})" if colcount != maxcolcount
end
end
-}
+end