Sha256: dab7747a621652d0d93181acb2218e82c8295dda91dc86b8dec8308965ed4093
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
require "multi_json" require "pathname" module SublimeTextKit class ProjectMetadata attr_reader :name, :project_dir, :workspace_dir, :project_file def self.create projects_dir, workspace_dir projects_dir = File.expand_path projects_dir workspace_dir = File.expand_path workspace_dir return unless valid_dir?(projects_dir, "Projects") return unless valid_dir?(workspace_dir, "Workspace") project_paths = ::Pathname.new(projects_dir).children.select {|child| child if child.directory? } project_paths.each { |project_dir| new(project_dir, workspace_dir).save } end def self.delete workspace_dir workspace_dir = File.expand_path workspace_dir return unless valid_dir?(workspace_dir, "Workspace") ::Pathname.glob("#{workspace_dir}/*.sublime-*").each(&:delete) end def initialize project_dir, workspace_dir @name = File.basename project_dir @project_dir = File.expand_path project_dir @workspace_dir = File.expand_path workspace_dir @project_file = File.join @workspace_dir, "#{name}.sublime-project" end def to_h { folders: [ {path: "#{project_dir}"} ] } end def save unless File.exist? project_file File.open(project_file, 'w') { |file| file.write MultiJson.dump(to_h, pretty: true) } end end private def self.valid_dir? dir, label if File.exist?(dir) true else puts "#{label} directory doesn't exist: #{dir}." false end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sublime_text_kit-2.0.0 | lib/sublime_text_kit/project_metadata.rb |
sublime_text_kit-1.1.1 | lib/sublime_text_kit/project_metadata.rb |