Class: SublimeTextKit::Metadata::Handler

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

Overview

Handles the creation, deletion, and recreation of metadata.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(extension, serializer:) ⇒ Handler



21
22
23
24
# File 'lib/sublime_text_kit/metadata/handler.rb', line 21

def initialize extension, serializer:
  @extension = extension
  @serializer = serializer
end

Class Method Details

.with_project(project_dir, metadata_dir) ⇒ Object



11
12
13
14
# File 'lib/sublime_text_kit/metadata/handler.rb', line 11

def self.with_project project_dir, 
  new "sublime-project",
      serializer: Serializers::Project.new(Pathway[project_dir:, metadata_dir:])
end

.with_workspace(project_dir, metadata_dir) ⇒ Object



16
17
18
19
# File 'lib/sublime_text_kit/metadata/handler.rb', line 16

def self.with_workspace project_dir, 
  new "sublime-workspace",
      serializer: Serializers::Workspace.new(Pathway[project_dir:, metadata_dir:])
end

Instance Method Details

#createObject



26
# File 'lib/sublime_text_kit/metadata/handler.rb', line 26

def create = path.exist? ? path : path.write(JSON.dump(serializer.to_h))

#deleteObject



28
# File 'lib/sublime_text_kit/metadata/handler.rb', line 28

def delete = path.exist? ? path.delete : path

#recreateObject



30
# File 'lib/sublime_text_kit/metadata/handler.rb', line 30

def recreate = delete && create