[DRE-commits] [ruby-sass-rails] 05/06: Add patch for compatibility with sprockets 2.12

Antonio Terceiro terceiro at moszumanska.debian.org
Sun Aug 3 03:12:37 UTC 2014


This is an automated email from the git hooks/post-receive script.

terceiro pushed a commit to branch master
in repository ruby-sass-rails.

commit 1a733109352835d0d50be3f3a310699e5e40ca99
Author: Antonio Terceiro <terceiro at debian.org>
Date:   Sun Jul 27 16:09:50 2014 -0300

    Add patch for compatibility with sprockets 2.12
---
 debian/changelog                   |   4 +-
 debian/patches/series              |   1 +
 debian/patches/sprockets-2.x.patch | 332 +++++++++++++++++++++++++++++++++++++
 3 files changed, 336 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 75795af..2282580 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,9 @@
-ruby-sass-rails (4.0.3-1) UNRELEASED; urgency=medium
+ruby-sass-rails (4.0.3-1+2) UNRELEASED; urgency=medium
 
   * New upstream release
   * change dependency on ruby-railties-3.2 to just ruby-railties
+  * Added debian/patches/sprockets-2.x.patch for compatibility with sprockets
+    2.12
 
  -- Antonio Terceiro <terceiro at debian.org>  Sun, 27 Jul 2014 12:05:12 -0300
 
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..ab31a25
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+sprockets-2.x.patch
diff --git a/debian/patches/sprockets-2.x.patch b/debian/patches/sprockets-2.x.patch
new file mode 100644
index 0000000..3796591
--- /dev/null
+++ b/debian/patches/sprockets-2.x.patch
@@ -0,0 +1,332 @@
+Description: Restore compatibility with sprockets >= 2.12
+ This patch is a combination of the following upstream commits:
+ - e56c2fbf60ef2bd879aae6f6163c90326b4017be
+ - bd63297c31aceb079595c3a3d9007b0e4df505b6
+ - a62bdf85e56a678aa5fded3d4ed0d10bbc0b7a7b
+ .
+ Changes to non-essential files such as Gemfile's were dropped.
+ .
+ metadata.yml, which is specific to the Debian package, was modified to reflect
+ the changes to sass-rails.gemspec.
+Author:
+ Rafael Mendonça França <rafaelmfranca at gmail.com>,
+ Matthew Draper <matthew at trebex.net>,
+Reviewed-By: Antonio Terceiro <terceiro at debian.org>
+
+--- a/lib/sass/rails/railtie.rb
++++ b/lib/sass/rails/railtie.rb
+@@ -52,6 +52,9 @@ module Sass::Rails
+       end
+ 
+       if app.assets
++        app.assets.register_engine '.sass', Sass::Rails::SassTemplate
++        app.assets.register_engine '.scss', Sass::Rails::ScssTemplate
++
+         app.assets.context_class.extend(SassContext)
+         app.assets.context_class.sass_config = app.config.sass
+       end
+--- a/lib/sass/rails/template.rb
++++ b/lib/sass/rails/template.rb
+@@ -1,28 +1,42 @@
+ require "sprockets/sass_template"
+ 
+-module Sprockets
+-  class SassTemplate
+-    def evaluate(context, locals, &block)
+-      cache_store = SassCacheStore.new(context.environment)
+-
+-      options = {
+-        :filename => eval_file,
+-        :line => line,
+-        :syntax => syntax,
+-        :cache_store => cache_store,
+-        :importer => SassImporter.new(context, context.pathname),
+-        :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) },
+-        :sprockets => {
+-          :context => context,
+-          :environment => context.environment
++module Sass
++  module Rails
++    class SassTemplate < Sprockets::SassTemplate
++
++      def evaluate(context, locals, &block)
++        cache_store = Sprockets::SassCacheStore.new(context.environment)
++
++        options = {
++          :filename => eval_file,
++          :line => line,
++          :syntax => syntax,
++          :cache_store => cache_store,
++          :importer => SassImporter.new(context, context.pathname.to_s),
++          :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path.to_s) },
++          :sprockets => {
++            :context => context,
++            :environment => context.environment
++          }
+         }
+-      }
+ 
+-      sass_config = context.environment.context_class.sass_config.merge(options)
+-      ::Sass::Engine.new(data, sass_config).render
+-    rescue ::Sass::SyntaxError => e
+-      context.__LINE__ = e.sass_backtrace.first[:line]
+-      raise e
++        sass_config = context.environment.context_class.sass_config.merge(options)
++
++        ::Sass::Engine.new(data, sass_config).render
++      rescue ::Sass::SyntaxError => e
++        context.__LINE__ = e.sass_backtrace.first[:line]
++        raise e
++      end
++    end
++
++    class ScssTemplate < SassTemplate
++      def self.default_mime_type
++        'text/css'
++      end
++
++      def syntax
++        :scss
++      end
+     end
+   end
+ end
+--- a/sass-rails.gemspec
++++ b/sass-rails.gemspec
+@@ -15,10 +15,10 @@ Gem::Specification.new do |s|
+ 
+   s.rubyforge_project = "sass-rails"
+ 
+-  s.add_dependency 'sass',            '~> 3.2.0'
++  s.add_dependency 'sass',            '~> 3.2'
+   s.add_dependency 'railties',        '>= 4.0.0', '< 5.0'
+   s.add_dependency 'sprockets-rails', '~> 2.0'
+-  s.add_dependency 'sprockets',       '~> 2.8', '<= 2.11.0'
++  s.add_dependency 'sprockets',       '~> 2.12'
+ 
+   s.files         = [".gitignore",".travis.yml","CHANGELOG.md","Gemfile","MIT-LICENSE","README.md","Rakefile","lib/rails/generators/sass/assets/assets_generator.rb","lib/rails/generators/sass/assets/templates/stylesheet.css.sass","lib/rails/generators/sass/scaffold/scaffold_generator.rb","lib/rails/generators/sass_scaffold.rb","lib/rails/generators/scss/assets/assets_generator.rb","lib/rails/generators/scss/assets/templates/stylesheet.css.scss","lib/rails/generators/scss/scaffold/scaffo [...]
+   s.test_files    = ["test/fixtures/alternate_config_project/.gitignore","test/fixtures/alternate_config_project/Gemfile","test/fixtures/alternate_config_project/README","test/fixtures/alternate_config_project/Rakefile","test/fixtures/alternate_config_project/app/assets/images/1x1.png","test/fixtures/alternate_config_project/app/assets/images/rails.png","test/fixtures/alternate_config_project/app/assets/javascripts/application.js","test/fixtures/alternate_config_project/app/assets/style [...]
+--- a/sass-rails.gemspec.erb
++++ b/sass-rails.gemspec.erb
+@@ -15,10 +15,10 @@ Gem::Specification.new do |s|
+ 
+   s.rubyforge_project = "sass-rails"
+ 
+-  s.add_dependency 'sass',            '~> 3.2.0'
++  s.add_dependency 'sass',            '~> 3.2'
+   s.add_dependency 'railties',        '>= 4.0.0', '< 5.0'
+   s.add_dependency 'sprockets-rails', '~> 2.0'
+-  s.add_dependency 'sprockets',       '~> 2.8', '<= 2.11.0'
++  s.add_dependency 'sprockets',       '~> 2.12'
+ 
+   s.files         = [<%= files.map(&:inspect).join ',' %>]
+   s.test_files    = [<%= test_files.map(&:inspect).join ',' %>]
+--- a/lib/sass/rails/importer.rb
++++ b/lib/sass/rails/importer.rb
+@@ -1,104 +1,96 @@
+ require 'sprockets/sass_importer'
+ 
+-module Sprockets
+-  class SassImporter < Sass::Importers::Filesystem
+-    GLOB = /\*|\[.+\]/
+-
+-    attr_reader :context
+-    private :context
+-
+-    def extensions
+-      {
+-        'css'          => :scss,
+-        'css.scss'     => :scss,
+-        'css.sass'     => :sass,
+-        'css.erb'      => :scss,
+-        'scss.erb'     => :scss,
+-        'sass.erb'     => :sass,
+-        'css.scss.erb' => :scss,
+-        'css.sass.erb' => :sass
+-      }.merge!(super)
+-    end
+-
+-    def find_relative(name, base, options)
+-      if name =~ GLOB
+-        glob_imports(name, Pathname.new(base), options)
+-      else
+-        engine_from_path(name, File.dirname(base), options)
+-      end
+-    end
+-
+-    def find(name, options)
+-      if name =~ GLOB
+-        nil # globs must be relative
+-      else
+-        engine_from_path(name, root, options)
+-      end
+-    end
+-
+-    def each_globbed_file(glob, base_pathname, options)
+-      Dir["#{base_pathname}/#{glob}"].sort.each do |filename|
+-        next if filename == options[:filename]
+-        yield filename if File.directory?(filename) || context.asset_requirable?(filename)
++module Sass
++  module Rails
++    class SassImporter < Sass::Importers::Filesystem
++      GLOB = /\*|\[.+\]/
++
++      attr_reader :context
++      def initialize(context, *args)
++        @context = context
++        super(*args)
++      end
++
++      def extensions
++        {
++          'css'          => :scss,
++          'css.scss'     => :scss,
++          'css.sass'     => :sass,
++          'css.erb'      => :scss,
++          'scss.erb'     => :scss,
++          'sass.erb'     => :sass,
++          'css.scss.erb' => :scss,
++          'css.sass.erb' => :sass
++        }.merge!(super)
++      end
++
++      def find_relative(name, base, options)
++        if name =~ GLOB
++          glob_imports(name, Pathname.new(base), options)
++        else
++          engine_from_path(name, File.dirname(base), options)
++        end
+       end
+-    end
+ 
+-    def glob_imports(glob, base_pathname, options)
+-      contents = ""
+-      each_globbed_file(glob, base_pathname.dirname, options) do |filename|
+-        if File.directory?(filename)
+-          depend_on(filename)
+-        elsif context.asset_requirable?(filename)
+-          depend_on(filename)
+-          contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n"
++      def find(name, options)
++        if name =~ GLOB
++          nil # globs must be relative
++        else
++          engine_from_path(name, root, options)
+         end
+       end
+-      return nil if contents.empty?
+-      Sass::Engine.new(contents, options.merge(
+-        :filename => base_pathname.to_s,
+-        :importer => self,
+-        :syntax => :scss
+-      ))
+-    end
+ 
+-    private
++      private
+ 
+-      def depend_on(filename)
+-        context.depend_on(filename)
+-        context.depend_on(globbed_file_parent(filename))
+-      end
++        def each_globbed_file(glob, base_pathname, options)
++          Dir["#{base_pathname}/#{glob}"].sort.each do |filename|
++            next if filename == options[:filename]
++            if File.directory?(filename)
++              context.depend_on(filename)
++              context.depend_on(File.expand_path('..', filename))
++            elsif context.asset_requirable?(filename)
++              context.depend_on(File.dirname(filename))
++              yield filename
++            end
++          end
++        end
+ 
+-      def globbed_file_parent(filename)
+-        if File.directory?(filename)
+-          File.expand_path('..', filename)
+-        else
+-          File.dirname(filename)
++        def glob_imports(glob, base_pathname, options)
++          contents = ""
++          each_globbed_file(glob, base_pathname.dirname, options) do |filename|
++            contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n"
++          end
++          return nil if contents.empty?
++          Sass::Engine.new(contents, options.merge(
++            :filename => base_pathname.to_s,
++            :importer => self,
++            :syntax => :scss
++          ))
+         end
+-      end
+ 
+-      def engine_from_path(name, dir, options)
+-        full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options))
+-        return unless full_filename && File.readable?(full_filename)
+ 
+-        engine = Sass::Engine.new(evaluate(full_filename), options.merge(
+-          syntax: syntax,
+-          filename: full_filename,
+-          importer: self
+-        ))
++        def engine_from_path(name, dir, options)
++          full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options))
++          return unless full_filename && File.readable?(full_filename)
++
++          context.depend_on full_filename
++          engine = Sass::Engine.new(evaluate(full_filename), options.merge(
++            syntax: syntax,
++            filename: full_filename,
++            importer: self
++          ))
+ 
+-        if engine && (filename = engine.options[:filename])
+-          @context.depend_on(filename)
++          engine
+         end
+ 
+-        engine
+-      end
++        def evaluate(filename)
++          attributes = context.environment.attributes_for(filename)
++          processors = context.environment.preprocessors(attributes.content_type) +
++            attributes.engines.reverse - [Sass::Rails::ScssTemplate, Sass::Rails::SassTemplate]
+ 
+-      def evaluate(filename)
+-        attributes = context.environment.attributes_for(filename)
+-        processors = context.environment.preprocessors(attributes.content_type) +
+-          attributes.engines.reverse - [Sprockets::ScssTemplate, Sprockets::SassTemplate]
++          context.evaluate(filename, processors: processors)
++        end
+ 
+-        context.evaluate(filename, processors: processors)
+-      end
++    end
+   end
+ end
+--- a/metadata.yml
++++ b/metadata.yml
+@@ -65,20 +65,14 @@ dependencies:
+     requirements:
+     - - "~>"
+       - !ruby/object:Gem::Version
+-        version: '2.8'
+-    - - "<="
+-      - !ruby/object:Gem::Version
+-        version: 2.11.0
++        version: '2.12'
+   type: :runtime
+   prerelease: false
+   version_requirements: !ruby/object:Gem::Requirement
+     requirements:
+     - - "~>"
+       - !ruby/object:Gem::Version
+-        version: '2.8'
+-    - - "<="
+-      - !ruby/object:Gem::Version
+-        version: 2.11.0
++        version: '2.12'
+ description: Sass adapter for the Rails asset pipeline.
+ email:
+ - wycats at gmail.com

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-sass-rails.git



More information about the Pkg-ruby-extras-commits mailing list