Rubyの&.とRailsのActiveSupportで提供されている#tryの違いについてメモ。 両者の共通点 レシーバーが nil のとき,NoMethodErrorを投げずにnilを返してくれる機能。 コードでみてみると、
rbenvを使う機会があり、rootを含む全ユーザで使えるようにしたときのメモです。 CentOS 6.5にErrbitを構築してみた #Rubyのインストールでも同じことを書いてますが、今後のメモとして別記事に留めておきます。 環境は以下の通りです。 CentOS 6.7 rbenv 0.4.0 Ruby 2.2.3 依存パッケージのインストール $ sudo yum install openssl openssl-devel readline readline-devel rbenvのインストール $ sudo su -l root> cd /usr/local root> git clone https://github.com/sstephenson/rbenv.git rbenv root> git clone https://github.com/sstephenson/rub
はいタイトルは釣りです。 OOPのインターフェースはただの実装漏れチェック機能じゃないし、ましてや継承は差分プログラミングツールじゃないぞ。というのはわりと一般的な話だけど、Ruby(respond_to?でホントにいいの)とJava(インターフェースが自然すぎてユーザが意識しないのよ)が、PHPに対してOOPどうこうで偉そうに言うのはどうかなと思ったもので。まあそれと同時に、PHPの人自身がその意義を発見してるのかなという疑問もあったりしたんですけどね。 Rubyというのは「オブジェクト指向ってのはつまりメソッドに応答できるアヒルはみんなアヒルとみなせるよね」というレベルのダックタイピングで割り切った言語だと、個人的に認識しています。継承とミックスインにはis_aが応答するけど本質はrespond_to?のほうで、インターフェースを宣言してなくてもメッセージ送れたらいいあの感じ。 そんな
The first stable release of Ruby 2.3 arrived right on schedule on December 25th. It sports a few interesting new language features plus lots of little improvements and performance tweaks. Of course it’s now included in our Ruby Ubuntu package repository, so getting it running on Ubuntu is now trivially easy. Just add our repository, if you haven’t already: $ sudo apt-add-repository ppa:brightbox/r
(追記:2013-08-16) 本記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 なぜかトリビア人気が再燃しているよ。 知って得する21のRubyのトリビアな記法 第2弾!知って得する12のRubyのトリビアな記法 これでみんながトリビア好きだということが分かったので、何とか絞り出して第3弾を書いたよ。ここでは第1弾、第2弾で使ったテクニックも使ってるから、知らないテクニックがあったら先に見てもらえるいいかもね。 1. Enumerable#each_with_object Enumerable#mapではブロックの代わりに&付きのシンボルを渡す技が知られているよ。 langs = ["ruby", "python", "lisp", "haskell"] langs.map(&:capitalize) # => ["Ruby"
(追記:2013-08-16) 本記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く