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.
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