Skip to content

Commit e14f73b

Browse files
committed
Bump a whole bunch of stuff
1 parent fac3de2 commit e14f73b

File tree

10 files changed

+98
-74
lines changed

10 files changed

+98
-74
lines changed

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "daily"
7+
- package-ecosystem: "github-actions"
8+
directory: "/"
9+
schedule:
10+
interval: "daily"

.github/workflows/auto-merge.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Dependabot auto-merge
2+
on: pull_request
3+
4+
permissions:
5+
contents: write
6+
pull-requests: write
7+
8+
jobs:
9+
dependabot:
10+
runs-on: ubuntu-latest
11+
if: ${{ github.actor == 'dependabot[bot]' }}
12+
steps:
13+
- name: Dependabot metadata
14+
id: metadata
15+
uses: dependabot/[email protected]
16+
with:
17+
github-token: "${{ secrets.GITHUB_TOKEN }}"
18+
- name: Enable auto-merge for Dependabot PRs
19+
run: gh pr merge --auto --merge "$PR_URL"
20+
env:
21+
PR_URL: ${{github.event.pull_request.html_url}}
22+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

.github/workflows/main.yml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
name: Main
22
on:
33
- push
4-
- pull_request_target
4+
- pull_request
5+
56
jobs:
67
ci:
78
name: CI
@@ -19,18 +20,6 @@ jobs:
1920
ruby-version: '3.1'
2021

2122
- name: Test
22-
run: bundle exec rake test
23-
automerge:
24-
name: AutoMerge
25-
needs: ci
26-
runs-on: ubuntu-latest
27-
if: github.event_name == 'pull_request_target' && github.actor == 'dependabot[bot]'
28-
steps:
29-
- uses: actions/github-script@v3
30-
with:
31-
script: |
32-
github.pulls.merge({
33-
owner: context.payload.repository.owner.login,
34-
repo: context.payload.repository.name,
35-
pull_number: context.payload.pull_request.number
36-
})
23+
run: |
24+
bundle exec rake test
25+
bundle exec rake stree:check

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
66

77
## [Unreleased]
88

9+
## [0.3.0] - 2022-08-09
10+
11+
### Changed
12+
13+
- Dropped `json` as a dependency, doing all parsing in-gem.
14+
915
## [0.2.0] - 2022-05-13
1016

1117
### Changed

Gemfile.lock

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
PATH
22
remote: .
33
specs:
4-
syntax_tree-json (0.2.0)
5-
json
4+
syntax_tree-json (0.3.0)
65
prettier_print
76
syntax_tree (>= 2.0.1)
87

98
GEM
109
remote: https://rubygems.org/
1110
specs:
1211
docile (1.4.0)
13-
json (2.6.2)
1412
minitest (5.16.2)
1513
prettier_print (0.1.0)
1614
rake (13.0.6)

Rakefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22

33
require "bundler/gem_tasks"
44
require "rake/testtask"
5+
require "syntax_tree/rake_tasks"
56

67
Rake::TestTask.new(:test) do |t|
78
t.libs << "test"
89
t.libs << "lib"
910
t.test_files = FileList["test/**/*_test.rb"]
1011
end
1112

13+
SOURCE_FILES =
14+
FileList[%w[Gemfile Rakefile syntax_tree-json.gemspec lib/**/*.rb test/*.rb]]
15+
16+
SyntaxTree::Rake::CheckTask.new { |t| t.source_files = SOURCE_FILES }
17+
SyntaxTree::Rake::WriteTask.new { |t| t.source_files = SOURCE_FILES }
18+
1219
task default: :test

lib/syntax_tree/json/parser.rb

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,22 @@ def make_tokens
4646
buffer.gsub!(/\A\s+/, "")
4747

4848
until buffer.empty?
49-
tokens <<
50-
case buffer
51-
in /\A[\{\}\[\],:]/
52-
Token.new(type: $&.to_sym)
53-
in %r{\A-?(0|[1-9]\d*)(\.\d+)?([Ee][-+]?\d+)?}
54-
Token.new(type: :number, value: $&)
55-
in %r{\A"[^"\\\t\n\x00]*(?:\\[bfnrtu\\/"][^"\\]*)*"}
56-
Token.new(type: :string, value: $&)
57-
in /\Atrue/
58-
Token.new(type: :true)
59-
in /\Afalse/
60-
Token.new(type: :false)
61-
in /\Anull/
62-
Token.new(type: :null)
63-
else
64-
raise ParseError, "unexpected token: #{buffer[0]}"
65-
end
49+
tokens << case buffer
50+
in /\A[\{\}\[\],:]/
51+
Token.new(type: $&.to_sym)
52+
in /\A-?(0|[1-9]\d*)(\.\d+)?([Ee][-+]?\d+)?/
53+
Token.new(type: :number, value: $&)
54+
in %r{\A"[^"\\\t\n\x00]*(?:\\[bfnrtu\\/"][^"\\]*)*"}
55+
Token.new(type: :string, value: $&)
56+
in /\Atrue/
57+
Token.new(type: :true)
58+
in /\Afalse/
59+
Token.new(type: :false)
60+
in /\Anull/
61+
Token.new(type: :null)
62+
else
63+
raise ParseError, "unexpected token: #{buffer[0]}"
64+
end
6665

6766
buffer = $'.gsub(/\A\s+/, "")
6867
end
@@ -72,11 +71,11 @@ def make_tokens
7271

7372
def parse_array(tokens)
7473
values = []
75-
74+
7675
loop do
7776
value, tokens = parse_item(tokens)
7877
values << value
79-
78+
8079
case tokens
8180
in [Token[type: :"]"], *rest]
8281
return AST::Array.new(values: values), rest
@@ -87,15 +86,15 @@ def parse_array(tokens)
8786
end
8887
end
8988
end
90-
89+
9190
def parse_object(tokens)
9291
values = {}
93-
92+
9493
loop do
9594
if tokens in [{ type: :string, value: key }, { type: :":" }, *tokens]
9695
value, tokens = parse_item(tokens)
9796
values[key] = value
98-
97+
9998
case tokens
10099
in [{ type: :"}" }, *rest]
101100
return AST::Object.new(values: values), rest

lib/syntax_tree/json/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
module SyntaxTree
44
module JSON
5-
VERSION = "0.2.0"
5+
VERSION = "0.3.0"
66
end
77
end

syntax_tree-json.gemspec

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,26 @@
33
require_relative "lib/syntax_tree/json/version"
44

55
Gem::Specification.new do |spec|
6-
spec.name = "syntax_tree-json"
7-
spec.version = SyntaxTree::JSON::VERSION
8-
spec.authors = ["Kevin Newton"]
9-
spec.email = ["[email protected]"]
6+
spec.name = "syntax_tree-json"
7+
spec.version = SyntaxTree::JSON::VERSION
8+
spec.authors = ["Kevin Newton"]
9+
spec.email = ["[email protected]"]
1010

11-
spec.summary = "Syntax Tree support for JSON"
12-
spec.homepage = "https://github.com/ruby-syntax-tree/syntax_tree-json"
13-
spec.license = "MIT"
14-
spec.metadata = { "rubygems_mfa_required" => "true" }
11+
spec.summary = "Syntax Tree support for JSON"
12+
spec.homepage = "https://github.com/ruby-syntax-tree/syntax_tree-json"
13+
spec.license = "MIT"
14+
spec.metadata = { "rubygems_mfa_required" => "true" }
1515

16-
spec.files = Dir.chdir(__dir__) do
17-
`git ls-files -z`.split("\x0").reject do |f|
18-
f.match(%r{^(test|spec|features)/})
16+
spec.files =
17+
Dir.chdir(__dir__) do
18+
`git ls-files -z`.split("\x0")
19+
.reject { |f| f.match(%r{^(test|spec|features)/}) }
1920
end
20-
end
2121

22-
spec.bindir = "exe"
23-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22+
spec.bindir = "exe"
23+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
2424
spec.require_paths = %w[lib]
2525

26-
spec.add_dependency "json"
2726
spec.add_dependency "prettier_print"
2827
spec.add_dependency "syntax_tree", ">= 2.0.1"
2928

test/json_test.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,29 +58,29 @@ def test_literals
5858
assert_format("1\n")
5959
end
6060

61-
Dir["test/JSONTestSuite/test_parsing/y_*.json"].each do |filepath|
62-
define_method(:"test_#{filepath}") do
63-
parse(JSON.read(filepath))
64-
end
61+
pattern = "JSONTestSuite/test_parsing/y_*.json"
62+
Dir[File.expand_path(pattern, __dir__)].each do |filepath|
63+
define_method(:"test_#{filepath}") { parse(JSON.read(filepath)) }
6564
end
6665

6766
KNOWN_N_FAILURES = %w[
68-
test/JSONTestSuite/test_parsing/n_string_1_surrogate_then_escape_u.json
69-
test/JSONTestSuite/test_parsing/n_string_1_surrogate_then_escape_u1.json
70-
test/JSONTestSuite/test_parsing/n_string_1_surrogate_then_escape_u1x.json
71-
test/JSONTestSuite/test_parsing/n_string_1_surrogate_then_escape.json
72-
test/JSONTestSuite/test_parsing/n_string_incomplete_escaped_character.json
73-
test/JSONTestSuite/test_parsing/n_string_incomplete_surrogate_escape_invalid.json
74-
test/JSONTestSuite/test_parsing/n_string_incomplete_surrogate.json
75-
test/JSONTestSuite/test_parsing/n_string_invalid_unicode_escape.json
76-
test/JSONTestSuite/test_parsing/n_structure_100000_opening_arrays.json
77-
test/JSONTestSuite/test_parsing/n_structure_open_array_object.json
78-
test/JSONTestSuite/test_parsing/n_structure_whitespace_formfeed.json
67+
n_string_1_surrogate_then_escape_u.json
68+
n_string_1_surrogate_then_escape_u1.json
69+
n_string_1_surrogate_then_escape_u1x.json
70+
n_string_1_surrogate_then_escape.json
71+
n_string_incomplete_escaped_character.json
72+
n_string_incomplete_surrogate_escape_invalid.json
73+
n_string_incomplete_surrogate.json
74+
n_string_invalid_unicode_escape.json
75+
n_structure_100000_opening_arrays.json
76+
n_structure_open_array_object.json
77+
n_structure_whitespace_formfeed.json
7978
]
8079

81-
Dir["test/JSONTestSuite/test_parsing/n_*.json"].each do |filepath|
80+
pattern = "JSONTestSuite/test_parsing/n_*.json"
81+
Dir[File.expand_path(pattern, __dir__)].each do |filepath|
8282
define_method(:"test_#{filepath}") do
83-
skip if KNOWN_N_FAILURES.include?(filepath)
83+
skip if KNOWN_N_FAILURES.include?(File.basename(filepath))
8484

8585
assert_raises(JSON::Parser::ParseError) do
8686
JSON.parse(JSON.read(filepath))

0 commit comments

Comments
 (0)