From b8e426d3a3d751410ff56474630d2342716edd2f Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Mon, 17 Nov 2014 18:52:53 -0500 Subject: [PATCH] Make pedantic test actually pedantic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What do you call someone that thinks they are pedantic but actually aren’t? All the crazy custom parsing in this test was making so it wasn’t actually doing anything. --- test/test_pedantic.rb | 49 ++++++++++--------------------------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/test/test_pedantic.rb b/test/test_pedantic.rb index 264c54f3..c1819fb6 100644 --- a/test/test_pedantic.rb +++ b/test/test_pedantic.rb @@ -1,57 +1,30 @@ require 'test/unit' +require 'yaml' class TestPedantic < Test::Unit::TestCase - Lib = File.expand_path("../../lib/linguist", __FILE__) - - def file(name) - File.read(File.join(Lib, name)) - end + filename = File.expand_path("../../lib/linguist/languages.yml", __FILE__) + LANGUAGES = YAML.load(File.read(filename)) def test_language_names_are_sorted - languages = [] - file("languages.yml").lines.each do |line| - if line =~ /^(\w+):$/ - languages << $1 - end - end - assert_sorted languages + assert_sorted LANGUAGES.keys end def test_extensions_are_sorted - extensions = nil - file("languages.yml").lines.each do |line| - if line =~ /^ extensions:$/ - extensions = [] - elsif extensions && line =~ /^ - \.([\w\-\.]+)( *#.*)?$/ - extensions << $1 - else - assert_sorted extensions[1..-1] if extensions - extensions = nil - end + LANGUAGES.each do |name, language| + extensions = language['extensions'] + assert_sorted extensions[1..-1] if extensions && extensions.size > 1 end end def test_filenames_are_sorted - filenames = nil - file("languages.yml").lines.each do |line| - if line =~ /^ filenames:$/ - filenames = [] - elsif filenames && line =~ /^ - \.(\w+)$/ - filenames << $1 - else - assert_sorted filenames if filenames - filenames = nil - end + LANGUAGES.each do |name, language| + assert_sorted language['filenames'] if language['filenames'] end end def assert_sorted(list) - previous = nil - list.each do |item| - if previous && previous > item - flunk "#{previous} should come after #{item}" - end - previous = item + list.each_cons(2) do |previous, item| + flunk "#{previous} should come after #{item}" if previous > item end end end