class CC::CLI::FileStore

Attributes

data[R]

Public Class Methods

new() click to toggle source

This class is not supposed to be directly used. It should be sublcassed and a few constants need to be defined on the sublass to be usable.

FILE_NAME is the name of the file this class wraps.

# File lib/cc/cli/file_store.rb, line 12
def initialize
  load_data
end

Public Instance Methods

save() click to toggle source
# File lib/cc/cli/file_store.rb, line 16
def save
  return false unless File.exist? self.class::FILE_NAME

  File.open(self.class::FILE_NAME, "w") do |f|
    YAML.dump data, f
  end

  true
end

Private Instance Methods

load_data() click to toggle source
# File lib/cc/cli/file_store.rb, line 30
def load_data
  @data =
    if File.exist? self.class::FILE_NAME
      File.open(self.class::FILE_NAME, "r:bom|utf-8") do |f|
        YAML.safe_load(f, permitted_classes: [Time], permitted_symbols: [], aliases: false, filename: self.class::FILE_NAME)  || {}
      end
    else
      {}
    end
end