retrofit
公式: http://square.github.io/retrofit/
以前に
っていうかインターフェース定義してアノテーションつけてみたいな事して、Webクライアントのクラスとなるソースを生成するの作れば良いんじゃないの
— kinjouj (@kinjou__j) 2015, 6月 12
っていうように単純なデータのやりとりだけなのであればそういうのがあれば良いんじゃねって思ってたんですが、ソースとかを生成したりはしない(はずだ)けど、retrofitっていうのがあるみたいで使ってみた
JAX-RSをやってみる (19) - OAuth1Providerを実装する -
以前やった「JAX-RSをやってみる (18) – OAuth1Provider -」のだと、jersey-oauthに含まれているDefaultOAuth1Providerを使ってるので、アクセストークンなどはインスタンス上で管理されるはずなのでサーバーダウンしたりするとアクセストークンなどが失効するのではないかと思われる。まぁ要はDefaultOAuth1Providerのようなのをつくればいいだけなので、OAuth1Providerを実装することでできるのでやってみた
※前回の「gradle jettyでJDBCRealm」の設定が別途で必要になるのでそれも前提となる
JAX-RSをやってみる (18) - OAuth1Provider -
公式ドキュメント: https://jersey.java.net/documentation/latest/security.html#d0e11010
※暫定なので大幅修正する可能性あり
org.glassfish.jersey.securityのoaut1-serverパッケージを使えばOAuth1Providerが使えるようになる模様。っていう事でやってみた
ActiveRecord Validation #5 - Common Validation Options/Strict Validation -
公式ドキュメント: http://guides.rubyonrails.org/active_record_validations.html#common-validation-options
引き続きドキュメント読みながらやってみようって事で進めてみる
ActiveRecord Validation #4 - validates_each -
公式ドキュメント: http://guides.rubyonrails.org/active_record_validations.html#validates-each
validates_withではレコード単位でバリデーションによる検証処理を別クラス等にまかせるような仕組みだと思うけど、validates_eachは指定した属性に対する検証処理をブロックにまかせるような検証仕組みを提供する物かと
ActiveRecord Validation #3 - validates_with -
公式ドキュメント: http://guides.rubyonrails.org/active_record_validations.html#validates-with
ActiveModel::Validatorを用いて検証処理を実装する方法を提供するヘルパー的な感じなのではと
ActiveRecord Validation #1
公式ドキュメント: http://guides.rubyonrails.org/active_record_validations.html
公式ドキュメントを読みつつ進めてみようかと。ただやたらと長いので何回かに分けて書く予定
ActiveRecordのpolymorphic
公式ドキュメント(Guide): http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
公式ドキュメントの日本語翻訳: [ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active Record Associations][1]
ちょいちょい公式ドキュメントをざっくり見ながらやってみてる。今回はActiveRecordのpolymorphic association
FactoryGirlのロードの仕組み
普段、Railsとかを使う分にはfactory_girl_railsなパッケージが勝手にやってくれるから良いけどそうじゃない環境(ActiveRecordを単体で使ってるようなケースとか)の場合には
ActiveRecord Optimistic Locking
参考: http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html
Rails(っていうかActiveRecord)での楽観的ロックを使う場合のドキュメント見ながらやってみた
とりあえず実検証でのアプリケーションを作る必要があるので(ry
Capybaraで複数のセッションを使う
前回のActiveRecord Optimistic Lockingのような同一のページのインスタンスを持つセッションが複数あり、一方のセッションで処理した後で他のセッションで処理するとエラーになるっていう振る舞いをテストするにはどうしたら良いのかっていう件
という事でやってみた
rails generateでFactoryGirl Fixtures
※Gemfileでenvironmentにおける依存性で:developmentを指定していればこういう設定しなくても良い模様
Railsのconcernsについて
モデルやらコントローラーでmixinすることで定義を分割するような仕組みみたいなのらしい。要はコントローラーやらモデルやらにずらーっと定義しなくてもconcernsに定義をする事でinlcudeして利用できる
rails g migration
よくジェネレータ(scaffold)を使わずにapp/modelsとかに直書きしちゃうケースもあるのですが、そういう場合のモデルに対応するマイグレーションを利用する場合
OmniAuthを使ってfacebookログインする
公式: https://github.com/intridea/omniauth
タイトル通りRails(じゃなくても出来る。Sinatraとかもサポートされている)で、facebookへのログインを行ってアカウント情報なりを利用するようなパターン(ソーシャルログインなり登録時の情報の自動設定なり)を行う場合には、omniauthでサポートされているfacebook strategyを使えば簡単にできちゃう模様
angular.jsをやってみる (24) - ng-non-bindable -
参考: AngularJSとサーバーサイドテンプレートの混在とngNonBindable
※上記の参考を必読することをオススメ
上記参考にも書いてるのですが、例えばクエリーなどにおいてangular.jsが処理されるような記法なクエリーが含まれているとXSSになるっていう話があるのですが、実際自分でやってみた。
※実検証はRails4を使ってやった
supervisord (1)
前から勉強する予定に入ってたsupervisordを使ってみる事に。とりあえずGetting Started的に使うのが今回なセクションとして今後はドキュメント読みつつ色々やってみる的な感じで
rubygemsサーバーを作る
以前にやったRails assets pipelineではパスを指定してパッケージ的なのを読み込んでたんだけれどもRubyGemsで参照できるサーバーを用意、つまりはrubygems.org的ながあれば良いよねっていう事で参考を読みつつやってみた
Rails assets pipeline
何やらRailsを使っててJavaScriptとかをgemとかで配布してRailsプロジェクトに組み込んだりするっていうのがあったりするわけで。例えばTwitter BootstrapのCSSとかJSとかをGemfileにそういうgemを定義する事でサクッと出来るっつー訳。でその仕組み的なのがRails assets pipelineっていうのかなと、これCoffeeScriptとかならコンパイルして使えるようにする事も出来るらしいとの事(今回はやらないけど)
とりあえずこの仕組みを使ってangular.jsなプロジェクトを別にしてRailsプロジェクトに組み込むっていう事をしてみる
rspecとspawn
テストする時とかに、サーバーを必要とするAPIのテストする前にそのサーバーをテストランナーから起動しテストが終わったらシャットダウンするっていう工程をやったりする事があると思うのですが、それをRSpecっていうかRubyでやる方法的な事として、サーバープロセスをspawnしちゃってテスト終了時にプロセスを終了させちゃうとかっていうのを利用する事で出来る模様。という事でやってみた
FactoryGirlを使ってみる
何やら色々Railsな情報を見てるとFactoryGirlっていうのがやたらと目に入ってくるので調べたりしつつちょっと使ってみた。単純に言うとテストで使用するフィクスチャを作成出来る物な模様
rspec-railsのドキュメント読み
以前から何度かはRailsとRSpecに関する事書いてるけど、ちゃんとドキュメント読みましょうって事で、 https://www.relishapp.com/rspec/rspec-rails/docs を読み進めてみる
doorkeeperでプロテクトされているコントローラーのテスト
RailsでAPIなコントローラーをテストしようにもbefore_filterでトークンによるプロテクションがされているのが当たり前。それをテストする際にどうやるのかって所なんですが、普通にドキュメントに書かれてる
https://github.com/applicake/doorkeeper/wiki/Testing-protected-controllers
rspecを勉強してみる
まぁRailsとかでは書いたりもしてますけど、without Railsな環境とかっていうかRSpecももっと勉強しないとなっていう欲求にかられてゆる〜く勉強してみた
RubyOnRailsでformatルーティングを無効にする方法
App::Application.routes.draw do
resources :entry do
match "search/:query", :action => :search, :on => :collection
end
end
みたいなルーティング定義をすると
- /entry/search/:query(.:format) entry#search
なルーティング定義になる。だけどこの:formatは要らんって思った場合どうすればいいのかって調べてみたら、:format => falseを渡せば良いらしい
HABTM(はびたむ)
っていうテーブル構造があったとした場合に、RailsというかActiveRecordに中間モデルを用いて多対多を用いる方法として、:throughを用いてやるケースっていうのがあると思うのですが
とりあえずRailsまでは必要なくActiveRecord単体を使って検証してみる
crxmakeを使ってChrome Extensionをビルド
Chrome Extensionをビルド(.crxを生成する)する際にはChromeなどの拡張管理から生成出来たりできますけど、crxmakeを使うとコマンド使ったりだとかRubyのRakefileにタスク定義するだけで生成出来る模様
RubyOnRailsの標準テストをやってみる
標準テストなのかどうかは定かじゃないのですが、RSpecじゃなくてActiveSupport::TestCase/ActionController::TestCaseとかを使って単体テストとかやってみた。あくまで「どう使うのか」っていうのがポイントなんでコード上は特に意味の無い内容になってますんで
ちなみにベースは某イベントで開催されたRailsなLTの物をベースとされたのを参加者が自身で起こした物な模様
Rails3+RSpecでのテストを勉強してみる (5) - Spork+Headless -
HeadlessでXvfbを使ってcapybara-webkitなテストとかも出来る模様。んでsporkが良い感じらしいっていうのを聞いたのでとりあえずやってみた
beanstalkを使ってみる
※Amazon Elastic Beanstalkは関係ありません
http://kr.github.com/beanstalkd がちょっと気になったので使ってみた
Rails3+RSpecでのテストを勉強してみる (3) - capybara-webkitを使ってみる -
capybara-webkitを使ってJavaScriptの機能をテスト出来る模様なので色々調べつつやってみた
Rails3+RSpecでのテストを勉強してみる (2) - RSpecでのコードカバレッジ -
そういうライブラリとかあんのかなーって色々見てたら、rcovっていうのがあるけどRuby1.9.xで動かないよな模様なのでsimplecovっていうのを使えば良いらしい。んでrcovなフォーマットで動かす場合にはsimplecov-rcovっていうのも使えば良いらしい
Rails3+RSpecでのテストを勉強してみる (1)
ちょっと要件があり勉強する必要があったので色々勉強してみた。一応、Rails自体5年ぶりだし、RSpecなんて今回初めて使ったレベルなので