SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
電話番号の扱い方
の提案(仮)
鍋太郎
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
自己紹介
プログラマー✓
@nabetaro✓
http://about.me/nabetaro✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
自己紹介
Ruby歴
12年ほど✓
✓
好きなメソッド
each✓
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
電話番号の入力どうしてる?
こんなの?✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
これあかんやつ
ヤコブ・ニールセンに怒られる
「フォーマットは寛容なものに」✓
自由入力、自動フォーマット✓
https://u-site.jp/alertbox/slips
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
理想
自由な形式で書きたい✓
自動でフォーマットして欲しい✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
電話番号の形式
ITU-T の E.164
15桁✓
国番号(1-3桁)✓
残りで個別識別(国ごとに異なる)✓
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
日本の場合
例: 026-228-1234
国番号: 81
国内プレフィックス: 0
市外局番: 26
市内局番: 228
加入者番号: 1234
※市外・市内 合わせて5桁
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
ぶっちゃけ
ルール大杉✓
ライブラリ欲しい✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
ぶっちゃけ
ルール大杉✓
ライブラリ欲しい
あるよ
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phony
E164 International Phone
Number Handling
✓
このgemで世界中の電話番号
を扱うのが目標
クレイジー!!✓
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
使い方
メソッド4つ
Phony.normalize✓
Phony.format✓
Phony.plausible?✓
Phony.split✓
✓
基本的に国番号付きを扱う✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phony.normalize
Phony.normalize(number,
option = {})
正規化✓
Phony.normalize('+81 26 (228) 1234')
=> "81262281234"
Phony.normalize('026-228-1234', cc: '81')
=> "81262281234"
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phony.format
Phony.format(number,
options = {})
フォーマット(国番号付きを変換)✓
Phony.format('81262281234')
=> "+81-26-228-1234"
Phony.format('81262281234', format: :national)
=> "026-228-1234"
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phony.plausible?
Phony.plausible?(number,
options = {})
電話番号らしいか確認✓
Phony.plausible?('81 26-228-1234')
=> true
Phony.plausible?('026-228-1234')
=> false ん?
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phony.split
Phony.split(number)
分割(おそらく今までの処理の基盤)✓
Phony.split('81262281234')
=> ["81", "26", "228", "1234"]
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
その他
Phony[cc]
Phony['81']として、国を指定でき
る
✓
修正が必要?✓
Phony["81"].format('8012345634', :format => :national)
=> "080-1234-5634" 08012345634を指定できてもいいような…
Phony['81'].normalize('+1 555 123-4567890')
=> "15551234567890" 国番号付きならその値に
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phonyの現状
国番号付きのデータの出し入れ✓
国内番号はビミョー✓
Pull Requestを送ろう
国内プレフィックスの扱い✓
✓
電話番号の扱い方の提案(仮) Powered by Rabbit 2.2.1
Phonyを直したら…
提案
電話番号を E.164 で保存✓
表示時にPhonyでフォーマット✓
理想は国内番号での出し入れ✓
✓
提案という名のNeed Help✓

Contenu connexe

Plus de Nozomu KURASAWA (8)

PGP/GPG キーサインパーティ 接触編
PGP/GPG キーサインパーティ 接触編PGP/GPG キーサインパーティ 接触編
PGP/GPG キーサインパーティ 接触編
 
aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話
 
OSMを楽しむ2012
OSMを楽しむ2012OSMを楽しむ2012
OSMを楽しむ2012
 
真・HTML help文字化け対策
真・HTML help文字化け対策真・HTML help文字化け対策
真・HTML help文字化け対策
 
おきらく翻訳
おきらく翻訳おきらく翻訳
おきらく翻訳
 
Heroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみたHeroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみた
 
PO ファイルで翻訳管理
PO ファイルで翻訳管理PO ファイルで翻訳管理
PO ファイルで翻訳管理
 
OpenStreetMapの紹介
OpenStreetMapの紹介OpenStreetMapの紹介
OpenStreetMapの紹介
 

電話番号の扱い方の提案(仮)