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