1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
# frozen_string_literal: true
require "fileutils"
require "jekyll"
lib = File.expand_path("lib", __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "jekyll-sass-converter"
Jekyll.logger.log_level = :error
module GlobalSharedContext
extend RSpec::SharedContext
let(:sass_implementation) { ENV["SASS_IMPLEMENTATION"] }
let(:sass_embedded?) { sass_implementation == "sass-embedded" }
end
RSpec.configure do |config|
config.run_all_when_everything_filtered = true
config.filter_run :focus
config.order = "random"
config.include GlobalSharedContext
config.before(:example) do
if sass_implementation
allow_any_instance_of(Jekyll::Converters::Scss)
.to(receive(:sass_implementation).and_return(sass_implementation))
end
end
SOURCE_DIR = File.expand_path("source", __dir__)
DEST_DIR = File.expand_path("dest", __dir__)
SASS_LIB_DIR = File.expand_path("other_sass_library", __dir__)
FileUtils.rm_rf(DEST_DIR)
FileUtils.mkdir_p(DEST_DIR)
def source_dir(*files)
File.join(SOURCE_DIR, *files)
end
def dest_dir(*files)
File.join(DEST_DIR, *files)
end
def sass_lib(*files)
File.join(SASS_LIB_DIR, *files)
end
def site_configuration(overrides = {})
Jekyll.configuration(
overrides.merge(
"source" => source_dir,
"destination" => dest_dir
)
)
end
# rubocop:disable Style/StringConcatenation
def compressed(content)
content.gsub(%r!\s+!, "").gsub(%r!;}!, "}") + "\n"
end
# rubocop:enable Style/StringConcatenation
def make_site(config)
Jekyll::Site.new(site_configuration.merge(config))
end
def scss_converter_instance(site)
site.find_converter_instance(Jekyll::Converters::Scss)
end
def sass_converter_instance(site)
site.find_converter_instance(Jekyll::Converters::Sass)
end
def create_directory(location)
FileUtils.mkdir_p(location) unless File.directory?(location)
end
def remove_directory(location)
FileUtils.rmdir(location) if File.directory?(location)
end
end
|