crass 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +4 -3
- data/HISTORY.md +6 -0
- data/Rakefile +5 -4
- data/lib/crass/parser.rb +15 -15
- data/lib/crass/tokenizer.rb +25 -25
- data/lib/crass/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8954dab046829112997d399f45b1af46ede108e7698e6c68ee22463ccfe5bcfe
|
4
|
+
data.tar.gz: 0e0b6e892769fe97df3751a3ab86cf9c0b741bddb45e03106268f626128323e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 822442670838bdad94990c1fbd9ac85b8cc4af1157b53aa29df26ade832db24885e82fb63280624f2439a48e5b8de25c0723da6807c0a6402bd1dfe8f1057f33
|
7
|
+
data.tar.gz: 2263060b1aa0999ea8216cff30c1c874d3185b5903eb7b92150b0638c78275662a15159a99c18ef8bca9c5a1fdcf984ace6a2981de8467cd4d81835f4e63f88e
|
data/.travis.yml
CHANGED
data/HISTORY.md
CHANGED
data/Rakefile
CHANGED
@@ -5,12 +5,13 @@ Bundler::GemHelper.install_tasks
|
|
5
5
|
|
6
6
|
Rake::TestTask.new
|
7
7
|
task :default => [:test]
|
8
|
+
task :test => :set_rubyopts
|
9
|
+
|
10
|
+
task :set_rubyopts do
|
11
|
+
ENV['RUBYOPT'] ||= ""
|
12
|
+
ENV['RUBYOPT'] += " -w"
|
8
13
|
|
9
|
-
task :test => :set_frozen_string_literal_option
|
10
|
-
task :set_frozen_string_literal_option do
|
11
14
|
if RUBY_ENGINE == "ruby" && RUBY_VERSION >= "2.3"
|
12
|
-
warn "NOTE: Testing support for frozen string literals"
|
13
|
-
ENV['RUBYOPT'] ||= ""
|
14
15
|
ENV['RUBYOPT'] += " --enable-frozen-string-literal --debug=frozen-string-literal"
|
15
16
|
end
|
16
17
|
end
|
data/lib/crass/parser.rb
CHANGED
@@ -402,25 +402,25 @@ module Crass
|
|
402
402
|
case token[:node]
|
403
403
|
# Non-standard. Spec says to discard comments and whitespace, but we
|
404
404
|
# keep them so we can serialize faithfully.
|
405
|
-
|
406
|
-
|
405
|
+
when :comment, :whitespace
|
406
|
+
rules << token
|
407
407
|
|
408
|
-
|
409
|
-
|
410
|
-
@tokens.reconsume
|
411
|
-
rule = consume_qualified_rule
|
412
|
-
rules << rule if rule
|
413
|
-
end
|
414
|
-
|
415
|
-
when :at_keyword
|
416
|
-
@tokens.reconsume
|
417
|
-
rule = consume_at_rule
|
418
|
-
rules << rule if rule
|
419
|
-
|
420
|
-
else
|
408
|
+
when :cdc, :cdo
|
409
|
+
unless flags[:top_level]
|
421
410
|
@tokens.reconsume
|
422
411
|
rule = consume_qualified_rule
|
423
412
|
rules << rule if rule
|
413
|
+
end
|
414
|
+
|
415
|
+
when :at_keyword
|
416
|
+
@tokens.reconsume
|
417
|
+
rule = consume_at_rule
|
418
|
+
rules << rule if rule
|
419
|
+
|
420
|
+
else
|
421
|
+
@tokens.reconsume
|
422
|
+
rule = consume_qualified_rule
|
423
|
+
rules << rule if rule
|
424
424
|
end
|
425
425
|
end
|
426
426
|
|
data/lib/crass/tokenizer.rb
CHANGED
@@ -537,38 +537,38 @@ module Crass
|
|
537
537
|
|
538
538
|
until @s.eos?
|
539
539
|
case char = @s.consume
|
540
|
-
|
541
|
-
|
540
|
+
when ')'
|
541
|
+
break
|
542
542
|
|
543
|
-
|
544
|
-
|
543
|
+
when RE_WHITESPACE
|
544
|
+
@s.scan(RE_WHITESPACE)
|
545
|
+
|
546
|
+
if @s.eos? || @s.peek == ')'
|
547
|
+
@s.consume
|
548
|
+
break
|
549
|
+
else
|
550
|
+
return create_token(:bad_url, :value => value + consume_bad_url)
|
551
|
+
end
|
545
552
|
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
end
|
553
|
+
when '"', "'", '(', RE_NON_PRINTABLE
|
554
|
+
# Parse error.
|
555
|
+
return create_token(:bad_url,
|
556
|
+
:error => true,
|
557
|
+
:value => value + consume_bad_url)
|
552
558
|
|
553
|
-
|
559
|
+
when '\\'
|
560
|
+
if valid_escape?
|
561
|
+
value << consume_escaped
|
562
|
+
else
|
554
563
|
# Parse error.
|
555
564
|
return create_token(:bad_url,
|
556
565
|
:error => true,
|
557
|
-
:value => value + consume_bad_url
|
558
|
-
|
559
|
-
|
560
|
-
if valid_escape?
|
561
|
-
value << consume_escaped
|
562
|
-
else
|
563
|
-
# Parse error.
|
564
|
-
return create_token(:bad_url,
|
565
|
-
:error => true,
|
566
|
-
:value => value + consume_bad_url
|
567
|
-
)
|
568
|
-
end
|
566
|
+
:value => value + consume_bad_url
|
567
|
+
)
|
568
|
+
end
|
569
569
|
|
570
|
-
|
571
|
-
|
570
|
+
else
|
571
|
+
value << char
|
572
572
|
end
|
573
573
|
end
|
574
574
|
|
data/lib/crass/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Grove
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.
|
113
|
+
rubygems_version: 2.7.3
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: CSS parser based on the CSS Syntax Level 3 spec.
|
@@ -145,4 +145,3 @@ test_files:
|
|
145
145
|
- test/test_parse_rules.rb
|
146
146
|
- test/test_parse_stylesheet.rb
|
147
147
|
- test/test_serialization.rb
|
148
|
-
has_rdoc:
|