タグ

tipsとrubyに関するromans12のブックマーク (7)

  • Ruby のシンボル(続き) - まるぼ〜の日記

    昨日の記事の続き。 あれからいろいろ探し回ってみたらこんな記事が。 『Lost-Season - Rubyのシンボル』のコメント欄より。 RailsではHashを拡張してkeyにstringとsymbolどちらを指定しても同じvalueが返されるようなクラスなども存在します。 なるほど。やはり Rails がうまくやってくれてたのか。 で、もう少しシンボルについて調べていたら、シンボルを使うことの意味について解説された記事を発見。 『川o・-・)<2nd life - RubyのSymbol』 まず使い道ですが、文字の定義を明確にしたいときに使うことが多いです。たとえばhashのkeyだったり、アクセサの引数で渡すインスタンス変数名だったり、alias_methodの引数で渡すメソッド名だったりと、文字に意味づけしたい時に使えます。このようなときにSymbolを使うことによって、ソースがす

    Ruby のシンボル(続き) - まるぼ〜の日記
  • takeda-soft.jp

    takeda-soft.jp 2024 著作権. 不許複製 プライバシーポリシー

  • Fenrir's BLog: Rubyでディープコピー

    こんなことができるのもRubyのシリアライザMarshalが非常に優れていて、ほぼ全てのオブジェクトに対応しているからですが、対応し過ぎているために時に思った動作をしないことがあります。例えばディープコピー対象のオブジェクトにシングルトンオブジェクトが含まれていたらどうなると思いますか?当然といえば当然ですが、これらについてもディープコピーが取られてしまい、シングルトン性が破壊されます。 そういうときはMarshalの内部的な動作を規定するためのメソッド、_dumpと_loadをオーバーライドすればよいみたいです(Ver 1.8ではmarshal_dumpとmarshal_load)。コードの例は続きをどうぞ。 class Singleton def initialize @a = 1 @b = 2 end @@obj = Singleton::new def Singleton::get

  • スクリプトがおいてある相対パスのスクリプトをrequireする - shibacho’s diary

    (2) そのファイルと同じディレクトリにあるファイルを表すのには以下のイディオムがよく使われます。 require File.dirname(__FILE__) + "/MyClass" これは勉強になった。全てが動的なRubyならではって感じがするなぁ。 C言語とかでは引数の0番目を見て自分の実行ファイルの位置を取得するってのがセオリーですね。具体的にはargv[0] を見て自分がおかれている位置を確認するという方法が結構スマートだと思います。WindowsAPIとかだと、また別の方法があるんでしょうけどね。 でも、自分自身がおかれているパスの取得のノウハウってあまり書かれていることがないんだよなぁ。PATHを追加して解決せよってのがほとんど。 あまり推奨されている方法じゃないのかな?

    スクリプトがおいてある相対パスのスクリプトをrequireする - shibacho’s diary
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • 逆引きRuby - 逆引きRuby

    逆引きRubyRubyを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 逆引きRubyはもともとWikiで運用していました。このため、サイトのコンテンツは私以外の多くの方によって作成・編集されたものです。 2017年に静的HTML(jekyll)の管理へ移行しましたが、2018年10月からScrapboxへ移行しました。どなたでも編集いただけますので、ご協力いただける方はよろしくお願いします。 逆引きRuby (https://scrapbox.io/rubytips/逆引きRuby)

  • 1