これはあなたの例を渡します
class StringWithIndifferentAccess
def initialize obj
@string = obj.to_s
end
def == (other)
@string == other.to_s
end
def include?(other)
@string.include? other.to_s
end
end
アップデート
だから私はもう一度質問を読み、すべての文字列メソッドに対して「正しく機能する」ために、method_missingを使用して、任意の記号を次のような文字列に変換できます。
class StringWithIndifferentAccess
def initialize obj
@string = obj.to_s
end
# Seems we have to override the == method because we get it from BasicObject
def == (other)
@string == other.to_s
end
def method_missing(method, *args, &block)
args.map! {|arg| arg.is_a?(Symbol) ? arg.to_s : arg }
if @string.respond_to?(method)
@string.send(method, *args, &block)
else
raise NoMethodError
end
end
end