Movatterモバイル変換


[0]ホーム

URL:


Tbpgr Blog

Organization Development Engineer tbpgr(てぃーびー) のブログ

はてなブックマーク数

Ruby | CLI | Play Well with Others | Provide a Pretty-Printing Option

この記事をはてなブックマークに追加

概要

書籍 Build Awesome Command-Line Applications in Ruby2

Play Well with Others

詳細

CLIアプリケーションは、他のアプリケーション向けの「機械的に読み取りやすいデータ」と
「人間が読みやすいデータ」の両面をサポートすることが重要です。

この両面をサポートする最も簡単な方法は、コマンドラインオプションの
スイッチかフラグで両方の出力を切り替えることです。

サンプル仕様

下記記事のサンプルの仕様をベースにします。年齢の表示部分のみを利用します。
Ruby |CLI | Be Easy to Use | Thorを利用した使いやすいCommand suitインターフェース
http://d.hatena.ne.jp/tbpg/20140526/1401109675

サンプルコード

require'csv'require'thor'require'pp'classPersonViewer <Thor  package_name"person_viewer"VERSION ="0.0.1"PERSONALS ='./personals.csv'  class_option:help,type::boolean,aliases:'-h',desc:'ヘルプを表示します'  class_option:version,type::boolean,desc:'バージョンを表示します'  desc"年齢を表示します","年齢を表示します"  option:pretty_print, {type::boolean,aliases:'-p',desc:"人間向けの出力フォーマットにする"}defageif options[:pretty_print]      read_csv.each { |row|puts"#{row[:firstname]}#{row[:lastname]}#{row[:age]}歳です" }else      read_csv.each { |row|puts row[:age] }endend  desc'バージョンを表示します','バージョンを表示します'defversion    putsVERSIONenddefself.banner(task, namespace =false, subcommand =true)superendprivatedefread_csvCSV.table(PERSONALS)endendPersonViewer.start(ARGV)

データ取得元csv

firstname,lastname,agekazuo,tanaka,34ken,sato,54ichiro,suzuki,45

出力

# p オプションなしでプログラム向けのフォーマットに$ ruby personal.rb age345445# p オプションで人間向けのフォーマットに$ ruby personal.rb age -pkazuo tanakaは34歳ですken satoは54歳ですichiro suzukiは45歳です
Search
Profile
id:tbpgid:tbpg

元エンジニア 人事です。
「成長と充実を生み出す環境を設計する」

ハラククリカタってなに?
転職透明化らぼナレッジベース
挫折論への招待ってなに?
セイチョウ・ジャーニーってなに?
てぃーびーとは?
注目記事
Categories
参加グループ
最近のコメント
    Podcast

    自分の内からでるモチベーション「内発的動機づけ」を支援するためのブログを開設しました。

    sp.8a【ゲスト: tbpgr】楽しくない7次受けSIer

    引用をストックしました

    引用するにはまずログインしてください

    引用をストックできませんでした。再度お試しください

    限定公開記事のため引用できません。

    読者です読者をやめる読者になる読者になる

    [8]ページ先頭

    ©2009-2025 Movatter.jp