rubyに関するngtk_maのブックマーク (6)

  • Rubyの名前空間に苦しむ。そしてちょっと勉強。 - kaeruspoon

    作ったあるメソッドを使うとき、 attr_accessor みたいな書き方をしたかったのだけど、Rubyの名前空間にちょっとハマってしまった。復習しておこうっと。 それはともかく、attr_accessor はどうやって定義されているのかと思ってちょっと調べてみると、 Moduleクラスのプライベートインスタンスメソッドとして定義されていた。ClassクラスはModuleクラスのサブクラスだからか。なので、同じようにやってみる。 test.rb

    ngtk_ma
    ngtk_ma 2012/02/15
    名前空間について復習。
  • 21.Proxyパターン

    2.1 Proxyパターンとは 第21章ではProxyパターンを学びます。Proxyとは「代理人」という意味です。現実世界で代理人というと、弁護士や税理士など人ができない仕事をするというイメージがありますが、Proxyパターンにおける代理人オブジェクトは、人でなくてもできるような処理を任されます。そして代理人オブジェクトでできない処理は人オブジェクトが引き受け、処理します。 Proxyパターンは、要求を代理人オブジェクトが受け取って処理するパターンです。 21.2 サンプルケース 今日は、新人の藤原さんが担任の山田先生の代わりに授業を行うことになりました。

    ngtk_ma
    ngtk_ma 2011/12/28
    Proxyパターンのわかりやすい例
  • 2010-06-07 - Strategic Choice

    書籍「リファクタリング―プログラムの体質改善テクニック(=以下 オリジナル)」の6〜12章で紹介されている「リファクタリング」を写経します。同時に新しい言語を身に着けたいので、書籍「リファクタリング:Rubyエディション(以下 Ruby)」をメインにまとめていきます。Ruby アイコンオリジナル アイコン一覧Composing Methods.リファクタリングComposing Methods.メソッドの構成方法メソッドの構成Extract Methodメソッドの抽出メソッドの抽出Inline Methodメソッドのインライン化メソッドのインライン化Inline Temp一時変数のインライン化一時変数のインライン化Replace Temp with Query一時変数から問い合わせメソッドへ問い合わせによる一時変数の置き換えReplace Temp with Chain一時変数から

    ngtk_ma
    ngtk_ma 2011/11/23
    『リファクタリングRuby』のWeb版。内容はほぼ変わらないが、要点が端的にまとまっていてわかりやすい。
  • オブジェクト指向とは プログラミング初心者のためのオブジェクト指向入門 - 久保清隆のブログ

    新人研修で、プログラミングを教えることになったので、オブジェクト指向を説明する必要があるためまとめた。 『なぜ、あなたはJavaでオブジェクト指向開発ができないのか』 を参考にした。 なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング 作者: 小森裕介,アクロクエストテクノロジー株式会社出版社/メーカー: 技術評論社発売日: 2004/12/01メディア: 単行購入: 10人 クリック: 217回この商品を含むブログ (50件) を見る 書にはオブジェクト指向の質的なことが書いてあったので、非常に勉強になった。 プログラムを書く流れ オブジェクト指向を理解するために、まずプログラミングの流れを押さえておく。 プログラムを書く流れは、以下の3ステップからなる。 1.コンピュータに行わせたいことを理解する(要件定義) 2.理解したことを説明

    オブジェクト指向とは プログラミング初心者のためのオブジェクト指向入門 - 久保清隆のブログ
    ngtk_ma
    ngtk_ma 2011/08/23
    例えがおもしろいw けどわかりやすい
  • 配列の差分を取るメソッド − Array#diff - walf443's blog

    (追記:Array#-というメソッドがあるようです。id:yuguiさんありがとうございます) 二つの配列の比較をして、[レシーバー側にあったもの, 引数側にあったもの]を返すメソッドを作成してみました。どっかで見たことあるような気もする。。。 class Array def diff(other) self_diff = self.reject {|i| other.include? i} other_diff = other.reject {|j| self.include? j} return [self_diff, other_diff] end end a = [1, 2, 3, 4, 5] b = [1, 2, 3, 4, 5, 6] c = [1, 2, 3, 4, ] d = [1, 2, 3, 5, 6, 7] p b.diff(a) p a.diff(b) p c.di

    配列の差分を取るメソッド − Array#diff - walf443's blog
    ngtk_ma
    ngtk_ma 2011/07/26
    このメソッドは便利そう
  • 【Rails】新しく追加するupdated_atにレコード毎に異なる初期値を入れる方法 - 久保清隆のブログ

    Railsで、テーブルにupdated_atを追加しようと思って、さらに初期値に他のテーブルの関連づいたレコードの更新日時を代入したかった。 そのための方法をまとめておく。 まず、マイグレーションファイルを作成する。 Tagテーブルにupdated_atカラムを追加する。 timestampは、saveされたとき、自動的にその日時を保存してくれる。 def self.up add_column :tags, :updated_at, :timestamp, :null => false ActiveRecord::Base.record_timestamps = false Tag.find(:all).each do |tag| tag.updated_at = tag.taggings.last.created_at unless tag.taggings.blank? tag.sav

    【Rails】新しく追加するupdated_atにレコード毎に異なる初期値を入れる方法 - 久保清隆のブログ
    ngtk_ma
    ngtk_ma 2011/05/25
    updated_atを保存のたびに更新させたくないときの対処方法。こんなやり方があるのか。
  • 1