Ruby/Web

RailsでWeb開発を始めたエンジニア見習いに対して多くの人がこんなことを言う。 「SQLを理解しろ」「HTTPを学べ」「誰かこいつらにWeb技術の基礎を教えろ」 。なら自分がそういう記事を頑張って書こう。誰かって自分さ。

Chapter.10 Webアプリを作る

2017-10-03



ようやくWebアプリ編に突入だ! RubyでHttpサーバを簡単に構築出来る標準ライブラリ、Webrickを使ってWebアプリを作ってみよう。さっそくコードから見ていくぞ、論ずるよりも書くが易しだ。

require 'webrick'

# WEBrick::HTTPServerクラスのインスタンスを生成する
server = WEBrick::HTTPServer.new({:Port => 3000})

# HTTPServerオブジェクトにmount_procメソッドでRouteを定義する
server.mount_proc('/teapot') do |req, r...

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まで変わってしまった!

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

ここで...