Skip to content

Commit e2ecf7a

Browse files
authored
Merge pull request #125 from mischov/chore/update-meeseeks-html5ever-to-0.15.0
Update Meeseeks_Html5ever to v0.15.0
2 parents 2667ff8 + 6d13a53 commit e2ecf7a

File tree

8 files changed

+170
-94
lines changed

8 files changed

+170
-94
lines changed

.github/workflows/ci.yml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ jobs:
1616
- name: Set up Elixir
1717
uses: erlef/setup-beam@v1
1818
with:
19-
otp-version: 25.0
20-
elixir-version: 1.14
19+
otp-version: 27.0
20+
elixir-version: 1.18
2121

2222
- name: Check Elixir formatting
2323
run: mix format --check-formatted
@@ -32,17 +32,14 @@ jobs:
3232
fail-fast: false
3333
matrix:
3434
include:
35-
- elixir: 1.12
36-
otp: 23
37-
- elixir: 1.13
38-
otp: 24
39-
- elixir: 1.14
40-
otp: 25
35+
- elixir: 1.16
36+
otp: 26
37+
- elixir: 1.17
38+
otp: 27
39+
- elixir: 1.18
40+
otp: 27
4141

42-
# TODO change this to ubuntu-latest after OTP 23 is deprecated, see
43-
# https://github.com/erlef/setup-beam#compatibility-between-operating-system-and-erlangotp
44-
# for compatibility
45-
runs-on: ubuntu-20.04
42+
runs-on: ubuntu-latest
4643

4744
steps:
4845
- uses: actions/checkout@v3

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ end
3535

3636
## Compatibility
3737

38-
Meeseeks requires a minimum combination of Elixir 1.12.0 and Erlang/OTP 23.0, and is tested with a maximum combination of Elixir 1.14.0 and Erlang/OTP 25.0.
38+
Meeseeks is tested with a a minimum combination of Elixir 1.16.0 and Erlang/OTP 26.0 and a maximum combination of Elixir 1.18.0 and Erlang/OTP 27.0.
3939

4040
## Installation
4141

lib/meeseeks/selector/css/parser.ex

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@ defmodule Meeseeks.Selector.CSS.Parser do
3131
{element, []}
3232
end
3333

34-
defp parse_element([',' | toks], element) do
34+
defp parse_element([~c"," | toks], element) do
3535
element = %{element | selectors: Enum.reverse(element.selectors)}
3636
{element, toks}
3737
end
3838

39-
defp parse_element([{:ident, namespace}, '|' | toks], element) do
39+
defp parse_element([{:ident, namespace}, ~c"|" | toks], element) do
4040
selector = %Namespace{value: List.to_string(namespace)}
4141
element = %{element | selectors: [selector | element.selectors]}
4242
parse_element(toks, element)
4343
end
4444

45-
defp parse_element(['*', '|' | toks], element) do
45+
defp parse_element([~c"*", ~c"|" | toks], element) do
4646
selector = %Namespace{value: "*"}
4747
element = %{element | selectors: [selector | element.selectors]}
4848
parse_element(toks, element)
@@ -54,7 +54,7 @@ defmodule Meeseeks.Selector.CSS.Parser do
5454
parse_element(toks, element)
5555
end
5656

57-
defp parse_element(['*' | toks], element) do
57+
defp parse_element([~c"*" | toks], element) do
5858
selector = %Tag{value: "*"}
5959
element = %{element | selectors: [selector | element.selectors]}
6060
parse_element(toks, element)
@@ -72,45 +72,45 @@ defmodule Meeseeks.Selector.CSS.Parser do
7272
parse_element(toks, element)
7373
end
7474

75-
defp parse_element(['[' | toks], element) do
75+
defp parse_element([~c"[" | toks], element) do
7676
{selector, toks} = parse_attribute(toks)
7777
element = %{element | selectors: [selector | element.selectors]}
7878
parse_element(toks, element)
7979
end
8080

81-
defp parse_element([':' | toks], element) do
81+
defp parse_element([~c":" | toks], element) do
8282
{selector, toks} = parse_pseudo_class(toks)
8383
element = %{element | selectors: [selector | element.selectors]}
8484
Selector.validate!(selector)
8585
parse_element(toks, element)
8686
end
8787

88-
defp parse_element(['>' | toks], element) do
88+
defp parse_element([~c">" | toks], element) do
8989
{combinator_selector, toks} = parse_element(toks)
9090
combinator = %Combinator.ChildElements{selector: combinator_selector}
9191
element = %{element | combinator: combinator}
92-
parse_element([',' | toks], element)
92+
parse_element([~c"," | toks], element)
9393
end
9494

9595
defp parse_element([:space | toks], element) do
9696
{combinator_selector, toks} = parse_element(toks)
9797
combinator = %Combinator.DescendantElements{selector: combinator_selector}
9898
element = %{element | combinator: combinator}
99-
parse_element([',' | toks], element)
99+
parse_element([~c"," | toks], element)
100100
end
101101

102-
defp parse_element(['+' | toks], element) do
102+
defp parse_element([~c"+" | toks], element) do
103103
{combinator_selector, toks} = parse_element(toks)
104104
combinator = %Combinator.NextSiblingElement{selector: combinator_selector}
105105
element = %{element | combinator: combinator}
106-
parse_element([',' | toks], element)
106+
parse_element([~c"," | toks], element)
107107
end
108108

109-
defp parse_element(['~' | toks], element) do
109+
defp parse_element([~c"~" | toks], element) do
110110
{combinator_selector, toks} = parse_element(toks)
111111
combinator = %Combinator.NextSiblingElements{selector: combinator_selector}
112112
element = %{element | combinator: combinator}
113-
parse_element([',' | toks], element)
113+
parse_element([~c"," | toks], element)
114114
end
115115

116116
defp parse_element(toks, element) do
@@ -132,24 +132,24 @@ defmodule Meeseeks.Selector.CSS.Parser do
132132
:value_suffix
133133
]
134134

135-
defp parse_attribute(['^', {:ident, attr}, ']' | toks]) do
135+
defp parse_attribute([~c"^", {:ident, attr}, ~c"]" | toks]) do
136136
selector = %Attribute.AttributePrefix{attribute: List.to_string(attr)}
137137
{selector, toks}
138138
end
139139

140-
defp parse_attribute([{:ident, attr}, type, {:ident, val}, ']' | toks])
140+
defp parse_attribute([{:ident, attr}, type, {:ident, val}, ~c"]" | toks])
141141
when type in @attribute_value_selector_types do
142142
selector = attribute_value_selector(type, List.to_string(attr), List.to_string(val))
143143
{selector, toks}
144144
end
145145

146-
defp parse_attribute([{:ident, attr}, type, {:string, val}, ']' | toks])
146+
defp parse_attribute([{:ident, attr}, type, {:string, val}, ~c"]" | toks])
147147
when type in @attribute_value_selector_types do
148148
selector = attribute_value_selector(type, List.to_string(attr), List.to_string(val))
149149
{selector, toks}
150150
end
151151

152-
defp parse_attribute([{:ident, attr}, ']' | toks]) do
152+
defp parse_attribute([{:ident, attr}, ~c"]" | toks]) do
153153
selector = %Attribute.Attribute{attribute: List.to_string(attr)}
154154
{selector, toks}
155155
end
@@ -185,15 +185,15 @@ defmodule Meeseeks.Selector.CSS.Parser do
185185
{selector, toks}
186186
end
187187

188-
defp parse_pseudo_class_args('not', toks) do
188+
defp parse_pseudo_class_args(~c"not", toks) do
189189
parse_not_args(toks, 0, [])
190190
end
191191

192192
defp parse_pseudo_class_args(type, toks) do
193193
parse_pseudo_class_args(type, toks, [])
194194
end
195195

196-
defp parse_pseudo_class_args(_type, [')' | toks], args) do
196+
defp parse_pseudo_class_args(_type, [~c")" | toks], args) do
197197
{Enum.reverse(args), toks}
198198
end
199199

@@ -243,15 +243,15 @@ defmodule Meeseeks.Selector.CSS.Parser do
243243
|> String.to_integer()
244244
end
245245

246-
defp parse_not_args([')' | toks], 0, acc) do
246+
defp parse_not_args([~c")" | toks], 0, acc) do
247247
tokens = Enum.reverse(acc)
248248
selectors = parse_elements(tokens)
249249

250250
{[selectors], toks}
251251
end
252252

253-
defp parse_not_args([')' | toks], depth, acc) do
254-
parse_not_args(toks, depth - 1, [')' | acc])
253+
defp parse_not_args([~c")" | toks], depth, acc) do
254+
parse_not_args(toks, depth - 1, [~c")" | acc])
255255
end
256256

257257
defp parse_not_args([{:function, _type} = tok | toks], depth, acc) do
@@ -264,31 +264,31 @@ defmodule Meeseeks.Selector.CSS.Parser do
264264

265265
defp pseudo_class_selector(type, args) do
266266
case type do
267-
'first-child' ->
267+
~c"first-child" ->
268268
%PseudoClass.FirstChild{args: args}
269269

270-
'first-of-type' ->
270+
~c"first-of-type" ->
271271
%PseudoClass.FirstOfType{args: args}
272272

273-
'last-child' ->
273+
~c"last-child" ->
274274
%PseudoClass.LastChild{args: args}
275275

276-
'last-of-type' ->
276+
~c"last-of-type" ->
277277
%PseudoClass.LastOfType{args: args}
278278

279-
'not' ->
279+
~c"not" ->
280280
%PseudoClass.Not{args: args}
281281

282-
'nth-child' ->
282+
~c"nth-child" ->
283283
%PseudoClass.NthChild{args: args}
284284

285-
'nth-last-child' ->
285+
~c"nth-last-child" ->
286286
%PseudoClass.NthLastChild{args: args}
287287

288-
'nth-last-of-type' ->
288+
~c"nth-last-of-type" ->
289289
%PseudoClass.NthLastOfType{args: args}
290290

291-
'nth-of-type' ->
291+
~c"nth-of-type" ->
292292
%PseudoClass.NthOfType{args: args}
293293

294294
_ ->

lib/meeseeks/selector/xpath/expr/helpers.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ defmodule Meeseeks.Selector.XPath.Expr.Helpers do
116116
def string(true, _document), do: "true"
117117
def string([], _document), do: ""
118118
def string(0, _document), do: "0"
119-
def string(0.0, _document), do: "0"
119+
def string(+0.0, _document), do: "0"
120+
def string(-0.0, _document), do: "0"
120121
def string(:NaN, _document), do: "NaN"
121122
def string(:Infinity, _document), do: "Infinity"
122123
def string(:"-Infinity", _document), do: "-Infinity"

mix.exs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ defmodule Meeseeks.Mixfile do
1414
app: :meeseeks,
1515
version: @version,
1616
elixir: "~> 1.7",
17+
compilers: compilers(),
1718
deps: deps(),
1819

1920
# Hex
@@ -30,9 +31,13 @@ defmodule Meeseeks.Mixfile do
3031
[extra_applications: [:logger, :xmerl]]
3132
end
3233

34+
defp compilers do
35+
[:leex, :yecc] ++ Mix.compilers()
36+
end
37+
3338
defp deps do
3439
[
35-
{:meeseeks_html5ever, "~> 0.14.3"},
40+
{:meeseeks_html5ever, "~> 0.15.0"},
3641

3742
# Dev
3843
{:dialyxir, "~> 0.5", only: :dev, runtime: false},

mix.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
%{
22
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"},
3-
"castore": {:hex, :castore, "1.0.1", "240b9edb4e9e94f8f56ab39d8d2d0a57f49e46c56aced8f873892df8ff64ff5a", [:mix], [], "hexpm", "b4951de93c224d44fac71614beabd88b71932d0b1dea80d2f80fb9044e01bbb3"},
3+
"castore": {:hex, :castore, "1.0.14", "4582dd7d630b48cf5e1ca8d3d42494db51e406b7ba704e81fbd401866366896a", [:mix], [], "hexpm", "7bc1b65249d31701393edaaac18ec8398d8974d52c647b7904d01b964137b9f4"},
44
"credo": {:hex, :credo, "0.6.1", "a941e2591bd2bd2055dc92b810c174650b40b8290459c89a835af9d59ac4a5f8", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}], "hexpm"},
55
"dialyxir": {:hex, :dialyxir, "0.5.0", "5bc543f9c28ecd51b99cc1a685a3c2a1a93216990347f259406a910cf048d1d7", [:mix], [], "hexpm", "7c5c6c1eceb93e26a06c36148cb6f8021ae6f4f9a07bb1ae95f588e0a01ea8e1"},
66
"earmark": {:hex, :earmark, "1.4.3", "364ca2e9710f6bff494117dbbd53880d84bebb692dafc3a78eb50aa3183f2bfd", [:mix], [], "hexpm", "8cf8a291ebf1c7b9539e3cddb19e9cef066c2441b1640f13c34c1d3cfc825fec"},
@@ -12,9 +12,9 @@
1212
"makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"},
1313
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
1414
"markdown": {:git, "https://github.com/devinus/markdown.git", "d065dbcc4e242a85ca2516fdadd0082712871fd8", []},
15-
"meeseeks_html5ever": {:hex, :meeseeks_html5ever, "0.14.3", "7827c6ce393d9f99dd0220c356fd66ee7101718037ec6f7f18d4bcba84ef1798", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.6.1", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "6b69573b97120fcc6e97045178ad085fd3ee10a5b49c1e9ebb8a28bd4a9c538b"},
15+
"meeseeks_html5ever": {:hex, :meeseeks_html5ever, "0.15.0", "f7bcc8ac84703ad49c4c4c53f568041c37788fcab93c8bea4e53f2c6cbb66c08", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8.2", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "7ed72d30bbad1a50cb513a261ab5210e93eb5a09d0bf6712ea65f0d309cdf71b"},
1616
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"},
1717
"rustler": {:hex, :rustler, "0.22.2", "f92d6dba71bef6fe5f0d955649cb071127adc92f32a78890e8fa9939e59a1b41", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.5.2", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "56b129141e86d60a2d670af9a2b55a9071e10933ef593034565af77e84655118"},
18-
"rustler_precompiled": {:hex, :rustler_precompiled, "0.6.1", "160b545bce8bf9a3f1b436b2c10f53574036a0db628e40f393328cbbe593602f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "0dd269fa261c4e3df290b12031c575fff07a542749f7b0e8b744d72d66c43600"},
18+
"rustler_precompiled": {:hex, :rustler_precompiled, "0.8.2", "5f25cbe220a8fac3e7ad62e6f950fcdca5a5a5f8501835d2823e8c74bf4268d5", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "63d1bd5f8e23096d1ff851839923162096364bac8656a4a3c00d1fff8e83ee0a"},
1919
"toml": {:hex, :toml, "0.5.2", "e471388a8726d1ce51a6b32f864b8228a1eb8edc907a0edf2bb50eab9321b526", [:mix], [], "hexpm", "f1e3dabef71fb510d015fad18c0e05e7c57281001141504c6b69d94e99750a07"},
2020
}

0 commit comments

Comments
 (0)