Class: Sublime::Settings

Inherits:
Hash
  • Object
show all
Defined in:
lib/sublime/settings.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filepath = nil) ⇒ Settings

Returns a new instance of Settings.



7
8
9
10
11
12
13
# File 'lib/sublime/settings.rb', line 7

def initialize(filepath = nil)
  if filepath
    @filepath = File.expand_path(filepath)
    @file     = File.open(@filepath, "r")
    self.merge! JSON.parse(file.read)
  end
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



5
6
7
# File 'lib/sublime/settings.rb', line 5

def file
  @file
end

#filepathObject (readonly)

Returns the value of attribute filepath.



5
6
7
# File 'lib/sublime/settings.rb', line 5

def filepath
  @filepath
end

Class Method Details

.defaultObject



41
42
43
# File 'lib/sublime/settings.rb', line 41

def default
  new("#{default_package_path}/.sublime-settings")
end

.default_package_pathObject

Paths

#


52
53
54
# File 'lib/sublime/settings.rb', line 52

def default_package_path
  "#{sublime_path}/Packages/Default"
end

.userObject



45
46
47
# File 'lib/sublime/settings.rb', line 45

def user
  new("#{user_package_path}/Preferences.sublime-settings")
end

.user_package_pathObject



56
57
58
# File 'lib/sublime/settings.rb', line 56

def user_package_path
  "#{sublime_path}/Packages/User"
end

Instance Method Details

#full_configsObject



15
16
17
18
19
20
# File 'lib/sublime/settings.rb', line 15

def full_configs
  klass = self.class
  klass.default.
    merge(klass.system_default).
    merge(self)
end

#save!Object



28
29
30
31
32
# File 'lib/sublime/settings.rb', line 28

def save!
  File.open @filepath, "w+" do |file|
    file.puts JSON.pretty_generate(self)
  end
end

#update!(conf = {}) ⇒ Object



34
35
36
37
# File 'lib/sublime/settings.rb', line 34

def update!(conf = {})
  merge!(conf)
  save!
end

#write!Object



22
23
24
25
26
# File 'lib/sublime/settings.rb', line 22

def write!
  user = self.class.user
  user = self # transfer data
  user.save!
end