タグ

rubyに関するkabiyのブックマーク (112)

  • わくわくパンダさん日記(旧)

    RubyのコードでHash型の変数名の末尾に_hを付けていたら社内のモヒカン達にボッコボコにされた。 sora_h「分かりにくい」 hotchpotch「Rubyでハンガリアン記法はありえない」 mrkn「データ構造を赤黒木に変更したくなった時に困る」 miyagawa「Perlならそんな問題は起こらない」 negipo「sora_hとsora_aをsorasにして衝突させよう」

    kabiy
    kabiy 2012/05/10
    ボコってないよ! / RubyのコードでHash型の変数名の末尾に_hを付けていたら社内のモヒカン達にボッコボコにされた。 - わくわくパンダさん日記
  • RSpecでテスト書きながらRailsのプラグインを開発する - 鳩舎

    こんにちは。Railsのプラグインが作りたいです。 ということでRailsプラグインの作り方を調べていたのですが、id:sora_hから $ rails plugin new plugin_name でひな形出来るよと聞いて喜びいさんでやってみたらテストがTest::Unitで出来ていた時の僕の絶望は筆舌に尽くし難かったです。 ということでRSpecでテストしたかった。ついでにいうとRailsでRSpec使うときみたいにしたかった。 んでソース見てみたんですがなんかやりにくそうだし嫌だなぁと思ってたんですが、案外さっぱりできました。 ようするにダミーのRailsアプリケーションを作ってそいつは開発中のgemを読み込んでダミーRailsアプリに向かってテストすればいいだけです。 ちょっともう眠いのであんまり長くまとめられませんが、だいたいどうすればいいかはGitのログを見るとわかると思います

    RSpecでテスト書きながらRailsのプラグインを開発する - 鳩舎
    kabiy
    kabiy 2012/04/27
    / RSpecでテスト書きながらRailsのプラグインを開発する
  • RSpecによるユニットテストの書き方 — recompile.net

    2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと

    RSpecによるユニットテストの書き方 — recompile.net
    kabiy
    kabiy 2012/04/20
    「新人」です。とてもわかりやすい解説、どうもありがとうございます /
  • 勝手に続編 - 言語女子会2.1:varは必要?/privateがない? : 404 Blog Not Found

    2012年03月22日09:45 カテゴリLightweight Languages 勝手に続編 - 言語女子会2.1:varは必要?/privateがない? あれ?まとめちょっと早くありませんこと? 言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー Perl: 春ねえ。 JavaScript: 春ですねえ。 Perl: 花粉症のあなたには辛い季節ねえ。 JavaScript: え?花粉症? Perl: スコープ作るたんび、function、functionって、あなたと付き合ってるプログラマーもつらいわよね。 JavaScript: …たしかにそこはあたしのletう感。 Ruby: あたしは花粉は完全にBLOCKしてるけどね。まだまだsubいわね、お姉様。 Perl: でもあなたのBLOCKってスコープになってなかったわよね? Ruby: いやだなあ

    勝手に続編 - 言語女子会2.1:varは必要?/privateがない? : 404 Blog Not Found
    kabiy
    kabiy 2012/03/27
    / 勝手に続編 - 言語女子会2.1:varは必要?/privateがない?
  • 観察日記 2012-03-02 - なるせにっき

    ビジーループとスレッドスイッチ (nurse) [ruby-core:42972] ついに懸賞金が (mame6) 50$ かあ (nurse) tk入れないと再現しない気がするのがハードル高い (unak) 50$だとせいぜい1時間くらいで解決しないと元が取れないな。 (unak) 再現しないんだよなあ。 (nurse) 環境整えても? (unak) どれくらい真面目に整えるかによるが、とりあえず手元環境でこのコードでは。 (nurse) tkすらいれずに./miniruby -e'Thread.new { loop { a = 1 } };Thread.pass; loop{p 2}'だと無理だったレベルしか試してない (unak) 劇重なので嫌なテストコードではある。(無限ループなので) (nurse) loopあるからタイマスレッドの割り込みきくはずだよなぁ (nurse) loo

    観察日記 2012-03-02 - なるせにっき
    kabiy
    kabiy 2012/03/02
    / [%ruby]観察日記 2012-03-02
  • ずぶの素人がRails開発できるようになるために必要な5つのこと

    1. Rails 2012-01-31 kchinda@aiming-inc.com (a.k.a. @ckazu)

    ずぶの素人がRails開発できるようになるために必要な5つのこと
    kabiy
    kabiy 2012/02/23
    / ずぶの素人がRails開発できるようになるために必要な5つのこと
  • 初心者向けRubyが欲しい(Rubyの良くないところ)

    以前から何度か記事にしているように、わたしはへなちょこRubiest。 気が向いたとき、たまーに、Rubyプログラムを書いています。 最近の作品 >Wikipediaのセクションへのリンク(節リンク)を取得するツール (09/22) >Dimoraが使いにくいので、CSVファイル(Excel/Calc)に出力するツールを作った (09/06) で、最近、会社のとあるシステムがASP化されたので、Rubyで自動巡回プログラムを作ろうと思い立ちました。 そのとき やっぱRubyって初心者向けじゃないよね。 と思いました。 と、同時に、誰か初心者向けRubyを作ってくれないかなー。と思いました。 以下わたしが、初心者向けRubyに望むこと。 rubygemsは、要らない Rubyが初心者向けじゃない。と強く思うのが、これ。 今回、IEのコントロールプログラムを書こうと思って、「watir」をイン

    初心者向けRubyが欲しい(Rubyの良くないところ)
    kabiy
    kabiy 2012/02/20
    VBとかSmall Basicでも使ってろ
  • 革命の日々! RubyとArgumentError

    RubyのArgumentErrorってなんなんだろうか。正しい使い方が思いつかない。名前からすると「引数エラー」なのだが、IOやらスレッドやらの副作用がない世界だと引数が正しければ正しく動くはずなのであらゆるケースが ArgumentErrorに丸めることが出来てしまう(そして当にあらゆる種類のArgumentErrorがあるように標準ライブラリからは見える) これは困った事で ArgumentErrorを rescue しても何が起こったのかまわったく分からないのではリカバー処理の書きようがない。エラー処理が書けないぐらいならない方がましで、いっそ ArgumentError廃止したら?という気さえしてくる。 一方別の解法もある、エラーの種類毎にArgumentErrorのサブクラスをつくって判別できるようにすることである。Javaの IllegalArgumentException

    kabiy
    kabiy 2012/02/11
    / RubyとArgumentError
  • Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも

    と思いません? def foo(x) end foo(1, 2) #=> wrong number of arguments (2 for 1) (ArgumentError) 1.step(10, 0) { } #=> step can't be 0 (ArgumentError) a = []; a << a a.flatten #=> tried to flatten recursive array (ArgumentError) 確かにどれも Argument に関する Error ではあるんだけど *1 、全部同じ例外クラスというのは粗すぎですよね。メッセージ読めば意味はわかるからデバッグには困りませんが、ArgumentError の中の特定の例外だけ拾いたいときに困ります。 具体的には、テストです *2 。例えば foo(1, 2) で wrong number of arg

    Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも
    kabiy
    kabiy 2012/02/11
    / Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも
  • プログラミングの楽しさ。オープンソースとの出会い。 - 2nd life (移転しました)

    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 が出版され、『私と Ruby と添削と』という内容で寄稿しました。私がどうプログラミング・オープンソースの楽しさを知ったかについての昔話です。公開して良い、とのことなので公開いたします。 なお、文章中に出てくる tdiarytimes.rb のコードは以下です。9年前に書いたコードなので今読み返すと恥ずかしいを通り越してもはや微笑ましいですね!!1これでも当時は、自分なりにできるだけ綺麗なコードにして公開した記憶があります。 https://github.com/tdiary/tdiary-contrib/blob/master/plugin/tdiarytimes.rb 私と Ruby と添削と プログラミング技術の向上させるには、どういう方法があるでしょうか。プログラミングに関する書籍を読む、オープンソースで公開されて

    プログラミングの楽しさ。オープンソースとの出会い。 - 2nd life (移転しました)
    kabiy
    kabiy 2012/02/02
    / プログラミングの楽しさ。オープンソースとの出会い。
  • オライリー・ジャパンのePUBフォーマットを支える制作システム

    オライリー・ジャパンから先日発表されたプレスリリース「ePUBフォーマットによる電子書籍のラインナップを開始します」にあるとおり、弊社トップスタジオはオライリー・ジャパンとの共同事業として、ePUBフォーマットでの電子書籍の制作を開始しました。 トップスタジオではこのePUBフォーマット電子書籍の出版候補の選定、翻訳、編集、そしてePUB制作までに関わっています。稿では、このePUBの制作プロセスを支えるシステムにフォーカスを当て、その仕組みについて紹介します。 フリーソフトウェア/オープンソースソフトウェアの集合体としてのシステム ePUBの作成にはいろいろな手法がありますが、制作を支えるシステムを構築する上で最も重視したのは、できる限り自動化し、手作業による調整を最小限にするということでした。そのため、このシステムでは原稿を常に最新マスターデータとしてそこから一方向にePUBを作成す

    オライリー・ジャパンのePUBフォーマットを支える制作システム
    kabiy
    kabiy 2012/01/31
    / オライリー・ジャパンのePUBフォーマットを支える制作システム - O'Reilly Japan Community Blog
  • 他の言語になれた人がRubyに躓く n のポイント - だいありー

    ■他の言語になれた人がRubyに躓く n のポイント Ruby はちょっと特殊なプログラミング言語なので,他の言語になれた人は,ちょっと戸惑うかもしれません.そんな躓きそうなポイントを紹介していきます. □オブジェクト指向 Ruby はプロトタイプ型オブジェクト指向です.オブジェクトにメソッドを定義し,それを dup によって複製しながらオブジェクトを作っていきます. a = Object.new def a.foo p "foo" end b = a.dup □複数のメソッド定義 複数のメソッドを定義する場合,ruby では,def ではなく,method_missing という機能を使うのが一般的です. def a.method_missing mid, *args case mid when :bar p "bar" when :baz p "baz" end end 簡単に,bar

    kabiy
    kabiy 2012/01/28
    Ruby 便利 / 2012年01月26日の日記(Fri Jan 27 09:29:49 +0900 2012)
  • 動的 UTF-8 文字列 生成 ランダム - 鳩舎

    ランダムにUTF-8の文字列を生成しようとしてつまったので適当な解決策 codes = (0x00 ... 0x1ffff).to_a chars = [] (rand(10) + 10).times do chars << codes[rand(codes.length)] end chars.pack('U*') これで10文字から20文字のUTF-8の文字列がランダムに生成できる。制御文字とかもばんばん入ってくるのでテストデータとしては有効に作用し、僕のコードのバグが露見する。作らなければよかった。

    動的 UTF-8 文字列 生成 ランダム - 鳩舎
    kabiy
    kabiy 2012/01/21
    / 動的 UTF-8 文字列 生成 ランダム
  • 革命の日々! どうしてこうなった

    http://d.hatena.ne.jp/nagachika/20111231/ruby_trunk_changes_34162_34165 2011年最後の ruby trunk changes です。今日は LLVM 向けの最適化避け、rb_barrier_t の不具合修正などがありました。 今年は 3155 コミットありました。コミット数 1位はもちろんわれらがパッチモンスター nobu (583 commits), 2位は svn さん(348 commits)、3位は kosaki さん(332 commits)でした。コミッターのみなさん今年もお疲れさまでした! ハハッ・・・そんなばかな。ばかな・・・・ そんなにコミットしているわけがない。集計方法の問題ということにしておこう

    kabiy
    kabiy 2012/01/02
    @kosaki55tea さん怖いナー / どうしてこうなった
  • hinata.in

    This domain may be for sale!

    kabiy
    kabiy 2011/12/24
    #ruby 是非 http://t.co/WXzrJF54 に文句を投げて欲しい. / net/http
  • Post by @shyouhei

    送信側であれ受信側であれ、多岐に渡る異常系をどうエレガントに扱うかが、AMQPと関わりのあるアプリケーションを頑健にしていくうえでは不可避と言えましょう。プロトコルの誤り、ネットワークの不調、ブローカー1の異常などが思い浮かぶことでしょう。これらを正しく処理して上手に正常状態に回復することは、容易ではないでしょう。以下では、amqp gemを使うことでアプリケーションが ブローカーとの接続ができなかったときネットワークが切断されたときAMQPコネクションに例外2が発生したときAMQPチャンネル3に例外が発生したときブローカーの異常に遭遇したときTLS(SSL)関連の障害があったとき

    Post by @shyouhei
  • コミュニケーション力向上に役立ったOSS活動 - Linux/Ruby 小崎資広氏

    「スキルアップが図れるのはもちろんですが、私にとっては初対面の方とのコミュニケーションがとりやすくなるという点が大きいですね。OSSコミュニティでアウトプットしておくことで、それが話題の1つになります。込み入った説明が必要なときには、『Google先生に聞いてください』なんてかたちで済ませられたりもします(笑)」――LinuxカーネルおよびRubyのコミッターとして著名な小崎資広氏は、OSSコミュニティでの活動メリットをこのように語る。 小崎氏は、富士通 Linuxソフトウェア開発統括部に所属するエンジニアLinuxカーネルとRubyの2つのコミュニティで活発に活動しており、その名は世界的に知られている。2009年には日OSS貢献者賞を受賞。@ITでは連載「Linux Kernel Watch」を執筆し、Linuxカーネルのメーリングリストで熱く議論されているトピックスを紹介している。

    コミュニケーション力向上に役立ったOSS活動 - Linux/Ruby 小崎資広氏
    kabiy
    kabiy 2011/11/21
    さすがガチャピンせんせーやで
  • [ruby-core:40199] Re: [Ruby 1.9 - Feature #5444][Open] Object.free

    Subject: [ruby-core:40199] Re: [Ruby 1.9 - Feature #5444][Open] Object.free From: Eric Scrivner <eric.scrivner@ v 2 s n c > Date: Tue, 18 Oct 2011 15:41:18 +0900 References: 40138 In-reply-to: 40138 help Best, Eric Scrivner, Level2 Designs On Oct 13, 2011, at 8:28 AM, Thomas Sawyer wrote: Issue #5444 has been reported by Thomas Sawyer. ---------------------------------------- Feature #5444: Object

    kabiy
    kabiy 2011/10/18
    なんだこれ
  • 転職のお知らせ - 世界線航跡蔵

    世間は地震により慌ただしい。震源地近くの被災者の方にはお見舞いを申し上げる。 この最中に、個人的な報告を投下するのはちょっと憚られるものもあるのだけれども、あまり時期を外しても書く機会を逸するので思い切って書くことにしよう。 1月一杯で約3年務めた 株式会社スケールアウト を辞め、3月1日から Google Japan で働き始めた。twitterでは大勢の方に祝っていただき有り難い限りである。 Googleについては特に語ることはない。みんなが知っているし、私もまだみんなが知っているようなことの他は僅かしか知らない。だからスケールアウトについて語ることにしよう。 株式会社スケールアウト スケールアウトは広告配信エンジン/広告在庫管理システム/広告入稿システム/広告案件管理システムをフルスタックの製品「ScaleAds」を提供するスタートアップである。 創業 創業者の山崎大輔さんは、元はY

    転職のお知らせ - 世界線航跡蔵
    kabiy
    kabiy 2011/03/14
    おめでとうございます
  • GitHub - cldwalker/one9: commandline tool to convert 1.8 code to ruby 1.9.2. So what's your excuse for not upgrading to 1.9.2? ;)

    Run your tests using ruby 1.8 in the root directory of a gem or Rails app: # Runs `rake test` by default $ one9 test # To run any test command, just prefix it with one9 test: # Run all cucumber specs $ one9 test cucumber # Only run model specs $ one9 test rspec spec/models After your tests, you’ll see a report. Here’s what it all looks like when run on boson: $ one9 test ..........................

    GitHub - cldwalker/one9: commandline tool to convert 1.8 code to ruby 1.9.2. So what's your excuse for not upgrading to 1.9.2? ;)
    kabiy
    kabiy 2011/03/09
    1.8.7から1.9.2への移行を助けてくれるらしい?