タグ

rubyに関するderbyのブックマーク (24)

  • 私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ

    私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。 設計する describe を書く itを書く subjectを明確にする before(context)を明確にする その他に、気をつけている点はこんな感じ 別のメソッド呼ぶ時は基的にstubなどで潰す contextは「〜の場合」、it は「〜であること」になるようにする 一つずつ、詳細を書きます。 設計する テストを書き始める前に、まず実装しようとしてるクラス、メソッドを簡単に設計します。 少なくとも、「クラス名」「クラスメソッド or インスタンスメソッド」「メソッド名」「メソッドの戻り値」ぐらいは決めます。 describe を

    私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

  • サンプルコードによるRuby入門

    配列の宣言 array = [1,2,3,4,5] 配列の要素の参照 配列の要素を参照するには、以下のようにします 配列[添字] 先頭の要素と2番目の要素を出力するサンプルです puts array[0]; puts array[1]; 配列の要素の代入 配列[添字] = 値 とします 先頭の要素に20を代入するサンプルです。 array[0] = 20 配列の要素の個数 次のようにします array.size 配列の要素を順番に処理する eachというのを使います。 配列.each do |配列の要素| # ここに配列の要素に対する処理を書きます end たとえば配列の要素すべての値を表示する例です array.each do |element| puts element end 重複を取り除く uniqというのを使います 配列.uniq たとえば[1,1,2,3]という配列に.uniq

    サンプルコードによるRuby入門
    derby
    derby 2012/07/28
  • Primer

    Primer is a set of guidelines, principles, and patterns for designing and building UI at GitHub. It provides a shared language and standardized approach to delivering cohesive experiences.

    Primer
    derby
    derby 2012/07/25
  • Welcome to RubyMotion

    iOS は Apple によるモバイル用の OS で、iPhone や iPod、iPad などさまざまなデバイスを制御しています。開発者は iOS 向けのアプリケーションを作成し、App Store にアプリケーションを登録し、流通させることができます。 Runtime: 新規の Ruby 言語の実装で、ネイティブの iOS と密接に統合され iOS デバイスに最適化されています。 Project Management: RubyMotion のプロジェクトを作成・管理、また対話的に開発するためのコマンドラインインタフェースです。他にも、Ruby コードを最適化された機械語にコンパイルする静的なコンパイラと、その場でリアルタイムに式を評価しアプリケーションの動作を変更できるインタラクティブなコンソールがあります。

    derby
    derby 2012/07/22
  • Rubyのクラスの太った人たち

    前回の記事「Ruby、君のオブジェクトはなんて呼び出せばいいの?」で、Rubyには大量のメソッドがあることが分かりました。今回はその補足として、各クラスごとのメソッド数を数えてグラフ化してみます。 インスタンスメソッドを数える まずは、インスタンスメソッドを数えましょう。グラフ化の対象は、10以上のメソッドを持つクラスです。最初にクラスごとのメソッド数をリストアップします。 klasses = ObjectSpace.each_object(Module) def live(methods) methods.reject { |m| "#{m}".start_with? '_deprecated' } end methods = klasses.map do |k| [k, live(k.methods(false)).size, live(k.instance_methods(false

    derby
    derby 2012/07/19
  • 怠惰で短気で傲慢な君に贈るRubyの遅延評価

    Ruby2.0ではlazyというメソッドがEnumerableモジュールに追加されるらしいよ。 yhara/enumerable-lazy · GitHub lazyはリストに対する遅延評価を実現するメソッドなんだけど、それで意味がわからないって言うなら、それは、怠惰で短気で傲慢な君のためのメソッドだってことだから、喜んでほしいよ。 君のような怠惰で短気で傲慢な人っていうのは、よく次のようなことを言うんだよ。 君 「おい、雑誌持って来い!」 部下「どの雑誌ですか?」 君 「全部だよ!」 部下「全部って、日で発行されてる雑誌全部ですか?」 君 「全部ったら、全部だよ、バカが」 ... 部下「全部持って来ました。ぜぇ、ぜぇ..。全部で、えっと..」 君 「冊数なんて、どうでもいんだよ!じゃあ、そこからAKBの記事、全部切り出せ!」 部下「全部ですか... はっ、はい、分かりました...(まじ

    derby
    derby 2012/07/16
  • RubyにおけるシーケンスはObject#repeatに任せなさい!

    Rubyにおいてシーケンス、つまり意味的に連続する要素の並びを簡単に生成するObject#repeatというものを考えましたよ!以前に考えたEnumerable#repeatを単にすべてのオブジェクトに拡張したものですけど。 class Object def repeat(init=true, &blk) x = self Enumerator.new do |y| y << x if init loop { y << (x = yield x) } end end end repeatは、そのレシーバオブジェクトを初期値として、渡されたブロックを繰り返し適用します。適用の結果はEnumeratorオブジェクトでラップされているので、遅延評価されます。 以下に、問題に答える形で使い方を見せますね。比較のためrepeatを使わない方法も適宜示します。 1. 初項1、公差2の等差数列の最初の2

    RubyにおけるシーケンスはObject#repeatに任せなさい!
    derby
    derby 2012/07/16
  • rubyからExcelの「.xlsx」ファイルを読む | rakkyooの備忘録

    rubyで,excel2007以降のファイルをどうしても読み込みたかったので探していたのですが,「roo」でできるみたいですね. RubyForge: roo – parse spreadsheets with Ruby: Project Info インストールはgem経由で簡単.

    derby
    derby 2012/07/03
  • Rubyの配列でごにょごにょするときzipとinjectとevalが便利すぎる件 - ミームの死骸を待ちながら

    先日「ブログ書きが不調」と書いたが、言語のアウトプットが不調なときは、それ以外のことをするに限る...たとえば黙々とプログラムを書く、音楽に浸る、身体を酷使する、などだ。というわけで月曜日、天気は晴れなかったものの、研究のデータ処理に使うRubyスクリプトを書きまくって憤を晴らしていた。 ところがそのプログラム脳のまま夜にはVimM#4に行こうとした時、そういえば内定者3人によるSkype会議が予定されていた(つまりダブルブッキング)ことを思い出し、自分の阿呆さに呆れ、当にすみません、でもって結局気分は晴れず。 前置き(ただの日記)終わり。 題。 Rubyの配列でいろいろいじる時に、for i in ...と array.each でだいたいできるんだけど、もちっとスマートにやりたいなぁと思って調べていたらこれ使えるんじゃね?と気がついたことがいくつかある。zipとinjectとev

    Rubyの配列でごにょごにょするときzipとinjectとevalが便利すぎる件 - ミームの死骸を待ちながら
    derby
    derby 2012/06/03
  • Ruby On Rails ピチカート街道 - yield が分からないので勉強する -

    2024.07 « - - - - 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 30 31 » 2024.09 rails の yield じゃなくて、ruby の yield のことなのですが、超こんがらがって分からなかったので、色々試しました。 そこで出した結論。 yield は、引数として渡されたブロックを実行するだけ という風に今は理解しています。 どういうことか、というと例を見た方が早いと思います。 def method1 yield end method1 do puts '血糖値' end を実行すると 血糖値 と表示されます。最初は、なんでこーなるの???????とハテナがたくさん付きました。 でも↓のように理解すると分かりやすくなりました。 1. method1

    derby
    derby 2012/06/03
  • Ruby の yield って結局なんなの? - YNote

    yield って、いまいち分かりにくいですよね。。 わからない⇒調べる⇒忘れる⇒調べる⇒忘れる⇒… のエンドレスループから抜け出すために、自分なりにまとめることにしました。 ブロック いきなり yield じゃないやん!という感じですが、我慢して見てみてください。 …じ・つ・は、Ruby のメソッドはすべて「ブロック」を引数にすることができます。 最近知りました(;ω;)。 def hogehoge( x ) return x + 2 end p hogehoge( 3 ) p hogehoge( 5 ){ p "foo" } ブロックってのは、{ p "foo" } みたいに "{" と "}" に囲まれたやつね。"do" 〜 "end" でもいいみたいだけど。 これを実行すると、 5 7 となります。{ p "foo" } はまるっきりシカトです。 (・∀・) …が、以下のようにすると

    derby
    derby 2012/06/03
  • RSpec のメタ情報が知りたい « blog.udzura.jp

    RSpec の DSL には、 example と言うメソッドがあり、そこを経由して現在実行中の example の情報を得ることができる。 def add(*args) args.inject(:+) end describe "add" do before do p example.class #=> RSpec::Core::Example end subject { add(*args) } context "when 1 + 1" do let(:args) { [1, 1] } it { should == 2 } end end 具体的には、 example は RSpec::Core::Example のインスタンスらしい。 Class: RSpec::Core::Example 以下のような属性、メソッドがある: #exception 実行中の example で最初に起

  • コーディング規約をまとめてみた (Ruby編) - bojovs::blog

    色々なところで見かけるコーディング規約を見て意識はしているのですが、 その時の気分で書き方を変えてしまうことが多々あったので、自戒を込めてコーディング規約をまとめてみました。 「なぜこの規約が存在するか」を明確にするために、できる限り理由も併記しています。 ただかなり主観的な部分があるので、あまり意味がないかもしれません…。 「この記事のこの規約は気に入らない。」と思うことがきっとあると思います。 その時はコメント欄などに理由も合わせて書いてくれると嬉しいです。 この記事ではRubyのコーディング規約をまとめています。 近いうちにRailsとCoffeeScriptのコーディング規約もまとめるつもりです。 Rubyのコーディング規約は以下のページを参考にまとめました。 https://github.com/styleguide/ruby https://github.com/bbatsov

    derby
    derby 2012/04/25
  • 知って得する21のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop

    derby
    derby 2012/04/23
  • Rubyで日付の計算するならactive_support使っとけ - (゚∀゚)o彡 sasata299's blog

    2009年09月07日01:47 Ruby Rubyで日付の計算するならactive_support使っとけ Ruby で日付を扱うときに、active_support (rails をインストールすると一緒に入ってくるライブラリ) が凄い便利なんです!!ぐだぐだ説明するよりもコードを見たほうが早いと思うのでどうぞ。 #!/usr/bin/ruby require 'rubygems' require 'active_support' t = Time.now # Mon Sep 07 00:24:07 +0900 2009 t - 5.days # 5日前 (Wed Sep 02 00:24:07 +0900 2009) t - 1.week # 1週間前 (Mon Aug 31 00:24:07 +0900 2009) t - 2.years # 2年前 (Fri Sep 07 00:

  • Herokuって便利だし利用までたった3ステップですお!! - (゚∀゚)o彡 sasata299's blog

    2011年12月20日00:10 Ruby heroku Herokuって便利だし利用までたった3ステップですお!! Ruby Advent Calendar jp: 2011 : ATNDの20日目の記事です。19日目はtamootさんでWindows環境で torquebox + JRuby + #tDiary を動作させる - 会長@腹部日記(2011-12-19)でした。 さて、ブログ書くのちょーひさびさですが、今日は Heroku について書きます>< # ちなみに去年の Ruby Advent Calendar ではこんな記事を書きました プログラマたるもの、Webサービスを作りたいと考えるのは自然なことでしょう。ただ問題は作ったものをどうやって公開/運用するか、です。自宅サーバやレンタルサーバでももちろん良いのですが、Ruby の場合だと Heroku を利用する、という選択

  • 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 と判定するの知って

  • Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog

    2010年02月03日21:31 Ruby Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ なんか似たようなタイトルを見たことあるな…まぁいいか。 Perlで+を使うと幸せになれるよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog ブロック処理 ( do...end もしくは {...} ) の例としてはこのような3種類があります。 #1 ブロックの中に直接処理を書く方法 #2 ブロックの中でやらせたい処理の Proc オブジェクトを呼び出す方法 #3 ブロックを使わずに Proc オブジェクトに & を付けて渡してあげる方法 3つとも全く同じ処理です。#3 みたいに書く事も出来るんですね〜。& が Proc オブジェクトをブロックに変換してくれます。 #1 3.times do puts 'hogehoge' end proc = Proc.new

    derby
    derby 2012/04/23
  • プログラミング言語Ruby ― ありえるえりあ

    方針 Rubyをまったく知らない前提で始めます JavaJavaScript、elispのようなメジャーな言語と対比しながら説明します なるべく手を動かして目に見える形で説明を進めます 次回Ruby on Railsの勉強会をするので、それにつながることに重点を置きます 逆に言うと、RoRであまり使わない知識は流します。例えば、ファイル操作周りやスレッド周りなど 開発環境(2) .emacs.elに書くべき記述 ; ruby (autoload 'ruby-mode "ruby-mode") (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-al

    derby
    derby 2012/04/15