sass-css-importer-load-paths 1.0.0.beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/CHANGELOG.markdown +3 -0
- data/Gemfile +5 -0
- data/README.markdown +45 -0
- data/Rakefile +11 -0
- data/lib/sass-css-importer.rb +1 -0
- data/lib/sass/css_importer.rb +7 -0
- data/lib/sass/css_importer/importer.rb +56 -0
- data/lib/sass/css_importer/monkey_patches.rb +20 -0
- data/lib/sass/css_importer/version.rb +5 -0
- data/sass-css-importer-load-paths.gemspec +21 -0
- data/test/fixtures/imports_css.scss +2 -0
- data/test/fixtures/some_css_files/_partial.css +3 -0
- data/test/fixtures/some_css_files/foo.css +3 -0
- data/test/sass_css_importer_test.rb +26 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 54f40d7f0754c5abbecf88ca374ba33c31f88066
|
4
|
+
data.tar.gz: 274e9ca5cf250e8c150ae79c0c91b85c3a48f20b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b858aa2ca6961b10dbe7fb0d88d18dcfadcf553dafcf4b47288b346ac949482ce6490bf99f6dc5fe7607eca1ec2c62e2915a234a3e61dd7f7844038ac09a1d35
|
7
|
+
data.tar.gz: 503b91af3977c7d8c99947eda49af8f6c394c709b02e8bdc74bd883730486e5af3e2c29d6c753e2a67853e9d36c70093e7e687f16b0a0165c4dd4084292bd73d
|
data/.gitignore
ADDED
data/CHANGELOG.markdown
ADDED
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# Sass CSS Importer Plugin
|
2
|
+
|
3
|
+
The Sass CSS Importer allows you to import a CSS file into Sass.
|
4
|
+
|
5
|
+
## Stylesheet Syntax
|
6
|
+
|
7
|
+
The `.css` extension triggers special behavior in Sass so you cannot
|
8
|
+
import a file with a CSS extension. To work around this, you must use a
|
9
|
+
special prefix on the import string and omit the extension.
|
10
|
+
|
11
|
+
@import "CSS:some_folder/some_css_file"
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
$ gem install --pre sass-css-importer
|
16
|
+
|
17
|
+
## Use with the Sass command line
|
18
|
+
|
19
|
+
$ sass -r sass-css-importer --watch sass_dir:css_dir
|
20
|
+
|
21
|
+
Note: several -r options can be given to the sass command line if you
|
22
|
+
need to require several libraries.
|
23
|
+
|
24
|
+
## Use with compass
|
25
|
+
|
26
|
+
Add the following to your compass configuration:
|
27
|
+
|
28
|
+
require 'sass-css-importer'
|
29
|
+
|
30
|
+
## More complex scenarios
|
31
|
+
|
32
|
+
This plugin assumes you want to import CSS files relative to a Sass
|
33
|
+
file. More complex scenarios are acheivable by adding a CSS Importer to
|
34
|
+
the Sass load path option explicitly.
|
35
|
+
|
36
|
+
For example, in compass you can do the following in your `config.rb`
|
37
|
+
file:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
require 'sass-css-importer'
|
41
|
+
add_import_path Sass::CssImporter::Importer.new("/path/to/the/css/files")
|
42
|
+
```
|
43
|
+
|
44
|
+
|
45
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'sass/css_importer'
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
class Sass::CssImporter::Importer < Sass::Importers::Filesystem
|
5
|
+
|
6
|
+
def initialize(root)
|
7
|
+
super(root)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Enable watching of css files in Sass 3.3+
|
11
|
+
def watched_directories
|
12
|
+
[root]
|
13
|
+
end
|
14
|
+
|
15
|
+
# Enable watching of css files in Sass 3.3+
|
16
|
+
def watched_file?(file)
|
17
|
+
file.start_with?(root+File::SEPARATOR) && File.extname(file) == ".css"
|
18
|
+
end
|
19
|
+
|
20
|
+
def extensions
|
21
|
+
{'css' => :scss}
|
22
|
+
end
|
23
|
+
|
24
|
+
def find_relative(name, base, options)
|
25
|
+
super(strip_prefix(name), base, options)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def find(name, options)
|
30
|
+
super(strip_prefix(name), options)
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def mtime(name, options)
|
35
|
+
super(strip_prefix(name), options)
|
36
|
+
end
|
37
|
+
|
38
|
+
def key(name, options)
|
39
|
+
super(strip_prefix(name), options)
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_s
|
43
|
+
"Sass::CssImporter::Importer(#{root})"
|
44
|
+
end
|
45
|
+
|
46
|
+
def eql?(other)
|
47
|
+
other.class == self.class && other.root == self.root
|
48
|
+
end
|
49
|
+
|
50
|
+
protected
|
51
|
+
|
52
|
+
def strip_prefix(name)
|
53
|
+
name.start_with?("CSS:") ? name[4..-1] : name
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'sass'
|
2
|
+
|
3
|
+
class Sass::Engine
|
4
|
+
alias initialize_without_css_importer initialize
|
5
|
+
|
6
|
+
def initialize(template, options={})
|
7
|
+
initialize_without_css_importer(template, options)
|
8
|
+
|
9
|
+
css_importer = self.options[:load_paths].find {|lp| lp.is_a?(Sass::CssImporter::Importer) }
|
10
|
+
|
11
|
+
unless css_importer
|
12
|
+
css_importers =
|
13
|
+
self.options[:load_paths].map do |importer|
|
14
|
+
Sass::CssImporter::Importer.new(importer.root)
|
15
|
+
end
|
16
|
+
self.options[:load_paths].concat css_importers
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "sass/css_importer/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "sass-css-importer-load-paths"
|
7
|
+
s.version = Sass::CssImporter::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Joe Fiorini"]
|
10
|
+
s.email = ["joe@joefiorini.com"]
|
11
|
+
s.homepage = "http://www.joefiorini.com"
|
12
|
+
s.summary = %q{Allows importing of css files using Sass @import directives.}
|
13
|
+
s.description = %q{Allows importing of css files using Sass @import directives. Fixes original Chris Eppstein version with support for additional load paths.}
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- test/*`.split("\n")
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_runtime_dependency 'sass', '>= 3.1'
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'sass'
|
3
|
+
require 'sass/css_importer'
|
4
|
+
|
5
|
+
class SassCssImporterTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_can_import_css_files_files
|
8
|
+
css = render_file("imports_css.scss")
|
9
|
+
assert_match(/\.css-partial/, css)
|
10
|
+
assert_match(/\.css-file/, css)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
def render_file(filename)
|
15
|
+
fixtures_dir = File.expand_path("fixtures", File.dirname(__FILE__))
|
16
|
+
full_filename = File.expand_path(filename, fixtures_dir)
|
17
|
+
syntax = File.extname(full_filename)[1..-1].to_sym
|
18
|
+
engine = Sass::Engine.new(File.read(full_filename),
|
19
|
+
:syntax => syntax,
|
20
|
+
:filename => full_filename,
|
21
|
+
:cache => false,
|
22
|
+
:read_cache => false,
|
23
|
+
:load_paths => [fixtures_dir])
|
24
|
+
engine.render
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sass-css-importer-load-paths
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.beta.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joe Fiorini
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-10-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sass
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.1'
|
27
|
+
description: Allows importing of css files using Sass @import directives. Fixes original
|
28
|
+
Chris Eppstein version with support for additional load paths.
|
29
|
+
email:
|
30
|
+
- joe@joefiorini.com
|
31
|
+
executables: []
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- .gitignore
|
36
|
+
- CHANGELOG.markdown
|
37
|
+
- Gemfile
|
38
|
+
- README.markdown
|
39
|
+
- Rakefile
|
40
|
+
- lib/sass-css-importer.rb
|
41
|
+
- lib/sass/css_importer.rb
|
42
|
+
- lib/sass/css_importer/importer.rb
|
43
|
+
- lib/sass/css_importer/monkey_patches.rb
|
44
|
+
- lib/sass/css_importer/version.rb
|
45
|
+
- sass-css-importer-load-paths.gemspec
|
46
|
+
- test/fixtures/imports_css.scss
|
47
|
+
- test/fixtures/some_css_files/_partial.css
|
48
|
+
- test/fixtures/some_css_files/foo.css
|
49
|
+
- test/sass_css_importer_test.rb
|
50
|
+
homepage: http://www.joefiorini.com
|
51
|
+
licenses: []
|
52
|
+
metadata: {}
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>'
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.3.1
|
67
|
+
requirements: []
|
68
|
+
rubyforge_project:
|
69
|
+
rubygems_version: 2.0.2
|
70
|
+
signing_key:
|
71
|
+
specification_version: 4
|
72
|
+
summary: Allows importing of css files using Sass @import directives.
|
73
|
+
test_files:
|
74
|
+
- test/fixtures/imports_css.scss
|
75
|
+
- test/fixtures/some_css_files/_partial.css
|
76
|
+
- test/fixtures/some_css_files/foo.css
|
77
|
+
- test/sass_css_importer_test.rb
|