#
# このソースコードは blanco Frameworkにより自動生成されました。
#

#
# 全角ひらがな→全角カタカナの文字列変換のサンプル。blancoStringConverterの実装には影響しません。
#
class SampleZenHiragana2KatakanaStringConverter

    #
    # 文字列置換定義。
    #
    STRING_CONVERT_DEF = [[ 'う゛', 'ヴ' ], [ 'ぁ', 'ァ' ], [ 'あ', 'ア' ], [ 'ぃ', 'ィ' ], [ 'い', 'イ' ], [ 'ぅ', 'ゥ' ], [ 'う', 'ウ' ], [ 'ぇ', 'ェ' ], [ 'え', 'エ' ], [ 'ぉ', 'ォ' ], [ 'お', 'オ' ], [ 'か', 'カ' ], [ 'が', 'ガ' ], [ 'き', 'キ' ], [ 'ぎ', 'ギ' ], [ 'く', 'ク' ], [ 'ぐ', 'グ' ], [ 'け', 'ケ' ], [ 'げ', 'ゲ' ], [ 'こ', 'コ' ], [ 'ご', 'ゴ' ], [ 'さ', 'サ' ], [ 'ざ', 'ザ' ], [ 'し', 'シ' ], [ 'じ', 'ジ' ], [ 'す', 'ス' ], [ 'ず', 'ズ' ], [ 'せ', 'セ' ], [ 'ぜ', 'ゼ' ], [ 'そ', 'ソ' ], [ 'ぞ', 'ゾ' ], [ 'た', 'タ' ], [ 'だ', 'ダ' ], [ 'ち', 'チ' ], [ 'ぢ', 'ヂ' ], [ 'っ', 'ッ' ], [ 'つ', 'ツ' ], [ 'づ', 'ヅ' ], [ 'て', 'テ' ], [ 'で', 'デ' ], [ 'と', 'ト' ], [ 'ど', 'ド' ], [ 'な', 'ナ' ], [ 'に', 'ニ' ], [ 'ぬ', 'ヌ' ], [ 'ね', 'ネ' ], [ 'の', 'ノ' ], [ 'は', 'ハ' ], [ 'ば', 'バ' ], [ 'ぱ', 'パ' ], [ 'ひ', 'ヒ' ], [ 'び', 'ビ' ], [ 'ぴ', 'ピ' ], [ 'ふ', 'フ' ], [ 'ぶ', 'ブ' ], [ 'ぷ', 'プ' ], [ 'へ', 'ヘ' ], [ 'べ', 'ベ' ], [ 'ぺ', 'ペ' ], [ 'ほ', 'ホ' ], [ 'ぼ', 'ボ' ], [ 'ぽ', 'ポ' ], [ 'ま', 'マ' ], [ 'み', 'ミ' ], [ 'む', 'ム' ], [ 'め', 'メ' ], [ 'も', 'モ' ], [ 'ゃ', 'ャ' ], [ 'や', 'ヤ' ], [ 'ゅ', 'ュ' ], [ 'ゆ', 'ユ' ], [ 'ょ', 'ョ' ], [ 'よ', 'ヨ' ], [ 'ら', 'ラ' ], [ 'り', 'リ' ], [ 'る', 'ル' ], [ 'れ', 'レ' ], [ 'ろ', 'ロ' ], [ 'ゎ', 'ヮ' ], [ 'わ', 'ワ' ], [ 'ゐ', 'ヰ' ], [ 'ゑ', 'ヱ' ], [ 'を', 'ヲ' ], [ 'ん', 'ン' ] ]

    #
    # 文字列変換定義に従い、文字列を変換します。
    #
    # param argCheck 変換対象の文字列。
    # return 文字列変換定義にしたがって変換された文字列。変換定義にひとつも合致しない場合には元の文字列が戻ります。
    #
    def convert(argCheck)
        if argCheck.nil?
            raise ArgumentError, "メソッド[convert]のパラメータ[argCheck]にnilが与えられました。しかし、このパラメータにnilを与えることはできません"
        end

        wrkString = ''
        index = 0
        while index < argCheck.length()
            look = argCheck.slice(index, argCheck.length()-index)
            isFound = false
            for indexDef in 0..STRING_CONVERT_DEF.length-1
                if look.index(STRING_CONVERT_DEF[indexDef][0]) == 0
                    wrkString += STRING_CONVERT_DEF[indexDef][1]
                    index += STRING_CONVERT_DEF[indexDef][0].length()
                    isFound = true
                    break
                end
            end
            if !isFound
                wrkString += look.slice(/./)
                index = index + look.slice(/./).length()
            end
        end

        return wrkString
    end
end
