Sha256: 390aab285c460eb704e9bc574b8e739b92839d8d9248cdf54c290fe271f82613

Contents?: true

Size: 1.74 KB

Versions: 18

Compression:

Stored size: 1.74 KB

Contents

# frozen_string_literal: true

module QiitaTrend
  # Qiitaのトレンドをキャッシュする機能を提供する
  class Cache
    # @return [String] ファイル名
    attr_reader :file_name
    # @return [String] キャッシュファイルを格納するディレクトリ(デフォルト値はDEFAULT_CACHE_DIRECTORYになります)
    attr_reader :directory
    # @return [String] キャッシュファイルへのフルパス
    attr_reader :full_path

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

    # コンストラクタ
    # Cacheクラスのインスタンスを返します
    #
    # @param [String] file_name ファイル名
    # @param [String] directory キャッシュが格納する・されているディレクトリ
    def initialize(file_name, directory = DEFAULT_CACHE_DIRECTORY)
      @file_name = file_name
      @directory = directory
      @full_path = "#{directory}#{file_name}"
    end

    # キャッシュファイルを作成する
    # ※キャッシュフォルダが存在しない場合は作成します
    #
    # @param [String] content 書き込む内容
    def create_cache(content)
      Dir.mkdir(@directory) unless Dir.exist?(@directory)
      File.open(@full_path, 'wb') do |file|
        file.print(content)
      end
    end

    # キャッシュファイルを読み込む
    # File.openを使用しファイルを読み込みます
    #
    # @return [Object]
    def load_cache
      File.open(@full_path, 'r', &:read)
    end

    # キャッシュファイルが存在するかどうかを判定します
    #
    # @return [Boolean]
    def cached?
      File.exist?(@full_path)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
qiita_trend-0.4.6 lib/qiita_trend/cache.rb
qiita_trend-0.4.5 lib/qiita_trend/cache.rb
qiita_trend-0.4.4 lib/qiita_trend/cache.rb
qiita_trend-0.4.3 lib/qiita_trend/cache.rb
qiita_trend-0.4.2 lib/qiita_trend/cache.rb
qiita_trend-0.4.1 lib/qiita_trend/cache.rb
qiita_trend-0.4.0 lib/qiita_trend/cache.rb
qiita_trend-0.3.9 lib/qiita_trend/cache.rb
qiita_trend-0.3.8 lib/qiita_trend/cache.rb
qiita_trend-0.3.7 lib/qiita_trend/cache.rb
qiita_trend-0.3.6 lib/qiita_trend/cache.rb
qiita_trend-0.3.5 lib/qiita_trend/cache.rb
qiita_trend-0.3.4 lib/qiita_trend/cache.rb
qiita_trend-0.3.3 lib/qiita_trend/cache.rb
qiita_trend-0.3.2 lib/qiita_trend/cache.rb
qiita_trend-0.3.1 lib/qiita_trend/cache.rb
qiita_trend-0.3.0 lib/qiita_trend/cache.rb
qiita_trend-0.2.9 lib/qiita_trend/cache.rb