class SublimeTextKit::Metadata::Base

Abstract class for processing metadata.

Attributes

metadata_dir[R]
metadata_file[R]
name[R]
project_dir[R]

Public Class Methods

create(projects_dir, metadata_dir) click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 12
def self.create projects_dir, metadata_dir
  instance = new projects_dir, metadata_dir
  return unless valid_dir? instance.project_dir, "Projects"
  return unless valid_dir? instance.metadata_dir, "Metadata"

  project_paths = ::Pathname.new(instance.project_dir).children.select(&:directory?)
  project_paths.each { |project_dir| new(project_dir, metadata_dir).save }
end
delete(metadata_dir) click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 21
def self.delete metadata_dir
  instance = new "", metadata_dir
  return unless valid_dir? instance.metadata_dir, "Metadata"

  ::Pathname.glob("#{instance.metadata_dir}/*.#{instance.file_extension}").each(&:delete)
end
new(project_dir, metadata_dir) click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 28
def initialize project_dir, metadata_dir
  @name = File.basename project_dir
  @project_dir = File.expand_path project_dir
  @metadata_dir = File.expand_path metadata_dir
  @metadata_file = File.join @metadata_dir, "#{name}.#{file_extension}"
end

Private Class Methods

valid_dir?(dir, label) click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 49
def self.valid_dir? dir, label
  if File.exist? dir
    true
  else
    puts "#{label} directory doesn't exist: #{dir}."
    false
  end
end

Public Instance Methods

file_extension() click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 35
def file_extension
  "sublime-unknown"
end
save() click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 43
def save
  return if File.exist? metadata_file

  File.open(metadata_file, "w") { |file| file.write JSON.dump(to_h) }
end
to_h() click to toggle source
# File lib/sublime_text_kit/metadata/base.rb, line 39
def to_h
  {}
end