class RegexGenerator::Target

Public Class Methods

new(target) click to toggle source

@param target [String, Integer, Float, Hash] target string or hash with

named targets
# File lib/regex_generator/target.rb, line 5
def initialize(target)
  @target = target
end

Public Instance Methods

escape(keys: false) click to toggle source

Escapes values

@option keys [true, false] returns Hash with escaped values when true @return [String, Array, Hash]

# File lib/regex_generator/target.rb, line 40
def escape(keys: false)
  return Regexp.escape to_s if kind_of? String
  return to_s.values.map { |v| Regexp.escape v } unless keys

  to_s.each_with_object({}) do |(key, value), result|
    result[key] = Regexp.escape value
  end
end
keys_equal?(other_target) click to toggle source

Compares keys (for strings always true)

@param other_target [Target] @ return [true, false]

# File lib/regex_generator/target.rb, line 53
def keys_equal?(other_target)
  return false unless to_s.class.eql?(other_target.to_s.class)

  kind_of?(Hash) ? to_s.keys.eql?(other_target.to_s.keys) : true
end
kind_of?(type) click to toggle source

Checks type of the target's string representation

@param type [Class] @return [true, false]

# File lib/regex_generator/target.rb, line 32
def kind_of?(type)
  to_s.kind_of? type
end
present?(text) click to toggle source

@param text [String] which should contains the target @return [true, false]

# File lib/regex_generator/target.rb, line 11
def present?(text)
  return to_s.values.all? { |t| text[t] } if kind_of? Hash

  !text[to_s].nil?
end
to_s() click to toggle source

Converts target to string (or values to strings if target is a Hash)

@return [String, Hash]

# File lib/regex_generator/target.rb, line 20
def to_s
  return @target.to_s unless @target.kind_of? Hash

  @target.each_with_object({}) do |(key, value), result|
    result[key] = value.to_s
  end
end