Hello community,
here is the log from the commit of package rubygem-jekyll-sass-converter for
openSUSE:Factory checked in at 2020-03-07 21:38:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-jekyll-sass-converter (Old)
and /work/SRC/openSUSE:Factory/.rubygem-jekyll-sass-converter.new.26092
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-jekyll-sass-converter"
Sat Mar 7 21:38:30 2020 rev:4 rq:773776 version:2.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/rubygem-jekyll-sass-converter/rubygem-jekyll-sass-converter.changes
2018-03-06 10:45:23.032411322 +0100
+++
/work/SRC/openSUSE:Factory/.rubygem-jekyll-sass-converter.new.26092/rubygem-jekyll-sass-converter.changes
2020-03-07 21:38:35.060286159 +0100
@@ -1,0 +2,6 @@
+Mon Feb 10 14:59:15 UTC 2020 - Stephan Kulow <[email protected]>
+
+- updated to version 2.1.0
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
jekyll-sass-converter-1.5.2.gem
New:
----
jekyll-sass-converter-2.1.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-jekyll-sass-converter.spec ++++++
--- /var/tmp/diff_new_pack.IIaazf/_old 2020-03-07 21:38:36.396287061 +0100
+++ /var/tmp/diff_new_pack.IIaazf/_new 2020-03-07 21:38:36.436287087 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-jekyll-sass-converter
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -24,15 +24,15 @@
#
Name: rubygem-jekyll-sass-converter
-Version: 1.5.2
+Version: 2.1.0
Release: 0
%define mod_name jekyll-sass-converter
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: %{ruby >= 2.4.0}
BuildRequires: %{rubygem gem2rpm}
-BuildRequires: %{ruby}
BuildRequires: ruby-macros >= 5
-Url: https://github.com/jekyll/jekyll-sass-converter
+URL: https://github.com/jekyll/jekyll-sass-converter
Source: https://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
Summary: A basic Sass converter for Jekyll
++++++ jekyll-sass-converter-1.5.2.gem -> jekyll-sass-converter-2.1.0.gem ++++++
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/jekyll/converters/sass.rb
new/lib/jekyll/converters/sass.rb
--- old/lib/jekyll/converters/sass.rb 2018-02-03 23:04:46.000000000 +0100
+++ new/lib/jekyll/converters/sass.rb 2020-02-05 21:39:42.000000000 +0100
@@ -1,19 +1,17 @@
# frozen_string_literal: true
-require "sass"
+require "sassc"
require "jekyll/utils"
require "jekyll/converters/scss"
module Jekyll
module Converters
class Sass < Scss
+ EXTENSION_PATTERN = %r!^\.sass$!i.freeze
+
safe true
priority :low
- def matches(ext)
- ext =~ %r!^\.sass$!i
- end
-
def syntax
:sass
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/jekyll/converters/scss.rb
new/lib/jekyll/converters/scss.rb
--- old/lib/jekyll/converters/scss.rb 2018-02-03 23:04:46.000000000 +0100
+++ new/lib/jekyll/converters/scss.rb 2020-02-05 21:39:42.000000000 +0100
@@ -1,21 +1,75 @@
# frozen_string_literal: true
-require "sass"
+require "sassc"
require "jekyll/utils"
+require "jekyll/source_map_page"
module Jekyll
module Converters
class Scss < Converter
- BYTE_ORDER_MARK = %r!^\xEF\xBB\xBF!
+ BYTE_ORDER_MARK = %r!^\xEF\xBB\xBF!.freeze
+ EXTENSION_PATTERN = %r!^\.scss$!i.freeze
+
SyntaxError = Class.new(ArgumentError)
safe true
priority :low
+ # This hook is triggered just before the method {#convert(content)} is
executed, it
+ # associates the Scss (and Sass) converters with their respective
sass_page objects.
+ Jekyll::Hooks.register :pages, :pre_render do |page|
+ next unless page.is_a?(Jekyll::Page)
+
+ page.converters.each do |converter|
+ converter.associate_page(page) if
converter.is_a?(Jekyll::Converters::Scss)
+ end
+ end
+
+ # This hook is triggered just after the method {#convert(content)} has
been executed, it
+ # dissociates the Scss (and Sass) converters with their respective
sass_page objects.
+ Jekyll::Hooks.register :pages, :post_render do |page|
+ next unless page.is_a?(Jekyll::Page)
+
+ page.converters.each do |converter|
+ converter.dissociate_page(page) if
converter.is_a?(Jekyll::Converters::Scss)
+ end
+ end
+
ALLOWED_STYLES = %w(nested expanded compact compressed).freeze
+ # Associate this Converter with the "page" object that manages input and
output files for
+ # this converter.
+ #
+ # Note: changing the associated sass_page during the live time of this
Converter instance
+ # may result in inconsistent results.
+ #
+ # @param [Jekyll:Page] page The sass_page for which this object acts as
converter.
+ def associate_page(page)
+ if @sass_page
+ Jekyll.logger.debug "Sass Converter:",
+ "sass_page re-assigned: #{@sass_page.name} to
#{page.name}"
+ dissociate_page(page)
+ return
+ end
+ @sass_page = page
+ end
+
+ # Dissociate this Converter with the "page" object.
+ #
+ # @param [Jekyll:Page] page The sass_page for which this object has
acted as a converter.
+ def dissociate_page(page)
+ unless page.equal?(@sass_page)
+ Jekyll.logger.debug "Sass Converter:",
+ "dissociating a page that was never associated
#{page.name}"
+ end
+
+ @source_map_page = nil
+ @sass_page = nil
+ @site = nil
+ end
+
def matches(ext)
- ext =~ %r!^\.scss$!i
+ ext =~ self.class::EXTENSION_PATTERN
end
def output_ext(_ext)
@@ -27,21 +81,18 @@
end
def jekyll_sass_configuration
- options = @config["sass"] || {}
- unless options["style"].nil?
- options["style"] = options["style"].to_s.gsub(%r!\A:!, "").to_sym
+ @jekyll_sass_configuration ||= begin
+ options = @config["sass"] || {}
+ unless options["style"].nil?
+ options["style"] = options["style"].to_s.gsub(%r!\A:!, "").to_sym
+ end
+ options
end
- options
end
def sass_build_configuration_options(overrides)
if safe?
- {
- :load_paths => sass_load_paths,
- :syntax => syntax,
- :style => sass_style,
- :cache => false,
- }
+ overrides
else
Jekyll::Utils.symbolize_hash_keys(
Jekyll::Utils.deep_merge_hashes(
@@ -58,6 +109,7 @@
def sass_dir
return "_sass" if jekyll_sass_configuration["sass_dir"].to_s.empty?
+
jekyll_sass_configuration["sass_dir"]
end
@@ -71,9 +123,12 @@
end
def sass_dir_relative_to_site_source
- Jekyll.sanitized_path(site_source, sass_dir)
+ @sass_dir_relative_to_site_source ||= begin
+ Jekyll.sanitized_path(site_source, sass_dir).sub(site.source + "/",
"")
+ end
end
+ # rubocop:disable Metrics/AbcSize
def sass_load_paths
paths = user_sass_load_paths + [sass_dir_relative_to_site_source]
@@ -84,7 +139,7 @@
# Expand file globs (e.g. `node_modules/*/node_modules` )
Dir.chdir(site_source) do
- paths = paths.map { |path| Dir.glob(path) }.flatten.uniq
+ paths = paths.flat_map { |path| Dir.glob(path) }
paths.map! do |path|
if safe?
@@ -96,8 +151,11 @@
end
end
+ paths.uniq!
+ paths << site.theme.sass_path if site.theme&.sass_path
paths.select { |path| File.directory?(path) }
end
+ # rubocop:enable Metrics/AbcSize
def allow_caching?
!safe?
@@ -108,24 +166,125 @@
end
def sass_configs
- sass_build_configuration_options({
- "syntax" => syntax,
- "cache" => allow_caching?,
- "load_paths" => sass_load_paths,
- })
+ sass_build_configuration_options(
+ :style => sass_style,
+ :syntax => syntax,
+ :filename => filename,
+ :output_path => output_path,
+ :source_map_file => source_map_file,
+ :load_paths => sass_load_paths,
+ :omit_source_map_url => !sourcemap_required?,
+ :source_map_contents => true,
+ :line_comments_option => line_comments_option
+ )
end
def convert(content)
- output = ::Sass.compile(content, sass_configs)
+ config = sass_configs
+ engine = SassC::Engine.new(content.dup, config)
+ output = engine.render
+ generate_source_map(engine) if sourcemap_required?
replacement = add_charset? ? '@charset "UTF-8";' : ""
output.sub(BYTE_ORDER_MARK, replacement)
- rescue ::Sass::SyntaxError => e
- raise SyntaxError, "#{e} on line #{e.sass_line}"
+ rescue SassC::SyntaxError => e
+ raise SyntaxError, e.to_s
end
private
+
+ # The Page instance for which this object acts as a converter.
+ attr_reader :sass_page
+
+ def associate_page_failed?
+ !sass_page
+ end
+
+ # The name of the input scss (or sass) file. This information will be
used for error
+ # reporting and will written into the source map file as main source.
+ #
+ # Returns the name of the input file or "stdin" if #associate_page failed
+ def filename
+ return "stdin" if associate_page_failed?
+
+ sass_page.name
+ end
+
+ # The value of the `line_comments` option.
+ # When set to `true` causes the line number and filename of the source
be emitted into the
+ # compiled CSS-file. Useful for debugging when the source-map is not
available.
+ #
+ # Returns the value of the `line_comments`-option chosen by the user or
'false' by default.
+ def line_comments_option
+ jekyll_sass_configuration.fetch("line_comments", false)
+ end
+
+ # The value of the `sourcemap` option chosen by the user.
+ #
+ # This option controls when sourcemaps shall be generated or not.
+ #
+ # Returns the value of the `sourcemap`-option chosen by the user or
':always' by default.
+ def sourcemap_option
+ jekyll_sass_configuration.fetch("sourcemap", :always).to_sym
+ end
+
+ # Determines whether a sourcemap shall be generated or not.
+ #
+ # Returns `true` if a sourcemap shall be generated, `false` otherwise.
+ def sourcemap_required?
+ return false if associate_page_failed? || sourcemap_option == :never
+ return true if sourcemap_option == :always
+
+ !(sourcemap_option == :development && Jekyll.env != "development")
+ end
+
+ # The name of the generated css file. This information will be written
into the source map
+ # file as a backward reference to the input.
+ #
+ # Returns the name of the css file or "stdin.css" if #associate_page
failed
+ def output_path
+ return "stdin.css" if associate_page_failed?
+
+ sass_page.basename + ".css"
+ end
+
+ # The name of the generated source map file. This information will be
written into the
+ # css file to reference to the source map.
+ #
+ # Returns the name of the css file or "" if #associate_page failed
+ def source_map_file
+ return "" if associate_page_failed?
+
+ sass_page.basename + ".css.map"
+ end
+
+ def source_map_page
+ return if associate_page_failed?
+
+ @source_map_page ||= SourceMapPage.new(sass_page)
+ end
+
+ # Reads the source-map from the engine and adds it to the
source-map-page.
+ #
+ # @param [::SassC::Engine] engine The sass Compiler engine.
+ def generate_source_map(engine)
+ return if associate_page_failed?
+
+ source_map_page.source_map(engine.source_map)
+ site.pages << source_map_page
+ rescue ::SassC::NotRenderedError => e
+ Jekyll.logger.warn "Could not generate source map #{e.message} =>
#{e.cause}"
+ end
+
+ def site
+ if associate_page_failed?
+ Jekyll.sites.last
+ else
+ sass_page.site
+ end
+ end
+
def site_source
- @site_source ||= File.expand_path(@config["source"]).freeze
+ site.source
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/jekyll/source_map_page.rb
new/lib/jekyll/source_map_page.rb
--- old/lib/jekyll/source_map_page.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/jekyll/source_map_page.rb 2020-02-05 21:39:42.000000000 +0100
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+module Jekyll
+ # A Jekyll::Page subclass to manage the source map file associated with
+ # a given scss / sass page.
+ class SourceMapPage < Page
+ # Initialize a new SourceMapPage.
+ #
+ # @param [Jekyll::Page] css_page The Page object that manages the css file.
+ def initialize(css_page)
+ @site = css_page.site
+ @dir = css_page.dir
+ @data = css_page.data
+ @name = css_page.basename + ".css.map"
+
+ process(@name)
+ Jekyll::Hooks.trigger :pages, :post_init, self
+ end
+
+ def source_map(map)
+ self.content = map
+ end
+
+ def ext
+ ".map"
+ end
+
+ def asset_file?
+ true
+ end
+
+ # @return[String] the object as a debug String.
+ def inspect
+ "#<#{self.class} @name=#{name.inspect}>"
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/jekyll-sass-converter/version.rb
new/lib/jekyll-sass-converter/version.rb
--- old/lib/jekyll-sass-converter/version.rb 2018-02-03 23:04:46.000000000
+0100
+++ new/lib/jekyll-sass-converter/version.rb 2020-02-05 21:39:42.000000000
+0100
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module JekyllSassConverter
- VERSION = "1.5.2".freeze
+ VERSION = "2.1.0"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2018-02-03 23:04:46.000000000 +0100
+++ new/metadata 2020-02-05 21:39:42.000000000 +0100
@@ -1,57 +1,49 @@
--- !ruby/object:Gem::Specification
name: jekyll-sass-converter
version: !ruby/object:Gem::Version
- version: 1.5.2
+ version: 2.1.0
platform: ruby
authors:
- Parker Moore
autorequire:
bindir: bin
cert_chain: []
-date: 2018-02-03 00:00:00.000000000 Z
+date: 2020-02-05 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
- name: sass
+ name: sassc
requirement: !ruby/object:Gem::Requirement
requirements:
- - - "~>"
+ - - ">"
+ - !ruby/object:Gem::Version
+ version: 2.0.1
+ - - "<"
- !ruby/object:Gem::Version
- version: '3.4'
+ version: '3.0'
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '3.4'
-- !ruby/object:Gem::Dependency
- name: bundler
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
+ - - ">"
- !ruby/object:Gem::Version
- version: '1.5'
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
+ version: 2.0.1
+ - - "<"
- !ruby/object:Gem::Version
- version: '1.5'
+ version: '3.0'
- !ruby/object:Gem::Dependency
- name: jekyll
+ name: bundler
requirement: !ruby/object:Gem::Requirement
requirements:
- - ">="
- !ruby/object:Gem::Version
- version: '2.0'
+ version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - ">="
- !ruby/object:Gem::Version
- version: '2.0'
+ version: '0'
- !ruby/object:Gem::Dependency
name: rake
requirement: !ruby/object:Gem::Requirement
@@ -81,19 +73,19 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
- name: rubocop
+ name: rubocop-jekyll
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '='
+ - - "~>"
- !ruby/object:Gem::Version
- version: '0.51'
+ version: '0.4'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '='
+ - - "~>"
- !ruby/object:Gem::Version
- version: '0.51'
+ version: '0.4'
description:
email:
- [email protected]
@@ -105,6 +97,7 @@
- lib/jekyll-sass-converter/version.rb
- lib/jekyll/converters/sass.rb
- lib/jekyll/converters/scss.rb
+- lib/jekyll/source_map_page.rb
homepage: https://github.com/jekyll/jekyll-sass-converter
licenses:
- MIT
@@ -117,15 +110,14 @@
requirements:
- - ">="
- !ruby/object:Gem::Version
- version: '0'
+ version: 2.4.0
required_rubygems_version: !ruby/object:Gem::Requirement
requirements:
- - ">="
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubyforge_project:
-rubygems_version: 2.7.4
+rubygems_version: 3.0.6
signing_key:
specification_version: 4
summary: A basic Sass converter for Jekyll.