class SublimeTextKit::Session

Manages Sublime Text session data.

Attributes

metadata_dir[R]

Public Class Methods

home_path() click to toggle source
# File lib/sublime_text_kit/session.rb, line 10
def self.home_path
  ENV.fetch "HOME"
end
new(metadata_directory) click to toggle source
# File lib/sublime_text_kit/session.rb, line 18
def initialize metadata_directory
  @metadata_dir = File.expand_path metadata_directory
end
session_path() click to toggle source
# File lib/sublime_text_kit/session.rb, line 14
def self.session_path
  "#{home_path}/Library/Application Support/Sublime Text 3/Local/Session.sublime_session"
end

Public Instance Methods

rebuild_recent_workspaces() click to toggle source
# File lib/sublime_text_kit/session.rb, line 26
def rebuild_recent_workspaces
  session = load_session
  return unless session && session["workspaces"] && session["workspaces"]["recent_workspaces"]

  session["workspaces"]["recent_workspaces"] = workspaces
  save_session session
end
workspaces() click to toggle source
# File lib/sublime_text_kit/session.rb, line 22
def workspaces
  Dir["#{metadata_dir}/*.sublime-workspace"]
end

Private Instance Methods

load_session() click to toggle source
# File lib/sublime_text_kit/session.rb, line 36
def load_session
  File.exist?(self.class.session_path) ? JSON.parse(File.read(self.class.session_path)) : {}
end
save_session(json) click to toggle source
# File lib/sublime_text_kit/session.rb, line 40
def save_session json
  File.open(self.class.session_path, "w") { |file| file.write JSON.dump(json) }
end