true 2.0.0.beta.1 → 2.0.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 +4 -4
- data/CHANGELOG.md +2 -3
- data/README.md +78 -46
- data/VERSION +1 -1
- data/lib/main.js +8 -1
- data/sass/true/_messages.scss +1 -1
- data/sass/true/_settings.scss +1 -1
- data/sass/true/_utilities.scss +0 -27
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c0548977f5e351aeab7f465291096de0ef682ad
|
4
|
+
data.tar.gz: 00540f1f8028c954a5bd0692af85f1131b277ea9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebd45186a8a05fa15002cecd3b98d034c7117cb48009dbf92ccd667ad03786d8557be6538eb8fcb475b17827a4eb5e3a1798b680ad6cbc453b07fb8639991a81
|
7
|
+
data.tar.gz: 55bc4bbfb19d2eaf0d4f34c140ac828ef8c87c3fc3680107a0005cc18594dba8f924dd51aa2d9a3db453d8e5ed8370dd6a7edbe7a03a2a2a2fdb64ea1f64393d
|
data/CHANGELOG.md
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
True Changelog
|
2
2
|
==============
|
3
3
|
|
4
|
-
2.0 (
|
5
|
-
|
4
|
+
2.0 (5/9/15)
|
5
|
+
------------
|
6
6
|
- Improve internal logic, and namespace private functions behind `_true-*`.
|
7
7
|
- Add `assert()`, `input`, and `expect` mixins for testing CSS output.
|
8
8
|
- Support for LibSass.
|
9
9
|
- Add Mocha JS integration.
|
10
10
|
— Create NPM package.
|
11
11
|
- Simplify output options down to single `$true-terminal-output` setting.
|
12
|
-
Defaults to `false` (required for libsass).
|
13
12
|
|
14
13
|
|
15
14
|
1.0.1 (10/18/14)
|
data/README.md
CHANGED
@@ -12,10 +12,6 @@ True
|
|
12
12
|
3. To test your Sass code; debug, perfect, etc. (often using *True*):
|
13
13
|
*True your sweet plugin before you deploy.*
|
14
14
|
|
15
|
-
At this point
|
16
|
-
True can only test values (e.g. function returns),
|
17
|
-
not property/value output (e.g. mixin output).
|
18
|
-
|
19
15
|
|
20
16
|
Install
|
21
17
|
-------
|
@@ -28,14 +24,84 @@ gem install true
|
|
28
24
|
|
29
25
|
# bower package
|
30
26
|
bower install true
|
27
|
+
|
28
|
+
# npm module
|
29
|
+
npm install sass-true
|
30
|
+
```
|
31
|
+
|
32
|
+
Usage
|
33
|
+
-----
|
34
|
+
|
35
|
+
### In Sass
|
36
|
+
|
37
|
+
```scss
|
38
|
+
@import "true";
|
39
|
+
|
40
|
+
@include test-module('Utilities') {
|
41
|
+
|
42
|
+
// Testing Functions
|
43
|
+
@include test('Map Add [function]') {
|
44
|
+
$base: (one: 1, two: 1, three: 1);
|
45
|
+
$add: (one: 1, two: 2, three: -1);
|
46
|
+
|
47
|
+
$test: map-add($base, $add);
|
48
|
+
$expect: (one: 2, two: 3, three: 0);
|
49
|
+
@include assert-equal($test, $expect,
|
50
|
+
'Returns the sum of two numeric maps');
|
51
|
+
}
|
52
|
+
|
53
|
+
// Testing Mixins
|
54
|
+
@include test('Font Size [mixin]') {
|
55
|
+
@include assert('Outputs a font size and line height based on keyword.') {
|
56
|
+
@include input {
|
57
|
+
@include font-size(large);
|
58
|
+
}
|
59
|
+
|
60
|
+
@include expect {
|
61
|
+
font-size: 2rem;
|
62
|
+
line-height: 3rem;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
// Optionally show summary report in CSS and/or the command line:
|
69
|
+
// - If you use Mocha, reporting to the command line is automatic.
|
70
|
+
// - if you use true-cli, report(terminal) is required for output.
|
71
|
+
@include report;
|
31
72
|
```
|
32
73
|
|
74
|
+
### With node-sass and Mocha (or other JS test runners)
|
75
|
+
|
76
|
+
1. Install `true` via npm (`npm install sass-true`).
|
77
|
+
|
78
|
+
2. Write some Sass tests in `test/test.scss` (see above).
|
79
|
+
|
80
|
+
3. Write a shim JS test file in `test/test_sass.js`:
|
33
81
|
|
34
|
-
|
35
|
-
|
82
|
+
```js
|
83
|
+
var path = require('path');
|
84
|
+
var true = require('sass-true');
|
36
85
|
|
37
|
-
|
38
|
-
|
86
|
+
var sassFile = path.join(__dirname, 'test.scss');
|
87
|
+
true.runSass({file: sassFile}, describe, it);
|
88
|
+
```
|
89
|
+
|
90
|
+
4. Run Mocha, and see your Sass tests reported as individual test results.
|
91
|
+
|
92
|
+
You can call `runSass` more than once, if you have multiple Sass test files you
|
93
|
+
want to run separately.
|
94
|
+
|
95
|
+
The first argument to `runSass` accepts the same options that node-sass'
|
96
|
+
`renderSync` function accepts. The only modification `runSass` makes is to add
|
97
|
+
True's sass path to the `includePaths` option, so `@import 'true';` works in
|
98
|
+
your Sass test file.
|
99
|
+
|
100
|
+
Any other JS test runner with equivalents to Mocha's `describe` and `it` should
|
101
|
+
be usable in the same way; just pass your test runner's `describe` and `it`
|
102
|
+
equivalents into `runSass`.
|
103
|
+
|
104
|
+
### With ruby-sass on the command line
|
39
105
|
|
40
106
|
```bash
|
41
107
|
true-cli [options] PATH
|
@@ -50,7 +116,7 @@ Config file (optional):
|
|
50
116
|
|
51
117
|
```yaml
|
52
118
|
options:
|
53
|
-
color: true
|
119
|
+
color: true # enables colored output
|
54
120
|
|
55
121
|
# require ruby sass extension libraries
|
56
122
|
require:
|
@@ -61,47 +127,13 @@ require:
|
|
61
127
|
default location: `test/true.yml`
|
62
128
|
|
63
129
|
|
64
|
-
Usage
|
65
|
-
-----
|
66
|
-
|
67
|
-
```scss
|
68
|
-
@import "true";
|
69
|
-
|
70
|
-
@include test-module('Utilities') {
|
71
|
-
|
72
|
-
@include test('Map Add [function]') {
|
73
|
-
$base: (one: 1, two: 1, three: 1);
|
74
|
-
$add: (one: 1, two: 2, three: -1);
|
75
|
-
|
76
|
-
$test: map-add($base, $add);
|
77
|
-
$expect: (one: 2, two: 3, three: 0);
|
78
|
-
@include assert-equal($test, $expect,
|
79
|
-
'Returns the sum of two numeric maps');
|
80
|
-
}
|
81
|
-
|
82
|
-
@include test('Is Equal [function]') {
|
83
|
-
$test: is-equal(1, 1rem);
|
84
|
-
@include assert-equal($test, false,
|
85
|
-
'Returns false for equal numbers with different units.');
|
86
|
-
|
87
|
-
$test: is-equal(1, 1);
|
88
|
-
@include assert-equal($test, true,
|
89
|
-
'Returns true for numbers that are truely equal.');
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
@include report;
|
94
|
-
```
|
95
|
-
|
96
130
|
Settings
|
97
131
|
--------
|
98
132
|
|
99
133
|
There is only one setting:
|
100
134
|
`$true-terminal-output`
|
101
|
-
toggles output to the terminal on
|
135
|
+
toggles output to the terminal on or off.
|
102
136
|
|
103
|
-
- `true` will
|
104
|
-
|
105
|
-
*Required for `true-cli`.*
|
137
|
+
- `true` will show detailed information on failing assertions.
|
138
|
+
This is the default, and best for using `true-cli`.
|
106
139
|
- `false` to turn off all terminal output.
|
107
|
-
*Required for Libsass.*
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.0
|
1
|
+
2.0.0
|
data/lib/main.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
var _ = require('underscore');
|
2
2
|
var parseCss = require('css').parse;
|
3
|
+
var path = require('path');
|
3
4
|
var sass = require('node-sass');
|
4
5
|
var CssSelectorParser = require('css-selector-parser').CssSelectorParser;
|
5
6
|
var selectorParser = new CssSelectorParser();
|
@@ -10,7 +11,13 @@ var selectorParser = new CssSelectorParser();
|
|
10
11
|
|
11
12
|
module.exports.runSass = function (options, describe, it) {
|
12
13
|
var assert = require('assert');
|
13
|
-
var
|
14
|
+
var sassPath = path.join(__dirname, '..', 'sass');
|
15
|
+
if (options.includePaths) {
|
16
|
+
options.includePaths.push(sassPath);
|
17
|
+
} else {
|
18
|
+
options.includePaths = [sassPath];
|
19
|
+
}
|
20
|
+
var css = sass.renderSync(options).css.toString();
|
14
21
|
var modules = parse(css);
|
15
22
|
|
16
23
|
_.each(modules, function (module) {
|
data/sass/true/_messages.scss
CHANGED
data/sass/true/_settings.scss
CHANGED
data/sass/true/_utilities.scss
CHANGED
@@ -48,30 +48,3 @@
|
|
48
48
|
@return $one == $two;
|
49
49
|
}
|
50
50
|
}
|
51
|
-
|
52
|
-
|
53
|
-
// Inspect
|
54
|
-
@function _true-inspect(
|
55
|
-
$value
|
56
|
-
) {
|
57
|
-
@if function-exists(inspect) {
|
58
|
-
@if type-of($value) == map {
|
59
|
-
@return '#{inspect($value)}';
|
60
|
-
} @else {
|
61
|
-
@return inspect($value);
|
62
|
-
}
|
63
|
-
} @else if $value == null {
|
64
|
-
@return 'null';
|
65
|
-
} @else if type-of($value) == map {
|
66
|
-
$map: '(';
|
67
|
-
$keys: map-keys($value);
|
68
|
-
@each $key in $keys {
|
69
|
-
$val: map-get($value, $key);
|
70
|
-
$last: if(index($keys, $key) == length($keys), true, false);
|
71
|
-
$map: '#{$map}#{$key}: #{$val}#{if($last, ")", ", ")}';
|
72
|
-
}
|
73
|
-
@return $map;
|
74
|
-
} @else {
|
75
|
-
@return $value;
|
76
|
-
}
|
77
|
-
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: 'true'
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Suzanne
|
@@ -76,9 +76,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
76
|
version: '0'
|
77
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- - '
|
79
|
+
- - '>='
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 1.
|
81
|
+
version: '1.2'
|
82
82
|
requirements: []
|
83
83
|
rubyforge_project: 'true'
|
84
84
|
rubygems_version: 2.1.10
|