Class: SublimeTextKit::Metadata::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/sublime_text_kit/metadata/base.rb

Overview

Abstract class for processing metadata.

Direct Known Subclasses

Project, Workspace

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_dir, metadata_dir) ⇒ Base

Returns a new instance of Base.



28
29
30
31
32
33
# File 'lib/sublime_text_kit/metadata/base.rb', line 28

def initialize project_dir, 
  @name = File.basename project_dir
  @project_dir = File.expand_path project_dir
   = File.expand_path 
   = File.join , "#{name}.#{file_extension}"
end

Instance Attribute Details

#metadata_dirObject (readonly)

Returns the value of attribute metadata_dir.



10
11
12
# File 'lib/sublime_text_kit/metadata/base.rb', line 10

def 
  
end

#metadata_fileObject (readonly)

Returns the value of attribute metadata_file.



10
11
12
# File 'lib/sublime_text_kit/metadata/base.rb', line 10

def 
  
end

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/sublime_text_kit/metadata/base.rb', line 10

def name
  @name
end

#project_dirObject (readonly)

Returns the value of attribute project_dir.



10
11
12
# File 'lib/sublime_text_kit/metadata/base.rb', line 10

def project_dir
  @project_dir
end

Class Method Details

.create(projects_dir, metadata_dir) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/sublime_text_kit/metadata/base.rb', line 12

def self.create projects_dir, 
  instance = new projects_dir, 
  return unless valid_dir?(instance.project_dir, "Projects")
  return unless valid_dir?(instance., "Metadata")

  project_paths = ::Pathname.new(instance.project_dir).children.select(&:directory?)
  project_paths.each { |project_dir| new(project_dir, ).save }
end

.delete(metadata_dir) ⇒ Object



21
22
23
24
25
26
# File 'lib/sublime_text_kit/metadata/base.rb', line 21

def self.delete 
  instance = new "", 
  return unless valid_dir?(instance., "Metadata")

  ::Pathname.glob("#{instance.metadata_dir}/*.#{instance.file_extension}").each(&:delete)
end

Instance Method Details

#file_extensionObject



35
36
37
# File 'lib/sublime_text_kit/metadata/base.rb', line 35

def file_extension
  "sublime-unknown"
end

#saveObject



43
44
45
46
# File 'lib/sublime_text_kit/metadata/base.rb', line 43

def save
  return if File.exist? 
  File.open(, "w") { |file| file.write JSON.dump(to_h) }
end

#to_hObject



39
40
41
# File 'lib/sublime_text_kit/metadata/base.rb', line 39

def to_h
  {}
end