sassc 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +13 -0
  4. data/Rakefile +1 -3
  5. data/ext/extconf.rb +13 -5
  6. data/ext/libsass/VERSION +1 -1
  7. data/ext/libsass/include/sass/base.h +2 -1
  8. data/ext/libsass/include/sass/context.h +1 -0
  9. data/ext/libsass/src/ast.cpp +49 -59
  10. data/ext/libsass/src/ast.hpp +263 -102
  11. data/ext/libsass/src/ast_def_macros.hpp +8 -0
  12. data/ext/libsass/src/ast_fwd_decl.cpp +2 -1
  13. data/ext/libsass/src/ast_fwd_decl.hpp +40 -116
  14. data/ext/libsass/src/ast_helpers.hpp +292 -0
  15. data/ext/libsass/src/ast_sel_cmp.cpp +209 -722
  16. data/ext/libsass/src/ast_sel_super.cpp +539 -0
  17. data/ext/libsass/src/ast_sel_unify.cpp +207 -212
  18. data/ext/libsass/src/ast_sel_weave.cpp +616 -0
  19. data/ext/libsass/src/ast_selectors.cpp +559 -1001
  20. data/ext/libsass/src/ast_selectors.hpp +311 -367
  21. data/ext/libsass/src/ast_supports.cpp +1 -17
  22. data/ext/libsass/src/ast_values.cpp +216 -29
  23. data/ext/libsass/src/ast_values.hpp +42 -33
  24. data/ext/libsass/src/bind.cpp +1 -1
  25. data/ext/libsass/src/cencode.c +4 -6
  26. data/ext/libsass/src/check_nesting.cpp +5 -6
  27. data/ext/libsass/src/check_nesting.hpp +4 -0
  28. data/ext/libsass/src/color_maps.cpp +11 -10
  29. data/ext/libsass/src/color_maps.hpp +0 -8
  30. data/ext/libsass/src/constants.cpp +5 -0
  31. data/ext/libsass/src/constants.hpp +6 -0
  32. data/ext/libsass/src/context.cpp +30 -60
  33. data/ext/libsass/src/context.hpp +8 -20
  34. data/ext/libsass/src/cssize.cpp +36 -120
  35. data/ext/libsass/src/cssize.hpp +4 -10
  36. data/ext/libsass/src/dart_helpers.hpp +199 -0
  37. data/ext/libsass/src/debugger.hpp +364 -207
  38. data/ext/libsass/src/emitter.cpp +3 -4
  39. data/ext/libsass/src/emitter.hpp +0 -2
  40. data/ext/libsass/src/environment.hpp +5 -0
  41. data/ext/libsass/src/error_handling.cpp +21 -0
  42. data/ext/libsass/src/error_handling.hpp +25 -3
  43. data/ext/libsass/src/eval.cpp +33 -153
  44. data/ext/libsass/src/eval.hpp +11 -13
  45. data/ext/libsass/src/eval_selectors.cpp +75 -0
  46. data/ext/libsass/src/expand.cpp +214 -167
  47. data/ext/libsass/src/expand.hpp +26 -6
  48. data/ext/libsass/src/extender.cpp +1186 -0
  49. data/ext/libsass/src/extender.hpp +399 -0
  50. data/ext/libsass/src/extension.cpp +43 -0
  51. data/ext/libsass/src/extension.hpp +89 -0
  52. data/ext/libsass/src/file.cpp +15 -14
  53. data/ext/libsass/src/file.hpp +5 -12
  54. data/ext/libsass/src/fn_colors.cpp +12 -10
  55. data/ext/libsass/src/fn_lists.cpp +12 -11
  56. data/ext/libsass/src/fn_miscs.cpp +22 -34
  57. data/ext/libsass/src/fn_numbers.cpp +13 -6
  58. data/ext/libsass/src/fn_selectors.cpp +94 -124
  59. data/ext/libsass/src/fn_strings.cpp +16 -14
  60. data/ext/libsass/src/fn_utils.cpp +5 -6
  61. data/ext/libsass/src/fn_utils.hpp +9 -3
  62. data/ext/libsass/src/inspect.cpp +154 -117
  63. data/ext/libsass/src/inspect.hpp +10 -8
  64. data/ext/libsass/src/lexer.cpp +17 -81
  65. data/ext/libsass/src/lexer.hpp +5 -16
  66. data/ext/libsass/src/listize.cpp +22 -36
  67. data/ext/libsass/src/listize.hpp +8 -9
  68. data/ext/libsass/src/memory/SharedPtr.hpp +39 -5
  69. data/ext/libsass/src/operation.hpp +27 -17
  70. data/ext/libsass/src/operators.cpp +1 -0
  71. data/ext/libsass/src/ordered_map.hpp +112 -0
  72. data/ext/libsass/src/output.cpp +30 -49
  73. data/ext/libsass/src/output.hpp +1 -1
  74. data/ext/libsass/src/parser.cpp +211 -381
  75. data/ext/libsass/src/parser.hpp +17 -15
  76. data/ext/libsass/src/parser_selectors.cpp +189 -0
  77. data/ext/libsass/src/permutate.hpp +140 -0
  78. data/ext/libsass/src/position.hpp +1 -1
  79. data/ext/libsass/src/prelexer.cpp +6 -6
  80. data/ext/libsass/src/remove_placeholders.cpp +55 -56
  81. data/ext/libsass/src/remove_placeholders.hpp +21 -18
  82. data/ext/libsass/src/sass.hpp +1 -0
  83. data/ext/libsass/src/sass2scss.cpp +4 -4
  84. data/ext/libsass/src/sass_context.cpp +42 -91
  85. data/ext/libsass/src/sass_context.hpp +2 -2
  86. data/ext/libsass/src/sass_functions.cpp +1 -1
  87. data/ext/libsass/src/sass_values.cpp +0 -1
  88. data/ext/libsass/src/stylesheet.cpp +22 -0
  89. data/ext/libsass/src/stylesheet.hpp +57 -0
  90. data/ext/libsass/src/to_value.cpp +2 -2
  91. data/ext/libsass/src/to_value.hpp +1 -1
  92. data/ext/libsass/src/units.cpp +5 -3
  93. data/ext/libsass/src/util.cpp +10 -12
  94. data/ext/libsass/src/util.hpp +2 -3
  95. data/ext/libsass/src/util_string.cpp +111 -61
  96. data/ext/libsass/src/util_string.hpp +61 -8
  97. data/lib/sassc/engine.rb +5 -3
  98. data/lib/sassc/functions_handler.rb +8 -8
  99. data/lib/sassc/native.rb +1 -1
  100. data/lib/sassc/script.rb +4 -4
  101. data/lib/sassc/version.rb +1 -1
  102. data/test/functions_test.rb +18 -1
  103. data/test/native_test.rb +1 -1
  104. metadata +17 -12
  105. data/ext/libsass/src/extend.cpp +0 -2132
  106. data/ext/libsass/src/extend.hpp +0 -86
  107. data/ext/libsass/src/node.cpp +0 -322
  108. data/ext/libsass/src/node.hpp +0 -118
  109. data/ext/libsass/src/paths.hpp +0 -71
  110. data/ext/libsass/src/sass_util.cpp +0 -152
  111. data/ext/libsass/src/sass_util.hpp +0 -256
  112. data/ext/libsass/src/subset_map.cpp +0 -58
  113. 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