1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class CharacterSet
module CoreExt
module StringExt
def character_set
CharacterSet.of_string(self)
end
{
count_by_character_set: :count_in,
covered_by_character_set?: :cover?,
delete_character_set: :delete_in,
delete_character_set!: :delete_in!,
keep_character_set: :keep_in,
keep_character_set!: :keep_in!,
scan_by_character_set: :scan,
uses_character_set?: :used_by?,
}.each do |string_method, set_method|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
def #{string_method}(arg)
if arg.instance_of?(Symbol)
CharacterSet.__send__(arg).#{set_method}(self)
else
arg.#{set_method}(self)
end
end
RUBY
end
end
end
end
::String.instance_eval { include CharacterSet::CoreExt::StringExt }
|