ruby_wasm 2.6.2-x86_64-darwin → 2.7.1-x86_64-darwin

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.
data/package.json CHANGED
@@ -5,9 +5,11 @@
5
5
  "packages/npm-packages/*"
6
6
  ],
7
7
  "devDependencies": {
8
- "@playwright/test": "^1.44.1",
8
+ "@bytecodealliance/jco": "1.4.4",
9
+ "@playwright/test": "^1.49.0",
10
+ "@rollup/plugin-node-resolve": "^15.3.0",
9
11
  "@rollup/plugin-json": "^6.1.0",
10
- "rollup": "^4.18.0",
11
- "@bytecodealliance/jco": "./vendor/jco"
12
+ "rollup": "^4.28.0",
13
+ "typedoc": "^0.27.2"
12
14
  }
13
15
  }
data/rakelib/check.rake CHANGED
@@ -41,8 +41,12 @@ namespace :check do
41
41
  )
42
42
  end
43
43
 
44
+ task bindgen_ts: :install_wit_bindgen do
45
+ sh "node", "packages/npm-packages/ruby-wasm-wasi/tools/component-ts-bindgen.mjs"
46
+ end
47
+
44
48
  desc "Check wit-bindgen'ed sources are up-to-date"
45
- task bindgen: %i[bindgen_c legacy_bindgen_c legacy_bindgen_js]
49
+ task bindgen: %i[bindgen_c bindgen_ts legacy_bindgen_c legacy_bindgen_js]
46
50
 
47
51
  task :type do
48
52
  sh "bundle exec steep check"
data/rakelib/ci.rake CHANGED
@@ -62,19 +62,21 @@ def rake_task_matrix
62
62
  end
63
63
  npm_entries =
64
64
  NPM_PACKAGES.map do |pkg|
65
+ package_json =
66
+ JSON.parse(
67
+ File.read("packages/npm-packages/#{pkg[:name]}/package.json")
68
+ )
65
69
  entry = {
66
70
  task: "npm:#{pkg[:name]}",
67
71
  prerelease: "npm:configure_prerelease",
68
72
  artifact: "packages/npm-packages/#{pkg[:name]}/#{pkg[:name]}-*.tgz",
69
73
  artifact_name: "npm-#{pkg[:name]}",
74
+ # Skip publishing packages with `"private": true`
75
+ should_publish: !package_json["private"],
70
76
  builder: pkg[:target],
71
77
  rubies_cache_key: npm_pkg_rubies_cache_key(pkg)
72
78
  }
73
79
  # Run tests only if the package has 'test' script
74
- package_json =
75
- JSON.parse(
76
- File.read("packages/npm-packages/#{pkg[:name]}/package.json")
77
- )
78
80
  if package_json["scripts"] && package_json["scripts"]["test"]
79
81
  entry[:test] = "npm:#{pkg[:name]}:check"
80
82
  end
@@ -95,7 +97,10 @@ end
95
97
 
96
98
  namespace :ci do
97
99
  task :rake_task_matrix do
98
- print JSON.generate(rake_task_matrix.flat_map { |_, entries| entries })
100
+ content = JSON.generate(rake_task_matrix.flat_map { |_, entries| entries })
101
+ output = "ci_matrix.json"
102
+ File.write("#{output}", content)
103
+ puts "Created \"#{output}\""
99
104
  end
100
105
 
101
106
  task :pin_build_manifest do
@@ -139,6 +144,7 @@ namespace :ci do
139
144
  .map { |entry| "release/#{entry[:artifact_name]}/*" }
140
145
  File.open("release/note.md", "w") { |f| f.print release_note }
141
146
  matrix[:npm].each do |task|
147
+ next unless task[:should_publish]
142
148
  artifact = task[:artifact_name]
143
149
  tarball = Dir.glob("release/#{artifact}/*")
144
150
  next if tarball.empty?
data/rakelib/doc.rake CHANGED
@@ -12,18 +12,15 @@ RDoc::Task.new do |doc|
12
12
  ]
13
13
  end
14
14
 
15
- namespace :doc do
16
- desc "Update docs/api/javascript.md"
17
- task :api_js do
18
- sh "npx",
19
- "documentation",
20
- "readme",
21
- "--readme-file",
22
- "./packages/npm-packages/ruby-wasm-wasi/README.md",
23
- "--section",
24
- "API",
25
- "--markdown-toc",
26
- "false",
27
- "./packages/npm-packages/ruby-wasm-wasi/dist/esm/index.js"
28
- end
15
+ desc "Generate TypeScript documentation"
16
+ task :typedoc do
17
+ sh "npm install"
18
+ mkdir_p "html/npm/@ruby/wasm-wasi"
19
+ sh "npx typedoc --tsconfig packages/npm-packages/ruby-wasm-wasi/tsconfig.esm.json packages/npm-packages/ruby-wasm-wasi/src/index.ts --sort source-order --out html/npm/@ruby/wasm-wasi"
20
+ end
21
+
22
+ desc "Generate documentation site"
23
+ task :doc do
24
+ Rake::Task["rdoc"].invoke
25
+ Rake::Task["typedoc"].invoke
29
26
  end
@@ -11,8 +11,6 @@ def npm_pkg_build_command(pkg)
11
11
  # Skip if the package does not require building ruby
12
12
  return nil unless pkg[:ruby_version] && pkg[:target]
13
13
  [
14
- "bundle",
15
- "exec",
16
14
  exe_rbwasm,
17
15
  "build",
18
16
  "--ruby-version",
@@ -25,6 +23,8 @@ def npm_pkg_build_command(pkg)
25
23
  end
26
24
 
27
25
  def npm_pkg_rubies_cache_key(pkg)
26
+ vendor_gem_cache(pkg)
27
+
28
28
  build_command = npm_pkg_build_command(pkg)
29
29
  return nil unless build_command
30
30
  require "open3"
@@ -39,6 +39,96 @@ def npm_pkg_rubies_cache_key(pkg)
39
39
  JSON.parse(stdout)["hexdigest"]
40
40
  end
41
41
 
42
+ def vendor_gem_cache(pkg)
43
+ return unless pkg[:gemfile]
44
+ pkg_dir = File.dirname(pkg[:gemfile])
45
+ pkg_dir = File.expand_path(pkg_dir)
46
+ vendor_cache_dir = File.join(pkg_dir, "vendor", "cache")
47
+ mkdir_p vendor_cache_dir
48
+ require_relative "../packages/gems/js/lib/js/version"
49
+ sh "gem", "-C", "packages/gems/js", "build", "-o",
50
+ File.join(vendor_cache_dir, "js-#{JS::VERSION}.gem")
51
+ JS::VERSION
52
+ end
53
+
54
+ def build_ruby(pkg, base_dir, pkg_dir, wasi_sdk, clean: false)
55
+ build_command = npm_pkg_build_command(pkg)
56
+ # Skip if the package does not require building ruby
57
+ return unless build_command
58
+
59
+ js_gem_version = vendor_gem_cache(pkg)
60
+
61
+ env = {
62
+ # Share ./build and ./rubies in the same workspace
63
+ "RUBY_WASM_ROOT" => base_dir
64
+ }
65
+ cwd = base_dir
66
+ if gemfile_path = pkg[:gemfile]
67
+ cwd = File.dirname(gemfile_path)
68
+ else
69
+ # Explicitly disable rubygems integration since Bundler finds
70
+ # Gemfile in the repo root directory.
71
+ build_command.push "--disable-gems"
72
+ end
73
+ dist_dir = File.join(pkg_dir, "dist")
74
+ mkdir_p dist_dir
75
+ if pkg[:target].start_with?("wasm32-unknown-wasi")
76
+ if pkg[:enable_component_model]
77
+ component_path = File.join(pkg_dir, "tmp", "ruby.component.wasm")
78
+ FileUtils.mkdir_p(File.dirname(component_path))
79
+
80
+ # Remove js gem from the ./bundle directory to force Bundler to re-install it
81
+ rm_rf FileList[File.join(pkg_dir, "bundle", "**", "js-#{js_gem_version}")]
82
+
83
+ Dir.chdir(cwd) do
84
+ sh env.merge("RUBY_WASM_EXPERIMENTAL_DYNAMIC_LINKING" => "1"),
85
+ *build_command, *(clean ? ["--clean"] : []),
86
+ "-o", component_path
87
+ end
88
+ sh "npx", "jco", "transpile",
89
+ "--no-wasi-shim", "--instantiation", "--valid-lifting-optimization",
90
+ component_path, "-o", File.join(dist_dir, "component")
91
+ # ./component/package.json is required to be an ES module
92
+ File.write(File.join(dist_dir, "component", "package.json"), '{ "type": "module" }')
93
+ else
94
+ Dir.chdir(cwd) do
95
+ # uninstall js gem to re-install just-built js gem
96
+ sh "gem", "uninstall", "js", "-v", js_gem_version, "--force"
97
+ # install gems including js gem
98
+ sh "bundle", "install"
99
+
100
+ sh env,
101
+ "bundle", "exec",
102
+ *build_command,
103
+ "--no-stdlib", "--remake",
104
+ *(clean ? ["--clean"] : []),
105
+ "-o",
106
+ File.join(dist_dir, "ruby.wasm")
107
+ sh env,
108
+ "bundle", "exec",
109
+ *build_command,
110
+ "-o",
111
+ File.join(dist_dir, "ruby.debug+stdlib.wasm")
112
+ end
113
+
114
+ sh wasi_sdk.wasm_opt,
115
+ "--strip-debug",
116
+ File.join(dist_dir, "ruby.wasm"),
117
+ "-o",
118
+ File.join(dist_dir, "ruby.wasm")
119
+ sh wasi_sdk.wasm_opt,
120
+ "--strip-debug",
121
+ File.join(dist_dir, "ruby.debug+stdlib.wasm"),
122
+ "-o",
123
+ File.join(dist_dir, "ruby+stdlib.wasm")
124
+ end
125
+ elsif pkg[:target] == "wasm32-unknown-emscripten"
126
+ Dir.chdir(cwd || base_dir) do
127
+ sh env, *build_command, "-o", "/dev/null"
128
+ end
129
+ end
130
+ end
131
+
42
132
  namespace :npm do
43
133
  NPM_PACKAGES.each do |pkg|
44
134
  base_dir = Dir.pwd
@@ -47,63 +137,7 @@ namespace :npm do
47
137
  namespace pkg[:name] do
48
138
  desc "Build ruby for npm package #{pkg[:name]}"
49
139
  task "ruby" do
50
- build_command = npm_pkg_build_command(pkg)
51
- # Skip if the package does not require building ruby
52
- next unless build_command
53
-
54
- env = {
55
- # Share ./build and ./rubies in the same workspace
56
- "RUBY_WASM_ROOT" => base_dir
57
- }
58
- cwd = nil
59
- if gemfile_path = pkg[:gemfile]
60
- cwd = File.dirname(gemfile_path)
61
- else
62
- # Explicitly disable rubygems integration since Bundler finds
63
- # Gemfile in the repo root directory.
64
- build_command.push "--disable-gems"
65
- end
66
- dist_dir = File.join(pkg_dir, "dist")
67
- mkdir_p dist_dir
68
- if pkg[:target].start_with?("wasm32-unknown-wasi")
69
- Dir.chdir(cwd || base_dir) do
70
- sh env,
71
- *build_command,
72
- "--no-stdlib",
73
- "-o",
74
- File.join(dist_dir, "ruby.wasm")
75
- sh env,
76
- *build_command,
77
- "-o",
78
- File.join(dist_dir, "ruby.debug+stdlib.wasm")
79
- if pkg[:enable_component_model]
80
- component_path = File.join(pkg_dir, "tmp", "ruby.component.wasm")
81
- FileUtils.mkdir_p(File.dirname(component_path))
82
-
83
- sh env.merge("RUBY_WASM_EXPERIMENTAL_DYNAMIC_LINKING" => "1"),
84
- *build_command, "-o", component_path
85
- sh "npx", "jco", "transpile",
86
- "--no-wasi-shim", "--instantiation", "--valid-lifting-optimization",
87
- component_path, "-o", File.join(dist_dir, "component")
88
- # ./component/package.json is required to be an ES module
89
- File.write(File.join(dist_dir, "component", "package.json"), '{ "type": "module" }')
90
- end
91
- end
92
- sh wasi_sdk.wasm_opt,
93
- "--strip-debug",
94
- File.join(dist_dir, "ruby.wasm"),
95
- "-o",
96
- File.join(dist_dir, "ruby.wasm")
97
- sh wasi_sdk.wasm_opt,
98
- "--strip-debug",
99
- File.join(dist_dir, "ruby.debug+stdlib.wasm"),
100
- "-o",
101
- File.join(dist_dir, "ruby+stdlib.wasm")
102
- elsif pkg[:target] == "wasm32-unknown-emscripten"
103
- Dir.chdir(cwd || base_dir) do
104
- sh env, *build_command, "-o", "/dev/null"
105
- end
106
- end
140
+ build_ruby(pkg, base_dir, pkg_dir, wasi_sdk)
107
141
  end
108
142
 
109
143
  desc "Build npm package #{pkg[:name]}"
@@ -111,6 +145,11 @@ namespace :npm do
111
145
  sh tools, "npm run build", chdir: pkg_dir
112
146
  end
113
147
 
148
+ desc "Clean and build npm package #{pkg[:name]}"
149
+ task "clean-build" do
150
+ build_ruby(pkg, base_dir, pkg_dir, wasi_sdk, clean: true)
151
+ end
152
+
114
153
  desc "Check npm package #{pkg[:name]}"
115
154
  task "check" do
116
155
  sh "npm test", chdir: pkg_dir
data/rakelib/version.rake CHANGED
@@ -36,5 +36,30 @@ task :bump_version, %i[version] do |t, args|
36
36
  # Update ./package-lock.json
37
37
  sh "npm install"
38
38
  # Update Gemfile.lock
39
- sh "BUNDLE_GEMFILE=packages/npm-packages/ruby-wasm-wasi/Gemfile bundle install"
39
+ NPM_PACKAGES.each do |pkg|
40
+ next unless pkg[:gemfile]
41
+ vendor_gem_cache(pkg)
42
+ sh "BUNDLE_GEMFILE=#{pkg[:gemfile]} bundle install"
43
+ end
44
+ end
45
+
46
+ def bump_dev_version_rb(version_rb)
47
+ version_rb_content = File.read(version_rb)
48
+ version_rb_content.sub!(/VERSION = "(.+)"$/) do
49
+ dev_version = $1.end_with?(".dev") ? $1 : $1 + ".dev"
50
+ "VERSION = \"#{dev_version}\""
51
+ end
52
+ File.write(version_rb, version_rb_content)
53
+ end
54
+
55
+ task :bump_dev_version do
56
+ bump_dev_version_rb("lib/ruby_wasm/version.rb")
57
+ bump_dev_version_rb("packages/gems/js/lib/js/version.rb")
58
+
59
+ # Update Gemfile.lock
60
+ NPM_PACKAGES.each do |pkg|
61
+ next unless pkg[:gemfile]
62
+ vendor_gem_cache(pkg)
63
+ sh "BUNDLE_GEMFILE=#{pkg[:gemfile]} bundle install"
64
+ end
40
65
  end
data/sbom.spdx.json ADDED
@@ -0,0 +1,114 @@
1
+ {
2
+ "spdxVersion": "SPDX-2.3",
3
+ "dataLicense": "CC0-1.0",
4
+ "SPDXID": "SPDXRef-DOCUMENT",
5
+ "name": "ruby.wasm-spdx",
6
+ "documentNamespace": "http://spdx.org/spdxdocs/ruby.wasm-spdx-01906291-792d-7385-b800-45753122d052",
7
+ "creationInfo": {
8
+ "created": "2024-06-29T14:00:00Z",
9
+ "comment": "This document only covers software packages used by WebAssembly form of Ruby interpreters distributed by ruby.wasm project. It does not cover those used by the build system for now.",
10
+ "creators": [
11
+ "Person: Yuta Saito"
12
+ ]
13
+ },
14
+ "documentDescribes": [
15
+ "SPDXRef-Package-ruby.wasm"
16
+ ],
17
+ "packages": [
18
+ {
19
+ "SPDXID": "SPDXRef-Package-ruby.wasm",
20
+ "name": "ruby.wasm",
21
+ "filesAnalyzed": false,
22
+ "licenseDeclared": "MIT",
23
+ "licenseConcluded": "MIT",
24
+ "downloadLocation": "git+http://github.com/ruby/ruby.wasm.git",
25
+ "copyrightText": "Copyright (c) 2021 Yuta Saito"
26
+ },
27
+ {
28
+ "SPDXID": "SPDXRef-Package-ruby",
29
+ "name": "ruby",
30
+ "filesAnalyzed": false,
31
+ "licenseDeclared": "BSD-2-Clause OR Ruby",
32
+ "licenseConcluded": "Ruby",
33
+ "downloadLocation": "https://www.ruby-lang.org/en/",
34
+ "copyrightText": "Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>."
35
+ },
36
+ {
37
+ "SPDXID": "SPDXRef-Package-libyaml",
38
+ "name": "libyaml",
39
+ "filesAnalyzed": false,
40
+ "licenseDeclared": "MIT",
41
+ "licenseConcluded": "MIT",
42
+ "downloadLocation": "git+https://github.com/yaml/libyaml.git",
43
+ "copyrightText": "Copyright (c) 2017-2020 Ingy döt Net\nCopyright (c) 2006-2016 Kirill Simonov"
44
+ },
45
+ {
46
+ "SPDXID": "SPDXRef-Package-zlib",
47
+ "name": "zlib",
48
+ "filesAnalyzed": false,
49
+ "downloadLocation": "git+https://github.com/madler/zlib.git",
50
+ "licenseConcluded": "Zlib",
51
+ "licenseDeclared": "Zlib",
52
+ "copyrightText": "Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler"
53
+ },
54
+ {
55
+ "SPDXID": "SPDXRef-Package-wasi-libc",
56
+ "name": "wasi-libc",
57
+ "filesAnalyzed": false,
58
+ "downloadLocation": "git+https://github.com/WebAssembly/wasi-libc.git",
59
+ "licenseConcluded": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT",
60
+ "licenseDeclared": "MIT",
61
+ "copyrightText": "NOASSERTION"
62
+ },
63
+ {
64
+ "SPDXID": "SPDXRef-Package-openssl",
65
+ "name": "openssl",
66
+ "filesAnalyzed": false,
67
+ "downloadLocation": "https://www.openssl.org",
68
+ "licenseConcluded": "Apache-2.0",
69
+ "licenseDeclared": "Apache-2.0",
70
+ "copyrightText": "Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved."
71
+ },
72
+ {
73
+ "SPDXID": "SPDXRef-Package-wasi-vfs",
74
+ "name": "wasi-vfs",
75
+ "filesAnalyzed": false,
76
+ "downloadLocation": "git+https://github.com/kateinoigakukun/wasi-vfs.git",
77
+ "licenseConcluded": "Apache-2.0 WITH LLVM-exception",
78
+ "licenseDeclared": "Apache-2.0 WITH LLVM-exception",
79
+ "copyrightText": "NOASSERTION"
80
+ }
81
+ ],
82
+ "relationships": [
83
+ {
84
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
85
+ "relatedSpdxElement": "SPDXRef-Package-ruby",
86
+ "relationshipType": "DEPENDS_ON"
87
+ },
88
+ {
89
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
90
+ "relatedSpdxElement": "SPDXRef-Package-libyaml",
91
+ "relationshipType": "DEPENDS_ON"
92
+ },
93
+ {
94
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
95
+ "relatedSpdxElement": "SPDXRef-Package-zlib",
96
+ "relationshipType": "DEPENDS_ON"
97
+ },
98
+ {
99
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
100
+ "relatedSpdxElement": "SPDXRef-Package-wasi-libc",
101
+ "relationshipType": "DEPENDS_ON"
102
+ },
103
+ {
104
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
105
+ "relatedSpdxElement": "SPDXRef-Package-openssl",
106
+ "relationshipType": "DEPENDS_ON"
107
+ },
108
+ {
109
+ "spdxElementId": "SPDXRef-Package-ruby.wasm",
110
+ "relatedSpdxElement": "SPDXRef-Package-wasi-vfs",
111
+ "relationshipType": "DEPENDS_ON"
112
+ }
113
+ ]
114
+ }
@@ -219,6 +219,7 @@ module RubyWasm
219
219
  def extinit_c_erb: -> String
220
220
  def baseruby_path: -> String
221
221
  def configure_args: (String build_triple, Toolchain toolchain) -> Array[String]
222
+ def rbconfig_rb: -> String?
222
223
  end
223
224
 
224
225
  class WitBindgen
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_wasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.2
4
+ version: 2.7.1
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Yuta Saito
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-29 00:00:00.000000000 Z
11
+ date: 2025-01-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby to WebAssembly toolkit. This gem takes Ruby code and Gemfile, and
14
14
  packages them with Ruby runtime into a WebAssembly binary.
@@ -37,6 +37,7 @@ files:
37
37
  - lib/ruby_wasm/3.1/ruby_wasm.bundle
38
38
  - lib/ruby_wasm/3.2/ruby_wasm.bundle
39
39
  - lib/ruby_wasm/3.3/ruby_wasm.bundle
40
+ - lib/ruby_wasm/3.4/ruby_wasm.bundle
40
41
  - lib/ruby_wasm/build.rb
41
42
  - lib/ruby_wasm/build/build_params.rb
42
43
  - lib/ruby_wasm/build/downloader.rb
@@ -74,6 +75,7 @@ files:
74
75
  - rakelib/gem.rake
75
76
  - rakelib/packaging.rake
76
77
  - rakelib/version.rake
78
+ - sbom.spdx.json
77
79
  - sig/open_uri.rbs
78
80
  - sig/ruby_wasm/build.rbs
79
81
  - sig/ruby_wasm/cli.rbs
@@ -81,9 +83,6 @@ files:
81
83
  - sig/ruby_wasm/feature_set.rbs
82
84
  - sig/ruby_wasm/packager.rbs
83
85
  - sig/ruby_wasm/util.rbs
84
- - tools/clang-format-diff.sh
85
- - tools/exe/rbminify
86
- - tools/lib/syntax_tree/minify_ruby.rb
87
86
  homepage: https://github.com/ruby/ruby.wasm
88
87
  licenses:
89
88
  - MIT
@@ -101,14 +100,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
100
  version: '3.1'
102
101
  - - "<"
103
102
  - !ruby/object:Gem::Version
104
- version: 3.4.dev
103
+ version: 3.5.dev
105
104
  required_rubygems_version: !ruby/object:Gem::Requirement
106
105
  requirements:
107
106
  - - ">="
108
107
  - !ruby/object:Gem::Version
109
108
  version: '0'
110
109
  requirements: []
111
- rubygems_version: 3.4.4
110
+ rubygems_version: 3.5.23
112
111
  signing_key:
113
112
  specification_version: 4
114
113
  summary: Ruby to WebAssembly toolkit
@@ -1,18 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -eo pipefail
4
-
5
- if [ -n "$1" ]; then
6
- BASE_BRANCH="$1"
7
- elif [ -n "$GITHUB_EVENT_BEFORE" ] && [ "push" = "$GITHUB_EVENT_NAME" ]; then
8
- BASE_BRANCH="$GITHUB_EVENT_BEFORE"
9
- elif [ -n "$GITHUB_BASE_REF" ]; then
10
- BASE_BRANCH="origin/$GITHUB_BASE_REF"
11
- else
12
- BASE_BRANCH="@{upstream}"
13
- fi
14
-
15
- MERGE_BASE=$(git merge-base $BASE_BRANCH HEAD)
16
-
17
- git diff -U0 --no-color $MERGE_BASE -- '*.c' '*.h' | clang-format-diff -i -p1
18
- exit $?
data/tools/exe/rbminify DELETED
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH << File.join(File.dirname(__FILE__), "../lib")
4
-
5
- require "syntax_tree"
6
- require "syntax_tree/cli"
7
- require "syntax_tree/minify_ruby"
8
-
9
- # Override the default formatter with our own.
10
- SyntaxTree.register_handler(".rb", SyntaxTree::MinifyRuby)
11
-
12
- exit(SyntaxTree::CLI.run(ARGV))
@@ -1,63 +0,0 @@
1
- require "syntax_tree"
2
-
3
- module SyntaxTree
4
- module MinifyRuby
5
-
6
- # This is a required API for syntax tree which just delegates to SyntaxTree.parse.
7
- def self.parse(source)
8
- ::SyntaxTree.parse(source)
9
- end
10
-
11
- # This is the main entrypoint for the formatter. It parses the source,
12
- # builds a formatter, then prints the result.
13
- def self.format(source, _maxwidth = nil)
14
- formatter = Formatter.new(source)
15
- program = parse(source)
16
- CommentStrippingVisitor.new.visit(program)
17
- program.format(formatter)
18
-
19
- formatter.flush
20
- formatter.output.join
21
- end
22
-
23
- # This is a required API for syntax tree which just delegates to SyntaxTree.read.
24
- def self.read(filepath)
25
- ::SyntaxTree.read(filepath)
26
- end
27
-
28
- class CommentStrippingVisitor < SyntaxTree::Visitor
29
- def visit(node)
30
- if node and node.comments.any?
31
- node.comments.clear
32
- end
33
- super(node)
34
- end
35
-
36
- def visit_statements(node)
37
- node.body.delete_if { _1.is_a?(SyntaxTree::Comment) }
38
- super(node)
39
- end
40
- end
41
-
42
- class Formatter < SyntaxTree::Formatter
43
- def initialize(source)
44
- super(source, [], Float::INFINITY) do |n|
45
- # This block, called `genspace`, is used to generate indentation for `n` depth.
46
- ""
47
- end
48
- end
49
-
50
- def breakable(
51
- separator = " ",
52
- _width = separator.length,
53
- indent: nil,
54
- force: nil
55
- )
56
- # Don't break when already broken
57
- return if target.last.is_a?(PrettierPrint::BreakParent)
58
- return if not force and separator == ""
59
- super(separator, _width, indent: indent, force: force)
60
- end
61
- end
62
- end
63
- end