クライアントと、Rubyによるサーバの作成。reply[とりあえず表示しましたが、これからコードをアップロードしたり改変していきます。]先週から、システム部で何か動くものを作って発表するという企画?が始まりました。Serviceの実装をやってみることにしてみました。iPhoneクライアントはほぼObjective-Cしかありませんのでそれを使い、サーバはRubyで実装しました。以下が発表したスライドを少し改変したものになります。milkcocoa.コードは今回はbitbucket.orgにアップロードすることにしました!コードはこちらになります。http://bitbucket.org/milkcocoa/apns-test/ただしサーバのファイルに関してはデバイスIDとかの部分はxでマスクしています。キーに関してはスライドで指定した方法で記述してください。pluginを使用したページをRSpecでテストする。replyWebアプリケーションでは、たくさんの項目を一覧表示する場合、1ページに全部見せるのではなくpaginate処理をして数ページに分ける場合があります。Googleの検索結果は通常、1ページに10件しか表示されません。pluginというプラグインを使用するということは割とよく知られていることです。先日もそういうページを作成する必要があり、作成していましたが、RSpecでテストを作成しようとしたところやり方がわからず詰まりました。そのため、その方法をここに記しておこうと思います。ドキュメントを読もう!実はGitHubのpluginのWikiページに最低限必要なことは書いてありました。気がついていればもっと早く解決していたところでした。view!」という部分ですね。ポイントはpaginateやtotal_pagesというメソッドをstub!で定義してあげることです。nilになっているのは、たぶんassingsとかでparameterを指定していないからこうなるのだと思います。should_receiveをきちんと理解していないで、まともな説明が書けません。LeopardでCD-ROMからisoファイルを作成する。reply中途半端ではありますがファイルサーバもできたことなので、CD-ROMやDVDなどはできる限りHDDの中に入れておきたいなぁと考えています。物理メディアはメディアを探すところから始まり、わざわざドライブに入れなくてはならなかったり、速度が遅かったりと面倒です。そこでCD-ROMからisoファイルを作成することにしました。目指すはWindowsでも読めるもの。Windowsから作成してもよいのかもしれませんが、いちいち仮想環境を立ち上げるのは面倒なのでMacでやってみます。使用するソフトはディスクユーティリティとターミナル。isoファイルにしたいCD-ROMをドライブに入れる。ディスクユーティリティを起動する。ディスクユーティリティの左側でCD-ROMがマウントされていることを確認し、そこをクリック。[〜からディスクイメージ]を選択。「イメージフォーマット」を「DVD/CDマスター」にして、ファイルの保存先を選択する。これで.cdrというファイルが作成される。ターミナルで次のコマンドを打つ。Toolsで読み込んでみたところ、無事に読み込むことができました。milkcocoa.RubyでArrayの部分集合を作成する。replyArrayの部分集合を作成する必要があったので、作ってみました。subset!でポインタが循環しないようにcloneを使う。endend他には同じサイズの配列を作成して、その要素を使用するかどうかtrueかfalseのフラグを立てていくという手法もあるようです。irbで実行するとこうなります。1.8.7で追加されたcombinationというメソッドを使用しているので1.8.7以降限定です。endendirbでの実行結果。