Sha256: e2c40c74c2cfee9ccea3797d619ed4b73e34834eb935eed4f149c71efdde1d46

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module QiitaTrend
  class Cache
    attr_reader :file_name, :directory, :full_path

    # キャッシュファイルが格納されるデフォルトのディレクトリ
    DEFAULT_CACHE_DIRECTORY = Dir.home + '/qiita_cache/'

    # コンストラクタ
    #   クラス内で使用するインスタンス変数をセットする
    def initialize(file_name, directory = DEFAULT_CACHE_DIRECTORY)
      @file_name = file_name
      @directory = directory
      @full_path = "#{directory}#{file_name}"
    end

    # キャッシュファイルを作成する
    #   キャッシュフォルダが存在しない時は作成する
    def create_cache(content)
      Dir.mkdir(@directory) unless Dir.exist?(@directory)
      File.open(@full_path, 'wb') do |file|
        file.print(content)
      end
    end

    # キャッシュファイルを読み込む
    def load_cache
      File.open(@full_path, 'r', &:read)
    end

    # キャッシュファイルが存在するか?
    def cached?
      File.exist?(@full_path)
    end

    # キャッシュファイルをクリアする
    def clear_cache
      File.delete(@full_path) if cached?
    rescue StandardError => e
      raise e.class, 'キャッシュファイルの削除に失敗しました'
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
qiita_trend-0.2.7 lib/qiita_trend/cache.rb
qiita_trend-0.2.6 lib/qiita_trend/cache.rb
qiita_trend-0.2.5 lib/qiita_trend/cache.rb
qiita_trend-0.2.4 lib/qiita_trend/cache.rb
qiita_trend-0.2.3 lib/qiita_trend/cache.rb