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