lib/qiita_trend/page.rb in qiita_trend-0.2.0 vs lib/qiita_trend/page.rb in qiita_trend-0.2.1
- old
+ new
@@ -2,18 +2,40 @@
require 'mechanize'
module QiitaTrend
class Page
- attr_reader :page, :html
+ attr_reader :html
QIITA_URI = 'https://qiita.com/'
def initialize(ua)
+ @html = create_html(ua)
+ end
+
+ private
+
+ def create_html(ua)
+ # キャッシュが存在する場合はキャッシュから取得
+ cache = QiitaTrend::Cache.new(target_trend + '.html')
+ return cache.load_cache if cache.cached?
+
+ # キャッシュが存在しない場合はキャッシュを作成しページ情報を取得する
agent = Mechanize.new
agent.user_agent_alias = ua
+ page = agent.get QIITA_URI
+ cache.create_cache(page.body)
- @page = agent.get QIITA_URI
- @html = @page.body
+ page.body
+ end
+
+ def target_trend
+ if Time.now.hour >= 5 && Time.now.hour < 17
+ Date.today.strftime('%Y%m%d') + '05'
+ elsif Time.now.hour >= 17
+ Date.today.strftime('%Y%m%d') + '17'
+ elsif Time.now.hour < 5
+ (Date.today - 1).strftime('%Y%m%d') + '17'
+ end
end
end
end