猫の魔法

主にruby系の技術メモを記載

2017-01-01から1年間の記事一覧

個人的メモ:Rails AntiPatterns(5)

CHAPTER 5 Services ここで言うサービスとはサービスクラスのそれというよりAPIやウェブサイトと言った外部が提供or外部に提供する物の総称の事。 AntiPattern: Fire and Forget 外部のAPIを呼ぶ際に、「例外返却される可能性があるメソッド」の例外を取得し…

個人的メモ:Rails AntiPatterns(4)

Rails AntiPttrnsに関する個人的メモ。今日読んだとこまで。 CHAPTER 4 Controllers Solution: Refactor Non-RESTful Actions into Separate Controller この章ではRESTfullなContollerが責務を負いすぎている例として、認証管理を上げている。 認証機構はUs…

個人的メモ:Rails AntiPatterns(3)

Rails AntiPttrnsに関する個人的メモ。今日読んだとこまで。 CHAPTER 4 Controllers AntiPattern: Bloated Sessions Railsは仕組み上ステートレスな動きを得意としている。 ステートフルな動きをなんらかの理由でしなければいけない場合、その内容をクッキー…

個人的メモ:Rails AntiPatterns (2)

Rails AntiPttrnsに関する個人的メモ。今日読んだとこまで。 CHAPTER 4 Controllers AntiPattern: Fat Controller コールバックは条件付きにすることも出来る。 モデル側に処理を寄せる場合はトランザクション処理をコントローラ側に持たせる必要はない。 _i…

個人的メモ:Rails AntiPatterns

Rails AntiPttrnsに関する個人的メモ。今日読んだとこまで。 CHAPTER 4 Controllers AntiPattern: Homemade Keys 認証用のロジックは独自の物を作らない。セキュリティホールになる。gemを使ったほうがいい。 認証機構用のgemとしてClearanceとAuthlogicが紹…

JSON.parseのquirks_modeと2.4.0での変更

どんだけJSONネタで引っ張るのかという話もあるが、色々と調べて見て分かった事があったのでブログに記録しておく。 JSON.parseでは:quirks_modeというオプションがある。 通常JSONを解析する場合、そのトップレベルはオブジェクト若しくは配列になっている…

JSON.loadはオプションが取れる

先日の記事の中でJSON.loadのgithubの実装を紹介した。 Rubyの公式ドキュメント(以下るりま)JSON.loadの説明とgithubのコードを眺めていてあれ?るりまの説明と実装が違う。。。と言う事に気がついた。 るりま側のloadの定義は以下の通り load(source, proc …

rubyの標準ライブラリのバージョンの調べ方

使用しているrubyの標準添付ライブラリが、どのバージョンを使っているか知りたい場合は、 ライブラリをrequireしてモジュール名::VERSIONで取得する事が出来る。 irb(main):001:0> require 'csv' => true irb(main):002:0> p CSV::VERSION "2.4.8" => "2.4.…

JSON.parseとJSON.loadの違い

JSON.parseとJSON.loadの差が何なのか分からなかったので調べてみた。 ※下記の参考のStackOverflowの内容がその答えだが、裏を取りたかった。 require 'json' File.open("hoge.json") do |f| JSON.parse(f.read) == File.open("hoge.json"){ |f| JSON.load(f…

classとそれが読み込んでいるmoduleの一覧を表示する方法

クラスの継承関係と各クラスで読み込んでいるモジュールの一覧を表示したかったので作ってみた。 def display_class_modules(class_name) print "class:#{class_name},modules:#{class_name.included_modules}","\n" if class_name.respond_to?(:included_mo…