GithubHelp home page GithubHelp logo

sassc-rails's Introduction

Sass

@SassCSS on Twitter    stackoverflow    Gitter

Sass makes CSS fun again. Sass is an extension of CSS, adding nested rules, variables, mixins, selector inheritance, and more. It's translated to well-formatted, standard CSS using the command line tool or a plugin for your build system.

$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { @include border-radius(10px); }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

Install Sass

You can install Sass on Windows, Mac, or Linux by downloading the package for your operating system from GitHub and adding it to your PATH. That's all—there are no external dependencies and nothing else you need to install.

If you use Node.js, you can also install Sass using npm by running

npm install -g sass

However, please note that this will install the pure JavaScript implementation of Sass, which runs somewhat slower than the other options listed here. But it has the same interface, so it'll be easy to swap in another implementation later if you need a bit more speed!

See the Sass website for more ways to install Sass.

Once you have Sass installed, you can run the sass executable to compile .sass and .scss files to .css files. For example:

sass source/stylesheets/index.scss build/stylesheets/index.css

Learn Sass

Check out the Sass website for a guide on how to learn Sass!

This Repository

This repository isn't an implementation of Sass. Those live in sass/dart-sass and sass/libsass. Instead, it contains:

  • spec/, which contains specifications for language features.
  • proposal/, which contains in-progress proposals for changes to the language.
  • accepted/, which contains proposals that have been accepted and are either implemented or in the process of being implemented.

Note that this doesn't contain a full specification of Sass. Instead, feature specifications are written as needed when a new feature is being designed or when an implementor needs additional clarity about how something is supposed to work. This means many of the specs in spec/ only cover small portions of the features in question.

Versioning Policy

The proposals in this repository are versioned, to make it easy to track changes over time and to refer to older versions. Every version has a Git tag of the form proposal.<name>.draft-<version>. A new version should be created for each batch of changes.

Every version has a major version, and they may have a minor version as well (indicated <major>.<minor>). The minor version should be incremented for changes that don't affect the intended semantics of the proposal; otherwise, the major version should be incremented.

sassc-rails's People

Contributors

anomalousbit avatar aqeelvn avatar asottile avatar boffbowsh avatar bolandrm avatar byroot avatar csuhta avatar dreyks avatar ferdinandrosario avatar glebm avatar henrik avatar javierjulio avatar jhawthorn avatar johantell avatar kinopyo avatar nschonni avatar rafaelfranca avatar readmecritic avatar rosenfeld avatar samjewell avatar schneems avatar tricknotes avatar vimutter avatar ykzts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sassc-rails's Issues

error reading values after Opacity

$ rails c staging
Loading staging environment (Rails 4.2.1)
2.2.1 :001 > Benchmark.bm { |bm| bm.report { Rails.application.assets["application.css"] } }
       user     system      total        real
 SassC::SyntaxError: Error: error reading values after Opacity
        on line 37 of ../../.rvm/gems/ruby-2.2.1@ws4be/gems/rails-assets-jgrowl-1.4.3/app/assets/stylesheets/jgrowl/jquery.jgrowl.scss
>> : progid:DXImageTransform.Microsoft.Alpha(Opacity=(0.9*100));
   ------------------------------------------^

    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sassc-1.1.2/lib/sassc/engine.rb:34:in `render'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sassc-rails-0.0.9/lib/sassc/rails/template.rb:54:in `evaluate'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/context.rb:197:in `block in evaluate'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `each'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `evaluate'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:12:in `initialize'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `new'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `block in build_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/base.rb:395:in `circular_call_protection'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/base.rb:373:in `build_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
... 17 levels...
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/railties-4.2.1/lib/rails/commands/console.rb:9:in `start'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:68:in `console'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/railties-4.2.1/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
    from /Users/melnikaite/projects/ws4be/bin/rails:8:in `<top (required)>'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `block in load'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/melnikaite/.rvm/gems/ruby-2.2.1@ws4be/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load'
    from /Users/melnikaite/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/melnikaite/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'2.2.1 :002 >

wildcard/globbed imports are not implemented yet

Prior to integration I had this in my code working fine:

@import 'common/*';

I had to convert any css imports that used wildcards to import a whole path to import each stylesheet separately. Reading up the old convention may not be supported going forward but wasn't clear to me, so just wanted to confirm/log on potential issue here. Feel free to close out if this this is no longer supported using sassc. Thanks

Assets not being recompiled after changes.

I am trying to convert from sass-rails to sassc-rails. I am using rails 4.2.2.

When I use sassc-rails, changes to my scss files are not being reflected in the view, even if I stop and restart the server (I have turned off spring). If I stop the server and do a rm -r tmp/cache/assets, the changes are reflected.

If I go back to sass-rails it works properly, though I have to do a rm -r tmp/cache/assets before I restart the server to have it working properly.

I have asked this question on stack overflow, http://stackoverflow.com/questions/34801411/sassc-rails-assets-changes-not-being-compiled/34815948#34815948, and there has been a suggestion, but no resolution of the problem.

SassC::SyntaxError: Error: Function sprite-map doesn't support keyword arguments

I've tried updating the sassc-rails and updated the dependend gems to their current latest version

in the Gemfile

gem 'sass', '~> 3.4.22'
gem 'sprockets', '~> 3.6.3'
gem 'sprockets-rails', '~> 3.1.1'

gem 'bootstrap-sass', '~> 3.3.6'
gem 'sassc-rails', github:'sass/sassc-rails', branch: 'master'

diff for the Gemfile.lock

-    bootstrap-sass (3.3.5)
-      autoprefixer-rails (>= 5.0.0.1)
-      sass (>= 3.2.19)
+    bootstrap-sass (3.3.6)
+      autoprefixer-rails (>= 5.2.1)
+      sass (>= 3.3.4)
-    sass (3.2.19)
-    sass-rails (4.0.5)
-      railties (>= 4.0.0, < 5.0)
-      sass (~> 3.2.2)
-      sprockets (~> 2.8, < 3.0)
-      sprockets-rails (~> 2.0)
-    sassc (1.2.0)
+    sass (3.4.22)
+    sassc (1.10.0)
       bundler
       ffi (~> 1.9.6)
-    sassc-rails (0.1.0)
-      rails (>= 4.0.0)
-      sass
-      sassc (~> 1.2.0)
-      sprockets (> 2.11)
-      tilt
+      sass (>= 3.3.0)
-    sprockets (2.12.4)
-      hike (~> 1.2)
-      multi_json (~> 1.0)
-      rack (~> 1.0)
-      tilt (~> 1.1, != 1.3.0)
-    sprockets-rails (2.3.3)
-      actionpack (>= 3.0)
-      activesupport (>= 3.0)
-      sprockets (>= 2.8, < 4.0)
+    sprockets (3.6.3)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.1.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
-  bootstrap-sass (~> 3.3.0)
+  bootstrap-sass (~> 3.3.6)
-  sassc-rails
+  sass (~> 3.4.22)
+  sassc-rails!
+  sprockets (~> 3.6.3)
+  sprockets-rails (~> 3.1.1)

Error stack trace

SassC::SyntaxError: Error: Function sprite-map doesn't support keyword arguments
        on line 33 of app/assets/stylesheets/styles/_mainpage_variables.scss
>> $icons: sprite-map("icons/*.png", $layout: smart);
   --------^
/Users/user/work/ac/itproject/app/assets/stylesheets/styles/_mainpage_variables.scss:33
/Users/user/.rvm/gems/ruby-2.2.2/gems/sassc-1.10.0/lib/sassc/engine.rb:46:in `render'
/Users/user/.rvm/gems/ruby-2.2.2/bundler/gems/sassc-rails-a7e1b5f653e8/lib/sassc/rails/template.rb:34:in `block in call'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/utils.rb:167:in `module_include'
/Users/user/.rvm/gems/ruby-2.2.2/bundler/gems/sassc-rails-a7e1b5f653e8/lib/sassc/rails/template.rb:33:in `call'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb:30:in `call'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:75:in `call_processor'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:56:in `call_processors'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:60:in `block in load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:44:in `load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:47:in `yield'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:47:in `load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/bundle.rb:23:in `block in call'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/utils.rb:196:in `dfs'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/bundle.rb:24:in `call'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:75:in `call_processor'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/processor_utils.rb:56:in `call_processors'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:60:in `block in load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/loader.rb:44:in `load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:47:in `yield'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/cached_environment.rb:47:in `load'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/base.rb:66:in `find_asset'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/manifest.rb:134:in `block in find'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/manifest.rb:133:in `each'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/manifest.rb:133:in `find'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/sprockets/manifest.rb:185:in `compile'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-rails-3.1.1/lib/sprockets/rails/task.rb:68:in `block (3 levels) in define'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-3.6.3/lib/rake/sprocketstask.rb:147:in `with_logger'
/Users/user/.rvm/gems/ruby-2.2.2/gems/sprockets-rails-3.1.1/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define'
/Users/user/.rvm/gems/ruby-2.2.2/gems/rake-11.2.2/exe/rake:27:in `<top (required)>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

_mainpage_variables.scss

$green: #66977C;
$base-green: #3f8567;
$light-green: #d5e7dd;
$dark-green: #264f38;
$white: white;
$grey: #565656;
$black: black;
$orange: #FF8400;
$font-family-sans-serif: 'Lato', sans-serif;
/* font fallback */
$font-family-serif: Georgia, "Times New Roman", Times, serif;
$font: $font-family-sans-serif;
/* _mainpage.scss */
$font-size-extra-small: 2em;
$font-size-small: 2.6em;
$font-size-medium: 4em;
$font-size-large: 6em;
$font-size-extra-large: 9em;

/* _pages.scss */
$aboutus_font-size-extra-small: .94em;
$aboutus_font-size-small: 1.3em;
$aboutus_font-size-medium: 1.9em;
$aboutus_font-size-large: 2.3em;

/* Media queries */
$break-extra-small: 767px;
$break-small: 991px;
$break-medium: 1199px;
$break-large: 1900px;

/* Icons */
$icons: sprite-map("icons/*.png", $layout: smart);

mainpage.scss

//
// require compass-mixins/lib/_compass.scss
//

@import 'compass-mixins/lib/_compass.scss';
@import "bootstrap/animation";
@import "bootstrap-sprockets";/* glyphicons icons */
@import 'bootstrap';
@import 'bootstrap/fonts';
@import 'styles/mainpage_variables';
@import 'styles/mainpage_mixins';
@import 'bootstrap/components/inputs/selectBoxIt';
@import 'styles/mainpage';
@import 'bootstrap/modules/registration/_registration';
@import 'fontello-codes';/* fontello icons */
@import 'jquery.Jcrop';
@import 'flag-icon';/* flag icons */
@import "ladda";
@import "ladda-themed";

We are using compass outside of rails setup installed via bower from Igosuki/compass-mixins#~1.0.2

bower.json

{
  "name": "",
  "version": "2.10.7",
  "authors": [],
  "description": "",
  "main": "",
  "moduleType": [],
  "license": "MIT",
  "homepage": "",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "compass-mixins": "Igosuki/compass-mixins#~1.0.2"
  }
}

This seemed to be no issue when sprockets was on version 2.12.4 and sassc-rails on 0.1.0

Segfault after upgrading

I recently updated Rails for some CVE patches which had the side effect of updating Sprockets to 3.0.

As I result I'm also updating sassc-rails to 1.2. After doing all of this I'm getting a segfault.

14:15:20 rails.1   | ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin14]
14:15:20 rails.1   |
14:15:20 rails.1   | -- Crash Report log information --------------------------------------------
14:15:20 rails.1   |    See Crash Report log file under the one of following:
14:15:20 rails.1   |      * ~/Library/Logs/CrashReporter
14:15:20 rails.1   |      * /Library/Logs/CrashReporter
14:15:20 rails.1   |      * ~/Library/Logs/DiagnosticReports
14:15:20 rails.1   |      * /Library/Logs/DiagnosticReports
14:15:20 rails.1   |    for more details.
14:15:20 rails.1   |
14:15:20 rails.1   | -- Control frame information -----------------------------------------------
14:15:20 rails.1   | c:0218 p:---- s:1290 e:001289 CFUNC  :compile_data_context
14:15:20 rails.1   | c:0217 p:0284 s:1286 e:001285 METHOD /usr/local/Cellar/rbenv/0.4.0/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sassc-1.8.4/lib/sassc/engine.rb:39
14:15:20 rails.1   | c:0216 p:0008 s:1277 e:001276 BLOCK  /usr/local/Cellar/rbenv/0.4.0/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sassc-rails-1.2.0/lib/sassc/rails/template.rb:27
14:15:20 rails.1   | c:0215 p:0060 s:1275 e:001274 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/utils.rb:154
14:15:20 rails.1   | c:0214 p:0154 s:1269 e:001268 METHOD /usr/local/Cellar/rbenv/0.4.0/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sassc-rails-1.2.0/lib/sassc/rails/template.rb:26
14:15:20 rails.1   | c:0213 p:0011 s:1261 e:001260 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/sass_processor.rb:30
14:15:20 rails.1   | c:0212 p:0055 s:1257 e:001256 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:75
14:15:20 rails.1   | c:0211 p:0017 s:1250 e:001249 BLOCK  /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:57 [FINISH]
14:15:20 rails.1   | c:0210 p:---- s:1246 e:001245 CFUNC  :reverse_each
14:15:20 rails.1   | c:0209 p:0042 s:1243 e:001242 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:56
14:15:20 rails.1   | c:0208 p:0335 s:1236 e:001235 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/loader.rb:134
14:15:20 rails.1   | c:0207 p:0077 s:1217 e:001216 BLOCK  /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/loader.rb:60
14:15:20 rails.1   | c:0206 p:0042 s:1212 e:001211 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/loader.rb:318
14:15:20 rails.1   | c:0205 p:0138 s:1203 e:001202 METHOD /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/loader.rb:44
14:15:20 rails.1   | c:0204 p:0014 s:1195 e:001191 BLOCK  /usr/local/opt/rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sprockets-3.5.2/lib/sprockets/cached_environment.rb:20 [FINISH]
14:15:20 rails.1   | c:0203 p:---- s:1188 e:001187 CFUNC  :yield

I'm not really sure where to go with this from here, so I'm hoping someone might have a suggestion.

Not working with font-awesome

In my attempt to get this working it is failing when it attempts to compile font-awesome assets. It looks like the font_path method is not supported. It is worth noting that this is coming from a css,erb filetype. Command I am running:

time RAILS_ENV=production bundle exec rake assets:precompile --trace

Exception backtrace:

rake aborted!
NoMethodError: undefined method `font_path' for #<Object:0x007fe5671367b8>
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/font-awesome-rails-4.3.0.0/app/assets/stylesheets/font-awesome.css.erb:15:in `block in singleton class'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/font-awesome-rails-4.3.0.0/app/assets/stylesheets/font-awesome.css.erb:-5:in `instance_eval'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/font-awesome-rails-4.3.0.0/app/assets/stylesheets/font-awesome.css.erb:-5:in `singleton class'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/font-awesome-rails-4.3.0.0/app/assets/stylesheets/font-awesome.css.erb:-7:in `__tilt_70311571807200'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `evaluate'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:37:in `import_for'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:102:in `block (3 levels) in imports'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:98:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:98:in `block (2 levels) in imports'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:95:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:95:in `block in imports'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:94:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/importer.rb:94:in `imports'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/importer.rb:12:in `block in setup'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/engine.rb:22:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/engine.rb:22:in `compile_data_context'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/engine.rb:22:in `block in render'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/script.rb:53:in `setup_custom_functions'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-0.0.10/lib/sassc/engine.rb:21:in `render'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/template.rb:25:in `block in call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/utils.rb:93:in `module_include'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sassc-rails-0.0.1/lib/sassc/rails/template.rb:24:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/sass_template.rb:21:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:123:in `block in load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:121:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:121:in `load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:89:in `load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:27:in `load'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:22:in `block in initialize'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:52:in `yield'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:52:in `load'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/bundle.rb:22:in `block in call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/bundle.rb:25:in `yield'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/bundle.rb:25:in `block in call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/utils.rb:122:in `dfs'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/bundle.rb:26:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:123:in `block in load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:121:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:121:in `load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:89:in `load_asset_by_uri'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/loader.rb:27:in `load'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:22:in `block in initialize'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:52:in `yield'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/cached_environment.rb:52:in `load'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/base.rb:65:in `find_asset'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/base.rb:72:in `find_all_linked_assets'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/manifest.rb:167:in `block in find'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/legacy.rb:47:in `block (2 levels) in logical_paths'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/path_utils.rb:188:in `block in stat_tree'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/path_utils.rb:172:in `block in stat_directory'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/path_utils.rb:169:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/path_utils.rb:169:in `stat_directory'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/path_utils.rb:187:in `stat_tree'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/legacy.rb:38:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/legacy.rb:38:in `block in logical_paths'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/legacy.rb:37:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/legacy.rb:37:in `logical_paths'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/manifest.rb:165:in `find'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/sprockets/manifest.rb:193:in `compile'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-3.0.0.beta.6/lib/rake/sprocketstask.rb:147:in `with_logger'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/Users/rboutotte/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/Users/rboutotte/.rbenv/versions/2.1.1/bin/rake:23:in `load'
/Users/rboutotte/.rbenv/versions/2.1.1/bin/rake:23:in `<main>'

default_mime_type error

/Users/rsc/.gem/ruby/2.1.2/gems/sassc-rails-1.1.0/lib/sassc/rails/template.rb:37:in `block in included': undefined method `default_mime_type=' for SassC::Rails::SassTemplate:Class (NoMethodError)

using:

    rails (4.1.8)
    sprockets (3.0.0)
    sprockets-rails (2.2.4)

SassC is partially compatible with Compass

Hello,

For some reason when switching sass-rails to sassc-rails, compass-rails helper inline-font-files() stops working. It's just being ignored (no errors in the console)

Is it possible to fix?

Thanks!

Problems when other gems depend on sass-rails

I've been struggling to get sassc to work with Rails for quite some time but with little luck. Tonight I thought I'd give it a try again, but a quick Google lead me to this repo. Woo!

Unfortunately I can't see any sort of increase in the speed that my scss files compile after changing them. Is there some extra configuration necessary after installing the gem?

supporting config.sass.load_paths

Moving from sass-rails to sassc-rails
Turns out sassc-rails does not support config.sass.load_paths directive

This is easy to add to SassC::Rails::Template. I've made a monkeypatch for my app, but if you're interested I may file a PR with this

Comment block causes invalid top-lvel expression error

I get this error:

ActionView::Template::Error (Error: invalid top-level expression
        on line 208 of app/assets/stylesheets/_main.scss
):

This only happens in these two cases (Not sure if this was valid CSS/SCSS syntax before, but now is flagged):

.my_css_class /* Some comment */ {
}
.my_other_class { /* Some comment */
}

"rails g controller|scaffold ..." fails with "scss [not found]" error

Thanks for your work on sassc-rails! We switched over to using it as a default on all new projects.

When using rails generators, we noticed that generating views fails with a "scss [not found]" error.

% rails g controller Widgets index show
Running via Spring preloader in process 65874
      create  app/controllers/widgets_controller.rb
       route  get 'widgets/show'
       route  get 'widgets/index'
      invoke  slim
      create    app/views/widgets
      create    app/views/widgets/index.html.slim
      create    app/views/widgets/show.html.slim
      invoke  rspec
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/widgets.coffee
       error    scss [not found]

This works using sass-rails. If sassc-rails is a drop in replacement for sass-rails, it seems to me that adding support for the generator would be a good idea.

If you agree, I can look into what it would take. LMK.

Integrate sassc-rails work on sass-rails

After rails/sprockets#80 is merged we will have first class sassc support on sprockets. The plan is to make sass-rails work with both sass and sassc so I believe it may be better to integrate sassc-rails work back to sass-rails and have only one gem to integrate sass in Rails applications.

Do you think it is possible?

I can grant commit access to this gem maintainers there.

some fix

# config/initializers/sassc_rails.rb
require "sprockets/engines"

module Extensions
  module Sprockets
    module Engines
      def register_engine(ext, klass)
        return if [
          Sass::Rails::SassTemplate,
          Sass::Rails::ScssTemplate
        ].include?(klass)
        super
      end
    end
  end
end

Sprockets::Base.send(:prepend, Extensions::Sprockets::Engines)

Rails.application.config.assets.configure do |env|
  env.register_engine '.sass', SassC::Rails::SassTemplate
  env.register_engine '.scss', SassC::Rails::ScssTemplate
end
# Gemfile
#...
gem 'sass-rails', require: false
gem 'sassc-rails', github: 'sass/sassc-rails'
#...

Not working with Rails 4.2.5 (sassc-rails v1.1.0)

Hi all,

I realized that I have to add this hack to make sassc-rails working

    # in application.rb
    config.after_initialize do
      Rails.application.assets.register_engine '.sass', SassC::Rails::SassTemplate
      Rails.application.assets.register_engine '.scss', SassC::Rails::ScssTemplate
    end

I found this by noticing that inline_source_maps was not working. After hours of debugging I found that sassc-rails was not registered as the handler to sass in my project. As far as I discovered, in lib/sassc/rails/railtie.rb, the initializer :setup_sass fails to register sassc, as app.assets always evaluates to nil. However Sprockets works without sass-rails gem, as it loads sass gem as the default sass handler itself. My project does't have a lot of sass files right now, thus it's hard to notice a difference in speed.

As a test case, simply create a new project with Rails 4.2.5, and change the default sass-rails to sassy-rails. Then by running

$ rails runner 'p SasscTest::Application.assets.engines'
{".coffee"=>Sprockets::CoffeeScriptProcessor, ".jst"=>Sprockets::JstProcessor, ".eco"=>Sprockets::EcoProcessor, ".ejs"=>Sprockets::EjsProcessor, ".sass"=>Sprockets::SassProcessor, ".scss"=>Sprockets::ScssProcessor, ".erb"=>Sprockets::ERBProcessor}

you can tell that, sassc is not available among the engines.

Could you please investigate this? Thanks!

Error during integration testing: ActionView::Template::Error: Error: Data context created with empty source string

My project is using ember-cli-rails to integrate the ember-cli assets into the asset pipeline, and I get this trace:

ActionView::Template::Error: Error: Data context created with empty source string

gems/sassc-1.8.1/lib/sassc/engine.rb:41:in `render'
gems/sassc-rails-1.1.0/lib/sassc/rails/compressor.rb:16:in `call'
gems/sprockets-3.5.2/lib/sprockets/sass_compressor.rb:28:in `call'
gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
gems/sprockets-3.5.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
gems/sprockets-3.5.2/lib/sprockets/loader.rb:60:in `block in load'
gems/sprockets-3.5.2/lib/sprockets/loader.rb:318:in `fetch_asset_from_dependency_cache'
gems/sprockets-3.5.2/lib/sprockets/loader.rb:44:in `load'
gems/sprockets-3.5.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
gems/sprockets-3.5.2/lib/sprockets/cached_environment.rb:47:in `yield'
gems/sprockets-3.5.2/lib/sprockets/cached_environment.rb:47:in `load'
gems/sprockets-3.5.2/lib/sprockets/base.rb:66:in `find_asset'
gems/sprockets-3.5.2/lib/sprockets/base.rb:92:in `[]'
gems/sprockets-rails-2.3.3/lib/sprockets/rails/helper.rb:123:in `asset_digest_path'
gems/sprockets-rails-2.3.3/lib/sprockets/rails/helper.rb:76:in `compute_asset_path'
gems/actionview-4.2.4/lib/action_view/helpers/asset_url_helper.rb:135:in `asset_path'
gems/sprockets-rails-2.3.3/lib/sprockets/rails/helper.rb:91:in `asset_path'
gems/actionview-4.2.4/lib/action_view/helpers/asset_url_helper.rb:267:in `stylesheet_path'
gems/actionview-4.2.4/lib/action_view/helpers/asset_tag_helper.rb:100:in `block in stylesheet_link_tag'
gems/actionview-4.2.4/lib/action_view/helpers/asset_tag_helper.rb:96:in `map'
gems/actionview-4.2.4/lib/action_view/helpers/asset_tag_helper.rb:96:in `stylesheet_link_tag'
gems/sprockets-rails-2.3.3/lib/sprockets/rails/helper.rb:170:in `stylesheet_link_tag'
gems/ember-cli-rails-0.5.8/app/helpers/ember_rails_helper.rb:27:in `include_ember_stylesheet_tags'

Any hints as to how I can hopefully resolve this?

Compile issues on Centos 6 (has no member named ‘reserve’) (c++0x/c++11)

Centos 6 comes with:

$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)

I've also tried http://people.centos.org/tru/devtools-1.1/ which provides:

$ gcc --version
gcc (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5)

I notice the flag -std=c++0x which might need to be -std=c++11 with gcc-4.7.2

How do I do that?

See
http://stackoverflow.com/questions/15733163/c-error-unordered-map-does-not-name-a-type

Installing sassc 1.8.1 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /snip/.rbenv/versions/2.2.2/bin/ruby -rubygems /snip/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/rake-10.4.2/bin/rake RUBYARCHDIR=/snip2/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/sassc-1.8.1 RUBYLIBDIR=/snip2/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/sassc-1.8.1
cd libsass
make lib/libsass.so LDFLAGS="-Wall -O2"
mkdir lib
cc -Wall -O2 -I /snip2/vendor/bundle/ruby/2.2.0/gems/sassc-1.8.1/ext/libsass/include -fPIC -fPIC -c -o src/cencode.o src/cencode.c
g++ -Wall -O2 -std=c++0x -I /snip2/vendor/bundle/ruby/2.2.0/gems/sassc-1.8.1/ext/libsass/include -fPIC -fPIC -c -o src/ast.o src/ast.cpp
In file included from src/ast.cpp:1:
src/ast.hpp: In constructor ‘Sass::Hashed::Hashed(size_t)’:
src/ast.hpp:245: error: ‘class std::unordered_map<Sass::Expression*, Sass::Expression*, std::hash<Sass::Expression*>, std::equal_to<Sass::Expression*>, std::allocator<std::pair<Sass::Expression* const, Sass::Expression*> > >’ has no member named ‘reserve’

compass-rails - Error: file to import not found or unreadable

I'm trying to compile a simple file

@import 'compass/reset';

Compass in installed as a gem. The result is:

SassC::SyntaxError - Error: file to import not found or unreadable: compass/reset
       Current dir: /<skipped>/app/assets/stylesheets/application/
        on line 2 of app/assets/stylesheets/application/screen.scss
>> @import 'compass/reset';
   --------^

cannot load such file -- sprockets/sass_template

Do you know where require "sprockets/sass_template" is supposed to be coming from?

LoadError: cannot load such file -- sprockets/sass_template
/Users/richardschneeman/.gem/ruby/2.4.0/gems/activesupport-5.0.0.rc1/lib/active_support/dependencies.rb:293:in `require'
/Users/richardschneeman/.gem/ruby/2.4.0/gems/activesupport-5.0.0.rc1/lib/active_support/dependencies.rb:293:in `block in require'
/Users/richardschneeman/.gem/ruby/2.4.0/gems/activesupport-5.0.0.rc1/lib/active_support/dependencies.rb:259:in `load_dependency'
/Users/richardschneeman/.gem/ruby/2.4.0/gems/activesupport-5.0.0.rc1/lib/active_support/dependencies.rb:293:in `require'
/Users/richardschneeman/.gem/ruby/2.4.0/gems/sassc-rails-1.2.1/lib/sassc/rails/template.rb:2:in `<top (required)>

Btw I maintain sprockets, sprockets-rails, and sass-rails now. Happy to work together to make the sassc-rails experience better in the future. For now i'm trying to get it to work with https://github.com/codetriage/codetriage and running into this error.

Here's my bundle list https://gist.github.com/schneems/fdee966b8caf7556a79e4fcb23d7b41c

.css.scss found in dev but no other environments

Consider the following application.css.scss file :

@import "foobar";

And a file foobar.css.scss

bundle exec rake assets:precompile will work

RAILS_ENV=production bundle exec rake assets:precompile won't and will fail with error message "file to import not found or unreadable"

Add ability to specify the :precision option

Followup to our twitter conversation earlier today: https://twitter.com/pete_higgins/status/747861010359402496

I am switching a rails app from using sass-rails to sassc-rails and looking for differences in the compiled CSS between the two. I noticed that sass has many more degrees of precision from the results of doing math in sass than sassc does. Sass has the option to specify the precision, which bootstrap-sass relies on: https://github.com/twbs/bootstrap-sass/blob/0a64ad76107e0363e0d504287c0f9b88c6679399/lib/bootstrap-sass.rb#L64-L65 This means that whne using sassc some of the derived values have a much lower precision which can lead to small differences cropping up, as mentioned in the issue linked to in the bootstrap-sass documentation above. Even if there are no visible differences, since I am switching from sass-rails to sassc-rails, I'd feel more confident that nothing was going to change between the two of them if their compiled CSS was the same, minus whitespace differences, etc.

For now I've been able to change the precision with sassc-rails by adding a monkeypatch like this to my project, which is not ideal:

if defined?(SassC)
  SassC::Engine.include Module.new do
    def precision
      super || 8
    end
  end

Does it work at all?

Hi,
I don't see any improvements. Am I doing something wrong?

oleh@imac:~/projects/project (master)$ rm -rf tmp/cache/assets public/assets && time rake assets:precompile 2>/dev/null

real  0m40.022s
user  0m35.192s
sys 0m5.305s

oleh@imac:~/projects/project (master)$ git checkout experiments/sassc
Switched to branch 'experiments/sassc'
oleh@imac:~/projects/project (experiments/sassc)$ rm -rf tmp/cache/assets public/assets && time rake assets:precompile 2>/dev/null

real  0m49.738s
user  0m38.643s
sys 0m11.520s

oleh@imac:~/projects/project (experiments/sassc)$ d master Gemfile | grep sass
-gem 'sass-rails', '~> 4.0.3'
+gem 'sassc-rails'

oleh@imac:~/projects/project (experiments/sassc)$ d master Gemfile.lock | grep sass
-    sass (3.2.19)
-    sass-rails (4.0.5)
-      sass (~> 3.2.2)
+    sass (3.4.18)
+    sassc (1.6.0)
+      sass (>= 3.3.0)
+    sassc-rails (1.1.0)
+      sass
+      sassc (~> 1.6)
-  sass-rails (~> 4.0.3)
+  sassc-rails

rails 4.4.11
sprockets (3.3.5)
sprockets-rails (2.3.3)

Compressor crashing when building assets on Heroku

I can also reproduce this error if compression is enabled locally.

remote:        rake aborted!
remote:        SassC::SyntaxError: Error: error reading values after ,
remote:        on line 14370 of stdin
remote:        >> px, #ECECEC 4px, #E1E1E1 5px, #FFFFFF 6px, , , , , );
remote:        ------------------------------------------^
remote:        /tmp/build_bfac79ff2aeaeb533c89623080124288/vendor/bundle/ruby/2.2.0/gems/sassc-1.5.1/lib/sassc/engine.rb:38:in `render'
remote:        /tmp/build_bfac79ff2aeaeb533c89623080124288/vendor/bundle/ruby/2.2.0/bundler/gems/sassc-rails-3f36dd2b5159/lib/sassc/rails/compressor.rb:16:in `call'
remote:        /tmp/build_bfac79ff2aeaeb533c89623080124288/vendor/bundle/ruby/2.2.0/gems/sprockets-3.2.0/lib/sprockets/sass_compressor.rb:28:in `call'
remote:        /tmp/build_bfac79ff2aeaeb533c89623080124288/vendor/bundle/ruby/2.2.0/gems/sprockets-3.2.0/lib/sprockets/processor_utils.rb:75:in `call_processor'
remote:        /tmp/build_bfac79ff2aeaeb533c89623080124288/vendor/bundle/ruby/2.2.0/gems/sprockets-3.2.0/lib/sprockets/processor_utils.rb:57:in `block in call_processors'

Sass return type Map unsupported

tl;dr: Can't seem to return a hash-map from within a ruby-sassc helper-method – why is this?


With the following initializer (/config/initializers) in a Rails project:

require 'sprockets/sass_functions'

module Sprockets
  module SassFunctions
    def return_sass_hash
      values = {}
      Sass::Script::Value::Map.new values
    end
  end
end

::SassC::Script::Functions.send :include, Sprockets::SassFunctions

And calling this method from my stylesheet:

$returned-hash: return-sass-hash();

I get the following error:

 SassC::SyntaxError: Error: error in C function return-sass-hash: Sass return type Map unsupported

        Backtrace:
         app/assets/stylesheets/sass_ext_test.scss:2, in function `return-sass-hash`
         app/assets/stylesheets/sass_ext_test.scss:2
         on line 2 of app/assets/stylesheets/sass_ext_test.scss
 >> $returned-hash: return-sass-hash();
    ----------------^

   (in /Users/ruben.swieringa/Development/caren-redesign/app/assets/stylesheets/sass_ext_test.scss)

Are maps really unsupported from within SassC-extensions? And if so, is there a timeline for supporting them?

Empty selectors result in "private method `warn' called for nil:NilClass"

`private method `warn' called for nil:NilClass` 

is output whenever an empty selector exists in a sass file. Happens with both selectors and child elements.

a
  color: red
  &:hover
    // Nothing here will kill this

// or 

a
  // Nothing here will kill this
p
  font-size: 100%

Rails-Sass outputs a readable warning to the logs stating that the selector is empty and will not be output instead of killing the app.

Fails to compile with non-UTF8 characters

Looks like it works perfectly in development but when running tests it doesn't compile:

Error compiling CSS asset
Sass::SyntaxError: Undefined variable: "$light-gray"
   (sass):268

The variable does indeed exist in a file called vars.scss, and works perfectly in development. I'm not clever enough to figure this out myself, but please let me know what else I can do to help sort this out. :)

EDIT: I figured out this was being caused by non-UTF8 characters such as a copyright sign in my scss files.

Crash - @import "bootstrap/utilities";

Need to track down a crash that is occurring in the bootstrap/utilities file on bootstrap sass version 3.2.0. It does not occur in version 3.3.4.

Whatever is causing the crash should be handled more gracefully.

Support for Rails 3

Hi,

I'm still having some projects on Rails 3. I know this is seems kinda outdated (seeing Rails 5 coming), but I think that a lot of projects still rely on a Rails 3.x version.

So, is there anything planned for support of Rails 3?

import once

I'm trying to use sassc-rails to speed up asset compilation. With sass-rails, I've been using https://github.com/Compass/compass/tree/master/import-once. However, that doesn't seem to work with sassc-rails. Does anything like that exist yet for sassc-rails?

ps. I know sass v4 is rumored to include import once functionality. It's unclear when v4 will be out, so I'm looking for something I can use with v3.

Deprecation warnings

I'm getting these warnings when sassc-rails is on the Gemfile (using Rails 5):

DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /Users/dreikanter/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sassc-rails-1.2.1/lib/sassc/rails/railtie.rb:53)
DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /Users/dreikanter/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sassc-rails-1.2.1/lib/sassc/rails/railtie.rb:54)

Inline source maps for vendored gems

I have vendored chosen-rails into vendor/gems like so:

gem 'chosen-rails', path: 'vendor/gems/chosen-rails'

Now I'm getting this error:

          body:before {
            font-weight: bold;
            content: "\000a ExecJS::ProgramError: Error: \0022 \002f myproject\002f vendor\002f gems\002f chosen-rails\002f vendor\002f assets\002f stylesheets\002f chosen.css\0022  is not in the SourceMap.";
          }

          body:after {
            content: "\000a   SourceMapConsumer_sourceContentFor [as sourceContentFor] ((execjs):25357:15)";
          }

Others work fine.

`RAILS_ENV=production rake assets:precompile` does not work

When trying to deploy my app with Capistrano I noticed a problem related to sassc-rails and had to rollback to sass-rails for the time being. While rake assets:precompile works fine, when RAILS_ENV is set to something else than development the task will fail with:

RAILS_ENV=production rake assets:precompile
rake aborted!
SassC::SyntaxError: Error: Data context created with empty source string
/home/rodrigo/temp/src/rails-projects/sasscsample/app/assets/stylesheets/main.scss:1
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

You can give it a try in this sample application I created to reproduce the problem:

https://github.com/rosenfeld/sassc-precompile-bug

CSS selectors compiled wrong

When updating to the newest Rails version 4.2.5.1, sassc (1.8.4) and sassc-rails (1.2.0) were also updated. Suddenly Bootstrap is compiled with strange errors. For example input-groups:

.input-group .form-control:not(:first-child, :first-child, :first-child):not(:last-child, :last-child, :last-child)

The :first-child and :last-child statements should obviously only appear once and let the statement break in Chrome and Firefox. Switching back to sass-rails solves the error.

Any idea what change caused this?

Sprockets::SassFunctions end up returning Ruby Sass to SassC (bad)

If a custom Sass function that wraps an existing Sprockets::SassFunctions method calls super, it ends up returning a Sass type, which has no #to_native method defined on it, then makes SassC blow up.

This is kinda awkward to test since the code that depends on the #to_native is in sassc-ruby/functions_helper.rb but the code that introduces Sass functions that return a Ruby Sass type is in sassc-rails/rails/functions.rb

I’m going to test this in sassc-rails for now and prepare a PR, but I’m open to feedback.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.