Skip to content

Commit 4b6c686

Browse files
committed
Dispatch kwargs from Ruby for better introspection
1 parent 2b8e9c7 commit 4b6c686

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

ext/fdr_native/ffi/src/lib.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,7 @@ fn fdr_search(ruby: &Ruby, args: &[Value]) -> Result<RArray, Error> {
201201
fn init(ruby: &Ruby) -> Result<(), Error> {
202202
let fdr_module = ruby.define_module("Fdr")?;
203203

204-
fdr_module.define_singleton_method("search", function!(fdr_search, -1))?;
205-
fdr_module.define_singleton_method("entries", function!(fdr_search, -1))?;
206-
fdr_module.define_singleton_method("scan", function!(fdr_search, -1))?;
204+
fdr_module.define_singleton_method("native_search", function!(fdr_search, -1))?;
207205

208206
Ok(())
209207
}

lib/fdr.rb

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,51 @@
22

33
require 'fdr/version'
44
require 'fdr/fdr_native'
5+
6+
# Fast directory recursion for Ruby using Rust
7+
module Fdr
8+
class << self
9+
def search(
10+
pattern: nil,
11+
paths: ['.'],
12+
hidden: false,
13+
no_ignore: false,
14+
case_sensitive: false,
15+
glob: false,
16+
full_path: false,
17+
follow: false,
18+
max_depth: nil,
19+
min_depth: nil,
20+
type: nil,
21+
extension: nil,
22+
exclude: [],
23+
min_size: nil,
24+
max_size: nil,
25+
changed_within: nil,
26+
changed_before: nil
27+
)
28+
native_search(
29+
pattern:,
30+
paths:,
31+
hidden:,
32+
no_ignore:,
33+
case_sensitive:,
34+
glob:,
35+
full_path:,
36+
follow:,
37+
max_depth:,
38+
min_depth:,
39+
type:,
40+
extension:,
41+
exclude:,
42+
min_size:,
43+
max_size:,
44+
changed_within:,
45+
changed_before:
46+
)
47+
end
48+
49+
alias entries search
50+
alias scan search
51+
end
52+
end

0 commit comments

Comments
 (0)