Class: Strling::Core::Flags
- Inherits:
-
Object
- Object
- Strling::Core::Flags
- Defined in:
- lib/strling/core/nodes.rb
Overview
Container for regex flags/modifiers.
Flags control the behavior of pattern matching (case sensitivity, multiline mode, etc.). This class encapsulates all standard regex flags.
Instance Attribute Summary collapse
-
#dot_all ⇒ Boolean
Dot matches all characters including newlines.
-
#extended ⇒ Boolean
Extended/free-spacing mode (ignore whitespace).
-
#ignore_case ⇒ Boolean
Case-insensitive matching.
-
#multiline ⇒ Boolean
Multiline mode (^ and $ match line boundaries).
-
#unicode ⇒ Boolean
Unicode mode.
Class Method Summary collapse
-
.from_letters(letters) ⇒ Flags
Create Flags from flag letters.
Instance Method Summary collapse
-
#initialize(ignore_case: false, multiline: false, dot_all: false, unicode: false, extended: false) ⇒ Flags
constructor
A new instance of Flags.
-
#to_dict ⇒ Hash
Convert flags to hash representation.
Constructor Details
#initialize(ignore_case: false, multiline: false, dot_all: false, unicode: false, extended: false) ⇒ Flags
Returns a new instance of Flags.
42 43 44 45 46 47 48 |
# File 'lib/strling/core/nodes.rb', line 42 def initialize(ignore_case: false, multiline: false, dot_all: false, unicode: false, extended: false) @ignore_case = ignore_case @multiline = multiline @dot_all = dot_all @unicode = unicode @extended = extended end |
Instance Attribute Details
#dot_all ⇒ Boolean
Returns Dot matches all characters including newlines.
34 35 36 |
# File 'lib/strling/core/nodes.rb', line 34 def dot_all @dot_all end |
#extended ⇒ Boolean
Returns Extended/free-spacing mode (ignore whitespace).
40 41 42 |
# File 'lib/strling/core/nodes.rb', line 40 def extended @extended end |
#ignore_case ⇒ Boolean
Returns Case-insensitive matching.
28 29 30 |
# File 'lib/strling/core/nodes.rb', line 28 def ignore_case @ignore_case end |
#multiline ⇒ Boolean
Returns Multiline mode (^ and $ match line boundaries).
31 32 33 |
# File 'lib/strling/core/nodes.rb', line 31 def multiline @multiline end |
#unicode ⇒ Boolean
Returns Unicode mode.
37 38 39 |
# File 'lib/strling/core/nodes.rb', line 37 def unicode @unicode end |
Class Method Details
.from_letters(letters) ⇒ Flags
Create Flags from flag letters.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/strling/core/nodes.rb', line 67 def self.from_letters(letters) flags = new letters.gsub(/[,\s]/, '').each_char do |ch| case ch when 'i' flags.ignore_case = true when 'm' flags.multiline = true when 's' flags.dot_all = true when 'u' flags.unicode = true when 'x' flags.extended = true when '' # Empty character, skip else # Unknown flags are ignored at parser stage; may be warned later end end flags end |
Instance Method Details
#to_dict ⇒ Hash
Convert flags to hash representation.
53 54 55 56 57 58 59 60 61 |
# File 'lib/strling/core/nodes.rb', line 53 def to_dict { 'ignoreCase' => ignore_case, 'multiline' => multiline, 'dotAll' => dot_all, 'unicode' => unicode, 'extended' => extended } end |