yucatio@システムエンジニア

趣味で作ったものいろいろ

Ruby

JavaScript Ruby Pythonで文字列中に変数を展開できる機能の名前と書き方

こんにちは。JavaScriptとRubyとPythonが頭の中でごちゃごちゃになっているブログ主です。 JavaScriptとRubyとPythonの文字列中に変数を展開できる機能の名前と書き方が頭の中でごちゃごちゃです。 RubyなのにJavaScriptの記法で書いてしまい、なぜ思った通…

JavaScript Ruby Pythonの配列やキーバリュー要素を展開したり多重代入したりする操作の名前と記号

こんにちは。JavaScriptとRubyとPythonが頭の中でごちゃごちゃになっているブログ主です。 JavaScriptとRubyとPythonの配列とキーバリューオブジェクトが頭の中でごちゃごちゃです。ググろうとしても、「あの、アスタリスクつける操作、なんだっけ」となり、…

カレンダー作成問題の解答

前回に引き続き、こちらの記事を見てみて、面白そうな問題がいくつかあったので、プログラミング初心者ではないですが解きました。元記事では、解答を見ないで解くこととなっていましたが、ある程度自分で考えた後に他の人の解答を見ました。それでもオリジ…

連続した文字を抽出する正規表現とガラケー文字入力問題(応用)の解答

前回の記事の問題を解いている過程で、"連続した数字を取り出さなければ"と思い、凝った正規表現を作ってしまったので、それを使える問題を作成しました。 ★前回の記事 yucatio.hatenablog.com こちらの記事のガラケー文字入力問題の応用編を作成しました。 …

ガラケー文字入力問題の解答

前回に引き続き、こちらの記事を見てみて、面白そうな問題がいくつかあったので、プログラミング初心者ではないですが解きました。 blog.jnito.com ガラケー文字入力問題 英語のガラケーでは「2」キーを2回押すと「b」になり、「3」キーを3回押すと「f」にな…

電話帳作成問題の解答

前回に引き続き、こちらの記事を見てみて、面白そうな問題がいくつかあったので、プログラミング初心者ではないですが解きました。 blog.jnito.com 電話帳作成問題 カタカナ文字列の配列を渡すと、ア段の音別にグループ分けした配列を返すプログラムを作成す…

国民の祝日.csv パースプログラムの解答

前回に引き続き、こちらの記事を見てみて、面白そうな問題がいくつかあったので、プログラミング初心者ではないですが解きました。 blog.jnito.com 国民の祝日.csv パースプログラム その昔、「国民の祝日.csv」という扱いづらいCSVが話題になっていました。…

Rubyで全角空白も対象としたstrip(trim)

rubyではtrimじゃなくてstripというそうです。 stripは先頭と末尾の半角空白やタブ、改行などを除去するメソッドです。 全角空白は除去されないので、独自で定義する必要があります。 うまくいく例 class String def strip_all_space! gsub!(/(^[[:space:]]+…

Rubyでは、式の途中で改行するときは、算術オペレータを一番後ろに置いてから改行する

Javaの人間がRubyでやってしまった失敗を1つ紹介します。 意図した通りに動かないコード こんなコードを書きました sum = 100 + 200 + 300 + 400 puts sum #=> 300 100+200+300+400 (=10000)のつもりで書いていましたが、最初の2つしか足されていません。 デ…

Rubyでは、メソッド引数のカッコはメソッド名の直後に書くこと。空白を入れちゃだめ

引き続き、『プロを目指す人のためのRuby入門』(伊藤淳一[著])を読んでいます。 問題発生 本の中のコードを(間違って)写して、下記を実行したところ、 class DeepFreezableTest < Minitest::Test def test_deep_freeze_to_hash # ハッシュの値は正しいか ass…

RubyでArrayをHashに変換する

前回の記事で、ArrayをHashに変換するのにArray#mapとArray#to_hを使用して、ArrayをHashに変換しました。 yucatio.hatenablog.com オブジェクトの配列を、オブジェクトのIDをハッシュのキー、オブジェクト自身をハッシュのバリューとして登録したい場合があ…

Rubyでクラス宣言直下に書かれたメソッドの実行時期

Railsのスコープ定義文を見ていたら、クラス宣言直下に書かれたメソッドはいつ実行されるのかという疑問がわいてきたので調べました。 Rubyはクラス宣言直下に任意の式が書ける railsのコードでは、クラス宣言直下でscopeメソッドを呼び出しています。 class…

Rubyでの動的なクラスメソッドの追加方法

メソッドの実行でクラスメソッドが追加される 以下はrailsのscope定義文です。このように書くと、Book.costlyでレコードが取得できます。 メソッド呼び出しでメソッドが動的に追加されます。 メソッドの引数が新しいメソッドのメソッド名になるのです。不思…

Rubyのバージョンアップ方法(rbenv使用) - うまくいく場合

PCにインストールされているRubyのバージョンが古かったので、最新の安定板にアップデートしました 開発環境 OS : Mac OS X バージョン 10.8.4 gitのクライアントアプリとして Sourcetree - 無料の Git & Mercurial クライアント | アトラシアン (バージョン…