All Category

TTYでクールなコンソールアプリを作ろう

2017-10-03





みんなー、雑にゲーム作って遊んでるー!? (ゝω・)v
今日はrubyでCLI(CUI)、つまりコンソール上で操作するためのUIを簡単に実装できるgemのTTYについて紹介しよう。同様のことをしてくれるgemは他にもcursesやthorなどがあるがTTYは最も様々な機能が充実している。つよい。

TTYが提供するものは


yes/no、複数選択肢の入力UI
Pager、unixのlessのように長文を表示するUI
プログレスバーの表示
表示する文字列の装飾(前景色/背景色/bold...)
テーブル表示(mysqlのコンソール出力のような)


などなど。上記は代表的なものだけを...

初心者向け本格的なrubyバッチの書き方

2017-10-03



概要

みんなー、雑にバッチ書いて遊んでるー!? (ゝω・)v
ところでそういったバッチやスクリプトはみんなの好意によって公開してもらっているけど、その大半は走り書きで実際に業務で書くような書き方ではないよね。当然だけど。

だから今日は簡単なバッチを、少し丁寧に書いてみたい。業務レベルではない趣味エンジニアの参考になれば嬉しい。みんなが知っているもっと良い書き方をコメントで教えてくれるともっと嬉しい!

バッチの内容

今回書くのは本当にとっても簡単なバッチだ。 毎朝ネコの画像を見たくない? 見たいよね!
そこで猫の画像urlをAPIで取得してslackの特定チャンネルへ投稿する。これ...

スニペットの実行結果を投稿するSlackBot

2017-10-03



はじめに



みんなー、雑にプログラミング問題を解いて遊んでるー!? (ゝω・)v
今日は私用チームに作ったSlackボットについて解説させてくれ。

その名もRubyEvalBot、名前の通りSlackへrubyのスニペットが投稿された際にそれを(ほぼ)安全に評価して標準出力を答えてくれる便利な奴だ。

ちょっとしたコードに言及したい時や仲間が投げつけて来たプログラミング問題へ解答を叩き付けたい時に、コードを投稿したらそれがどういう結果になるのかを出してくれれば便利だよね? それをやってくれるんだ。

はい、GitHubはこっちだよー。
https://github.com/owlw...

Chapter.03 変数

2017-10-02



ルビィの奇妙な変数

早速だがこんなコードを実行してみよう。どんな結果になるかな?

cat = 'にゃーん'
animal = cat
animal.slice!(1..-1) # Strig#slice!は文字列の指定位置を削除する
puts cat
# => "に"



んん? これはどういうことだろう。変数animalは変数catをコピーして新しく作ったのに、animalの中身が変更されるとcatまで変わってしまった!

説明しよう。よく変数はデータを入れる箱だとか説明される。聞いたことがあるよね。それはわかりやすくした例えた、少し不正確だし概念だけの話だ。

ここで...

Chapter.02 メソッドを継ぐ

2017-10-02



クラスの継承

前回はクラスとインスタンスの話をした。覚えているかな? クラスがメソッドという振る舞いの情報を持ち、インスタンスが状態の情報を持つというのが要点だ。

今回の話題は「継承」について。オブジェクト指向プログラミングでは非常に重要な概念となる。何故なら継承がコードの再利用をしやすくするからだ。

では、継承とは一体なんなのか。よく言われる説明では既存のクラスを元にして構造や振る舞いを共有した別のクラスを作るということだ。

ここでは、ちょっと違う表現もしてみよう。継承とは、あるクラスが持つ振る舞いの情報を別のクラスから参照することだとも言える。
(ややこしくなるから詳しい話は...