Skip to content
murajun1978 edited this page Mar 5, 2015 · 1 revision

イベント詳細

レポート

お題

  • 各自もくもく

各自の成果

ice

先日 resque + resque-scheduler で、resque の web インターフェースに resque-scheduler のタブが表示されなかったので原因調査

※2014-05-24 現在

原因: resque 1.x に resque-web を入れてしまっていた

対策: resque 1.x は内蔵の server を使う、resque 2.x には resque-web gem を使う

  • resque は 2.x と 1.x がある

  • 今現在 gem install resque すると 1.x が入る

  • resque 1.x

    • resque-web 内蔵

    • config/routes.rb に以下を書くと http://localhost:3000/resque/web で管理画面にアクセスできる

      mount Resque::Server.new, at: "/resque/web"

    • resque-web が内蔵されているので、resque-web gem を入れるときちんと動作しなくなる

      • resque-scheduler を入れても、Scheduler のタブが表示されないなど
  • resque 2.x

    • resque-web を内蔵しなくなり、resque-web という gem ができている

      gem "resque", "~> 2.0.0.pre.1", github: "resque/resque"

    • 今現在、最新の resque 2.x + gem install で入る resque-web の組合せは以下のエラーで動作しない undefined method `workers' for Resque:Module

murajun1978

最近、既存プロジェクトの改修業務が中心なので、リファクタリングの方法を学習

参考書籍 リファクタリング:Rubyエディション

感想

  • リファクタリング前後のコードが記載されているので良いが、リファクタリングにはテストが必要。

  • テストコードが本書にはないので、自分で書いて進めていった。

  • 初心者には難しいかもですねー

  • 中級者以上であれば、良書になるはず!

@pinzolo

先日リリースした、pinzolo/redmine_persist_wfmt のフィーチャーテストを書いてました。ほとんど調査とエラー対応だったので、出来たシナリオは3つのみ

実績

Add rspec settings and first test scenario · e0587a9 · pinzolo/redmine_persist_wfmt

色々ハマったところ

  • Rails が定義されていないとか、RSpec の config.fixtures_path がないとか
    • 正しく上位の spec_helper が読み込めていなかった
    • 読み込ませないと rspec-rails が動かないので、あったら読み込むという方針は撤回
  • Capybara で特定要素の HTML が取得できない
    • page.evaluate_script("document.getElementById('#{id}').innerHTML") みたいな力技が必要
  • admin ユーザの作成されるタイミングを勘違いしていた。DatabaseCleaner で削除されるので毎回作成しなければならない
    • そしてなかなか管理者ユーザが作成できない
      • login, password, adminUser#new 時に指定しても無視されるからだった
  • I18n.localeen になっているのに、なぜかボタンなどの UI が日本語で表示されてしまうので、Capybara でのボタンクリックなどがいちいちめんどくさい。Redmine がもっと id ふってくれていたらいいのに
    • find(input[name=login]) みたいな変更に弱そうなセレクタ満載になった

追伸

ちゃんと帰りました。


たかえすゆうじ(@yusabana)

だいぶ載せるの遅れてしまいました。。。 以下の問題を解いていました。 https://github.com/yusabana/name-index

問題
  • カタカナ文字列の配列を渡すと、ア段の音別にグループ分けした配列を返すプログラムを作成せよ。
  • 各要素は50音順にソートもすること。
  • IN: ['キシモト', 'イトウ', 'ババ', 'カネダ', 'ワダ', 'ハマダ']
  • OUT: [ ['ア', ['イトウ']], ['カ', ['カネダ', 'キシモト']], ['ハ', ['ハマダ', 'ババ']], ['ワ', ['ワダ']]

最終結果

https://github.com/yusabana/name-index/blob/master/name_index.rb

解答に関しての考察

> print ("あ"..."か").to_a
["あ", "ぃ", "い", "ぅ", "う", "ぇ", "え", "ぉ", "お"]

> print ("さ"..."た").to_a
["さ", "ざ", "し", "じ", "す", "ず", "せ", "ぜ", "そ", "ぞ"]

> print ("や"..."ら").to_a
["や", "ゅ", "ゆ", "ょ", "よ"]

> print ("ワ"..."ン").to_a
["ワ", "ヰ", "ヱ", "ヲ"]

他には、正規表現を使って最初の一文字目を比較するのでも良さそう。 Unicodeのカタカナの並び順は比較的あいうえお順で並んでいるので。 http://pentan.info/doc/unicode_list.html

> !!("リ" =~ /^[ラ-ロ]/)
=> true

> !!("ロ" =~ /^[ラ-ロ]/)
=> true

> !!("マ" =~ /^[ラ-ロ]/)
=> false