diff --git a/.travis.yml b/.travis.yml index 72f0752d..d8ba3100 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: ruby cache: bundler sudo: false rvm: +- 2.2 - 2.1 - 2.0 env: diff --git a/Gemfile b/Gemfile index c79afe7c..2bc6abc3 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ gem 'rdoc', '~> 3.11' gem 'redgreen', '~> 1.2' gem 'shoulda', '~> 3.5' gem 'rr', '~> 1.1' -gem 'cucumber', '1.3.11' +gem 'cucumber', '1.3.18' gem 'RedCloth', '~> 4.2' gem 'maruku', '~> 0.7.0' gem 'rdiscount', '~> 1.6' @@ -20,7 +20,7 @@ gem 'jekyll_test_plugin_malicious' gem 'rouge', '~> 1.7' gem 'liquid-c', '~> 0.0.3' gem 'minitest' if RUBY_PLATFORM =~ /cygwin/ -gem 'test-unit' if RUBY_PLATFORM =~ /cygwin/ +gem 'test-unit' if RUBY_PLATFORM =~ /cygwin/ || RUBY_VERSION.start_with?("2.2") if ENV['BENCHMARK'] gem 'rbtrace' diff --git a/features/markdown.feature b/features/markdown.feature index 659eed0f..895c927a 100644 --- a/features/markdown.feature +++ b/features/markdown.feature @@ -47,7 +47,7 @@ Feature: Markdown And I should see "My awesome code" in "_site/index.html" And I should see "
My awesome code
" in "_site/index.html" - Scenario: Maruku fenced codeblocks + Scenario: Maruku fenced codeblocks with syntax highlighting Given I have a configuration file with "markdown" set to "maruku" And I have an "index.markdown" file with content: """ diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb index 069f93b0..98f14ad1 100644 --- a/features/step_definitions/jekyll_steps.rb +++ b/features/step_definitions/jekyll_steps.rb @@ -24,6 +24,7 @@ end After do FileUtils.rm_rf(TEST_DIR) if File.exist?(TEST_DIR) FileUtils.rm(JEKYLL_COMMAND_OUTPUT_FILE) if File.exist?(JEKYLL_COMMAND_OUTPUT_FILE) + Dir.chdir(File.dirname(TEST_DIR)) end World(Test::Unit::Assertions) @@ -192,7 +193,15 @@ Then /^I should see escaped "(.*)" in "(.*)"$/ do |text, file| end Then /^the "(.*)" file should +exist$/ do |file| - assert File.file?(file), "The file \"#{file}\" does not exist" + file_does_exist = File.file?(file) + unless file_does_exist + all_steps_to_path(file).each do |dir| + STDERR.puts "" + STDERR.puts "Dir #{dir}:" + STDERR.puts Dir["#{dir}/**/*"] + end + end + assert file_does_exist, "The file \"#{file}\" does not exist.\n" end Then /^the "(.*)" file should not exist$/ do |file| diff --git a/features/support/env.rb b/features/support/env.rb index ba4555fe..e995ba9b 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -13,6 +13,17 @@ def source_dir(*files) File.join(TEST_DIR, *files) end +def all_steps_to_path(path) + source = Pathname.new(source_dir('_site')).expand_path + dest = Pathname.new(path).expand_path + paths = [] + dest.ascend do |f| + break if f.eql? source + paths.unshift f.to_s + end + paths +end + def jekyll_output_file JEKYLL_COMMAND_OUTPUT_FILE end diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 17a4142b..fca03437 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -309,7 +309,7 @@ module Jekyll else Jekyll.logger.error "Invalid Date:", "'#{input}' is not a valid datetime." exit(1) - end + end.localtime end def groupable?(element) diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb index fbdcd27b..a84847a4 100644 --- a/lib/jekyll/utils.rb +++ b/lib/jekyll/utils.rb @@ -90,7 +90,7 @@ module Jekyll # Returns the parsed date if successful, throws a FatalException # if not def parse_date(input, msg = "Input could not be parsed.") - Time.parse(input) + Time.parse(input).localtime rescue ArgumentError raise Errors::FatalException.new("Invalid date '#{input}': " + msg) end diff --git a/script/bootstrap b/script/bootstrap index 097f3e27..99756046 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -1,4 +1,4 @@ #!/bin/sh script/branding -bundle install +bundle install -j8 diff --git a/script/test b/script/test index 7bb742ef..52dc4b92 100755 --- a/script/test +++ b/script/test @@ -10,7 +10,15 @@ else TEST_FILES="$@" fi -RAKE_LIB_DIR=$(ruby -e "puts Gem::Specification.find_by_name('rake').gem_dir + '/lib'") +# bundle exec gem env +GEM_DIR=$(bundle exec gem env | grep -C 1 "GEM PATHS" | tail -1 | cut -d '-' -f2 | cut -d' ' -f2) +RAKE_LIB_WITH_VERSION=$(bundle exec ruby -e "puts Gem::Specification.find_by_name('rake').gem_dir.split('/').last + '/lib'") +RAKE_LIB_DIR="${GEM_DIR}/gems/${RAKE_LIB_WITH_VERSION}" + +test -d "${RAKE_LIB_DIR}" || { + echo "No ${RAKE_LIB_DIR}. Installing Rake." + bundle show rake | cut -d'/' -f12 | cut -d'-' -f 2 | xargs bundle exec gem install rake -v +} set -x diff --git a/test/test_filters.rb b/test/test_filters.rb index a9fc951d..659b7a84 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -72,11 +72,11 @@ class TestFilters < Test::Unit::TestCase end should "format a time with xmlschema" do - assert_equal "2013-03-27T11:22:33Z", @filter.date_to_xmlschema(@sample_time) + assert_equal "2013-03-27T11:22:33+00:00", @filter.date_to_xmlschema(@sample_time) end should "format a time according to RFC-822" do - assert_equal "Wed, 27 Mar 2013 11:22:33 -0000", @filter.date_to_rfc822(@sample_time) + assert_equal "Wed, 27 Mar 2013 11:22:33 +0000", @filter.date_to_rfc822(@sample_time) end end @@ -90,11 +90,11 @@ class TestFilters < Test::Unit::TestCase end should "format a time with xmlschema" do - assert_equal "2001-09-11T12:46:30Z", @filter.date_to_xmlschema(@time_as_string) + assert_equal "2001-09-11T12:46:30+00:00", @filter.date_to_xmlschema(@time_as_string) end should "format a time according to RFC-822" do - assert_equal "Tue, 11 Sep 2001 12:46:30 -0000", @filter.date_to_rfc822(@time_as_string) + assert_equal "Tue, 11 Sep 2001 12:46:30 +0000", @filter.date_to_rfc822(@time_as_string) end end