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クラスのインスタンスを返します

Parameters:

  • file_name (String)

    ファイル名

  • directory (String) (defaults to: DEFAULT_CACHE_DIRECTORY)

    キャッシュが格納する・されているディレクトリ


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)

Returns キャッシュファイルを格納するディレクトリ(デフォルト値はDEFAULT_CACHE_DIRECTORYになります)

Returns:

  • (String)

    キャッシュファイルを格納するディレクトリ(デフォルト値はDEFAULT_CACHE_DIRECTORYになります)


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

def directory
  @directory
end

#file_nameString (readonly)

Returns ファイル名

Returns:

  • (String)

    ファイル名


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

def file_name
  @file_name
end

#full_pathString (readonly)

Returns キャッシュファイルへのフルパス

Returns:

  • (String)

    キャッシュファイルへのフルパス


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

def full_path
  @full_path
end

Instance Method Details

#cached?Boolean

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

Returns:

  • (Boolean)

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

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

#create_cache(content) ⇒ Object

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

Parameters:

  • content (String)

    書き込む内容


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を使用しファイルを読み込みます

Returns:

  • (Object)

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

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