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