Sha256: e3a4c4ee29ef56d6260ff3155e0aebeb3758b3c09204d044c07631bf118f0a0a
Contents?: true
Size: 1016 Bytes
Versions: 2
Compression:
Stored size: 1016 Bytes
Contents
require "faster_path/version" require 'pathname' require "ffi" module FasterPath # Spec to Pathname#absolute? def self.absolute?(pth) Rust.is_absolute(pth) end # Spec to Pathname#chop_basename # WARNING! Pathname#chop_basename in STDLIB doesn't handle blank strings correctly! # This implementation correctly handles blank strings just as Pathname had intended # to handle non-path strings. def self.chop_basename(pth) d,b = [Rust.dirname(pth), Rust.basename(pth)] if blank?(d) && blank?(b) nil else [d,b] end end def self.blank?(str) Rust.is_blank(str) end private module Rust extend FFI::Library ffi_lib 'target/release/libfaster_path.so' attach_function :is_absolute, [ :string ], :bool attach_function :is_blank, [ :string ], :bool attach_function :basename, [ :string ], :string attach_function :dirname, [ :string ], :string #attach_function :chop_basename, [ :string ], [:string] end private_constant :Rust end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
faster_path-0.0.3 | lib/faster_path.rb |
faster_path-0.0.2 | lib/faster_path.rb |