class Mustermann::Shell
Matches strings that are identical to the pattern.
@example
Mustermann.new('/*.*', type: :shell) === '/bar' # => false
@see Mustermann::Pattern @see file:README.md#shell Syntax description in the README
Public Class Methods
new(string, **options)
click to toggle source
@param (see Mustermann::Pattern#initialize) @return (see Mustermann::Pattern#initialize) @see (see Mustermann::Pattern#initialize)
Calls superclass method
# File lib/mustermann/shell.rb, line 34 def initialize(string, **options) @flags = File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB super(string, **options) end
Public Instance Methods
===(string)
click to toggle source
@param (see Mustermann::Pattern#===) @return (see Mustermann::Pattern#===) @see (see Mustermann::Pattern#===)
# File lib/mustermann/shell.rb, line 42 def ===(string) File.fnmatch? @string, unescape(string), @flags end
highlighter()
click to toggle source
@!visibility private @return [#highlight, nil]
highlighing logic for mustermann-visualizer, nil if mustermann-visualizer hasn't been loaded
# File lib/mustermann/shell.rb, line 22 def highlighter return unless defined? Mustermann::Visualizer::Highlighter @@highlighter ||= Mustermann::Visualizer::Highlighter.create do on('\\') { |matched| escaped(matched, scanner.getch) } on(/[\*\[\]]/, :special) on("{") { nested(:union, ?{, ?}, ?,) } end end
peek_size(string)
click to toggle source
@param (see Mustermann::Pattern#peek_size) @return (see Mustermann::Pattern#peek_size) @see (see Mustermann::Pattern#peek_size)
Calls superclass method
# File lib/mustermann/shell.rb, line 49 def peek_size(string) @peek_string ||= @string + "{**,/**,/**/*}" super if File.fnmatch? @peek_string, unescape(string), @flags end