lib/qiita_trend/page.rb in qiita_trend-0.2.7 vs lib/qiita_trend/page.rb in qiita_trend-0.2.8

- old
+ new

@@ -14,11 +14,11 @@ save_cache_directory = QiitaTrend.configuration.cache_directory.nil? ? Cache::DEFAULT_CACHE_DIRECTORY : QiitaTrend.configuration.cache_directory @cache = Cache.new(target.cache, save_cache_directory) # 指定されたキャッシュファイルが存在しない場合は処理を終了 unless date.nil? - raise StandardError, '指定されたキャッシュファイルが存在しません' unless @cache.cached? + raise Error::NotExistsCacheError, @cache unless @cache.cached? end # キャッシュが存在する場合はキャッシュから取得 @html = @cache.cached? ? @cache.load_cache : create_html(@target) @@ -29,19 +29,20 @@ private def create_html(target) agent = Mechanize.new agent.user_agent_alias = 'Mac Safari' + login_qiita(agent) if target.need_login + agent.get(target.url).body + end - # ログイン処理 - if target.need_login - form = agent.get(QIITA_LOGIN_URI).forms.first - form['identity'] = QiitaTrend.configuration.user_name - form['password'] = QiitaTrend.configuration.password - logged_page = form.submit - raise StandardError, 'ログインに失敗しました(ユーザー名とパスワードでログインできることを確認してください)' if logged_page.title.include?('Login') - end + def login_qiita(agent) + form = agent.get(QIITA_LOGIN_URI).forms.first + form['identity'] = QiitaTrend.configuration.user_name + form['password'] = QiitaTrend.configuration.password + logged_page = form.submit - agent.get(target.url).body + # ページのタイトルにLoginが含まれていたらログイン失敗とする + raise Error::LoginFailureError if logged_page.title.include?('Login') end end end