• 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

下記のページを参考にしました:
http://wiki.github.com/aslakhellesoy/cucumber/step-organisation

モデル(テーブル)毎にstepsを作成する

原則はそれでいく、ただし認証などは別stepsとして作ったほうがベター:

  • employee_steps.rb
  • education_steps.rb
  • experience_steps.rb
  • authentication_steps.rb:認証用

all_steps.rbという巨大なファイルを作ることもできます。エレガントではないですけどね。

モデルstepsには必ずGiven-When-Then stepを作る

モデルをカバーするようなstepsファイルでは、下記のCRUDをカバーするようなGiven-When-Then stepを書くことと。

  • 作成
  • 表示
  • 更新
  • 削除

各stepsでは@variablesを作成して、オブジェクトの状態を保持できる

コントローラで取得する@userを下記のようなstepで記述できます:

   1  Give /^"(.*)"ユーザでログイン$/ do |login|
   2    @user = User.find_by_login(login)
   3  end
(注) 各stepで依存しあうことになり、再利用性が難しくなります
(注) 実際のログインシナリオはまた別にちゃんと記述する必要があります!

posted by Png satoko on Fri 23 Jan 2009 at 15:41

UIImageで取得できる画像とUIImage.CGImageで取得できる画像が上下逆転してしまいます。原因はUIKitとCoreGraphicsで、座標系のY軸が反転しているからだそうです(takiuchiさん談)。

下記を参考にしました:
http://blog.logichigh.com/2008/06/05/uiimage-fix/

UIImage.CGImageをrorateする

   1    UIImage *sampleImage = [UIImage imageNamed:@"image.png"];	
   2    CGRect rect = CGRectMake(0,0, sampleImage.size.width, sampleImage.size.height);
   3   
   4   //create the context
   5    UIGraphicsBeginImageContext(rect.size);
   6    CGContextRef i_context = UIGraphicsGetCurrentContext();
   7  	
   8    CGContextDrawImage(i_context, rect, sampleImage.CGImage);
   9    CGAffineTransform transform = CGAffineTransformRotate(transform, M_PI);
  10    CGContextConcatCTM(i_context, transform);
  11    UIImage *rotatedImage = UIGraphicsGetImageFromCurrentImageContext();
  12    CGImageRef sampleImageRef = [rotatedImage CGImage];
  13  
  14    //release the context
  15    UIGraphicsEndImageContext();
  16    CGContextRelease(i_context);

ちなみに、Quartz 2Dなどは昔の名前らしく、今は、CoreGraphicsと呼ばれています。最近はCoreImage, CoreGraphics, CoreAnimationのようにCoreシリーズで統一しているようです。

posted by Png satoko on Wed 21 Jan 2009 at 15:28 with 1 comment

[追記 2009.01.20]script/generate featureの項を追加

moroさんの記事を読んで、Cucumber wktk!と思っていたのでtry

http://d.hatena.ne.jp/moro/20081112/1226486135
http://d.hatena.ne.jp/moro/20081118/1226977015
http://gist.github.com/26024

こちらの導入手順を参考しました:
http://wiki.github.com/aslakhellesoy/cucumber/ruby-on-rails

必要なgemをinstall

  • rspec
  • rspec-rails
  • cucumber
  • webrat

ローカルには0.1.15を入れたのですが、念のため0.1.13で依存しているというgem:aslakhellesoy-webratもinstallしました。

   1    gem sources -a http://gems.github.com
   2    sudo gem install aslakhellesoy-webrat

Webratを使うようにCucumberのenvに書く

${RAILS_ROOT}/features/support/env.rb

   1  require "webrat"
   2  Webrat.configure do |config|
   3    config.mode = :rails
   4  end     

script/generate feature

moroさんところのcucumberの構造辺りで紹介されているgeneratorでfeatureやstepsを生成:

   1  $ ruby script/generate feature Product

Webratの仕様が変わってた

moroさんのgistを下記に保存して使用し始めたのですが、

   1  ${RAILS_ROOT}/features/step_definitions/webrat_ja_steps.rb

細かい仕様が変更されていました:
ディレクトリstep_definitionsの位置も変わっているのに加えて、visits => visit、fills_in => fill_inなどが変更されていました。ただ、前もって調べなくても、rake featuresすると仕様変更された旨のmessageが出るので安心です。

   1   visit home_path 
   2   fill_in "Email", :with => "good@example.com"

またpendingされたstepには、下記のようにsnippetsが出力されて便利だなぁと思いました:

   1  You can use these snippets to implement pending steps which have no step definition:
   2  When /^パラメータを入力する product_comment\[body\]=dummy comment!$/ do
   3  end

Refs

http://moriq.tdiary.net/20081022.html
http://d.hatena.ne.jp/hs9587/20081231/1230691812
http://barkingiguana.com/2008/11/11/getting-started-with-story-driven-development-for-rails-with-cucumber

posted by Png satoko on Mon 19 Jan 2009 at 15:44

画像を扱うappを作っていて、シミュレータにどうやって画像を追加すればいいのだろう?と思って調べてみたら、ありました。

Start the simulator. Drag the image you want to add there, it will start safari and shows it to you. Tap and hold, then tap “Save Image”. Bingo, it’s now in the photo album.
http://ofcodeandmen.poltras.com/2008/11/04/adding-pictures-to-the-simulator/

ざっくり訳:

  1. シミュレータを起動して、
  2. 画像をドラッグ&ドロップ、
  3. Safariで表示されたら、タップしてホールド、その後"Save Image"ボタンを押せば完了。

同様に、Safariで適当なURLを開いて、サイト内の画像をタップしてホールド...という方法もokですね。

posted by Png satoko on Fri 9 Jan 2009 at 14:20

me, myself & MUJIの修正のお知らせです。

me, myself & MUJI
http://mmm.s21g.com/

my MUJI登録で2MBを超えるファイルをアップロードした場合、my MUJIが表示できないエラーが発生しておりました。ご迷惑をおかけして申し訳ありません。

my MUJI登録で2MBを超えるファイルアップロード時の対応

my MUJIはアップロード時にオリジナル画像を保持していますが、大容量のファイルがアップロードされた場合、オリジナル画像として縮小したもの(表示用に使用している物と同じもの)を保存することに致しました。

これによって、ユーザが画像をリサイズする手間なしでmy MUJIを登録・表示することができるようになりました。

今後ともme, myself & MUJIをよろしくお願い致します。

posted by Png satoko on Fri 9 Jan 2009 at 14:04

me, myself & MUJIの修正のお知らせです。

me, myself & MUJI
http://mmm.s21g.com/

「"気になるMUJI"の登録画面に到達するのが難しい。導線を作ったほうがいい」との要望を頂きました。色々と方法はあるのですが、検討した結果、下記のように修正しました。

各製品のページにリンクを付けました

各製品ページのみんなの声:
mmmuji_product_page.png

ホーム画面にリンクを付けました

ユーザのホーム画面右にあるヒント欄:
mmmuji_home_hint.png

頂いている他の要望についても検討中です。@koichirooさん、フィードバックありがとうございました!

posted by Png satoko on Thu 8 Jan 2009 at 17:08

あけましておめでとうございます。
ブログ長く更新できていなかった気がしますが、元気でおります! 今年もどうぞよろしくお願い致します。

さて、PokeDia、軽く使ってみてはいたのですが年末から役割を決めて使うようになりました。今回はそれについて書いてみようと思います。

現在、文のカテゴリや長さによって下記のように切り分けています。

  • 長:メモ帳:ブログのネタ
  • 中:PokeDia:日々の思ったことや、畑日誌など
  • 短:自作の一行メモapp:買い物リスト(たまにTODO)

フリップ入力にかなり慣れてきたので、眠れない夜などにPokeDia・メモ等で考えの断片なんかを文字に落としておくと、頭がスッキリします。文章を書く訓練にもなっています。また、メール転送を使って文章を再利用できるので、ブログ執筆の時間短縮をすることもできます。

PokeDiaの画面の高さ制限が用途分けのきっかけに

ブログのネタも最初はPokeDiaに入れていたのですが、一日の画面に高さ?制限があるので、あまり長い文を書き出すと、表示範囲外にいってしまいそうなことに気がついたので、ブログのネタはメモで書くと決めてしまいました。この制限からきた使い分け、意外にも気分的にしっくりきて心地よく使えています。無理に一つにすべて詰め込む使い方にしなくてよかったかなぁと思っています。
ただPokeDiaで思ったことを書いていると、ネタにしたくなって後で困るということもたまーにありますw PokeDiaは文の固まりの移動ができるので便利なんですよね。

シークレットモードがあるとおもしろいかも??

ただの思いつきですw
携帯でもシークレットモードがあって結構需要があるようなので、表は(誰かに見られてもいいような)雑多用メモで、裏は秘密の日記や、自分のディープな趣味専用などにしてしまうなどできたらなんだか面白いような気がしました。もし、PokeDiaの画面の高さ制限がなくなったら、裏はブログのネタ専用にしたいかなと考えています(勝手に!)。+裏返すというUIの切り替えが上で挙げた、用途での切り分けにしっくりくる気がするので!

posted by Png satoko on Sun 4 Jan 2009 at 04:48 with 3 comments
Contents
[Cucumber] stepsの作成ガイドライン
[iPhone] Rotateする:UIImage.CGImageで取得できる画像が上下逆さ
Cucumber 0.1.15を動かす
iPhoneシュミレータに画像を登録する方法
[修正のお知らせ] me, myself & MUJI:my MUJI登録で2MBファイルのアップロード時挙動
[修正のお知らせ] me, myself & MUJI:気になるMUJIの登録画面へのリンク
iPhoneメモappの使い分け:メモ帳・PokeDia・一行メモ
Comments
KingofSmack: Here also good reads for this mobile applicatio... '14-5
satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよっ... '10-12
ujihisa: :%s/blog/glob/g '10-7
satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 ... '09-10
しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫... '09-10
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ