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.



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

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

Instance Attribute Details

#metadata_dir ⇒ Object (readonly)

Returns the value of attribute metadata_dir.



8
9
10
# File 'lib/sublime_text_kit/metadata/base.rb', line 8

def 
  @metadata_dir
end

#metadata_file ⇒ Object (readonly)

Returns the value of attribute metadata_file.



8
9
10
# File 'lib/sublime_text_kit/metadata/base.rb', line 8

def 
  @metadata_file
end

#name ⇒ Object (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/sublime_text_kit/metadata/base.rb', line 8

def name
  @name
end

#project_dir ⇒ Object (readonly)

Returns the value of attribute project_dir.



8
9
10
# File 'lib/sublime_text_kit/metadata/base.rb', line 8

def project_dir
  @project_dir
end

Class Method Details

.create(projects_dir, metadata_dir) ⇒ Object



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

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



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

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

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

Instance Method Details

#file_extension ⇒ Object



33
34
35
# File 'lib/sublime_text_kit/metadata/base.rb', line 33

def file_extension
  "sublime-unknown"
end

#save ⇒ Object



41
42
43
44
# File 'lib/sublime_text_kit/metadata/base.rb', line 41

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

#to_h ⇒ Object



37
38
39
# File 'lib/sublime_text_kit/metadata/base.rb', line 37

def to_h
  {}
end