oxtree 0.1.0-x86_64-linux-gnu
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.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +37 -0
- data/THIRD_PARTY_NOTICES.md +1226 -0
- data/exe/oxtree +11 -0
- data/exe/x86_64-linux-gnu/oxtree +0 -0
- data/lib/oxtree/version.rb +9 -0
- data/lib/oxtree.rb +51 -0
- metadata +54 -0
data/exe/oxtree
ADDED
|
Binary file
|
data/lib/oxtree.rb
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "oxtree/version"
|
|
4
|
+
|
|
5
|
+
# Locates and runs the native `oxtree` binary. Platform gems ship it under
|
|
6
|
+
# `exe/<platform>/oxtree` (the layout tailwindcss-ruby uses); the plain `ruby`
|
|
7
|
+
# platform gem has no binary and explains why at run time.
|
|
8
|
+
module Oxtree
|
|
9
|
+
GEM_NAME = "oxtree"
|
|
10
|
+
EXE_DIR = File.expand_path("../exe", __dir__)
|
|
11
|
+
REPO_ROOT = File.expand_path("../../..", __dir__)
|
|
12
|
+
|
|
13
|
+
class ExecutableNotFound < StandardError; end
|
|
14
|
+
|
|
15
|
+
class << self
|
|
16
|
+
def executable
|
|
17
|
+
return ENV["OXTREE_BINARY"] if ENV["OXTREE_BINARY"] && !ENV["OXTREE_BINARY"].empty?
|
|
18
|
+
|
|
19
|
+
packaged_executable || development_executable || raise(ExecutableNotFound, not_found_message)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Every argument goes straight to the binary.
|
|
23
|
+
def exec(argv)
|
|
24
|
+
Kernel.exec(executable, *argv)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def packaged_executable
|
|
30
|
+
Dir.glob(File.join(EXE_DIR, "*", "oxtree")).find do |path|
|
|
31
|
+
platform = Gem::Platform.new(File.basename(File.dirname(path)))
|
|
32
|
+
Gem::Platform.match_gem?(platform, GEM_NAME)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# When the gem is used straight from a checkout (`gem "oxtree", path: ...`),
|
|
37
|
+
# fall back to the Cargo build output.
|
|
38
|
+
def development_executable
|
|
39
|
+
%w[release debug].map { |profile| File.join(REPO_ROOT, "target", profile, "oxtree") }
|
|
40
|
+
.find { |path| File.executable?(path) }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def not_found_message
|
|
44
|
+
<<~MSG
|
|
45
|
+
oxtree does not ship a prebuilt binary for #{Gem::Platform.local} (#{RUBY_PLATFORM}).
|
|
46
|
+
Supported platforms: #{Dir.children(EXE_DIR).select { |d| File.directory?(File.join(EXE_DIR, d)) }.join(", ").then { |s| s.empty? ? "none in this gem (see https://github.com/pocketflows/oxruby#releasing for those with prebuilt gems)" : s }}.
|
|
47
|
+
Set OXTREE_BINARY to the path of an oxtree binary built with `cargo build --release -p oxtree`.
|
|
48
|
+
MSG
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: oxtree
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: x86_64-linux-gnu
|
|
6
|
+
authors:
|
|
7
|
+
- Teddy Liu
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: |
|
|
13
|
+
oxtree formats Ruby and ERB exactly as syntax_tree 6.3.0
|
|
14
|
+
and w_syntax_tree-erb 0.12.0 do, but runs as a native
|
|
15
|
+
binary.
|
|
16
|
+
email:
|
|
17
|
+
- theodoretliu@gmail.com
|
|
18
|
+
executables:
|
|
19
|
+
- oxtree
|
|
20
|
+
extensions: []
|
|
21
|
+
extra_rdoc_files: []
|
|
22
|
+
files:
|
|
23
|
+
- LICENSE.txt
|
|
24
|
+
- README.md
|
|
25
|
+
- THIRD_PARTY_NOTICES.md
|
|
26
|
+
- exe/oxtree
|
|
27
|
+
- exe/x86_64-linux-gnu/oxtree
|
|
28
|
+
- lib/oxtree.rb
|
|
29
|
+
- lib/oxtree/version.rb
|
|
30
|
+
homepage: https://github.com/pocketflows/oxruby
|
|
31
|
+
licenses:
|
|
32
|
+
- MIT
|
|
33
|
+
metadata:
|
|
34
|
+
homepage_uri: https://github.com/pocketflows/oxruby
|
|
35
|
+
source_code_uri: https://github.com/pocketflows/oxruby
|
|
36
|
+
rubygems_mfa_required: 'true'
|
|
37
|
+
rdoc_options: []
|
|
38
|
+
require_paths:
|
|
39
|
+
- lib
|
|
40
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
41
|
+
requirements:
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '3.1'
|
|
45
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '0'
|
|
50
|
+
requirements: []
|
|
51
|
+
rubygems_version: 4.0.3
|
|
52
|
+
specification_version: 4
|
|
53
|
+
summary: A drop-in replacement for syntax_tree, rewritten in Rust on the Prism parser
|
|
54
|
+
test_files: []
|