Sha256: c51f0f83b60d1945503138e76d10fa6f30f0b3fa4bf143a7478a8e8a69586e5c

Contents?: true

Size: 1.41 KB

Versions: 29

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true
require "digest"
# This module provides classes for the Makit gem.
module Makit
  # This class provide methods for managing persistent data for the makit gem
  class Data
    attr_accessor :directory, :use_jsonks

    def initialize(attributes = {})
      @directory = attributes[:directory] || File.join(Dir.home, ".makit")
      @use_json = false
      attributes.each do |key, value|
        instance_variable_set("@#{key}", value) if self.class.method_defined?("#{key}=")
      end
    end

    # remove all data
    def clear
      # remove the data directory
      FileUtils.rm_rf(@directory) if Dir.exist?(@directory)
    end

    def get_content_id(item)
      # get the content id for the item
      bytes_string = item.to_proto.bytes.pack("C*")  # Convert the byte array to a string
      Digest::SHA256.hexdigest(bytes_string)
    end

    # save the content
    # data.save_content(git_version)
    def save(item)
      content_id = get_content_id(item)
      # save the content
      if @use_json
        # save the content to a json file
        File.open(File.join(@directory, "#{content_id}.json"), "w") do |file|
          file.write(item.to_json)
        end
      end
    end

    def get_content(content_id)
      nil
    end

    def self.gem_db_filename
      gem_data_directory = File.join(Dir.home, ".makit", "makit.db")
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
makit-0.0.58 lib/makit/data.rb
makit-0.0.56 lib/makit/data.rb
makit-0.0.55 lib/makit/data.rb
makit-0.0.54 lib/makit/data.rb
makit-0.0.48 lib/makit/data.rb
makit-0.0.40 lib/makit/data.rb
makit-0.0.39 lib/makit/data.rb
makit-0.0.38 lib/makit/data.rb
makit-0.0.37 lib/makit/data.rb
makit-0.0.36 lib/makit/data.rb
makit-0.0.26 lib/makit/data.rb
makit-0.0.25 lib/makit/data.rb
makit-0.0.24 lib/makit/data.rb
makit-0.0.23 lib/makit/data.rb
makit-0.0.22 lib/makit/data.rb
makit-0.0.21 lib/makit/data.rb
makit-0.0.20 lib/makit/data.rb
makit-0.0.19 lib/makit/data.rb
makit-0.0.16 lib/makit/data.rb
makit-0.0.13 lib/makit/data.rb