Class: Vernacular::RegexModifier
- Inherits:
-
Object
- Object
- Vernacular::RegexModifier
- Defined in:
- lib/vernacular/regex_modifier.rb
Overview
Represents a modification to Ruby source that should be injected into the require process that modifies the source via a regex pattern.
Direct Known Subclasses
Modifiers::DateSigil, Modifiers::NumberSigil, Modifiers::URISigil
Instance Attribute Summary collapse
-
#block ⇒ Object
readonly
Returns the value of attribute block.
-
#pattern ⇒ Object
readonly
Returns the value of attribute pattern.
-
#replacement ⇒ Object
readonly
Returns the value of attribute replacement.
Instance Method Summary collapse
- #components ⇒ Object
-
#initialize(pattern, replacement = nil, &block) ⇒ RegexModifier
constructor
A new instance of RegexModifier.
- #modify(source) ⇒ Object
Constructor Details
#initialize(pattern, replacement = nil, &block) ⇒ RegexModifier
Returns a new instance of RegexModifier.
9 10 11 12 13 |
# File 'lib/vernacular/regex_modifier.rb', line 9 def initialize(pattern, replacement = nil, &block) @pattern = pattern @replacement = replacement @block = block end |
Instance Attribute Details
#block ⇒ Object (readonly)
Returns the value of attribute block.
7 8 9 |
# File 'lib/vernacular/regex_modifier.rb', line 7 def block @block end |
#pattern ⇒ Object (readonly)
Returns the value of attribute pattern.
7 8 9 |
# File 'lib/vernacular/regex_modifier.rb', line 7 def pattern @pattern end |
#replacement ⇒ Object (readonly)
Returns the value of attribute replacement.
7 8 9 |
# File 'lib/vernacular/regex_modifier.rb', line 7 def replacement @replacement end |
Instance Method Details
#components ⇒ Object
23 24 25 |
# File 'lib/vernacular/regex_modifier.rb', line 23 def components [pattern, replacement] + (block ? block.source_location : []) end |
#modify(source) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/vernacular/regex_modifier.rb', line 15 def modify(source) if replacement source.gsub(pattern, replacement) else source.gsub(pattern, &block) end end |