タグ

rubyに関するapo-coのブックマーク (67)

  • each、each_with_object、inject、map - プログラミングは素晴らしい

    Ruby の each、each_with_object、inject、map は使いどころが微妙に違う。 それぞれ適切な状況で使い分けられれば、コードはより分かりやすくなる。 どんな状況でも each で書くことはできる。だから、each だけ使いこなせればいいという考え方はある点で正しい。そのような考え方の人にとってはeach で書くのがもっとも分かりやすいコードになるだろう。 しかし慣れてみると上記のメソッドを使い分けられる方が簡潔で分かりやすいコードになる。その理由はメッセージ性の違いだ。 each ですべてを書く場合は余計なコードを書く必要があり、その分、どうしても、質的なコードが埋もれてしまう。余分なコードがないほど、質的なコードが際立つ。メッセージが伝わりやすくなる。意味があるコードの比率を下げることは、中級プログラマへの道を開く鍵だ。 それでは題に入ろう。 まずは簡単

    each、each_with_object、inject、map - プログラミングは素晴らしい
    apo-co
    apo-co 2014/10/20
  • Railsのパフォーマンスtipsトップ10 - itsbibuqのBlog

    Top 10 Ruby on Rails performance tipsが面白かったので、ちょっと抜き出してみる。 ここで紹介するものにはサーバの設定は含まれず、コードレベルの話です。 Rubyのコードを最適化 ビルトインのクラスやメソッドが使えるときは、自作しないでそっちを使ってね。 短いテキストをパースしたり操作するときは、ループするんじゃなくて正規表現を使ってね。 たまには、ちょっとしたエレガントさや、抽象化は犠牲にしないとダメポ。(define_methodやyieldは重いっす) 低速なループの最良の解決法は、それを可能な限りなくすことだ!いつもとはいかないだろうが、いくつかのケースでは、コードの再構築でループを避けることができるよ。 ネストされたif/unlessを簡単にする。ヒントつ"||=" ハッシュは重いデータ構造だ。何回か値を使うならローカル変数に入れとけ。頻繁に使わ

    Railsのパフォーマンスtipsトップ10 - itsbibuqのBlog
  • Rubyのクラス階層やメソッドを美しく表示する、rubywho - ブログのおんがえし

    以前作ったものをgemにまとめました。実行中のオブジェクトのクラス階層や、メソッド一覧を簡単に調べることが出来ます。 require 'rubygems' require 'rubywho' # Hello. 1.who? "string".who? String.who? [1, 2, 3].who? # Method filtering. require 'active_record' ActiveRecord::Base.who?(/sql/) 実行結果 Fixnumのクラス階層 == 1.who? == Fixnum# | abs, div, divmod, even?, fdiv, id2name, modulo, odd?, power!, quo, rdiv | rpower, size, to_f, to_s, to_sym, zero? | %, &, *, **, +,

    Rubyのクラス階層やメソッドを美しく表示する、rubywho - ブログのおんがえし
    apo-co
    apo-co 2012/01/24
    クラス階層ごとにメソッドを表示。フィルタリング等の機能も
  • Objective-CライブラリのテストにMacRubyを使う - Watsonのメモ

    iOSアプリケーションなどを作成する際、みなさん Objective-C ライブラリを作られているかと思います。ライブラリはどのようにテストしていますか?テストにはどのような Framework を使っていますか? Objective-CライブラリのテストにMacRubyを使ってみましょう!! Objective-Cライブラリを MacRuby 向けに用意する 今回はxcatsanさんのAES128暗号化ライブラリ FBEncryptorを使ってみました。いつも素晴らしい記事をありがとうございます。 ライブラリの作成は MacRuby » Creating an Objective-C bundle to use with MacRuby に従って行います。 Xcodeテンプレート Xcode 4を使って作業しています。テンプレートには Cocoa Libraryを使いました。 ビルド設定

    Objective-CライブラリのテストにMacRubyを使う - Watsonのメモ
  • Rubyのsetterの戻り値がキモい件 - こげこげ堂はてな支舗

    ※正確には、setterじゃなくて、代入でsetterが使用される場合の戻り値がキモい。というお話。 class Test def value= value "value" end end t = Test.new p (t.value = 10) #=> 10 p (t.value=(10)) #=> 10 p (t.__send__ :value=, 10) #=> "value" うん、まあわかるんだけどね。利便性もそのほうが高いし、多分、二番目は t.value = (10) として解釈されてるんだろうし。でもなんとなくキモい。 発端 class Test attr_reader :value def value= value @value = value "value" end end t1 = Test.new t2 = Test.new t1.value = t2.value

    Rubyのsetterの戻り値がキモい件 - こげこげ堂はてな支舗
    apo-co
    apo-co 2011/12/24
    セッターで返り値定義しても無視される...
  • ruby::Module - Ambitious but Rubbish

    apo-co
    apo-co 2011/11/18
    instance_methods(false) で自分が定義したメソッド一覧を取得。グルーピングしたいメソッド群をモジュールに切り出しておけば Module.instance_methods(false) できて、べんりねー
  • Object#clone (Ruby 3.3 リファレンスマニュアル)

    clone(freeze: true) -> object[permalink][rdoc][edit] dup -> object オブジェクトの複製を作成して返します。 dup はオブジェクトの内容をコピーし、 clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。 clone や dup は浅い(shallow)コピーであることに注意してください。後述。 TrueClass, FalseClass, NilClass, Symbol, そして Numeric クラスのインスタンスなど一部のオブジェクトは複製ではなくインスタンス自身を返します。 [PARAM] freeze: false を指定すると freeze されていないコピーを返します。 [EXCEPTION] ArgumentError: TrueClass などの常に freez

    apo-co
    apo-co 2011/08/11
  • [ruby-list:41813] Re: "module private"な変数・メソッド

    apo-co
    apo-co 2011/08/09
    モジュール内でprivateメソッドを定義しても、includeしたクラスからは呼び出せてしまう。ruby1.9なら、クラス変数にlambdaを代入すればできないこともない。
  • Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog

    2011年07月26日13:29 Ruby Railsエンジニアならこれだけは知っておけっていう便利メソッド Object#presence と Object#try という便利なメソッドがあることをご存知ですか?この2つのメソッドはとっても便利なのでちょっと紹介してみます。 Object#presence メソッド これは以下のような定義となっています。 def presence self if present? end present? メソッドというのはみんな大好き blank? の反対のメソッド (!blank?) です。 つまり、nil, false, [](空配列), {}(空ハッシュ), ""(空文字列), " "(半角スペースだけの文字列)であれば false、それ以外であれば true になります(blank? って半角スペースだけの文字列を true と判定するの知って

    apo-co
    apo-co 2011/07/27
    nilをスマートに扱うメソッドたち
  • Rubyのハッシュと配列の検索速度の違い - 久保清隆のブログ

    Ruby(1.8.6)で大量のデータを検索することがあったので、ハッシュと配列の検索速度はどのくらい違うのかを検証してみた。 検証用コード ※面倒なので変数名とか超適当にした。 # compare_hash_speed_with_array.rb 1 #!/usr/local/bin/ruby 2 n = 120000 3 4 a = {} 5 t1 = Time.now 6 n.times do |t| 7 a.update(t * 10000 + t => t + 123456) 8 end 9 t2 = Time.now 10 p "#{t2 - t1} sec for making hash sample" 11 12 b = [] 13 t3 = Time.now 14 n.times do |t| 15 b << [t * 10000 + t, t + 123456] 16 e

    Rubyのハッシュと配列の検索速度の違い - 久保清隆のブログ
    apo-co
    apo-co 2011/07/27
  • Ruby においてメソッドがどこで定義されているのかを調べる方法 - vivid memo

    ruby-talk の 381425 で 「どのメソッドが呼び出されているのか調べる方法を知りたい」 という内容の質問がありました。 私も知らなかったのですが、Method オブジェクトを使えば簡単に知ることができるそうです。 というわけで、メソッドがどこで定義されているのかを調べる方法を書いておきます。 メソッドを定義しているクラスまたはモジュールへの参照を取得する あるメソッドがどのクラス (またはモジュール) で定義されているかを知りたければ、そのメソッドに対応する Method オブジェクトを取得し、Method#owner メソッド を呼び出します。 それだけで、メソッドを定義しているクラス (またはモジュール) への参照を取得できます。 ちなみに、ある名前のメソッドに対応する Method オブジェクトを取得するには、Kernel#method メソッド を使用します。 'あい

    Ruby においてメソッドがどこで定義されているのかを調べる方法 - vivid memo
    apo-co
    apo-co 2011/07/20
    Kernel#method 知らなかった。鬼便利。
  • 大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)

    日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec

    大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)
  • Martin Fowler's Bliki in Japanese - クラスインスタンス変数

    http://martinfowler.com/bliki/ClassInstanceVariable.html 2007/1/9 オブジェクトについて学ぶと、オブジェクトのデータには二種類あることが分かる。 インスタンス変数とクラス変数だ。 通常、インスタンス変数はオブジェクトのインスタンスごとに値が変わる。 クラス変数は(static変数とも呼ばれるが)クラスのインスタンスで共有される。つまり、すべてのインスタンスが同じ値をポイントしていた場合、クラス変数の変更はすべてのインスタンスに影響する。 クラス変数はインスタンス変数ほど頻繁に見かけるものではない。 特にミュータブルなクラス変数(mutable class variables)はほとんど見かけないだろう。 クラス変数の欠点は、継承が絡んできた場合の振る舞いにある。 クラス変数が自身のインスタンスを保持することを考えてみてもらいた

    apo-co
    apo-co 2011/02/19
    クラス変数はクラス/サブクラスの全インスタンスで共有される。クラスインスタンス変数は継承では引き継がれず、クラスごとに値を保持する
  • termtter.org

    This domain is registered at Dynadot.com. Website coming soon. termtter.org 2024 著作権. 不許複製 プライバシーポリシー

    apo-co
    apo-co 2011/01/07
    ターミナルで動くtwitterクライアント
  • RGSS2講座 [再定義と別名定義]

    apo-co
    apo-co 2011/01/06
    Piyo クラスのメソッドを読み込むとき、初めは、Piyo クラスに method メソッドが定義されていないため...メソッド呼び出しの無限ループが発生してしまいます。
  • オブジェクトの中身が知りたーい - takkan_mのNo planな日常

    昨日のRubyスクリプトをdaemonで起動する - tricknotesのぼうけんのしょでした。 で、Ruby逆引きレシピAdvent Calendar : ATNDの5日目です。まず最初に大事なこと。このままだと明後日には、このカレンダーは終了となってしまいます。レシピ先輩にお世話になっている人とか、興味のあるひとは参加するといいとおもうの。 Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE) 作者: 島田浩二,設樂洋爾,村田賢太,前田智樹,谷口文威出版社/メーカー: 翔泳社発売日: 2009/07/25メディア: 単行(ソフトカバー)購入: 16人 クリック: 349回この商品を含むブログ (77件) を見る で、まずこの書評を。 このは、やりたいことをRubyでどうやるの?という形で参照するレシピブックです。Rub

    オブジェクトの中身が知りたーい - takkan_mのNo planな日常
    apo-co
    apo-co 2010/12/15
    メソッドチェーンの評価中の値をpできる。1.8.6では使えない
  • http://atnd.org/events/10901

    http://atnd.org/events/10901
    apo-co
    apo-co 2010/12/14
  • Smell in Rails Apps (in Sapporo RubyKaigi03)

    Slides of my talk in Sapporo RubyKaigi03, on December 4th, 2010.

    Smell in Rails Apps (in Sapporo RubyKaigi03)
  • IRB それはRubyistの魔法のランプ - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 IRB それはRubyistの魔法のランプ : melborne.github.com - IRB*1 名前を聞けば誰でもわかる 超有名なライブラリ IRBを知らなけりゃ それはもぐりのRubyist :$ IRB 全部のRubyに付いてくる あなたとRubyの対話の窓口 できないことがあるのなら irbと打ってみよう rubyと打ってもダメですよ IRB それはRubyistの魔法のランプ こすれば何かが現れる IRB それはRubyistの魔法のランプ こすって願いを叶えよう I RuB you I RuB you :TO IRB 色気がないのはご愛嬌 色がいるなら .irbrcしてください 補完だってインデントだって そうしたいならプロンプトだって あなた

    IRB それはRubyistの魔法のランプ - hp12c
    apo-co
    apo-co 2010/11/26
    irb
  • RailsDevConで学んだこと - 〜 odalog 〜

    先日RailsDevConに僭越ながら参加させて頂いたので、そこで学んだことを徒然にかいていきます。 まず主催者の方からこのDevConの目的が話されました。その中でもノウハウ共有という部分のお話が印象に残っています。 RailsにはDRY(Don't Rereat Yourself)の思想があります。まさにその思想に則って、今回の勉強会をノウハウ共有の場にして、以前に悩んだことがある人が同じことで悩むことがないように。といった目的があったようです。素敵です。 Program 「渡米して感じたこと」 ■増井 雄一郎:@masuidrive 「Rails情報源の歩き方」 ■西村 賢:@IT 副編集長 「とあるソーシャルアプリの開発運用」 ■大仲 能史:@onk、(株)ドリコム ソーシャルゲーム開発デザイン部 「Railsプロジェクトを成功させるために現場ができること」 ■赤松 祐希:@uks

    RailsDevConで学んだこと - 〜 odalog 〜
    apo-co
    apo-co 2010/11/26
    RailsDevCon2010 お疲れさまでした