Class: QiitaTrend::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita_trend/cache.rb

Overview

Qiitaのトレンドをキャッシュする機能を提供する

Constant Summary collapse

DEFAULT_CACHE_DIRECTORY =

キャッシュファイルが格納されるデフォルトのディレクトリ

Dir.home + '/qiita_cache/'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_name, directory = DEFAULT_CACHE_DIRECTORY) ⇒ Cache

コンストラクタ Cacheクラスのインスタンスを返します


21
22
23
24
25
# File 'lib/qiita_trend/cache.rb', line 21

def initialize(file_name, directory = DEFAULT_CACHE_DIRECTORY)
  @file_name = file_name
  @directory = directory
  @full_path = "#{directory}#{file_name}"
end

Instance Attribute Details

#directoryString (readonly)


9
10
11
# File 'lib/qiita_trend/cache.rb', line 9

def directory
  @directory
end

#file_nameString (readonly)


7
8
9
# File 'lib/qiita_trend/cache.rb', line 7

def file_name
  @file_name
end

#full_pathString (readonly)


11
12
13
# File 'lib/qiita_trend/cache.rb', line 11

def full_path
  @full_path
end

Instance Method Details

#cached?Boolean

キャッシュファイルが存在するかどうかを判定します


49
50
51
# File 'lib/qiita_trend/cache.rb', line 49

def cached?
  File.exist?(@full_path)
end

#create_cache(content) ⇒ Object

キャッシュファイルを作成する ※キャッシュフォルダが存在しない場合は作成します


31
32
33
34
35
36
# File 'lib/qiita_trend/cache.rb', line 31

def create_cache(content)
  Dir.mkdir(@directory) unless Dir.exist?(@directory)
  File.open(@full_path, 'wb') do |file|
    file.print(content)
  end
end

#load_cacheObject

キャッシュファイルを読み込む File.openを使用しファイルを読み込みます


42
43
44
# File 'lib/qiita_trend/cache.rb', line 42

def load_cache
  File.open(@full_path, 'r', &:read)
end