module UserInfoNormalizer

Constants

HYPHEN_REGEXP

ハイフンは'-'.ord.to_s(16) => ff0d に統一

VERSION

Public Class Methods

configuration() click to toggle source
# File lib/user_info_normalizer.rb, line 14
def configuration
  @configuration ||= UserInfoNormalizer::Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/user_info_normalizer.rb, line 10
def configure
  yield configuration
end

Public Instance Methods

normalize_address() click to toggle source
# File lib/user_info_normalizer.rb, line 30
def normalize_address
  # 数字の前後で長音などはありえないのでハイフンに直す, 数字も全角に
  self.tr('0-9', '0-9')
      .gsub(/([0-9])(#{UserInfoNormalizer::HYPHEN_REGEXP})+/, '\1-')
      .squeeze('-')
      .strip
end
normalize_name_kana() click to toggle source
# File lib/user_info_normalizer.rb, line 20
def normalize_name_kana
  case UserInfoNormalizer::configuration.name_kana_form
  when 'ピティナ タロウ'
    self.tr(' ', ' ').squeeze(' ').to_katakana
  else
    # default: 'ピティナ タロウ'
    self.tr(' ', ' ').squeeze(' ').to_hankaku_katakana
  end.strip
end
normalize_tel() click to toggle source
# File lib/user_info_normalizer.rb, line 64
def normalize_tel
  case UserInfoNormalizer::configuration.tel_form
  when '012-3456-7890'
    self.tr('0-9', '0-9').tr(' ', ' ')
              .gsub(/#{UserInfoNormalizer::HYPHEN_REGEXP}/, '-')
              .squeeze('-')
              .delete("^0-9|-| ").strip.tr(' ', '-')
  else
    # default: '123-4567'
    self.tr('0-9', '0-9').tr(' ', ' ')
              .gsub(/#{UserInfoNormalizer::HYPHEN_REGEXP}/, '-')
              .squeeze('-')
              .delete("^0-9|-| ").strip.tr(' ', '-')
  end
end
normalize_zip_code() click to toggle source
# File lib/user_info_normalizer.rb, line 38
def normalize_zip_code
  case UserInfoNormalizer::configuration.zip_code_form
  when '123-4567'
    str = self.tr('0-9', '0-9')
        .gsub(/#{UserInfoNormalizer::HYPHEN_REGEXP}/, '-')
        .squeeze('-')
        .delete("^0-9|-")
    if str.length == 7 && str =~ /\A[0-9]+\z/
      # 数字7文字だった場合
      str.insert(3, '-')
    end
    str
  else
    # default: '123-4567'
    str = self.tr('0-9', '0-9')
        .gsub(/#{UserInfoNormalizer::HYPHEN_REGEXP}/, '-')
        .squeeze('-')
        .delete("^0-9|-")
    if str.length == 7 && str =~ /\A[0-9]+\z/
      # 全角数字7文字だった場合
      str.insert(3, '-')
    end
    str
  end.strip
end
to_hankaku_katakana() click to toggle source

ひらがな、カタカナ混じりのものをすべて半角カナに変換

# File lib/user_info_normalizer.rb, line 89
def to_hankaku_katakana
  NKF.nkf('-w -Z4', to_katakana)
end
to_hiragana() click to toggle source
# File lib/user_info_normalizer.rb, line 80
def to_hiragana
  NKF.nkf('-w --hiragana', self)
end
to_katakana() click to toggle source
# File lib/user_info_normalizer.rb, line 84
def to_katakana
  NKF.nkf('-w --katakana', self)
end