class Regexy::Regexp
Attributes
internal_regexp[R]
Public Class Methods
new(regexp, *args)
click to toggle source
# File lib/regexy/regexp.rb, line 10 def initialize(regexp, *args) regexp = normalize_regexp(regexp, *args) @internal_regexp = ::Regexp.new(regexp, *args) end
Public Instance Methods
+(other)
click to toggle source
# File lib/regexy/regexp.rb, line 24 def + other other = ::Regexy::Regexp.new(other) first_regex = source.length > 2 ? source.sub(/\\z\s*\z/, '') : source second_regex = other.source.length > 2 ? other.source.sub(/\A\\A/, '') : other.source new_regexp = first_regex + second_regex new_options = options | other.options ::Regexy::Regexp.new(new_regexp, new_options) end
Also aliased as: and_then
bound(method = :both)
click to toggle source
# File lib/regexy/regexp.rb, line 35 def bound(method = :both) new_regexp = source method = method.to_sym if method == :left || method == :both new_regexp.prepend('\A') end if method == :right || method == :both new_regexp.concat('\z') end new_regexp = additional_bound(method, new_regexp) ::Regexy::Regexp.new(new_regexp, options) end
unbound(method = :both)
click to toggle source
# File lib/regexy/regexp.rb, line 48 def unbound(method = :both) new_regexp = source method = method.to_sym if method == :left || method == :both new_regexp.sub!(/\A\\A/, '') end if method == :right || method == :both new_regexp.sub!(/\\z\s*\z/, '') end new_regexp = additional_unbound(method, new_regexp) ::Regexy::Regexp.new(new_regexp, options) end
|(other)
click to toggle source
# File lib/regexy/regexp.rb, line 15 def | other other = ::Regexy::Regexp.new(other) new_regexp = "#{source}|#{other.source}" new_options = options | other.options ::Regexy::Regexp.new(new_regexp, new_options) end
Also aliased as: or
Protected Instance Methods
additional_bound(method, regex)
click to toggle source
# File lib/regexy/regexp.rb, line 71 def additional_bound(method, regex) # You can override this methods if your regular expression needs additional bound/unbound logic regex end
additional_unbound(method, regex)
click to toggle source
# File lib/regexy/regexp.rb, line 75 def additional_unbound(method, regex) regex end
normalize_regexp(regexp, *args)
click to toggle source
# File lib/regexy/regexp.rb, line 63 def normalize_regexp(regexp, *args) case regexp when ::Regexy::Regexp then regexp.internal_regexp when ::Regexp then args.any? ? regexp.source : regexp # allows to pass custom options to regexp else regexp end end