gotagota日記

「面白きことは良きことなり」

Ruby

ruby でヒアドキュメントするさいに - つけると(・∀・)イイ!!

migration ファイルなどで SQL文を直接書きたいときにヒアドキュメントを使うというケースが考えられるけど、そのときには <<- のように - をつけるとシンタックスハイライトとかされたり色々便利。 こんな感じ。 . . . reversible do |dir| dir.up do execu…

『たのしいruby 第4版』第21章 Procクラス

第21章 Procクラス 模範解答はこちら (1) 問題 Array#collect のような動作をする my_collect メソッドを定義しろ、という問題です。 私的解答 def my_collect(obj, &block) ary = [] obj.each do |i| ary << block.call(i) end ary end ary = my_collect([1…

『たのしいruby 第4版』 第20章 TimeクラスとDateクラス

第20章 TimeクラスとDateクラス 模範解答はこちら (1) 問題 「"2013年5月30日午後8時17分50秒"」といったように、「年・月・日・時・分・秒」を使った時刻の文字列を Time オブジェクトに変換して返す jparsedate メソッドを定義しろ、という問題です。 私的…

『たのしいruby 第4版』第18章 FileクラスとDirクラス

第18章 FileクラスとDirクラス 模範解答はこちら (1) 問題 変数$:を使ってRubyが利用できるライブラリのファイル名を順に出力するメソッド print_libraries を定義しろ、という問題です。 私的解答 def print_libraries str = '' $:.each do |i| str << i + …

『たのしいruby 第4版』第17章 IOクラス

第17章 IOクラス 模範解答はこちら (1) 問題 テキストファイルからデータを読み込んで次の処理を行うスクリプトを作成しろ、という問題です。 私的解答 Twinkle, twinkle, little star, How I wonder what you are! Up above the world so high, Like a diam…

『たのしいruby 第4版』第16章 正規表現(Regexp)クラス

第16章 正規表現(Regexp)クラス 模範解答はこちら (1) 問題 「ローカルパート@ドメイン名」といった電子メールアドレス文字列から、ローカルパートを$1、ドメイン名を$2として取得する正規表現を作れ、という問題です。 私的解答 def getEMAddress(str) str …

『たのしいruby 第4版』第15章 ハッシュ(Hash)クラス

第15章 ハッシュ(Hash)クラス 模範解答はこちら (1) 問題 曜日を表す英語と日本語との対応を表すハッシュ wday を作成しろ、という問題です。 私的解答 wday = {:sunday => "日曜日", :monday => "月曜日", :tuesday => "火曜日", :wednesday => "水曜日", :…

『たのしいRuby 第4版』 第14章 文字列(String)クラス

第14章 文字列(String)クラス 模範解答はこちら (1) 問題 "Ruby is an object oriented programming language" という文字列に含まれる各単語を要素とする配列を作れ、という問題です。 私的解答 str = "Ruby is an object oriented programming language" a…

『たのしいRuby 第4版』 第13章 配列(Array)クラス

第13章 配列(Array)クラス 模範解答はこちら (1) 問題 1から100までの整数が昇順に並ぶ配列を作れ、という問題です。 私的解答 a = [] 100.times { |i| a << i + 1 } p a 模範解答にあるように to_a メソッドを使うのも簡単でいいですね。 (2)-1 問題 (1)の…

『たのしいRuby 第4版』第12章 数値(Numeric)クラス

第12章 数値(Numeric)クラス 模範解答はこちら (1) 問題 摂氏温度を華氏温度に変換する cels2fahr メソッドを定義しろ、という問題です。 私的解答 def cels2fahr(cels) fahr = (9.0 / 5.0) * cels + 32.0 fahr.to_f end 1.upto(100) do |i| puts cels2fahr(…

『たのしいRuby 第4版』やった

久しぶりのブログ更新であります。 前々から気になっていた『たのしいRuby』を読んでみました。 入門書という位置づけではありますが、深く読み込むと知っていた知識のさらに向こう側(?)みたいな情報もたくさんあって得ることが多かったです。 で、第3部か…

Haml使い方メモ

ドットインストールにてHamlを勉強したので自分用メモ。 Hamlとは HTML Abstraction Markup Language の略。 基本的な使い方としては、 %のあとにタグ -> 開始タグと終了タグが生成 インデントで入れ子構造になる rubyっぽい書き方で属性を指定 例 %html{:la…

「プログラミング入門 - Rubyを使って」 Lesson10

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 長らくお世話になったRuby課題もとうとう最後です。 感慨深い・・・。 最後のLesson10は「ブロックと手続きオブジェクト」についてです。 練習問題1 • おじいさんの時計 。…

「プログラミング入門 - Rubyを使って」 Lesson9

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 今回のRubyの学習はLesson9「クラス」です。 赤ちゃんドラゴンのプログラムはなんかたまごっちみたいな感じで楽しかったです。 では早速。 練習問題1 • 10億(One billion)…

「プログラミング入門 - Rubyを使って」 Lesson8

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 今回はLesson8の「メソッドの作り方」をやっていこうと思います。 練習問題1 • 上のenglishNumberを拡張してみましょう。 最初にthousand(千の桁)を導入してください。上の…

「プログラミング入門 - Rubyを使って」 Lesson7

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 引き続き上のサイトでRubyの学習です。 今回はLesson7の「配列とイテレータ」です。 練習問題1 • 好きな数だけ単語の入力をしてもらい(1行に1単語、最後はEnterだけの空行)…

「プログラミング入門 - Rubyを使って」 Lesson6

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 今回はLesson6の「制御構造」をやりました。 耳の遠いおばあちゃんプログラムがなかなかやっかいでした・・・。 うるう年のプログラムも苦戦した記憶しかありませんが、な…

「プログラミング入門 - Rubyを使って」 Lesson5

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 今回はLesson5の「メソッド(method)」についての練習問題をやりました。 練習問題1 • 「怒ったボス」のプログラムを書いてみましょう。 まず、無作法に何が望みか聞いてき…

「プログラミング入門 - Rubyを使って」 Lesson4

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama 今回はLesson2 ~ 3の練習課題がなかったのでLesson4の「数と文字列の変換」の練習問題をやりました。 練習問題1 • 最初に姓、次に名前を聞いて、最後にフルネームに対して…

「プログラミング入門 - Rubyを使って」 Lesson1

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama でやったRubyの練習問題をば。 今回は冒頭なのでだいぶ簡単でした。 練習問題 次の結果を表示するプログラムを書いてみましょう。 ・ 1年は何時間でしょうか? ・ 10年間は…

rbenvの使い方メモ

rbenvでよく使うコマンドなどを忘れた時用のためにメモ rubyのインストール $ rbenv install [入れたいバージョン] インストール可能なRubyのバージョン一覧の更新 $ brew upgrade ruby-build これはhomebrewでrbenvをいれた場合。 これを実行する前にhomebr…

Rubyの学習メモ

Rubyをdotinstallなどで学習したので自分用にメモ。 p三兄弟の違い print -> 終わった後に改行がない puts -> 改行あり p -> データ形式がわかるように表示 複数行のコメントの書き方 =begin コメント コメント =end "" と '' の違い "" は、 1 #{変数}で変…