autocorrect-rb 2.1.2.beta1-arm64-darwin → 2.1.2.beta4-arm64-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.
- checksums.yaml +4 -4
- data/Rakefile +11 -5
- data/ext/autocorrect/Cargo.toml +13 -0
- data/ext/autocorrect/extconf.rb +1 -1
- data/ext/autocorrect/src/lib.rs +125 -0
- data/lib/{2.7 → autocorrect/2.7}/autocorrect.bundle +0 -0
- data/lib/{3.0 → autocorrect/3.0}/autocorrect.bundle +0 -0
- data/lib/{3.1 → autocorrect/3.1}/autocorrect.bundle +0 -0
- data/lib/autocorrect-rb.rb +0 -5
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49f2cc6ec1cacd4ae9f78c8eb49eb79e6f601ea61ef9bb3f92bfefbb19157720
|
4
|
+
data.tar.gz: 04b62477401cfe22a1a7679f30a8787273b449f53296d2804bc7c9ce49a5104b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7a82ee2c926636b218df74b271bb83c458410e2decbade5eefb90726abd20d1de7b95ecc9c429a71d1f106a75fe3ab0cc70e05fef287f4aead9cbd77ee60cc6
|
7
|
+
data.tar.gz: 7468ce5e0a0733d05b234db4b7db769be1a889839d33b9a51edd3eb85b3146235690c2ed7dffc6ad0661bc2e9695b9fb5b3b99ca3b439dfc7161c2c873ffff16
|
data/Rakefile
CHANGED
@@ -7,6 +7,7 @@ rescue LoadError
|
|
7
7
|
end
|
8
8
|
|
9
9
|
require "bundler/gem_tasks"
|
10
|
+
require "rubygems/package_task"
|
10
11
|
require "rake/testtask"
|
11
12
|
require "rake/extensiontask"
|
12
13
|
require "bundler"
|
@@ -19,16 +20,22 @@ CROSS_PLATFORMS = %w[
|
|
19
20
|
x86_64-linux
|
20
21
|
]
|
21
22
|
|
22
|
-
spec = Bundler.load_gemspec("autocorrect-rb.gemspec")
|
23
|
-
|
24
23
|
Rake::TestTask.new(:test) do |t|
|
25
24
|
t.libs << "test"
|
26
25
|
t.libs << "lib"
|
27
26
|
t.test_files = FileList["test/**/*_test.rb"]
|
28
27
|
end
|
29
28
|
|
29
|
+
spec = Bundler.load_gemspec("autocorrect-rb.gemspec")
|
30
|
+
|
31
|
+
# Make a autocorrect-rb-0.0.0.gem
|
32
|
+
# Disable release gem for platform: ruby, because autocorrect rust source build is complex.
|
33
|
+
# Gem::PackageTask.new(spec).define
|
34
|
+
|
35
|
+
# Make a native gem, eg. autocorrect-rb-0.0.0-x86_64-linux.gem
|
30
36
|
Rake::ExtensionTask.new("autocorrect", spec) do |ext|
|
31
|
-
#
|
37
|
+
# Compile output autocorrect.so into lib/autocorrect/autocorrect.so
|
38
|
+
ext.lib_dir = "lib/autocorrect"
|
32
39
|
ext.source_pattern = "*.{rs,toml}"
|
33
40
|
ext.cross_compile = true
|
34
41
|
ext.cross_platform = CROSS_PLATFORMS
|
@@ -65,6 +72,5 @@ task :bench do
|
|
65
72
|
end
|
66
73
|
end
|
67
74
|
|
68
|
-
task build: :compile
|
69
75
|
task test: :compile
|
70
|
-
task default: %i[
|
76
|
+
task default: %i[test]
|
@@ -0,0 +1,13 @@
|
|
1
|
+
[package]
|
2
|
+
edition = "2021"
|
3
|
+
name = "autocorrect-rb"
|
4
|
+
version = "2.1.1"
|
5
|
+
|
6
|
+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
7
|
+
[lib]
|
8
|
+
crate-type = ["cdylib"]
|
9
|
+
name = "autocorrect"
|
10
|
+
|
11
|
+
[dependencies]
|
12
|
+
autocorrect = {path = "../../../autocorrect", version = ">=1.0.0"}
|
13
|
+
magnus = "0.3"
|
data/ext/autocorrect/extconf.rb
CHANGED
@@ -0,0 +1,125 @@
|
|
1
|
+
use magnus::{define_class, function, Error, Object};
|
2
|
+
|
3
|
+
#[derive(Debug, Clone)]
|
4
|
+
pub struct LineResult {
|
5
|
+
line: usize,
|
6
|
+
col: usize,
|
7
|
+
new: String,
|
8
|
+
old: String,
|
9
|
+
severity: usize,
|
10
|
+
}
|
11
|
+
|
12
|
+
impl LineResult {
|
13
|
+
pub fn line(&self) -> usize {
|
14
|
+
self.line
|
15
|
+
}
|
16
|
+
|
17
|
+
pub fn col(&self) -> usize {
|
18
|
+
self.col
|
19
|
+
}
|
20
|
+
|
21
|
+
pub fn get_new(&self) -> String {
|
22
|
+
self.new.clone()
|
23
|
+
}
|
24
|
+
|
25
|
+
pub fn old(&self) -> String {
|
26
|
+
self.old.clone()
|
27
|
+
}
|
28
|
+
|
29
|
+
pub fn severity(&self) -> usize {
|
30
|
+
self.severity
|
31
|
+
}
|
32
|
+
|
33
|
+
pub fn inspect(&self) -> String {
|
34
|
+
format!("{:?}", self)
|
35
|
+
}
|
36
|
+
|
37
|
+
pub fn to_hash(&self) -> Result<magnus::RHash, Error> {
|
38
|
+
let hash = magnus::RHash::new();
|
39
|
+
hash.aset("line", self.line())?;
|
40
|
+
hash.aset("col", self.col())?;
|
41
|
+
hash.aset("new", self.get_new())?;
|
42
|
+
hash.aset("old", self.old())?;
|
43
|
+
hash.aset("severity", self.severity())?;
|
44
|
+
Ok(hash)
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
#[derive(Debug, Clone)]
|
49
|
+
pub struct LintResult {
|
50
|
+
pub filepath: String,
|
51
|
+
pub lines: Vec<LineResult>,
|
52
|
+
pub error: String,
|
53
|
+
}
|
54
|
+
|
55
|
+
impl LintResult {
|
56
|
+
pub fn filepath(&self) -> String {
|
57
|
+
self.filepath.clone()
|
58
|
+
}
|
59
|
+
|
60
|
+
pub fn lines(&self) -> Vec<LineResult> {
|
61
|
+
self.lines.clone()
|
62
|
+
}
|
63
|
+
|
64
|
+
pub fn error(&self) -> String {
|
65
|
+
self.error.clone()
|
66
|
+
}
|
67
|
+
|
68
|
+
pub fn inspect(&self) -> String {
|
69
|
+
format!("{:?}", self)
|
70
|
+
}
|
71
|
+
|
72
|
+
pub fn to_hash(&self) -> Result<magnus::RHash, Error> {
|
73
|
+
let hash = magnus::RHash::new();
|
74
|
+
hash.aset("filepath", self.filepath())?;
|
75
|
+
hash.aset(
|
76
|
+
"lines",
|
77
|
+
self.lines()
|
78
|
+
.iter()
|
79
|
+
.map(|l| l.to_hash().unwrap())
|
80
|
+
.collect::<Vec<magnus::RHash>>(),
|
81
|
+
)?;
|
82
|
+
hash.aset("error", self.error())?;
|
83
|
+
Ok(hash)
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
pub fn format(input: String) -> String {
|
88
|
+
autocorrect::format(&input)
|
89
|
+
}
|
90
|
+
|
91
|
+
pub fn format_for(input: String, filename_or_ext: String) -> String {
|
92
|
+
autocorrect::format_for(&input, &filename_or_ext).out
|
93
|
+
}
|
94
|
+
|
95
|
+
pub fn lint_for(input: String, filename_or_ext: String) -> magnus::RHash {
|
96
|
+
let result = autocorrect::lint_for(&input, &filename_or_ext);
|
97
|
+
|
98
|
+
LintResult {
|
99
|
+
filepath: filename_or_ext,
|
100
|
+
lines: result
|
101
|
+
.lines
|
102
|
+
.iter()
|
103
|
+
.map(|l| LineResult {
|
104
|
+
line: l.line,
|
105
|
+
col: l.col,
|
106
|
+
new: l.new.clone(),
|
107
|
+
old: l.old.clone(),
|
108
|
+
severity: l.severity.clone() as usize,
|
109
|
+
})
|
110
|
+
.collect::<_>(),
|
111
|
+
error: result.error,
|
112
|
+
}
|
113
|
+
.to_hash()
|
114
|
+
.unwrap()
|
115
|
+
}
|
116
|
+
|
117
|
+
#[magnus::init(name = "autocorrect")]
|
118
|
+
fn init() -> Result<(), Error> {
|
119
|
+
let class = define_class("AutoCorrect", Default::default())?;
|
120
|
+
class.define_singleton_method("format", function!(format, 1))?;
|
121
|
+
class.define_singleton_method("format_for", function!(format_for, 2))?;
|
122
|
+
class.define_singleton_method("lint_for", function!(lint_for, 2))?;
|
123
|
+
|
124
|
+
Ok(())
|
125
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
data/lib/autocorrect-rb.rb
CHANGED
@@ -3,10 +3,5 @@ begin
|
|
3
3
|
ruby_version = /(\d+\.\d+)/.match(::RUBY_VERSION)
|
4
4
|
require_relative "autocorrect/#{ruby_version}/autocorrect"
|
5
5
|
rescue LoadError
|
6
|
-
# fall back to the extension compiled upon installation.
|
7
|
-
# use "require" instead of "require_relative" because non-native gems will place C extension files
|
8
|
-
# in Gem::BasicSpecification#extension_dir after compilation (during normal installation), which
|
9
|
-
# is in $LOAD_PATH but not necessarily relative to this file
|
10
|
-
# (see https://github.com/sparklemotion/nokogiri/issues/2300 for more)
|
11
6
|
require "autocorrect/autocorrect"
|
12
7
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autocorrect-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.2.
|
4
|
+
version: 2.1.2.beta4
|
5
5
|
platform: arm64-darwin
|
6
6
|
authors:
|
7
7
|
- Jason Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rb_sys
|
@@ -34,11 +34,13 @@ extra_rdoc_files: []
|
|
34
34
|
files:
|
35
35
|
- README.md
|
36
36
|
- Rakefile
|
37
|
+
- ext/autocorrect/Cargo.toml
|
37
38
|
- ext/autocorrect/extconf.rb
|
38
|
-
-
|
39
|
-
- lib/3.0/autocorrect.bundle
|
40
|
-
- lib/3.1/autocorrect.bundle
|
39
|
+
- ext/autocorrect/src/lib.rs
|
41
40
|
- lib/autocorrect-rb.rb
|
41
|
+
- lib/autocorrect/2.7/autocorrect.bundle
|
42
|
+
- lib/autocorrect/3.0/autocorrect.bundle
|
43
|
+
- lib/autocorrect/3.1/autocorrect.bundle
|
42
44
|
homepage: https://github.com/huacnlee/autocorrect
|
43
45
|
licenses:
|
44
46
|
- MIT
|