class QiitaTrend::Target

Qiitaの対象のトレンドの機能を提供する

Attributes

cache[R]

@return [String] キャッシュファイル名

need_login[R]

@return [Boolean] Qiitaへのログインが必要かどうか

type[R]

@return [TrendType] トレンドタイプ(TrendType::DAILY,TrendType::WEEKLY,TrendType::MONTHLY)

url[R]

@return [String] トレンドを取得するQiitaのページURL

Public Class Methods

new(trend_type = TrendType::NORMAL, date = nil) click to toggle source

コンストラクタ

@param [TrendType] trend_type トレンドタイプ @param [String] date 「YYYYMMDD05」,「YYYYMMDD17」形式のどちらか

# File lib/qiita_trend/target.rb, line 19
def initialize(trend_type = TrendType::NORMAL, date = nil)
  @type = trend_type
  @url = trend_url
  @need_login = need_login?(trend_type)
  @cache = cache_name(trend_type, date)
end

Private Instance Methods

cache_name(type, date) click to toggle source

キャッシュ名を取得する キャシュ名はYYYYMMDD05_daily.html,YYYYMMDD17_weekly.htmlなどの形式になります dateが指定されていなかったら現在時刻からキャッシュファイル名を作成し指定されていたらそのdateからキャッシュ名を取得する

@param [TrendType] type トレンドタイプ @param [String] date 「YYYYMMDD05」,「YYYYMMDD17」形式のどちらか

# File lib/qiita_trend/target.rb, line 49
def cache_name(type, date)
  return "#{date}_#{type}.html" unless date.nil?

  if Time.now.hour >= 5 && Time.now.hour < 17
    "#{Date.today.strftime('%Y%m%d')}05_#{type}.html"
  elsif Time.now.hour >= 17
    "#{Date.today.strftime('%Y%m%d')}17_#{type}.html"
  elsif Time.now.hour < 5
    "#{(Date.today - 1).strftime('%Y%m%d')}17_#{type}.html"
  end
end
need_login?(trend_type) click to toggle source

Qiitaにログインが必要か

@param [TrendType] trend_type トレンドタイプ @return [Boolean] True:Qiitaへログインが必要、False:Qiitaへログイン不要

# File lib/qiita_trend/target.rb, line 39
def need_login?(trend_type)
  trend_type != TrendType::NORMAL
end
trend_url() click to toggle source

トレンドのURLを取得する

@return [String] トレンドを取得するQiitaのページURL

# File lib/qiita_trend/target.rb, line 31
def trend_url
  Page::QIITA_URI
end