From dc1cc773a113be643645679c4f0c3d6172ed9e25 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 12:47:24 -0500 Subject: [PATCH 1/6] add tests --- Gemfile | 1 + Gemfile.lock | 122 ++++++++++++++++++++++++--------------- Rakefile | 7 +++ _licenses/apache-2.0.txt | 2 +- _licenses/cc0.txt | 4 +- _licenses/unlicense.txt | 2 + spec/license_spec.rb | 29 ++++++++++ spec/spec_helper.rb | 36 ++++++++++++ 8 files changed, 154 insertions(+), 49 deletions(-) create mode 100644 spec/license_spec.rb create mode 100644 spec/spec_helper.rb diff --git a/Gemfile b/Gemfile index d1d35c1..d94f79e 100644 --- a/Gemfile +++ b/Gemfile @@ -6,4 +6,5 @@ gem "github-pages" group :test do gem "html-proofer" gem "rake" + gem "rspec" end diff --git a/Gemfile.lock b/Gemfile.lock index 5c37f6a..be4f558 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,56 +2,66 @@ GEM remote: https://rubygems.org/ specs: RedCloth (4.2.9) - activesupport (4.1.5) - i18n (~> 0.6, >= 0.6.9) + activesupport (4.2.0) + i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) - thread_safe (~> 0.1) + thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + addressable (2.3.7) blankslate (2.1.2.4) celluloid (0.16.0) timers (~> 4.0.0) - classifier-reborn (2.0.1) + classifier-reborn (2.0.3) fast-stemmer (~> 1.0) coffee-script (2.3.0) coffee-script-source execjs - coffee-script-source (1.8.0) + coffee-script-source (1.9.1) colorator (0.1) colored (1.2) - ethon (0.7.1) + diff-lcs (1.2.5) + ethon (0.7.3) ffi (>= 1.3.0) - execjs (2.2.1) + execjs (2.4.0) fast-stemmer (1.0.2) - ffi (1.9.3) + ffi (1.9.6) gemoji (2.1.0) - github-pages (24) + github-pages (33) RedCloth (= 4.2.9) - jekyll (= 2.3.0) - jekyll-coffeescript (= 1.0.0) - jekyll-mentions (= 0.1.3) - jekyll-redirect-from (= 0.6.0) + github-pages-health-check (~> 0.2) + jekyll (= 2.4.0) + jekyll-coffeescript (= 1.0.1) + jekyll-mentions (= 0.2.1) + jekyll-redirect-from (= 0.6.2) jekyll-sass-converter (= 1.2.0) - jekyll-sitemap (= 0.5.1) - jemoji (= 0.3.0) - kramdown (= 1.3.1) + jekyll-sitemap (= 0.6.3) + jemoji (= 0.4.0) + kramdown (= 1.5.0) liquid (= 2.6.1) maruku (= 0.7.0) - pygments.rb (= 0.6.0) + mercenary (~> 0.3) + pygments.rb (= 0.6.1) rdiscount (= 2.1.7) redcarpet (= 3.1.2) + terminal-table (~> 1.4) + github-pages-health-check (0.2.2) + net-dns (~> 0.6) + public_suffix (~> 1.4) hitimes (1.2.2) html-pipeline (1.9.0) activesupport (>= 2) nokogiri (~> 1.4) - html-proofer (1.3.3) + html-proofer (2.1.0) + addressable (~> 2.3) colored (~> 1.2) mercenary (~> 0.3.2) nokogiri (~> 1.5) - typhoeus (~> 0.6.7) + parallel (~> 1.3) + typhoeus (~> 0.7) yell (~> 2.0) - i18n (0.6.11) - jekyll (2.3.0) + i18n (0.7.0) + jekyll (2.4.0) classifier-reborn (~> 2.0) colorator (~> 0.1) jekyll-coffeescript (~> 1.0) @@ -66,62 +76,79 @@ GEM redcarpet (~> 3.1) safe_yaml (~> 1.0) toml (~> 0.1.0) - jekyll-coffeescript (1.0.0) + jekyll-coffeescript (1.0.1) coffee-script (~> 2.2) jekyll-gist (1.1.0) - jekyll-mentions (0.1.3) + jekyll-mentions (0.2.1) html-pipeline (~> 1.9.0) jekyll (~> 2.0) - jekyll-paginate (1.0.0) - jekyll-redirect-from (0.6.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.6.2) jekyll (~> 2.0) jekyll-sass-converter (1.2.0) sass (~> 3.2) - jekyll-sitemap (0.5.1) - jekyll-watch (1.1.0) + jekyll-sitemap (0.6.3) + jekyll-watch (1.2.1) listen (~> 2.7) - jemoji (0.3.0) + jemoji (0.4.0) gemoji (~> 2.0) html-pipeline (~> 1.9) jekyll (~> 2.0) - json (1.8.1) - kramdown (1.3.1) + json (1.8.2) + kramdown (1.5.0) liquid (2.6.1) - listen (2.7.9) + listen (2.8.5) celluloid (>= 0.15.2) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) maruku (0.7.0) - mercenary (0.3.4) - mini_portile (0.6.0) - minitest (5.4.1) - nokogiri (1.6.3.1) - mini_portile (= 0.6.0) + mercenary (0.3.5) + mini_portile (0.6.2) + minitest (5.5.1) + net-dns (0.8.0) + nokogiri (1.6.6.2) + mini_portile (~> 0.6.0) + parallel (1.4.1) parslet (1.5.0) blankslate (~> 2.0) - posix-spawn (0.3.9) - pygments.rb (0.6.0) + posix-spawn (0.3.10) + public_suffix (1.4.6) + pygments.rb (0.6.1) posix-spawn (~> 0.3.6) - yajl-ruby (~> 1.1.0) - rake (10.3.2) + yajl-ruby (~> 1.2.0) + rake (10.4.2) rb-fsevent (0.9.4) rb-inotify (0.9.5) ffi (>= 0.5.0) rdiscount (2.1.7) redcarpet (3.1.2) - safe_yaml (1.0.3) - sass (3.4.3) + rspec (3.2.0) + rspec-core (~> 3.2.0) + rspec-expectations (~> 3.2.0) + rspec-mocks (~> 3.2.0) + rspec-core (3.2.1) + rspec-support (~> 3.2.0) + rspec-expectations (3.2.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.2.0) + rspec-mocks (3.2.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.2.0) + rspec-support (3.2.2) + safe_yaml (1.0.4) + sass (3.4.13) + terminal-table (1.4.5) thread_safe (0.3.4) - timers (4.0.0) + timers (4.0.1) hitimes - toml (0.1.1) + toml (0.1.2) parslet (~> 1.5.0) - typhoeus (0.6.9) + typhoeus (0.7.1) ethon (>= 0.7.1) tzinfo (1.2.2) thread_safe (~> 0.1) - yajl-ruby (1.1.0) - yell (2.0.4) + yajl-ruby (1.2.1) + yell (2.0.5) PLATFORMS ruby @@ -130,3 +157,4 @@ DEPENDENCIES github-pages html-proofer rake + rspec diff --git a/Rakefile b/Rakefile index ed29cdb..bdf2207 100644 --- a/Rakefile +++ b/Rakefile @@ -1,4 +1,11 @@ require "html/proofer" +require 'rspec/core/rake_task' + +desc "Run specs" +RSpec::Core::RakeTask.new do |t| + t.pattern = 'spec/**/*_spec.rb' + t.rspec_opts = ["--order", "rand", "--color"] +end task :test do sh "bundle exec jekyll build --trace" diff --git a/_licenses/apache-2.0.txt b/_licenses/apache-2.0.txt index 752ee33..37d448e 100644 --- a/_licenses/apache-2.0.txt +++ b/_licenses/apache-2.0.txt @@ -18,7 +18,7 @@ source: http://www.apache.org/licenses/LICENSE-2.0.html required: - include-copyright - document-changes - + permitted: - commercial-use - modifications diff --git a/_licenses/cc0.txt b/_licenses/cc0.txt index 751b9fd..3be061e 100644 --- a/_licenses/cc0.txt +++ b/_licenses/cc0.txt @@ -25,6 +25,8 @@ permitted: forbidden: - no-liability +required: [] + --- CC0 1.0 Universal @@ -141,4 +143,4 @@ Affirmer's express Statement of Purpose. CC0 or use of the Work. For more information, please see - \ No newline at end of file + diff --git a/_licenses/unlicense.txt b/_licenses/unlicense.txt index d8d328c..020b0be 100644 --- a/_licenses/unlicense.txt +++ b/_licenses/unlicense.txt @@ -25,6 +25,8 @@ permitted: forbidden: - no-liability +required: [] + --- This is free and unencumbered software released into the public domain. diff --git a/spec/license_spec.rb b/spec/license_spec.rb new file mode 100644 index 0000000..d77d26c --- /dev/null +++ b/spec/license_spec.rb @@ -0,0 +1,29 @@ +require 'spec_helper' + +licenses.each do |license| + describe "The #{license["title"]} license" do + it "should have a title" do + expect(license["title"]).to_not be_nil + end + + it "should have a description" do + expect(license["description"]).to_not be_nil + end + + ["permitted", "required", "forbidden"].each do |group| + describe "#{group} properties" do + it "should list the properties" do + expect(license[group]).to_not be_nil + end + + license[group].to_a.each do |tag| + describe "#{tag} tag" do + it "should be a valid tag" do + expect(rule?(tag,group)).to be(true) + end + end + end + end + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..95d8bdd --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,36 @@ +require 'jekyll' + +def config_file + File.expand_path "./_config.yml", source +end + +def source + File.expand_path("../", File.dirname(__FILE__)) +end + +def config + config = Jekyll::Configuration.new.read_config_file config_file + config = Jekyll::Utils.deep_merge_hashes(config, {:source => source}) + Jekyll::Utils.deep_merge_hashes(Jekyll::Configuration::DEFAULTS, config) +end + +def licenses + site.collections["licenses"].docs.map { |l| l.data } +end + +def site + $site ||= begin + site = Jekyll::Site.new(config) + site.reset + site.read + site + end +end + +def rules + site.data["rules"] +end + +def rule?(tag, group) + rules[group].any? { |r| r["tag"] == tag } +end From 9c536b774ba7427993712b8a5e5bb0c359726336 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 12:49:49 -0500 Subject: [PATCH 2/6] rake test should invoke rake spec --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index bdf2207..c5feabc 100644 --- a/Rakefile +++ b/Rakefile @@ -9,6 +9,6 @@ end task :test do sh "bundle exec jekyll build --trace" - # ignore href="#" for the "Copy to clipboard" button HTML::Proofer.new("./_site").run + Rake::Task["spec"].invoke end From 8ddc33119590ed6a948c37a8377451075e0037ac Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 12:52:01 -0500 Subject: [PATCH 3/6] cache --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0dba74e..d15e661 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,3 +18,6 @@ notifications: env: global: - NOKOGIRI_USE_SYSTEM_LIBRARIES=true + +sudo: false +cache: bundler From 18be645772a142ad686b459bf0a9da3641b5b4f8 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 12:58:57 -0500 Subject: [PATCH 4/6] also check HTML --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index c5feabc..fea4552 100644 --- a/Rakefile +++ b/Rakefile @@ -9,6 +9,6 @@ end task :test do sh "bundle exec jekyll build --trace" - HTML::Proofer.new("./_site").run + HTML::Proofer.new("./_site", :check_html => true).run Rake::Task["spec"].invoke end From 530e15d771595ad821c7c4637b065fb11f58f979 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 13:38:52 -0500 Subject: [PATCH 5/6] validate SPDX compliance --- _licenses/agpl-3.0.txt | 2 +- _licenses/bsd-2-clause.txt | 2 +- _licenses/bsd-3-clause.txt | 2 +- _licenses/{cc0.txt => cc0-1.0.txt} | 2 +- _licenses/epl-1.0.txt | 2 +- _licenses/gpl-2.0.txt | 2 +- _licenses/gpl-3.0.txt | 2 +- _licenses/isc.txt | 2 +- _licenses/lgpl-2.1.txt | 2 +- _licenses/lgpl-3.0.txt | 2 +- _licenses/unlicense.txt | 2 +- spec/license_spec.rb | 22 ++++++++++++++++++++++ spec/spec_helper.rb | 13 ++++++++++++- 13 files changed, 45 insertions(+), 12 deletions(-) rename _licenses/{cc0.txt => cc0-1.0.txt} (99%) diff --git a/_licenses/agpl-3.0.txt b/_licenses/agpl-3.0.txt index ec2bc6a..b22325a 100644 --- a/_licenses/agpl-3.0.txt +++ b/_licenses/agpl-3.0.txt @@ -1,5 +1,5 @@ --- -title: GNU Affero GPL v3.0 +title: GNU Affero General Public License v3.0 category: GPL tab-slug: agpl-v3 hide-from-license-list: true diff --git a/_licenses/bsd-2-clause.txt b/_licenses/bsd-2-clause.txt index 86fcb11..8610078 100644 --- a/_licenses/bsd-2-clause.txt +++ b/_licenses/bsd-2-clause.txt @@ -1,6 +1,6 @@ --- layout: license -title: Simplified BSD +title: BSD 2-clause "Simplified" License category: BSD tab-slug: bsd hide-from-license-list: true diff --git a/_licenses/bsd-3-clause.txt b/_licenses/bsd-3-clause.txt index 80d67e7..4033a72 100644 --- a/_licenses/bsd-3-clause.txt +++ b/_licenses/bsd-3-clause.txt @@ -1,6 +1,6 @@ --- layout: license -title: New BSD +title: BSD 3-clause "New" or "Revised" License category: BSD tab-slug: bsd-3 hide-from-license-list: true diff --git a/_licenses/cc0.txt b/_licenses/cc0-1.0.txt similarity index 99% rename from _licenses/cc0.txt rename to _licenses/cc0-1.0.txt index 3be061e..d24b663 100644 --- a/_licenses/cc0.txt +++ b/_licenses/cc0-1.0.txt @@ -1,6 +1,6 @@ --- layout: license -title: CC0 1.0 Universal +title: Creative Commons Zero v1.0 Universal category: Public Domain Dedication tab-slug: cc0 permalink: /licenses/cc0/ diff --git a/_licenses/epl-1.0.txt b/_licenses/epl-1.0.txt index 0aa38b1..62f0ab5 100644 --- a/_licenses/epl-1.0.txt +++ b/_licenses/epl-1.0.txt @@ -1,6 +1,6 @@ --- layout: license -title: Eclipse Public License v1.0 +title: Eclipse Public License 1.0 category: Eclipse redirect_from: /licenses/eclipse/ permalink: /licenses/epl-1.0/ diff --git a/_licenses/gpl-2.0.txt b/_licenses/gpl-2.0.txt index c526f9f..de06b39 100644 --- a/_licenses/gpl-2.0.txt +++ b/_licenses/gpl-2.0.txt @@ -1,5 +1,5 @@ --- -title: GNU GPL v2.0 +title: GNU General Public License v2.0 category: GPL tab-slug: gpl-v2 hide-from-license-list: false diff --git a/_licenses/gpl-3.0.txt b/_licenses/gpl-3.0.txt index 71c5853..ad4235f 100644 --- a/_licenses/gpl-3.0.txt +++ b/_licenses/gpl-3.0.txt @@ -1,5 +1,5 @@ --- -title: GNU GPL v3.0 +title: GNU General Public License v3.0 category: GPL tab-slug: gpl-v3 hide-from-license-list: true diff --git a/_licenses/isc.txt b/_licenses/isc.txt index 7801bae..8dd8e38 100644 --- a/_licenses/isc.txt +++ b/_licenses/isc.txt @@ -1,6 +1,6 @@ --- layout: license -title: ISC license +title: ISC License permalink: /licenses/isc/ source: http://opensource.org/licenses/isc-license category: BSD diff --git a/_licenses/lgpl-2.1.txt b/_licenses/lgpl-2.1.txt index ee43a3e..9eaaec5 100644 --- a/_licenses/lgpl-2.1.txt +++ b/_licenses/lgpl-2.1.txt @@ -1,6 +1,6 @@ --- layout: license -title: GNU LGPL v2.1 +title: GNU Lesser General Public License v2.1 category: LGPL tab-slug: lgpl-v2_1 redirect_from: /licenses/lgpl-v2.1/ diff --git a/_licenses/lgpl-3.0.txt b/_licenses/lgpl-3.0.txt index 3161fc2..6b7766f 100644 --- a/_licenses/lgpl-3.0.txt +++ b/_licenses/lgpl-3.0.txt @@ -1,6 +1,6 @@ --- layout: license -title: GNU LGPL v3.0 +title: GNU Lesser General Public License v3.0 category: LGPL tab-slug: lgpl-v3 hide-from-license-list: true diff --git a/_licenses/unlicense.txt b/_licenses/unlicense.txt index 020b0be..f0ecae3 100644 --- a/_licenses/unlicense.txt +++ b/_licenses/unlicense.txt @@ -1,6 +1,6 @@ --- layout: license -title: Public Domain (Unlicense) +title: The Unlicense category: Public Domain Dedication tab-slug: unlicense permalink: /licenses/unlicense/ diff --git a/spec/license_spec.rb b/spec/license_spec.rb index d77d26c..25efd5e 100644 --- a/spec/license_spec.rb +++ b/spec/license_spec.rb @@ -10,6 +10,28 @@ licenses.each do |license| expect(license["description"]).to_not be_nil end + describe "SPDX compliance" do + # "No license" isn't really a license, so no need to test + unless license["id"] == "no-license" + it "#{license["id"]} should be a valid SPDX ID" do + expect(find_spdx(license["id"])).to_not be_nil + end + + it "should be the proper SPDX name" do + spdx = find_spdx(license["id"]) + expect(spdx[1]["name"].gsub(/ only$/,"")).to eql(license["title"]) + end + + # CC0 and Unlicense are not OSI approved, but that's okay + unless license["id"] == "unlicense" || license["id"] == "cc0-1.0" + it "should be OSI approved" do + spdx = find_spdx(license["id"]) + expect(spdx[1]["osiApproved"]).to eql(true) + end + end + end + end + ["permitted", "required", "forbidden"].each do |group| describe "#{group} properties" do it "should list the properties" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 95d8bdd..354ff08 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,6 @@ require 'jekyll' +require 'open-uri' +require 'json' def config_file File.expand_path "./_config.yml", source @@ -15,7 +17,7 @@ def config end def licenses - site.collections["licenses"].docs.map { |l| l.data } + site.collections["licenses"].docs.map { |l| l.data.merge("id" => l.basename(".txt")) } end def site @@ -34,3 +36,12 @@ end def rule?(tag, group) rules[group].any? { |r| r["tag"] == tag } end + +def spdx_list + url = "https://raw.githubusercontent.com/sindresorhus/spdx-license-list/master/spdx.json" + $spdx ||= JSON.parse(open(url).read) +end + +def find_spdx(license) + spdx_list.find { |name, properties| name.downcase == license } +end From 6bea81d1cad50f7ffac15c453e88c167ef8a9e7c Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sat, 7 Mar 2015 13:51:38 -0500 Subject: [PATCH 6/6] remove Gemfile.lock --- .gitignore | 1 + Gemfile.lock | 160 --------------------------------------------------- 2 files changed, 1 insertion(+), 160 deletions(-) delete mode 100644 Gemfile.lock diff --git a/.gitignore b/.gitignore index 26495ca..20f73e2 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ assets/vendor/zeroclipboard/test assets/vendor/selectivizr/tests assets/vendor/qtip2/basic /vendor +Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index be4f558..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,160 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - RedCloth (4.2.9) - activesupport (4.2.0) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.3.7) - blankslate (2.1.2.4) - celluloid (0.16.0) - timers (~> 4.0.0) - classifier-reborn (2.0.3) - fast-stemmer (~> 1.0) - coffee-script (2.3.0) - coffee-script-source - execjs - coffee-script-source (1.9.1) - colorator (0.1) - colored (1.2) - diff-lcs (1.2.5) - ethon (0.7.3) - ffi (>= 1.3.0) - execjs (2.4.0) - fast-stemmer (1.0.2) - ffi (1.9.6) - gemoji (2.1.0) - github-pages (33) - RedCloth (= 4.2.9) - github-pages-health-check (~> 0.2) - jekyll (= 2.4.0) - jekyll-coffeescript (= 1.0.1) - jekyll-mentions (= 0.2.1) - jekyll-redirect-from (= 0.6.2) - jekyll-sass-converter (= 1.2.0) - jekyll-sitemap (= 0.6.3) - jemoji (= 0.4.0) - kramdown (= 1.5.0) - liquid (= 2.6.1) - maruku (= 0.7.0) - mercenary (~> 0.3) - pygments.rb (= 0.6.1) - rdiscount (= 2.1.7) - redcarpet (= 3.1.2) - terminal-table (~> 1.4) - github-pages-health-check (0.2.2) - net-dns (~> 0.6) - public_suffix (~> 1.4) - hitimes (1.2.2) - html-pipeline (1.9.0) - activesupport (>= 2) - nokogiri (~> 1.4) - html-proofer (2.1.0) - addressable (~> 2.3) - colored (~> 1.2) - mercenary (~> 0.3.2) - nokogiri (~> 1.5) - parallel (~> 1.3) - typhoeus (~> 0.7) - yell (~> 2.0) - i18n (0.7.0) - jekyll (2.4.0) - classifier-reborn (~> 2.0) - colorator (~> 0.1) - jekyll-coffeescript (~> 1.0) - jekyll-gist (~> 1.0) - jekyll-paginate (~> 1.0) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 2.6.1) - mercenary (~> 0.3.3) - pygments.rb (~> 0.6.0) - redcarpet (~> 3.1) - safe_yaml (~> 1.0) - toml (~> 0.1.0) - jekyll-coffeescript (1.0.1) - coffee-script (~> 2.2) - jekyll-gist (1.1.0) - jekyll-mentions (0.2.1) - html-pipeline (~> 1.9.0) - jekyll (~> 2.0) - jekyll-paginate (1.1.0) - jekyll-redirect-from (0.6.2) - jekyll (~> 2.0) - jekyll-sass-converter (1.2.0) - sass (~> 3.2) - jekyll-sitemap (0.6.3) - jekyll-watch (1.2.1) - listen (~> 2.7) - jemoji (0.4.0) - gemoji (~> 2.0) - html-pipeline (~> 1.9) - jekyll (~> 2.0) - json (1.8.2) - kramdown (1.5.0) - liquid (2.6.1) - listen (2.8.5) - celluloid (>= 0.15.2) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - maruku (0.7.0) - mercenary (0.3.5) - mini_portile (0.6.2) - minitest (5.5.1) - net-dns (0.8.0) - nokogiri (1.6.6.2) - mini_portile (~> 0.6.0) - parallel (1.4.1) - parslet (1.5.0) - blankslate (~> 2.0) - posix-spawn (0.3.10) - public_suffix (1.4.6) - pygments.rb (0.6.1) - posix-spawn (~> 0.3.6) - yajl-ruby (~> 1.2.0) - rake (10.4.2) - rb-fsevent (0.9.4) - rb-inotify (0.9.5) - ffi (>= 0.5.0) - rdiscount (2.1.7) - redcarpet (3.1.2) - rspec (3.2.0) - rspec-core (~> 3.2.0) - rspec-expectations (~> 3.2.0) - rspec-mocks (~> 3.2.0) - rspec-core (3.2.1) - rspec-support (~> 3.2.0) - rspec-expectations (3.2.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.2.0) - rspec-mocks (3.2.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.2.0) - rspec-support (3.2.2) - safe_yaml (1.0.4) - sass (3.4.13) - terminal-table (1.4.5) - thread_safe (0.3.4) - timers (4.0.1) - hitimes - toml (0.1.2) - parslet (~> 1.5.0) - typhoeus (0.7.1) - ethon (>= 0.7.1) - tzinfo (1.2.2) - thread_safe (~> 0.1) - yajl-ruby (1.2.1) - yell (2.0.5) - -PLATFORMS - ruby - -DEPENDENCIES - github-pages - html-proofer - rake - rspec