タグ

Rubyに関するmathemathikoのブックマーク (327)

  • Enumerable#each_slice (Ruby 3.3 リファレンスマニュアル)

    each_slice(n) -> Enumerator[permalink][rdoc][edit] each_slice(n) {|list| ... } -> self n 要素ずつブロックに渡して繰り返します。 要素数が n で割り切れないときは、最後の回だけ要素数が減ります。 ブロックを省略した場合は n 要素ずつ繰り返す Enumerator を返します。 [PARAM] n: 区切る要素数を示す整数です。 例 (1..10).each_slice(3) {|a| p a} # => [1, 2, 3] # [4, 5, 6] # [7, 8, 9] # [10] [SEE_ALSO] Enumerable#each_cons

    mathemathiko
    mathemathiko 2012/11/28
    each_sliceメソッドは引数nで指定した数の要素をくり返し取り出してブロックを実行。ブロック引数には取り出した要素が配列で入る。Ruby1.8.6では、enumeratorライブラリを読みこめばeach_sliceメソッドが使えるように。
  • class Enumerator (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。また、外部イテレータとしても使えます。 Enumerable モジュールは、 Module#include 先のクラスが持つ each メソッドを元に様々なメソッドを提供します。例えば Array#map は Array#each の繰り返しを元にして定義されます。 Enumerator を介することにより String#each_byte のような異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。 Enumerator を生成するには Enumerator.newあるいは Object#to_enum, Object#enum_for を利用します。また、一部のイテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに

    mathemathiko
    mathemathiko 2012/11/28
    Enumeratorは他のオブジェクトを数え上げることを目的とするEnumerableオブジェクト。Ruby1.8.6でEnumeratorを使うには、require 'enumerator'としてライブラリを読み込む必要がある。イミュータブルなプロクシオブジェクトとしても利用
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • Array#zip (Ruby 3.3 リファレンスマニュアル)

    zip(*lists) -> [[object]][permalink][rdoc][edit] zip(*lists) {|v1, v2, ...| ...} -> nil 自身と引数に渡した配列の各要素からなる配列の配列を生成して返します。生成される配列の要素数は self の要素数と同じです。 ブロック付きで呼び出した場合は、 self と引数に渡した配列の各要素を順番にブロックに渡します。 [PARAM] lists: 配列を指定します。配列以外のオブジェクトを指定した場合は to_ary メソッドによる暗黙の型変換を試みます。to_ary メソッドに応答できない場合は each メソッドによる暗黙の型変換を試みます。 [EXCEPTION] TypeError: 引数に配列以外の(暗黙の型変換が行えない)オブジェクトを指定した場合に発生します。 例 p [1,2,3].zip([

    mathemathiko
    mathemathiko 2012/11/26
    array.zip(*other_aray)配列の要素を引数の配列の要素と組み合わせ、配列の要素を作成して返す。
  • class CSV::Reader (Ruby 1.8.7)

    クラスの継承リスト: CSV::Reader < Enumerable < Object < Kernel 要約 CSVの読み込み時のベースとなるクラス 目次 特異メソッド create parse インスタンスメソッド close each shift privateメソッド get_row initialize terminate 特異メソッド create(str_or_readable, fs = ',', rs = nil) -> CSV::StringReader[permalink][rdoc] CSVデータを解析して、解析結果を格納したCSV::StringReaderを返します。 [PARAM] str_or_readable: パースする対象の文字列 [PARAM] fs: フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。 [PA

    mathemathiko
    mathemathiko 2012/11/26
    CSV::ReaderってEnumerableを継承してるのか。特異メソッドであるcreateはCSVデータを解析して、解析結果を格納したCSV::StringReaderを返す。
  • RubyConf 2012 - Joy Luck Crab

    先月末から今月の頭は角谷さんと RubyConf 2012 に行っていた。 行きで寄ったロサンゼルスの気候は、勝手に想像していたカリフォルニアとだいたい一緒で、乾燥していたけどいい天気で過ごしやすかった。 コロラド州デンバーは、空港からダウンタウンまでのタクシー窓からの景色が大自然すぎて、当に屋根のあるところで開催されるのだろうかと心配になるほど。 もちろんダウンタウンはちゃんとあったし、会場は想像以上に立派だった。 デンバーのマンホールは蒸気を吐いていて、何も知らずに興味位で湯気らしきものに触ったらひどい目にあった。 会期中に見た発表のスライドを pinboard にまとめているところだけど、まだ全部集められてない。 ビデオは Confreaks のサイトから見られるけど、すべての発表分あるわけじゃないみたい。 RubyConf に行く半年くらい前から少しずつ英語の勉強をしたりオンラ

  • 思考の軌跡 » ブログをWordPressからnanocベースに移行しました

    あの地震以降はじめての投稿になります。被災された方々に心よりお見舞い申し上げます。 さて、今日はブログを WordPress から nanoc というRubyで書かれたHTML生成ツールベースに移行したのでお知らせしたいと思います。 移行した理由 WordPressは充分な機能を備えていてよいと思うのですが、以下の不満を感じるようになり移行を考えていました。 ふだん使わないPHPで書かれていて、修正するのが面倒 プラグインやテーマが豊富にあるが、欲しいものを探すのが面倒 設定項目の一部がデータベースに保存されていて、なんだか見通しが悪い 乗り換え先 乗り換え先の条件として挙げたのは以下です。 Ruby(かPython)で書かれている レンタルサーバで動く ローカルで動作確認ができる toto なんかも良さそうだなと思ったのですが、Rubyで書かれたHTML生成ツールの nanoc を使うこ

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • [Ruby] callerって何? - Railsなど技術系覚え書き

    in caller.rb class Foo def foo bar end def bar baz end def baz p caller end end Foo.new.foo を実行すると、 ["call.rb:6:in `bar'", "call.rb:3:in `foo'", "call.rb:13"] http://d.hatena.ne.jp/secondlife/20061010/1160453355 ということらしい。 メソッドがどこから呼ばれたか調べるのにいいのか。

    [Ruby] callerって何? - Railsなど技術系覚え書き
  • ライブラリ一覧 (Ruby 1.8.7)

    Ruby の curses ライブラリ(以下、Ruby curses)は、C のプログラムから端末 の画面を制御するための curses ライブラリ(以下、C curses)を利用して、端 末に依存しない形式でテキストユーザインタフェースを構築するためのライブ ラリです。

    mathemathiko
    mathemathiko 2012/11/20
    rubyのライブラリ一覧。ObserverやSingletonもあるのか。
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    mathemathiko
    mathemathiko 2012/11/20
    クラスの継承やモジュールのMix-inは元になるクラスやモジュールの実装までもを取り込んでしまう(再利用したい機能を自分に取り込んでしまう)が、委譲は、その機能をもつオブジェクトに処理を依頼。
  • プログラミング言語 Ruby リファレンスマニュアル

    注: Rubyは2.1.0からSemantic Versioningを採用しています。 Ruby 2.1.1, 2.1.2等はバグ修正やセキュリティfixのみを含むため、リファレンスとしては2.1に統一しています。

    mathemathiko
    mathemathiko 2012/11/20
    クラスに対してメソッドの委譲機能を定義するモジュール。基本的にはクラスに対してextendして使う。
  • 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

    mathemathiko
    mathemathiko 2012/11/17
    元のオブジェクトと同じクラスの新しいオブジェクトを作成する。元のオブジェクトのインスタンス変数を新しいオブジェクトにコピーしたもの。コピーのあと、initialize_copyメソッドを呼び出す。
  • Fabricationを使ってみた - のどをRubyでいっぱいにして

    ※2011/11/08 コメント欄で指摘を頂いた箇所を加筆修正しました。また、割と古い記事ですので最新の情報は Fabrication を参照することをお奨めします。 これを作ってるとき、machinistとmachinist_mongoを使っていたんですが、試しに前々から気になっていたFabricationで書き換えてみました。README書いてあることをいくつか実際にやってみたのでメモしておきます。割と使いやすかったです。 何に使えるの 下記をサポートしてるそうですので、Mongoid使えます。やった! Plain old Ruby objects ActiveRecord objects Mongoid Documents 使ったもの Fabrication…日のメイン Faker…嘘データをどんどこ作ってくれるやつ QuickStart & 使い方 Gemfile Rails/M

    Fabricationを使ってみた - のどをRubyでいっぱいにして
    mathemathiko
    mathemathiko 2012/11/16
    Fabricationを使うときには見ておいたほうがよいらしい。
  • Class: Set (Ruby 1.9.3)

    mathemathiko
    mathemathiko 2012/11/16
    Setクラス。
  • RubyでProxyパターン/Matzは松江から来るのに時間がかかるのでProxyRubyistを置く! - Tbpgr Blog

    概要 GoFのデザインパターンのProxyパターンについて。 ある処理について、代理人を置くことで処理を分散して負荷を軽減させる。 登場人物 Subject = 主体 RealSubject = 主体の実体 Proxy = 代理人 Client = 利用者 UML 実装サンプル サンプル概要 Rubyに関する質問をしたい人がいます。 この質問者は簡単な質問。普通の質問。難しい質問をします。 回答者となるRubyistには駆け出しRubyist、普通のRubyist、Matzがいます。 回答者の窓口となるのは駆け出しRubyistで、簡単な質問は自分で回答します。 駆け出しRubyistは普通の質問の答えが分からないので 普通のRubyistから答えを聞いて回答します。 駆け出しRubyistや普通のRubyistは難しいの質問の答えが分からないので 松江まで行ってMatzに答えを聞いて回答

    RubyでProxyパターン/Matzは松江から来るのに時間がかかるのでProxyRubyistを置く! - Tbpgr Blog
  • L&#39;eclat des jours(2006-08-19)

    _ ActiveRecord内部での属性の読み書き かんたんRuby on RailsでWebアプリケーション開発(arton) P.144で、なぜread_attributeと記述しているかと質問を受けたのだけど、即答できなかった。で、なぜそう書いたかあらためて考えてみた。 class Item < ActiveRecord::Base def foo x = 3 end def bar puts "#{x}" end end 上のItemでxが属性(itemsテーブルのフィールド)だとすると、xへ代入しようとしているメソッドfooはバグ、xの内容を読み出そうとしているbarは想定どおりに動く。 というのはfooの場合、Rubyはxをローカル変数の宣言とみなす。そのため、3はフィールドxには代入されず、ローカル変数xに代入されるだけとなる。したがってこのメソッドは実行時にエラーにはならな

    mathemathiko
    mathemathiko 2012/11/15
    AR内部での属性の読み書き。なぜread_attributeを使うのかの話。
  • ActiveRecordまとめ2 - ほむり

    createからsaveの流れ ActiveRecord::Base#create def create(attributes = nil, &block) if attributes.is_a?(Array) attributes.collect { |attr| create(attr, &block) } else object = new(attributes) yield(object) if block_given? object.save object end end newして、blockがあればsaveをする。それだけ。 ActiveRecord::Base#save def save create_or_update end 短いな。 ActiveRecord::Base#create_or_update def create_or_update raise ReadO

    ActiveRecordまとめ2 - ほむり
  • Ruby on Rails:assert_difference - アンドロイド・アミーゴ・Rails

    01 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.» 03 Admin New entry Up load All archives ■assert_differenceについてのメモ scaffoldを実施したら、functionalにassert_differenceが使用されているテストがあるんですが、 何をしているかよくわからなかったので調べたことをメモしときます。 test\functional\products_controller_test.rbに下記のようなテストが生成されていた。 test "should create product" do assert_difference('Product.count') do post :create, produc

    mathemathiko
    mathemathiko 2012/11/12
    assert_differenceは、ブロック処理した後に、式の値が変化しているかどうかをチェックするメソッドとのこと。
  • assert_differenceとは - なんとなく日記

    後続するblockの前後での差異を調べるassertかな.詳しく書いているDocumentがなかなか見つからないんだけど,has_many :through: Getting arbitrary with assert_differenceによると,下記のcodeがある場合,do〜end前と後とでUserオブジェクトの個数(:count)の差が1(1)であれば通るんだそうな. def test_create_user login = "bob" name = "Bob Dobbs" assert_difference(User, :count, 1) do bob = User.create!(:login => login, :name => name) assert_equal login, bob.login assert_equal name, bob.name end end 確

    assert_differenceとは - なんとなく日記
    mathemathiko
    mathemathiko 2012/11/12
    assert_differenceについて。後続するblockの前後での差異を調べるassert?