cataract 0.2.3 → 0.2.5
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/.rubocop.yml +8 -3
- data/BENCHMARKS.md +50 -32
- data/CHANGELOG.md +21 -1
- data/Gemfile +3 -0
- data/ext/cataract/cataract.c +219 -112
- data/ext/cataract/cataract.h +5 -1
- data/ext/cataract/css_parser.c +875 -50
- data/ext/cataract/flatten.c +233 -91
- data/ext/cataract/shorthand_expander.c +7 -0
- data/lib/cataract/at_rule.rb +2 -1
- data/lib/cataract/constants.rb +10 -0
- data/lib/cataract/error.rb +49 -0
- data/lib/cataract/import_resolver.rb +18 -87
- data/lib/cataract/import_statement.rb +29 -5
- data/lib/cataract/media_query.rb +98 -0
- data/lib/cataract/pure/byte_constants.rb +15 -0
- data/lib/cataract/pure/flatten.rb +127 -15
- data/lib/cataract/pure/parser.rb +800 -271
- data/lib/cataract/pure/serializer.rb +216 -115
- data/lib/cataract/pure.rb +8 -7
- data/lib/cataract/rule.rb +9 -5
- data/lib/cataract/stylesheet.rb +345 -101
- data/lib/cataract/stylesheet_scope.rb +10 -7
- data/lib/cataract/version.rb +1 -1
- data/lib/cataract.rb +5 -8
- data/lib/tasks/profile.rake +210 -0
- metadata +5 -2
- data/lib/cataract/pure/imports.rb +0 -268
data/ext/cataract/cataract.h
CHANGED
|
@@ -13,17 +13,19 @@ extern VALUE cDeclaration;
|
|
|
13
13
|
extern VALUE cAtRule;
|
|
14
14
|
extern VALUE cStylesheet;
|
|
15
15
|
extern VALUE cImportStatement;
|
|
16
|
+
extern VALUE cMediaQuery;
|
|
16
17
|
|
|
17
18
|
// Error class references
|
|
18
19
|
extern VALUE eCataractError;
|
|
19
20
|
extern VALUE eDepthError;
|
|
20
21
|
extern VALUE eSizeError;
|
|
22
|
+
extern VALUE eParseError;
|
|
21
23
|
|
|
22
24
|
// ============================================================================
|
|
23
25
|
// Struct field indices
|
|
24
26
|
// ============================================================================
|
|
25
27
|
|
|
26
|
-
// Rule struct field indices (id, selector, declarations, specificity, parent_rule_id, nesting_style, selector_list_id)
|
|
28
|
+
// Rule struct field indices (id, selector, declarations, specificity, parent_rule_id, nesting_style, selector_list_id, media_query_id)
|
|
27
29
|
#define RULE_ID 0
|
|
28
30
|
#define RULE_SELECTOR 1
|
|
29
31
|
#define RULE_DECLARATIONS 2
|
|
@@ -31,6 +33,7 @@ extern VALUE eSizeError;
|
|
|
31
33
|
#define RULE_PARENT_RULE_ID 4
|
|
32
34
|
#define RULE_NESTING_STYLE 5
|
|
33
35
|
#define RULE_SELECTOR_LIST_ID 6
|
|
36
|
+
#define RULE_MEDIA_QUERY_ID 7
|
|
34
37
|
|
|
35
38
|
// Nesting style constants
|
|
36
39
|
#define NESTING_STYLE_IMPLICIT 0 // .parent { .child { } } - no &
|
|
@@ -41,6 +44,7 @@ extern VALUE eSizeError;
|
|
|
41
44
|
#define NO_PARENT_MEDIA Qnil
|
|
42
45
|
#define NO_PARENT_SELECTOR Qnil
|
|
43
46
|
#define NO_PARENT_RULE_ID Qnil
|
|
47
|
+
#define NO_MEDIA_QUERY_ID (-1)
|
|
44
48
|
|
|
45
49
|
// Declaration struct field indices (property, value, important)
|
|
46
50
|
#define DECL_PROPERTY 0
|