sassc 2.2.1 → 2.3.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/.travis.yml +1 -0
- data/CHANGELOG.md +13 -0
- data/Rakefile +1 -3
- data/ext/extconf.rb +13 -5
- data/ext/libsass/VERSION +1 -1
- data/ext/libsass/include/sass/base.h +2 -1
- data/ext/libsass/include/sass/context.h +1 -0
- data/ext/libsass/src/ast.cpp +49 -59
- data/ext/libsass/src/ast.hpp +263 -102
- data/ext/libsass/src/ast_def_macros.hpp +8 -0
- data/ext/libsass/src/ast_fwd_decl.cpp +2 -1
- data/ext/libsass/src/ast_fwd_decl.hpp +40 -116
- data/ext/libsass/src/ast_helpers.hpp +292 -0
- data/ext/libsass/src/ast_sel_cmp.cpp +209 -722
- data/ext/libsass/src/ast_sel_super.cpp +539 -0
- data/ext/libsass/src/ast_sel_unify.cpp +207 -212
- data/ext/libsass/src/ast_sel_weave.cpp +616 -0
- data/ext/libsass/src/ast_selectors.cpp +559 -1001
- data/ext/libsass/src/ast_selectors.hpp +311 -367
- data/ext/libsass/src/ast_supports.cpp +1 -17
- data/ext/libsass/src/ast_values.cpp +216 -29
- data/ext/libsass/src/ast_values.hpp +42 -33
- data/ext/libsass/src/bind.cpp +1 -1
- data/ext/libsass/src/cencode.c +4 -6
- data/ext/libsass/src/check_nesting.cpp +5 -6
- data/ext/libsass/src/check_nesting.hpp +4 -0
- data/ext/libsass/src/color_maps.cpp +11 -10
- data/ext/libsass/src/color_maps.hpp +0 -8
- data/ext/libsass/src/constants.cpp +5 -0
- data/ext/libsass/src/constants.hpp +6 -0
- data/ext/libsass/src/context.cpp +30 -60
- data/ext/libsass/src/context.hpp +8 -20
- data/ext/libsass/src/cssize.cpp +36 -120
- data/ext/libsass/src/cssize.hpp +4 -10
- data/ext/libsass/src/dart_helpers.hpp +199 -0
- data/ext/libsass/src/debugger.hpp +364 -207
- data/ext/libsass/src/emitter.cpp +3 -4
- data/ext/libsass/src/emitter.hpp +0 -2
- data/ext/libsass/src/environment.hpp +5 -0
- data/ext/libsass/src/error_handling.cpp +21 -0
- data/ext/libsass/src/error_handling.hpp +25 -3
- data/ext/libsass/src/eval.cpp +33 -153
- data/ext/libsass/src/eval.hpp +11 -13
- data/ext/libsass/src/eval_selectors.cpp +75 -0
- data/ext/libsass/src/expand.cpp +214 -167
- data/ext/libsass/src/expand.hpp +26 -6
- data/ext/libsass/src/extender.cpp +1186 -0
- data/ext/libsass/src/extender.hpp +399 -0
- data/ext/libsass/src/extension.cpp +43 -0
- data/ext/libsass/src/extension.hpp +89 -0
- data/ext/libsass/src/file.cpp +15 -14
- data/ext/libsass/src/file.hpp +5 -12
- data/ext/libsass/src/fn_colors.cpp +12 -10
- data/ext/libsass/src/fn_lists.cpp +12 -11
- data/ext/libsass/src/fn_miscs.cpp +22 -34
- data/ext/libsass/src/fn_numbers.cpp +13 -6
- data/ext/libsass/src/fn_selectors.cpp +94 -124
- data/ext/libsass/src/fn_strings.cpp +16 -14
- data/ext/libsass/src/fn_utils.cpp +5 -6
- data/ext/libsass/src/fn_utils.hpp +9 -3
- data/ext/libsass/src/inspect.cpp +154 -117
- data/ext/libsass/src/inspect.hpp +10 -8
- data/ext/libsass/src/lexer.cpp +17 -81
- data/ext/libsass/src/lexer.hpp +5 -16
- data/ext/libsass/src/listize.cpp +22 -36
- data/ext/libsass/src/listize.hpp +8 -9
- data/ext/libsass/src/memory/SharedPtr.hpp +39 -5
- data/ext/libsass/src/operation.hpp +27 -17
- data/ext/libsass/src/operators.cpp +1 -0
- data/ext/libsass/src/ordered_map.hpp +112 -0
- data/ext/libsass/src/output.cpp +30 -49
- data/ext/libsass/src/output.hpp +1 -1
- data/ext/libsass/src/parser.cpp +211 -381
- data/ext/libsass/src/parser.hpp +17 -15
- data/ext/libsass/src/parser_selectors.cpp +189 -0
- data/ext/libsass/src/permutate.hpp +140 -0
- data/ext/libsass/src/position.hpp +1 -1
- data/ext/libsass/src/prelexer.cpp +6 -6
- data/ext/libsass/src/remove_placeholders.cpp +55 -56
- data/ext/libsass/src/remove_placeholders.hpp +21 -18
- data/ext/libsass/src/sass.hpp +1 -0
- data/ext/libsass/src/sass2scss.cpp +4 -4
- data/ext/libsass/src/sass_context.cpp +42 -91
- data/ext/libsass/src/sass_context.hpp +2 -2
- data/ext/libsass/src/sass_functions.cpp +1 -1
- data/ext/libsass/src/sass_values.cpp +0 -1
- data/ext/libsass/src/stylesheet.cpp +22 -0
- data/ext/libsass/src/stylesheet.hpp +57 -0
- data/ext/libsass/src/to_value.cpp +2 -2
- data/ext/libsass/src/to_value.hpp +1 -1
- data/ext/libsass/src/units.cpp +5 -3
- data/ext/libsass/src/util.cpp +10 -12
- data/ext/libsass/src/util.hpp +2 -3
- data/ext/libsass/src/util_string.cpp +111 -61
- data/ext/libsass/src/util_string.hpp +61 -8
- data/lib/sassc/engine.rb +5 -3
- data/lib/sassc/functions_handler.rb +8 -8
- data/lib/sassc/native.rb +1 -1
- data/lib/sassc/script.rb +4 -4
- data/lib/sassc/version.rb +1 -1
- data/test/functions_test.rb +18 -1
- data/test/native_test.rb +1 -1
- metadata +17 -12
- data/ext/libsass/src/extend.cpp +0 -2132
- data/ext/libsass/src/extend.hpp +0 -86
- data/ext/libsass/src/node.cpp +0 -322
- data/ext/libsass/src/node.hpp +0 -118
- data/ext/libsass/src/paths.hpp +0 -71
- data/ext/libsass/src/sass_util.cpp +0 -152
- data/ext/libsass/src/sass_util.hpp +0 -256
- data/ext/libsass/src/subset_map.cpp +0 -58
- data/ext/libsass/src/subset_map.hpp +0 -76
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// sass.hpp must go before all system headers to get the
|
|
2
|
-
// __EXTENSIONS__ fix on Solaris.
|
|
3
|
-
#include "sass.hpp"
|
|
4
|
-
|
|
5
|
-
#include "ast.hpp"
|
|
6
|
-
#include "subset_map.hpp"
|
|
7
|
-
|
|
8
|
-
namespace Sass {
|
|
9
|
-
|
|
10
|
-
void Subset_Map::put(const Compound_Selector_Obj& sel, const SubSetMapPair& value)
|
|
11
|
-
{
|
|
12
|
-
if (sel->empty()) throw std::runtime_error("internal error: subset map keys may not be empty");
|
|
13
|
-
size_t index = values_.size();
|
|
14
|
-
values_.push_back(value);
|
|
15
|
-
for (size_t i = 0, S = sel->length(); i < S; ++i)
|
|
16
|
-
{
|
|
17
|
-
hash_[(*sel)[i]].push_back(std::make_pair(sel, index));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
std::vector<SubSetMapPair> Subset_Map::get_kv(const Compound_Selector_Obj& sel)
|
|
22
|
-
{
|
|
23
|
-
SimpleSelectorDict dict(sel->begin(), sel->end()); // XXX Set
|
|
24
|
-
std::vector<size_t> indices;
|
|
25
|
-
for (size_t i = 0, S = sel->length(); i < S; ++i) {
|
|
26
|
-
if (!hash_.count((*sel)[i])) {
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
const std::vector<std::pair<Compound_Selector_Obj, size_t> >& subsets = hash_[(*sel)[i]];
|
|
30
|
-
for (const std::pair<Compound_Selector_Obj, size_t>& item : subsets) {
|
|
31
|
-
bool include = true;
|
|
32
|
-
for (const Simple_Selector_Obj& it : item.first->elements()) {
|
|
33
|
-
auto found = dict.find(it);
|
|
34
|
-
if (found == dict.end()) {
|
|
35
|
-
include = false;
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (include) indices.push_back(item.second);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
sort(indices.begin(), indices.end());
|
|
43
|
-
std::vector<size_t>::iterator indices_end = unique(indices.begin(), indices.end());
|
|
44
|
-
indices.resize(distance(indices.begin(), indices_end));
|
|
45
|
-
|
|
46
|
-
std::vector<SubSetMapPair> results;
|
|
47
|
-
for (size_t i = 0, S = indices.size(); i < S; ++i) {
|
|
48
|
-
results.push_back(values_[indices[i]]);
|
|
49
|
-
}
|
|
50
|
-
return results;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
std::vector<SubSetMapPair> Subset_Map::get_v(const Compound_Selector_Obj& sel)
|
|
54
|
-
{
|
|
55
|
-
return get_kv(sel);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#ifndef SASS_SUBSET_MAP_H
|
|
2
|
-
#define SASS_SUBSET_MAP_H
|
|
3
|
-
|
|
4
|
-
#include <map>
|
|
5
|
-
#include <set>
|
|
6
|
-
#include <vector>
|
|
7
|
-
#include <algorithm>
|
|
8
|
-
#include <iterator>
|
|
9
|
-
|
|
10
|
-
#include "ast_fwd_decl.hpp"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// #include <iostream>
|
|
14
|
-
// #include <sstream>
|
|
15
|
-
// template<typename T>
|
|
16
|
-
// std::string vector_to_string(std::vector<T> v)
|
|
17
|
-
// {
|
|
18
|
-
// std::stringstream buffer;
|
|
19
|
-
// buffer << "[";
|
|
20
|
-
|
|
21
|
-
// if (!v.empty())
|
|
22
|
-
// { buffer << v[0]; }
|
|
23
|
-
// else
|
|
24
|
-
// { buffer << "]"; }
|
|
25
|
-
|
|
26
|
-
// if (v.size() == 1)
|
|
27
|
-
// { buffer << "]"; }
|
|
28
|
-
// else
|
|
29
|
-
// {
|
|
30
|
-
// for (size_t i = 1, S = v.size(); i < S; ++i) buffer << ", " << v[i];
|
|
31
|
-
// buffer << "]";
|
|
32
|
-
// }
|
|
33
|
-
|
|
34
|
-
// return buffer.str();
|
|
35
|
-
// }
|
|
36
|
-
|
|
37
|
-
// template<typename T>
|
|
38
|
-
// std::string set_to_string(set<T> v)
|
|
39
|
-
// {
|
|
40
|
-
// std::stringstream buffer;
|
|
41
|
-
// buffer << "[";
|
|
42
|
-
// typename std::set<T>::iterator i = v.begin();
|
|
43
|
-
// if (!v.empty())
|
|
44
|
-
// { buffer << *i; }
|
|
45
|
-
// else
|
|
46
|
-
// { buffer << "]"; }
|
|
47
|
-
|
|
48
|
-
// if (v.size() == 1)
|
|
49
|
-
// { buffer << "]"; }
|
|
50
|
-
// else
|
|
51
|
-
// {
|
|
52
|
-
// for (++i; i != v.end(); ++i) buffer << ", " << *i;
|
|
53
|
-
// buffer << "]";
|
|
54
|
-
// }
|
|
55
|
-
|
|
56
|
-
// return buffer.str();
|
|
57
|
-
// }
|
|
58
|
-
|
|
59
|
-
namespace Sass {
|
|
60
|
-
|
|
61
|
-
class Subset_Map {
|
|
62
|
-
private:
|
|
63
|
-
std::vector<SubSetMapPair> values_;
|
|
64
|
-
std::map<Simple_Selector_Obj, std::vector<std::pair<Compound_Selector_Obj, size_t> >, OrderNodes > hash_;
|
|
65
|
-
public:
|
|
66
|
-
void put(const Compound_Selector_Obj& sel, const SubSetMapPair& value);
|
|
67
|
-
std::vector<SubSetMapPair> get_kv(const Compound_Selector_Obj& s);
|
|
68
|
-
std::vector<SubSetMapPair> get_v(const Compound_Selector_Obj& s);
|
|
69
|
-
bool empty() { return values_.empty(); }
|
|
70
|
-
void clear() { values_.clear(); hash_.clear(); }
|
|
71
|
-
const std::vector<SubSetMapPair> values(void) { return values_; }
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
#endif
|