xass 0.1.0 → 0.1.1
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 +4 -4
- data/.gitignore +2 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +39 -0
- data/README.md +131 -193
- data/lib/initialize.rb +8 -0
- data/lib/xass.rb +67 -0
- data/spec/secrets.yml +4 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/test_spec.rb +5 -0
- data/template/secrets.yml +2 -0
- data/xass.gemspec +15 -0
- metadata +53 -294
- data/.yardopts +0 -11
- data/CONTRIBUTING +0 -3
- data/MIT-LICENSE +0 -20
- data/Rakefile +0 -349
- data/VERSION +0 -1
- data/VERSION_NAME +0 -1
- data/bin/push +0 -13
- data/bin/sass +0 -13
- data/bin/sass-convert +0 -12
- data/bin/scss +0 -13
- data/extra/update_watch.rb +0 -13
- data/init.rb +0 -18
- data/lib/sass/cache_stores/base.rb +0 -88
- data/lib/sass/cache_stores/chain.rb +0 -33
- data/lib/sass/cache_stores/filesystem.rb +0 -64
- data/lib/sass/cache_stores/memory.rb +0 -47
- data/lib/sass/cache_stores/null.rb +0 -25
- data/lib/sass/cache_stores.rb +0 -15
- data/lib/sass/callbacks.rb +0 -66
- data/lib/sass/css.rb +0 -409
- data/lib/sass/engine.rb +0 -930
- data/lib/sass/environment.rb +0 -101
- data/lib/sass/error.rb +0 -201
- data/lib/sass/exec.rb +0 -707
- data/lib/sass/importers/base.rb +0 -139
- data/lib/sass/importers/filesystem.rb +0 -186
- data/lib/sass/importers.rb +0 -22
- data/lib/sass/logger/base.rb +0 -32
- data/lib/sass/logger/log_level.rb +0 -49
- data/lib/sass/logger.rb +0 -15
- data/lib/sass/media.rb +0 -213
- data/lib/sass/plugin/compiler.rb +0 -406
- data/lib/sass/plugin/configuration.rb +0 -123
- data/lib/sass/plugin/generic.rb +0 -15
- data/lib/sass/plugin/merb.rb +0 -48
- data/lib/sass/plugin/rack.rb +0 -60
- data/lib/sass/plugin/rails.rb +0 -47
- data/lib/sass/plugin/staleness_checker.rb +0 -199
- data/lib/sass/plugin.rb +0 -133
- data/lib/sass/railtie.rb +0 -10
- data/lib/sass/repl.rb +0 -57
- data/lib/sass/root.rb +0 -7
- data/lib/sass/script/arg_list.rb +0 -52
- data/lib/sass/script/bool.rb +0 -18
- data/lib/sass/script/color.rb +0 -606
- data/lib/sass/script/css_lexer.rb +0 -29
- data/lib/sass/script/css_parser.rb +0 -31
- data/lib/sass/script/funcall.rb +0 -245
- data/lib/sass/script/functions.rb +0 -1543
- data/lib/sass/script/interpolation.rb +0 -79
- data/lib/sass/script/lexer.rb +0 -345
- data/lib/sass/script/list.rb +0 -85
- data/lib/sass/script/literal.rb +0 -221
- data/lib/sass/script/node.rb +0 -99
- data/lib/sass/script/null.rb +0 -37
- data/lib/sass/script/number.rb +0 -453
- data/lib/sass/script/operation.rb +0 -110
- data/lib/sass/script/parser.rb +0 -502
- data/lib/sass/script/string.rb +0 -51
- data/lib/sass/script/string_interpolation.rb +0 -103
- data/lib/sass/script/unary_operation.rb +0 -69
- data/lib/sass/script/variable.rb +0 -58
- data/lib/sass/script.rb +0 -39
- data/lib/sass/scss/css_parser.rb +0 -36
- data/lib/sass/scss/parser.rb +0 -1180
- data/lib/sass/scss/rx.rb +0 -133
- data/lib/sass/scss/script_lexer.rb +0 -15
- data/lib/sass/scss/script_parser.rb +0 -25
- data/lib/sass/scss/static_parser.rb +0 -54
- data/lib/sass/scss.rb +0 -16
- data/lib/sass/selector/abstract_sequence.rb +0 -94
- data/lib/sass/selector/comma_sequence.rb +0 -92
- data/lib/sass/selector/sequence.rb +0 -507
- data/lib/sass/selector/simple.rb +0 -119
- data/lib/sass/selector/simple_sequence.rb +0 -215
- data/lib/sass/selector.rb +0 -452
- data/lib/sass/shared.rb +0 -76
- data/lib/sass/supports.rb +0 -229
- data/lib/sass/tree/charset_node.rb +0 -22
- data/lib/sass/tree/comment_node.rb +0 -82
- data/lib/sass/tree/content_node.rb +0 -9
- data/lib/sass/tree/css_import_node.rb +0 -60
- data/lib/sass/tree/debug_node.rb +0 -18
- data/lib/sass/tree/directive_node.rb +0 -42
- data/lib/sass/tree/each_node.rb +0 -24
- data/lib/sass/tree/extend_node.rb +0 -36
- data/lib/sass/tree/for_node.rb +0 -36
- data/lib/sass/tree/function_node.rb +0 -34
- data/lib/sass/tree/if_node.rb +0 -52
- data/lib/sass/tree/import_node.rb +0 -75
- data/lib/sass/tree/media_node.rb +0 -58
- data/lib/sass/tree/mixin_def_node.rb +0 -38
- data/lib/sass/tree/mixin_node.rb +0 -39
- data/lib/sass/tree/node.rb +0 -196
- data/lib/sass/tree/prop_node.rb +0 -152
- data/lib/sass/tree/return_node.rb +0 -18
- data/lib/sass/tree/root_node.rb +0 -78
- data/lib/sass/tree/rule_node.rb +0 -132
- data/lib/sass/tree/supports_node.rb +0 -51
- data/lib/sass/tree/trace_node.rb +0 -32
- data/lib/sass/tree/variable_node.rb +0 -30
- data/lib/sass/tree/visitors/base.rb +0 -75
- data/lib/sass/tree/visitors/check_nesting.rb +0 -147
- data/lib/sass/tree/visitors/convert.rb +0 -316
- data/lib/sass/tree/visitors/cssize.rb +0 -241
- data/lib/sass/tree/visitors/deep_copy.rb +0 -102
- data/lib/sass/tree/visitors/extend.rb +0 -68
- data/lib/sass/tree/visitors/perform.rb +0 -446
- data/lib/sass/tree/visitors/set_options.rb +0 -125
- data/lib/sass/tree/visitors/to_css.rb +0 -228
- data/lib/sass/tree/warn_node.rb +0 -18
- data/lib/sass/tree/while_node.rb +0 -18
- data/lib/sass/util/multibyte_string_scanner.rb +0 -155
- data/lib/sass/util/subset_map.rb +0 -109
- data/lib/sass/util/test.rb +0 -10
- data/lib/sass/util.rb +0 -948
- data/lib/sass/version.rb +0 -126
- data/lib/sass.rb +0 -95
- data/rails/init.rb +0 -1
- data/test/Gemfile +0 -3
- data/test/Gemfile.lock +0 -10
- data/test/sass/cache_test.rb +0 -89
- data/test/sass/callbacks_test.rb +0 -61
- data/test/sass/conversion_test.rb +0 -1760
- data/test/sass/css2sass_test.rb +0 -458
- data/test/sass/data/hsl-rgb.txt +0 -319
- data/test/sass/engine_test.rb +0 -3244
- data/test/sass/exec_test.rb +0 -86
- data/test/sass/extend_test.rb +0 -1482
- data/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
- data/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
- data/test/sass/functions_test.rb +0 -1139
- data/test/sass/importer_test.rb +0 -192
- data/test/sass/logger_test.rb +0 -58
- data/test/sass/mock_importer.rb +0 -49
- data/test/sass/more_results/more1.css +0 -9
- data/test/sass/more_results/more1_with_line_comments.css +0 -26
- data/test/sass/more_results/more_import.css +0 -29
- data/test/sass/more_templates/_more_partial.sass +0 -2
- data/test/sass/more_templates/more1.sass +0 -23
- data/test/sass/more_templates/more_import.sass +0 -11
- data/test/sass/plugin_test.rb +0 -564
- data/test/sass/results/alt.css +0 -4
- data/test/sass/results/basic.css +0 -9
- data/test/sass/results/cached_import_option.css +0 -3
- data/test/sass/results/compact.css +0 -5
- data/test/sass/results/complex.css +0 -86
- data/test/sass/results/compressed.css +0 -1
- data/test/sass/results/expanded.css +0 -19
- data/test/sass/results/filename_fn.css +0 -3
- data/test/sass/results/if.css +0 -3
- data/test/sass/results/import.css +0 -31
- data/test/sass/results/import_charset.css +0 -5
- data/test/sass/results/import_charset_1_8.css +0 -5
- data/test/sass/results/import_charset_ibm866.css +0 -5
- data/test/sass/results/import_content.css +0 -1
- data/test/sass/results/line_numbers.css +0 -49
- data/test/sass/results/mixins.css +0 -95
- data/test/sass/results/multiline.css +0 -24
- data/test/sass/results/nested.css +0 -22
- data/test/sass/results/options.css +0 -1
- data/test/sass/results/parent_ref.css +0 -13
- data/test/sass/results/script.css +0 -16
- data/test/sass/results/scss_import.css +0 -31
- data/test/sass/results/scss_importee.css +0 -2
- data/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
- data/test/sass/results/subdir/subdir.css +0 -3
- data/test/sass/results/units.css +0 -11
- data/test/sass/results/warn_imported.css +0 -0
- data/test/sass/script_conversion_test.rb +0 -299
- data/test/sass/script_test.rb +0 -622
- data/test/sass/scss/css_test.rb +0 -1100
- data/test/sass/scss/rx_test.rb +0 -156
- data/test/sass/scss/scss_test.rb +0 -2106
- data/test/sass/scss/test_helper.rb +0 -37
- data/test/sass/templates/_cached_import_option_partial.scss +0 -1
- data/test/sass/templates/_double_import_loop2.sass +0 -1
- data/test/sass/templates/_filename_fn_import.scss +0 -11
- data/test/sass/templates/_imported_charset_ibm866.sass +0 -4
- data/test/sass/templates/_imported_charset_utf8.sass +0 -4
- data/test/sass/templates/_imported_content.sass +0 -3
- data/test/sass/templates/_partial.sass +0 -2
- data/test/sass/templates/_same_name_different_partiality.scss +0 -1
- data/test/sass/templates/alt.sass +0 -16
- data/test/sass/templates/basic.sass +0 -23
- data/test/sass/templates/bork1.sass +0 -2
- data/test/sass/templates/bork2.sass +0 -2
- data/test/sass/templates/bork3.sass +0 -2
- data/test/sass/templates/bork4.sass +0 -2
- data/test/sass/templates/bork5.sass +0 -3
- data/test/sass/templates/cached_import_option.scss +0 -3
- data/test/sass/templates/compact.sass +0 -17
- data/test/sass/templates/complex.sass +0 -305
- data/test/sass/templates/compressed.sass +0 -15
- data/test/sass/templates/double_import_loop1.sass +0 -1
- data/test/sass/templates/expanded.sass +0 -17
- data/test/sass/templates/filename_fn.scss +0 -18
- data/test/sass/templates/if.sass +0 -11
- data/test/sass/templates/import.sass +0 -12
- data/test/sass/templates/import_charset.sass +0 -9
- data/test/sass/templates/import_charset_1_8.sass +0 -6
- data/test/sass/templates/import_charset_ibm866.sass +0 -11
- data/test/sass/templates/import_content.sass +0 -4
- data/test/sass/templates/importee.less +0 -2
- data/test/sass/templates/importee.sass +0 -19
- data/test/sass/templates/line_numbers.sass +0 -13
- data/test/sass/templates/mixin_bork.sass +0 -5
- data/test/sass/templates/mixins.sass +0 -76
- data/test/sass/templates/multiline.sass +0 -20
- data/test/sass/templates/nested.sass +0 -25
- data/test/sass/templates/nested_bork1.sass +0 -2
- data/test/sass/templates/nested_bork2.sass +0 -2
- data/test/sass/templates/nested_bork3.sass +0 -2
- data/test/sass/templates/nested_bork4.sass +0 -2
- data/test/sass/templates/nested_import.sass +0 -2
- data/test/sass/templates/nested_mixin_bork.sass +0 -6
- data/test/sass/templates/options.sass +0 -2
- data/test/sass/templates/parent_ref.sass +0 -25
- data/test/sass/templates/same_name_different_ext.sass +0 -2
- data/test/sass/templates/same_name_different_ext.scss +0 -1
- data/test/sass/templates/same_name_different_partiality.scss +0 -1
- data/test/sass/templates/script.sass +0 -101
- data/test/sass/templates/scss_import.scss +0 -11
- data/test/sass/templates/scss_importee.scss +0 -1
- data/test/sass/templates/single_import_loop.sass +0 -1
- data/test/sass/templates/subdir/import_up1.scss +0 -1
- data/test/sass/templates/subdir/import_up2.scss +0 -1
- data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
- data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
- data/test/sass/templates/subdir/subdir.sass +0 -6
- data/test/sass/templates/units.sass +0 -11
- data/test/sass/templates/warn.sass +0 -3
- data/test/sass/templates/warn_imported.sass +0 -4
- data/test/sass/test_helper.rb +0 -8
- data/test/sass/util/multibyte_string_scanner_test.rb +0 -147
- data/test/sass/util/subset_map_test.rb +0 -91
- data/test/sass/util_test.rb +0 -382
- data/test/test_helper.rb +0 -80
- /data/{test/sass/results/warn.css → template/files/.gitkeep} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b3674f0947497b99eaaebcb7ebc6f3899fe1c065
|
|
4
|
+
data.tar.gz: 90e1efc6b22306b3d7fc3866968b0749a6b1be2b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1dfb3c9eece994fc669314087cf8977bdceebf877a9f62946a414f7a8b56fdbeccc21f7d64c5ead5aa1672d37dcfaac84e9fcb4c7cc213526cc94613b7ccd00b
|
|
7
|
+
data.tar.gz: cbd50cc643080c1c13a9e2e1ff0bf077c25315d453d74e1a27936a3045843fffda3688b5c795b895589385c4a4de315298105850add4957174073bd771798ec8
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
activesupport (4.1.5)
|
|
5
|
+
i18n (~> 0.6, >= 0.6.9)
|
|
6
|
+
json (~> 1.7, >= 1.7.7)
|
|
7
|
+
minitest (~> 5.1)
|
|
8
|
+
thread_safe (~> 0.1)
|
|
9
|
+
tzinfo (~> 1.1)
|
|
10
|
+
csspool (4.0.0)
|
|
11
|
+
diff-lcs (1.2.5)
|
|
12
|
+
i18n (0.6.11)
|
|
13
|
+
json (1.8.1)
|
|
14
|
+
minitest (5.4.0)
|
|
15
|
+
rspec (3.0.0)
|
|
16
|
+
rspec-core (~> 3.0.0)
|
|
17
|
+
rspec-expectations (~> 3.0.0)
|
|
18
|
+
rspec-mocks (~> 3.0.0)
|
|
19
|
+
rspec-core (3.0.4)
|
|
20
|
+
rspec-support (~> 3.0.0)
|
|
21
|
+
rspec-expectations (3.0.4)
|
|
22
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
23
|
+
rspec-support (~> 3.0.0)
|
|
24
|
+
rspec-mocks (3.0.4)
|
|
25
|
+
rspec-support (~> 3.0.0)
|
|
26
|
+
rspec-support (3.0.4)
|
|
27
|
+
sass (3.4.0)
|
|
28
|
+
thread_safe (0.3.4)
|
|
29
|
+
tzinfo (1.2.2)
|
|
30
|
+
thread_safe (~> 0.1)
|
|
31
|
+
|
|
32
|
+
PLATFORMS
|
|
33
|
+
ruby
|
|
34
|
+
|
|
35
|
+
DEPENDENCIES
|
|
36
|
+
activesupport
|
|
37
|
+
csspool
|
|
38
|
+
rspec
|
|
39
|
+
sass
|
data/README.md
CHANGED
|
@@ -1,201 +1,139 @@
|
|
|
1
|
-
|
|
1
|
+
##DESCRIPTION
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
adding nested rules, variables, mixins, selector inheritance, and more.
|
|
5
|
-
It's translated to well-formatted, standard CSS
|
|
6
|
-
using the command line tool or a web-framework plugin.
|
|
7
|
-
|
|
8
|
-
Sass has two syntaxes. The new main syntax (as of Sass 3)
|
|
9
|
-
is known as "SCSS" (for "Sassy CSS"),
|
|
10
|
-
and is a superset of CSS3's syntax.
|
|
11
|
-
This means that every valid CSS3 stylesheet is valid SCSS as well.
|
|
12
|
-
SCSS files use the extension `.scss`.
|
|
13
|
-
|
|
14
|
-
The second, older syntax is known as the indented syntax (or just "Sass").
|
|
15
|
-
Inspired by Haml's terseness, it's intended for people
|
|
16
|
-
who prefer conciseness over similarity to CSS.
|
|
17
|
-
Instead of brackets and semicolons,
|
|
18
|
-
it uses the indentation of lines to specify blocks.
|
|
19
|
-
Although no longer the primary syntax,
|
|
20
|
-
the indented syntax will continue to be supported.
|
|
21
|
-
Files in the indented syntax use the extension `.sass`.
|
|
3
|
+
Xass extend Rails with namespacing Sass classes
|
|
22
4
|
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
Sass can be used from the command line
|
|
26
|
-
or as part of a web framework.
|
|
27
|
-
The first step is to install the gem:
|
|
28
|
-
|
|
29
|
-
gem install sass
|
|
5
|
+
##INSTALLATION
|
|
30
6
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
sass style.scss
|
|
34
|
-
|
|
35
|
-
to compile it back to CSS.
|
|
36
|
-
For more information on these commands, check out
|
|
37
|
-
|
|
38
|
-
sass --help
|
|
39
|
-
|
|
40
|
-
To install Sass in Rails 2,
|
|
41
|
-
just add `config.gem "sass"` to `config/environment.rb`.
|
|
42
|
-
In Rails 3, add `gem "sass"` to your Gemfile instead.
|
|
43
|
-
`.sass` or `.scss` files should be placed in `public/stylesheets/sass`,
|
|
44
|
-
where they'll be automatically compiled
|
|
45
|
-
to corresponding CSS files in `public/stylesheets` when needed
|
|
46
|
-
(the Sass template directory is customizable...
|
|
47
|
-
see [the Sass reference](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#template_location-option) for details).
|
|
48
|
-
|
|
49
|
-
Sass can also be used with any Rack-enabled web framework.
|
|
50
|
-
To do so, just add
|
|
51
|
-
|
|
52
|
-
require 'sass/plugin/rack'
|
|
53
|
-
use Sass::Plugin::Rack
|
|
54
|
-
|
|
55
|
-
to `config.ru`.
|
|
56
|
-
Then any Sass files in `public/stylesheets/sass`
|
|
57
|
-
will be compiled into CSS files in `public/stylesheets` on every request.
|
|
58
|
-
|
|
59
|
-
To use Sass programmatically,
|
|
60
|
-
check out the [YARD documentation](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#using_sass).
|
|
61
|
-
|
|
62
|
-
## Formatting
|
|
7
|
+
We suppose you use Rails with sass-rails.
|
|
63
8
|
|
|
64
|
-
|
|
65
|
-
that adds power and elegance to the basic language.
|
|
66
|
-
It allows you to use [variables][vars], [nested rules][nested],
|
|
67
|
-
[mixins][mixins], [inline imports][imports],
|
|
68
|
-
and more, all with a fully CSS-compatible syntax.
|
|
69
|
-
Sass helps keep large stylesheets well-organized,
|
|
70
|
-
and get small stylesheets up and running quickly,
|
|
71
|
-
particularly with the help of
|
|
72
|
-
[the Compass style library](http://compass-style.org).
|
|
9
|
+
###Gemfile
|
|
73
10
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
[imports]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import
|
|
11
|
+
```rb
|
|
12
|
+
gem 'xass'
|
|
13
|
+
```
|
|
78
14
|
|
|
79
|
-
|
|
80
|
-
The one presented here, known as "SCSS" (for "Sassy CSS"),
|
|
81
|
-
is fully CSS-compatible.
|
|
82
|
-
The other (older) syntax, known as the indented syntax or just "Sass",
|
|
83
|
-
is whitespace-sensitive and indentation-based.
|
|
84
|
-
For more information, see the [reference documentation][syntax].
|
|
85
|
-
|
|
86
|
-
[syntax]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax
|
|
87
|
-
|
|
88
|
-
To run the following examples and see the CSS they produce,
|
|
89
|
-
put them in a file called `test.scss` and run `sass test.scss`.
|
|
90
|
-
|
|
91
|
-
### Nesting
|
|
92
|
-
|
|
93
|
-
Sass avoids repetition by nesting selectors within one another.
|
|
94
|
-
The same thing works for properties.
|
|
95
|
-
|
|
96
|
-
table.hl {
|
|
97
|
-
margin: 2em 0;
|
|
98
|
-
td.ln { text-align: right; }
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
li {
|
|
102
|
-
font: {
|
|
103
|
-
family: serif;
|
|
104
|
-
weight: bold;
|
|
105
|
-
size: 1.2em;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
### Variables
|
|
110
|
-
|
|
111
|
-
Use the same color all over the place?
|
|
112
|
-
Need to do some math with height and width and text size?
|
|
113
|
-
Sass supports variables, math operations, and many useful functions.
|
|
114
|
-
|
|
115
|
-
$blue: #3bbfce;
|
|
116
|
-
$margin: 16px;
|
|
117
|
-
|
|
118
|
-
.content_navigation {
|
|
119
|
-
border-color: $blue;
|
|
120
|
-
color: darken($blue, 10%);
|
|
121
|
-
}
|
|
15
|
+
##USAGE
|
|
122
16
|
|
|
123
|
-
|
|
124
|
-
padding: $margin / 2;
|
|
125
|
-
margin: $margin / 2;
|
|
126
|
-
border-color: $blue;
|
|
127
|
-
}
|
|
17
|
+
###Example 1
|
|
128
18
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
19
|
+
```sass
|
|
20
|
+
// /app/assets/stylesheets/application.sass
|
|
21
|
+
|
|
22
|
+
@import ./main/**/*
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```sass
|
|
26
|
+
// /app/assets/stylesheets/main/hoge/piyo/fuga.sass
|
|
27
|
+
|
|
28
|
+
.hogehoge
|
|
29
|
+
width: 100px
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This emits the following css.
|
|
33
|
+
|
|
34
|
+
```css
|
|
35
|
+
.hoge__piyo__fuga___hogehoge {
|
|
36
|
+
width: 100px;
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
And,
|
|
41
|
+
|
|
42
|
+
```haml
|
|
43
|
+
-# /app/views/someview.html.haml
|
|
44
|
+
|
|
45
|
+
= namespace :hoge, :piyo, :fuga do
|
|
46
|
+
%div{ class: ns(:hogehoge) }
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then, you can apply `width: 100px` to the `div` element.
|
|
50
|
+
|
|
51
|
+
###Example 2
|
|
52
|
+
|
|
53
|
+
You can use `root` class for convenience.
|
|
54
|
+
|
|
55
|
+
```sass
|
|
56
|
+
// /app/assets/stylesheets/application.sass
|
|
57
|
+
|
|
58
|
+
@import ./main/**/*
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
```sass
|
|
62
|
+
// /app/assets/stylesheets/main/hoge/piyo/fuga.sass
|
|
63
|
+
|
|
64
|
+
.root
|
|
65
|
+
width: 10px
|
|
66
|
+
|
|
67
|
+
.hogehoge
|
|
68
|
+
width: 100px
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This emits the following css.
|
|
72
|
+
|
|
73
|
+
```css
|
|
74
|
+
.hoge__piyo__fuga {
|
|
75
|
+
width: 10px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.hoge__piyo__fuga___hogehoge {
|
|
79
|
+
width: 100px;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
And,
|
|
84
|
+
|
|
85
|
+
```haml
|
|
86
|
+
-# /app/views/someview.html.haml
|
|
87
|
+
|
|
88
|
+
= namespace :hoge, :piyo, :fuga do
|
|
89
|
+
%div{ class: ns_root }
|
|
90
|
+
%div{ class: ns(:hogehoge) }
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
You can also write as follows abbreviately.
|
|
94
|
+
|
|
95
|
+
```haml
|
|
96
|
+
-# /app/views/someview.html.haml
|
|
97
|
+
|
|
98
|
+
= namespace_with_root :hoge, :piyo, :fuga do
|
|
99
|
+
%div{ class: ns(:hogehoge) }
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
###Example 3
|
|
103
|
+
|
|
104
|
+
You can use `_` prefix for unnamespaced .
|
|
105
|
+
|
|
106
|
+
```sass
|
|
107
|
+
// /app/assets/stylesheets/application.sass
|
|
108
|
+
|
|
109
|
+
@import ./main/**/*
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```sass
|
|
113
|
+
// /app/assets/stylesheets/main/hoge/piyo/fuga.sass
|
|
114
|
+
|
|
115
|
+
.root
|
|
116
|
+
width: 10px
|
|
117
|
+
|
|
118
|
+
.hogehoge
|
|
119
|
+
width: 100px
|
|
120
|
+
|
|
121
|
+
._current
|
|
122
|
+
background-color: black
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This emits the following css.
|
|
126
|
+
|
|
127
|
+
```css
|
|
128
|
+
.hoge__piyo__fuga {
|
|
129
|
+
width: 10px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.hoge__piyo__fuga___hogehoge {
|
|
133
|
+
width: 100px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.current {
|
|
137
|
+
background-color: black;
|
|
138
|
+
}
|
|
139
|
+
```
|
data/lib/initialize.rb
ADDED
data/lib/xass.rb
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require_relative 'initialize'
|
|
2
|
+
|
|
3
|
+
module Sass
|
|
4
|
+
module Tree
|
|
5
|
+
class RootNode
|
|
6
|
+
alias :old_render :render
|
|
7
|
+
|
|
8
|
+
def render
|
|
9
|
+
old_render.split('/*').map { |x|
|
|
10
|
+
next x unless x.match(/^ line [0-9]+, /)
|
|
11
|
+
a, b = x.split("\n", 2)
|
|
12
|
+
m = a.match(/\/app\/assets\/stylesheets\/([^. ]+)\./)
|
|
13
|
+
next "#{a}\n#{b}" unless m
|
|
14
|
+
selector = class_replaced_selector(b.split("\n")[0].strip[0...-1].strip, class_prefix(m[1]))
|
|
15
|
+
"#{a}\n#{selector} {\n#{b.split("\n", 2)[1]}"
|
|
16
|
+
}.join('/*')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def class_replaced_selector(selector, class_prefix)
|
|
22
|
+
doc = CSSPool.CSS("#{selector} {}")
|
|
23
|
+
replace_class(doc, class_prefix)
|
|
24
|
+
doc_to_selector(doc)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def class_prefix(name)
|
|
28
|
+
names = name.split('/')
|
|
29
|
+
names = names[1..(names.index { |x| x.start_with?('!') } || -1)]
|
|
30
|
+
names.join('__')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def replace_class(doc, class_prefix)
|
|
34
|
+
doc.rule_sets[0].selectors.map do |selector|
|
|
35
|
+
selector.simple_selectors.each do |simple_selector|
|
|
36
|
+
simple_selector.additional_selectors.each do |additional_selector|
|
|
37
|
+
case additional_selector
|
|
38
|
+
when CSSPool::Selectors::Class
|
|
39
|
+
additional_selector.name = extended_selector(class_prefix, additional_selector.name)
|
|
40
|
+
when CSSPool::Selectors::PseudoClass
|
|
41
|
+
next unless additional_selector.extra
|
|
42
|
+
extra = class_replaced_selector(additional_selector.extra, class_prefix) rescue nil
|
|
43
|
+
additional_selector.extra = extra if extra
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def doc_to_selector(doc)
|
|
51
|
+
doc.to_css.split("\n")[0][0...-1].strip.gsub(/\\[0-9]{6}/) do |c|
|
|
52
|
+
[c[1..-1].tr('0', '').to_i(16)].pack('U')
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def extended_selector(class_prefix, klass)
|
|
57
|
+
if klass == 'root'
|
|
58
|
+
class_prefix
|
|
59
|
+
elsif klass.start_with?('_')
|
|
60
|
+
klass[1..-1]
|
|
61
|
+
else
|
|
62
|
+
"#{class_prefix}___#{klass}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
data/spec/secrets.yml
ADDED
data/spec/spec_helper.rb
ADDED
data/spec/test_spec.rb
ADDED
data/xass.gemspec
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Gem::Specification.new do |s|
|
|
2
|
+
s.name = 'xass'
|
|
3
|
+
s.version = '0.1.1'
|
|
4
|
+
s.authors = ['Tetsuri Moriya']
|
|
5
|
+
s.email = ['tetsuri.moriya@gmail.com']
|
|
6
|
+
s.summary = 'Sass namespace extension'
|
|
7
|
+
s.description = 'Namespace in sass'
|
|
8
|
+
s.homepage = 'https://github.com/pandora2000/xass'
|
|
9
|
+
s.license = 'MIT'
|
|
10
|
+
s.files = `git ls-files`.split("\n")
|
|
11
|
+
s.add_development_dependency 'rspec', '~> 0'
|
|
12
|
+
s.add_runtime_dependency 'activesupport', '~> 4.0'
|
|
13
|
+
s.add_runtime_dependency 'sass', '~> 0'
|
|
14
|
+
s.add_runtime_dependency 'csspool', '~> 0'
|
|
15
|
+
end
|