poe-css 0.0.1

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 (88) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +186 -0
  4. data/.ruby-version +1 -0
  5. data/CONTRIBUTING.md +85 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +105 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +275 -0
  10. data/Rakefile +10 -0
  11. data/bin/poe-css +14 -0
  12. data/demo/Gemfile +11 -0
  13. data/demo/Gemfile.lock +45 -0
  14. data/demo/app.rb +21 -0
  15. data/demo/views/index.haml +105 -0
  16. data/lib/dependencies.rb +11 -0
  17. data/lib/poe-css.rb +253 -0
  18. data/lib/poe-css/generator.rb +108 -0
  19. data/lib/poe-css/parser.rb +177 -0
  20. data/lib/poe-css/preprocessor.rb +186 -0
  21. data/lib/poe-css/simplifier.rb +201 -0
  22. data/lib/poe-css/version.rb +5 -0
  23. data/poe-css.gemspec +32 -0
  24. data/tests/poecss/all-clauses-1.output +23 -0
  25. data/tests/poecss/all-clauses-1.poecss +24 -0
  26. data/tests/poecss/alternation-1.output +8 -0
  27. data/tests/poecss/alternation-1.poecss +4 -0
  28. data/tests/poecss/nesting-1.output +8 -0
  29. data/tests/poecss/nesting-1.poecss +8 -0
  30. data/tests/poecss/nesting-2.output +30 -0
  31. data/tests/poecss/nesting-2.poecss +23 -0
  32. data/tests/poecss/nesting-3.output +15 -0
  33. data/tests/poecss/nesting-3.poecss +15 -0
  34. data/tests/poecss/nesting-4.output +14 -0
  35. data/tests/poecss/nesting-4.poecss +13 -0
  36. data/tests/poecss/performance-1.output +3 -0
  37. data/tests/poecss/performance-1.poecss +59 -0
  38. data/tests/poecss/performance-2.output +60 -0
  39. data/tests/poecss/performance-2.poecss +75 -0
  40. data/tests/poecss/rule-ordering-1.output +25 -0
  41. data/tests/poecss/rule-ordering-1.poecss +30 -0
  42. data/tests/poecss/rule-ordering-2.output +3 -0
  43. data/tests/poecss/rule-ordering-2.poecss +29 -0
  44. data/tests/poecss/rule-ordering-3.output +30 -0
  45. data/tests/poecss/rule-ordering-3.poecss +29 -0
  46. data/tests/poecss/rule-ordering-4.output +20 -0
  47. data/tests/poecss/rule-ordering-4.poecss +30 -0
  48. data/tests/poecss/rule-ordering-5.output +8 -0
  49. data/tests/poecss/rule-ordering-5.poecss +9 -0
  50. data/tests/poecss/rule-ordering-6.output +7 -0
  51. data/tests/poecss/rule-ordering-6.poecss +14 -0
  52. data/tests/poecss/simple-1.output +7 -0
  53. data/tests/poecss/simple-1.poecss +8 -0
  54. data/tests/poecss/simplification-1.output +6 -0
  55. data/tests/poecss/simplification-1.poecss +7 -0
  56. data/tests/poecss/simplification-2.output +6 -0
  57. data/tests/poecss/simplification-2.poecss +8 -0
  58. data/tests/poecss/simplification-3.output +2 -0
  59. data/tests/poecss/simplification-3.poecss +3 -0
  60. data/tests/poecss/simplification-4.output +3 -0
  61. data/tests/poecss/simplification-4.poecss +4 -0
  62. data/tests/poecss/simplification-5.output +3 -0
  63. data/tests/poecss/simplification-5.poecss +8 -0
  64. data/tests/poecss/simplification-6.output +2 -0
  65. data/tests/poecss/simplification-6.poecss +4 -0
  66. data/tests/preprocessor/arity-mismatch-1.error.preprocessor +4 -0
  67. data/tests/preprocessor/arity-mismatch-2.error.preprocessor +4 -0
  68. data/tests/preprocessor/complex.output +20 -0
  69. data/tests/preprocessor/complex.preprocessor +19 -0
  70. data/tests/preprocessor/empty.output +0 -0
  71. data/tests/preprocessor/empty.preprocessor +0 -0
  72. data/tests/preprocessor/macro-newlines.output +5 -0
  73. data/tests/preprocessor/macro-newlines.preprocessor +9 -0
  74. data/tests/preprocessor/macro.output +3 -0
  75. data/tests/preprocessor/macro.preprocessor +7 -0
  76. data/tests/preprocessor/missing-identifier-1.error.preprocessor +1 -0
  77. data/tests/preprocessor/missing-identifier-2.error.preprocessor +1 -0
  78. data/tests/preprocessor/normal-newlines.output +2 -0
  79. data/tests/preprocessor/normal-newlines.preprocessor +2 -0
  80. data/tests/preprocessor/parse-error-1.error.preprocessor +1 -0
  81. data/tests/preprocessor/parse-error-2.error.preprocessor +1 -0
  82. data/tests/preprocessor/parse-error-3.error.preprocessor +4 -0
  83. data/tests/preprocessor/simple.output +1 -0
  84. data/tests/preprocessor/simple.preprocessor +3 -0
  85. data/tests/run-all-tests.rb +60 -0
  86. data/tests/unit/simplify-bounds-test.rb +57 -0
  87. data/tests/unit/stricter-query-test.rb +24 -0
  88. metadata +292 -0
@@ -0,0 +1,7 @@
1
+ Show
2
+ Rarity = Unique
3
+ SetTextColor 255 0 0 255
4
+
5
+ Show
6
+ ItemLevel >= 25
7
+
@@ -0,0 +1,8 @@
1
+ ItemLevel >= 25 {
2
+ Show
3
+ }
4
+
5
+ Rarity Unique {
6
+ Show
7
+ SetTextColor rgb(255, 0, 0)
8
+ }
@@ -0,0 +1,6 @@
1
+ Hide
2
+ ItemLevel > 25
3
+
4
+ Show
5
+ ItemLevel < 25
6
+
@@ -0,0 +1,7 @@
1
+ ItemLevel < 25 {
2
+ Show
3
+ }
4
+
5
+ ItemLevel > 25 {
6
+ Hide
7
+ }
@@ -0,0 +1,6 @@
1
+ Hide
2
+ Identified False
3
+
4
+ Show
5
+ Identified True
6
+
@@ -0,0 +1,8 @@
1
+ Identified {
2
+ Show
3
+ }
4
+
5
+ Identified False {
6
+ Hide
7
+ }
8
+
@@ -0,0 +1,2 @@
1
+ Show
2
+ ItemLevel >= 26
@@ -0,0 +1,3 @@
1
+ ItemLevel >= 25, ItemLevel >= 26 {
2
+ Show
3
+ }
@@ -0,0 +1,3 @@
1
+ Show
2
+ Class "A" "B"
3
+ SetFontSize 13
@@ -0,0 +1,4 @@
1
+ Class A B, Class A B C {
2
+ Show
3
+ SetFontSize 13
4
+ }
@@ -0,0 +1,3 @@
1
+ Show
2
+ Class "A"
3
+ SetFontSize 13
@@ -0,0 +1,8 @@
1
+ Class A {
2
+ Show
3
+
4
+ Class A {
5
+ Show
6
+ SetFontSize 13
7
+ }
8
+ }
@@ -0,0 +1,2 @@
1
+ Show
2
+ ItemLevel >= 25
@@ -0,0 +1,4 @@
1
+ ItemLevel >= 25 {
2
+ Hide
3
+ Show
4
+ }
@@ -0,0 +1,4 @@
1
+ @macro(@a) {
2
+ }
3
+
4
+ @macro()
@@ -0,0 +1,4 @@
1
+ @macro(@a) {
2
+ }
3
+
4
+ @macro(1, 2)
@@ -0,0 +1,20 @@
1
+ first invocation:
2
+
3
+ first: 5
4
+ second: this is a string
5
+ third: omg
6
+
7
+
8
+ second invocation:
9
+
10
+ first: this is a string
11
+ second: this is a string
12
+ third: omg
13
+
14
+
15
+ third invocation:
16
+
17
+ first: omg
18
+ second: this is a string
19
+ third: omg
20
+
@@ -0,0 +1,19 @@
1
+ @1cool_identifIer_1: 5
2
+ @b_: this is a string
3
+ @crazyIdentifier4: omg
4
+ @another-crazy-identifier: omg
5
+
6
+ @my_macro(@1cool_identifIer_1) {
7
+ first: @1cool_identifIer_1
8
+ second: @b_
9
+ third: @crazyIdentifier4
10
+ }
11
+
12
+ first invocation:
13
+ @my_macro(@1cool_identifIer_1)
14
+
15
+ second invocation:
16
+ @my_macro(@b_)
17
+
18
+ third invocation:
19
+ @my_macro(@another-crazy-identifier)
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ hello 1 hello
2
+
3
+ hello
4
+ 1
5
+ hello
@@ -0,0 +1,9 @@
1
+ @test() { 1 }
2
+
3
+ hello @test() hello
4
+
5
+ @test2() {
6
+ 1
7
+ }
8
+
9
+ hello@test2()hello
@@ -0,0 +1,3 @@
1
+ 1
2
+ 2
3
+ 3
@@ -0,0 +1,7 @@
1
+ @expand(@a, @b, @c) {
2
+ @a
3
+ @b
4
+ @c
5
+ }
6
+
7
+ @expand(1, 2, 3)
@@ -0,0 +1,2 @@
1
+ hello
2
+ just a code
@@ -0,0 +1,2 @@
1
+ hello
2
+ just a code
@@ -0,0 +1 @@
1
+ @create_macro() {
@@ -0,0 +1,4 @@
1
+ @create_macro() {
2
+ }
3
+
4
+ @create_macro(
@@ -0,0 +1,3 @@
1
+ @a: 5
2
+
3
+ @a
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest'
4
+ require 'minitest/autorun'
5
+ require 'minitest/reporters'
6
+
7
+ require_relative '../lib/dependencies'
8
+
9
+ Dir.glob('unit/**/*-test.rb').each do |t|
10
+ require_relative t
11
+ end
12
+
13
+ TEST_FILES = Dir.glob('**/*.{preprocessor,poecss}').map { |input_file|
14
+ ext = File.extname(input_file)
15
+ expected_to_error = !!File.basename(input_file, ext)[/\.error$/]
16
+ output_file =
17
+ begin
18
+ f = File.join(File.dirname(input_file), File.basename(input_file, ext) + '.output')
19
+
20
+ if !File.exist?(f) && !expected_to_error
21
+ raise "Couldn't find output file #{f} for input file #{input_file}."
22
+ end
23
+
24
+ f
25
+ end
26
+
27
+ [
28
+ input_file,
29
+ output_file,
30
+ "test_#{input_file.gsub(/[^a-zA-Z_0-9]/, '_')}".to_sym,
31
+ preprocessor: ext == '.preprocessor',
32
+ expected_to_error: expected_to_error
33
+ ]
34
+ }
35
+
36
+ duplicate_test_name = TEST_FILES.group_by { |_, _, n| n }.find { |_, v| v.length > 1 }&.first
37
+ raise "Duplicate test name: #{duplicate_test_name}." if duplicate_test_name
38
+
39
+ class Tests < Minitest::Test
40
+ TEST_FILES.each do |input_file, output_file, test_name, options|
41
+ define_method(test_name) do
42
+ input = File.read(input_file)
43
+
44
+ get_output = proc {
45
+ if options[:preprocessor]
46
+ input_without_comments = input.split("\n").map { |l| l.gsub(/#.*$/, '') }.join("\n")
47
+ POECSS::Preprocessor.compile(input_without_comments)
48
+ else
49
+ POECSS.compile(input)
50
+ end
51
+ }
52
+
53
+ if options[:expected_to_error]
54
+ assert_raises(&get_output)
55
+ else
56
+ assert_equal File.read(output_file).strip, get_output.call.strip
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest'
4
+ require 'minitest/autorun'
5
+
6
+ require_relative '../../lib/dependencies'
7
+
8
+ class SimplifyBoundsTest < Minitest::Test
9
+ def simplify_bounds(input)
10
+ parsed_input = input.split(',').map(&:strip).map { |bound|
11
+ op, num = bound.split(' ').map(&:chomp)
12
+ [ op, num.to_i ]
13
+ }
14
+
15
+ POECSS::Simplifier.send(:simplify_bounds, parsed_input)
16
+ end
17
+
18
+ def test_simplify_bounds
19
+ assert_nil simplify_bounds('>= 25, < 25')
20
+ assert_nil simplify_bounds('> 25, < 25')
21
+ assert_nil simplify_bounds('> 26, < 25')
22
+ assert_nil simplify_bounds('> 26, > 25, < 25')
23
+ assert_nil simplify_bounds('>= 25, <= 26, = 30')
24
+ assert_nil simplify_bounds('>= 25, < 26, = 26')
25
+
26
+ assert_equal [ [ '=', 25 ] ], simplify_bounds('>= 25, <= 25')
27
+ assert_equal [ [ '=', 25 ] ], simplify_bounds('>= 25, <= 26, = 25')
28
+
29
+ assert_equal [ [ '>', 25 ] ], simplify_bounds('> 25, > 25')
30
+ assert_equal [ [ '>', 25 ] ], simplify_bounds('> 25, > 24')
31
+ assert_equal [ [ '>', 26 ] ], simplify_bounds('> 25, > 26')
32
+ assert_equal [ [ '>', 25 ] ], simplify_bounds('> 25, >= 25')
33
+ assert_equal [ [ '>', 25 ] ], simplify_bounds('>= 25, > 25')
34
+
35
+ assert_equal [ [ '>=', 26 ] ], simplify_bounds('> 25, >= 26')
36
+ assert_equal [ [ '>=', 28 ] ], simplify_bounds('>= 28, >= 26')
37
+ assert_equal [ [ '>', 28 ] ], simplify_bounds('> 28, >= 26')
38
+
39
+ assert_equal [ [ '<', 25 ] ], simplify_bounds('< 25, < 25')
40
+ assert_equal [ [ '<', 24 ] ], simplify_bounds('< 25, < 24')
41
+ assert_equal [ [ '<', 25 ] ], simplify_bounds('< 25, < 26')
42
+ assert_equal [ [ '<', 25 ] ], simplify_bounds('< 25, <= 25')
43
+ assert_equal [ [ '<', 25 ] ], simplify_bounds('<= 25, < 25')
44
+
45
+ assert_equal [ [ '<', 25 ] ], simplify_bounds('< 25, <= 26')
46
+ assert_equal [ [ '<=', 26 ] ], simplify_bounds('<= 28, <= 26')
47
+ assert_equal [ [ '>', 28 ] ], simplify_bounds('> 28, >= 26')
48
+
49
+ assert_equal [ [ '>', 20 ], [ '<', 25 ] ], simplify_bounds('< 25, <= 26, > 20')
50
+ assert_equal [ [ '>', 21 ], [ '<', 25 ] ], simplify_bounds('< 25, <= 26, > 21, > 20')
51
+ assert_equal [ [ '>', 23 ], [ '<=', 26 ] ], simplify_bounds('<= 28, <= 26, > 23, > 20')
52
+
53
+ assert_equal [ [ '>=', 20 ], [ '<', 25 ] ], simplify_bounds('< 25, <= 26, >= 20')
54
+ assert_equal [ [ '>=', 21 ], [ '<', 25 ] ], simplify_bounds('< 25, <= 26, >= 21, >= 20')
55
+ assert_equal [ [ '>', 23 ], [ '<=', 26 ] ], simplify_bounds('<= 28, <= 26, > 23, >= 20')
56
+ end
57
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest'
4
+ require 'minitest/autorun'
5
+
6
+ require_relative '../../lib/dependencies'
7
+
8
+ class StricterQueryTest < Minitest::Test
9
+ def stricter_query?(a, b)
10
+ POECSS::Simplifier.send(:stricter_query?, a, b)
11
+ end
12
+
13
+ def test_is_stricter_query
14
+ assert stricter_query?(%w[alice bob carol], %w[alice bob carol])
15
+ assert stricter_query?(%w[alice bob carol], %w[alic bo carol])
16
+ assert stricter_query?(%w[alice bob carol], %w[alic bo caro])
17
+ refute stricter_query?(%w[alice bob carol], %w[alic bo carolf])
18
+
19
+ refute stricter_query?(%w[alice bob carol], %w[alic bo])
20
+ assert stricter_query?(%w[alice], %w[alic bo])
21
+ assert stricter_query?(%w[alice bob b], %w[alic b])
22
+ refute stricter_query?(%w[a b c], %w[a b])
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,292 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: poe-css
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Alex Quach
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: parslet
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: irbtools
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-reporters
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: A better way to write item filters for Path of Exile.
112
+ email:
113
+ - alexhquach@gmail.com
114
+ executables:
115
+ - poe-css
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - ".rubocop.yml"
121
+ - ".ruby-version"
122
+ - CONTRIBUTING.md
123
+ - Gemfile
124
+ - Gemfile.lock
125
+ - LICENSE.txt
126
+ - README.md
127
+ - Rakefile
128
+ - bin/poe-css
129
+ - demo/Gemfile
130
+ - demo/Gemfile.lock
131
+ - demo/app.rb
132
+ - demo/views/index.haml
133
+ - lib/dependencies.rb
134
+ - lib/poe-css.rb
135
+ - lib/poe-css/generator.rb
136
+ - lib/poe-css/parser.rb
137
+ - lib/poe-css/preprocessor.rb
138
+ - lib/poe-css/simplifier.rb
139
+ - lib/poe-css/version.rb
140
+ - poe-css.gemspec
141
+ - tests/poecss/all-clauses-1.output
142
+ - tests/poecss/all-clauses-1.poecss
143
+ - tests/poecss/alternation-1.output
144
+ - tests/poecss/alternation-1.poecss
145
+ - tests/poecss/nesting-1.output
146
+ - tests/poecss/nesting-1.poecss
147
+ - tests/poecss/nesting-2.output
148
+ - tests/poecss/nesting-2.poecss
149
+ - tests/poecss/nesting-3.output
150
+ - tests/poecss/nesting-3.poecss
151
+ - tests/poecss/nesting-4.output
152
+ - tests/poecss/nesting-4.poecss
153
+ - tests/poecss/performance-1.output
154
+ - tests/poecss/performance-1.poecss
155
+ - tests/poecss/performance-2.output
156
+ - tests/poecss/performance-2.poecss
157
+ - tests/poecss/rule-ordering-1.output
158
+ - tests/poecss/rule-ordering-1.poecss
159
+ - tests/poecss/rule-ordering-2.output
160
+ - tests/poecss/rule-ordering-2.poecss
161
+ - tests/poecss/rule-ordering-3.output
162
+ - tests/poecss/rule-ordering-3.poecss
163
+ - tests/poecss/rule-ordering-4.output
164
+ - tests/poecss/rule-ordering-4.poecss
165
+ - tests/poecss/rule-ordering-5.output
166
+ - tests/poecss/rule-ordering-5.poecss
167
+ - tests/poecss/rule-ordering-6.output
168
+ - tests/poecss/rule-ordering-6.poecss
169
+ - tests/poecss/simple-1.output
170
+ - tests/poecss/simple-1.poecss
171
+ - tests/poecss/simplification-1.output
172
+ - tests/poecss/simplification-1.poecss
173
+ - tests/poecss/simplification-2.output
174
+ - tests/poecss/simplification-2.poecss
175
+ - tests/poecss/simplification-3.output
176
+ - tests/poecss/simplification-3.poecss
177
+ - tests/poecss/simplification-4.output
178
+ - tests/poecss/simplification-4.poecss
179
+ - tests/poecss/simplification-5.output
180
+ - tests/poecss/simplification-5.poecss
181
+ - tests/poecss/simplification-6.output
182
+ - tests/poecss/simplification-6.poecss
183
+ - tests/preprocessor/arity-mismatch-1.error.preprocessor
184
+ - tests/preprocessor/arity-mismatch-2.error.preprocessor
185
+ - tests/preprocessor/complex.output
186
+ - tests/preprocessor/complex.preprocessor
187
+ - tests/preprocessor/empty.output
188
+ - tests/preprocessor/empty.preprocessor
189
+ - tests/preprocessor/macro-newlines.output
190
+ - tests/preprocessor/macro-newlines.preprocessor
191
+ - tests/preprocessor/macro.output
192
+ - tests/preprocessor/macro.preprocessor
193
+ - tests/preprocessor/missing-identifier-1.error.preprocessor
194
+ - tests/preprocessor/missing-identifier-2.error.preprocessor
195
+ - tests/preprocessor/normal-newlines.output
196
+ - tests/preprocessor/normal-newlines.preprocessor
197
+ - tests/preprocessor/parse-error-1.error.preprocessor
198
+ - tests/preprocessor/parse-error-2.error.preprocessor
199
+ - tests/preprocessor/parse-error-3.error.preprocessor
200
+ - tests/preprocessor/simple.output
201
+ - tests/preprocessor/simple.preprocessor
202
+ - tests/run-all-tests.rb
203
+ - tests/unit/simplify-bounds-test.rb
204
+ - tests/unit/stricter-query-test.rb
205
+ homepage: ''
206
+ licenses: []
207
+ metadata: {}
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubyforge_project:
224
+ rubygems_version: 2.6.13
225
+ signing_key:
226
+ specification_version: 4
227
+ summary: A better way to write item filters for Path of Exile.
228
+ test_files:
229
+ - tests/poecss/all-clauses-1.output
230
+ - tests/poecss/all-clauses-1.poecss
231
+ - tests/poecss/alternation-1.output
232
+ - tests/poecss/alternation-1.poecss
233
+ - tests/poecss/nesting-1.output
234
+ - tests/poecss/nesting-1.poecss
235
+ - tests/poecss/nesting-2.output
236
+ - tests/poecss/nesting-2.poecss
237
+ - tests/poecss/nesting-3.output
238
+ - tests/poecss/nesting-3.poecss
239
+ - tests/poecss/nesting-4.output
240
+ - tests/poecss/nesting-4.poecss
241
+ - tests/poecss/performance-1.output
242
+ - tests/poecss/performance-1.poecss
243
+ - tests/poecss/performance-2.output
244
+ - tests/poecss/performance-2.poecss
245
+ - tests/poecss/rule-ordering-1.output
246
+ - tests/poecss/rule-ordering-1.poecss
247
+ - tests/poecss/rule-ordering-2.output
248
+ - tests/poecss/rule-ordering-2.poecss
249
+ - tests/poecss/rule-ordering-3.output
250
+ - tests/poecss/rule-ordering-3.poecss
251
+ - tests/poecss/rule-ordering-4.output
252
+ - tests/poecss/rule-ordering-4.poecss
253
+ - tests/poecss/rule-ordering-5.output
254
+ - tests/poecss/rule-ordering-5.poecss
255
+ - tests/poecss/rule-ordering-6.output
256
+ - tests/poecss/rule-ordering-6.poecss
257
+ - tests/poecss/simple-1.output
258
+ - tests/poecss/simple-1.poecss
259
+ - tests/poecss/simplification-1.output
260
+ - tests/poecss/simplification-1.poecss
261
+ - tests/poecss/simplification-2.output
262
+ - tests/poecss/simplification-2.poecss
263
+ - tests/poecss/simplification-3.output
264
+ - tests/poecss/simplification-3.poecss
265
+ - tests/poecss/simplification-4.output
266
+ - tests/poecss/simplification-4.poecss
267
+ - tests/poecss/simplification-5.output
268
+ - tests/poecss/simplification-5.poecss
269
+ - tests/poecss/simplification-6.output
270
+ - tests/poecss/simplification-6.poecss
271
+ - tests/preprocessor/arity-mismatch-1.error.preprocessor
272
+ - tests/preprocessor/arity-mismatch-2.error.preprocessor
273
+ - tests/preprocessor/complex.output
274
+ - tests/preprocessor/complex.preprocessor
275
+ - tests/preprocessor/empty.output
276
+ - tests/preprocessor/empty.preprocessor
277
+ - tests/preprocessor/macro-newlines.output
278
+ - tests/preprocessor/macro-newlines.preprocessor
279
+ - tests/preprocessor/macro.output
280
+ - tests/preprocessor/macro.preprocessor
281
+ - tests/preprocessor/missing-identifier-1.error.preprocessor
282
+ - tests/preprocessor/missing-identifier-2.error.preprocessor
283
+ - tests/preprocessor/normal-newlines.output
284
+ - tests/preprocessor/normal-newlines.preprocessor
285
+ - tests/preprocessor/parse-error-1.error.preprocessor
286
+ - tests/preprocessor/parse-error-2.error.preprocessor
287
+ - tests/preprocessor/parse-error-3.error.preprocessor
288
+ - tests/preprocessor/simple.output
289
+ - tests/preprocessor/simple.preprocessor
290
+ - tests/run-all-tests.rb
291
+ - tests/unit/simplify-bounds-test.rb
292
+ - tests/unit/stricter-query-test.rb