Class: SublimeDSL::SublimeText::SettingSet

Inherits:
Object
  • Object
show all
Defined in:
lib/sublime_dsl/sublime_text/setting_set.rb

Defined Under Namespace

Classes: DSLReader, Setting

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SettingSet

Returns a new instance of SettingSet.



25
26
27
28
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 25

def initialize(name)
  @name = name
  @settings = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



23
24
25
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 23

def name
  @name
end

#settingsObject (readonly)

Returns the value of attribute settings.



23
24
25
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 23

def settings
  @settings
end

Class Method Details

.import(file) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 8

def self.import(file)
  name = File.basename(file, File.extname(file))
  set = new(name)
  json = File.read(file, encoding: 'utf-8')
  h = json.empty? ? {} : JSON[json]
  begin
    h.each_pair { |key, value| set.settings << Setting.new(key, value) }
  rescue => ex
    puts "file: #{file}"
    raise ex
  end

  set
end

Instance Method Details

#export(dir) ⇒ Object



37
38
39
40
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 37

def export(dir)
  file = "#{dir}/#{name}.sublime-settings"
  File.open(file, 'wb:utf-8') { |f| f.write to_json }
end

#to_dslObject



30
31
32
33
34
35
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 30

def to_dsl
  dsl = "settings #{name.to_source} do\n"
  dsl << "\n" unless settings.empty?
  settings.each { |s| dsl << "  #{s.to_dsl}\n" }
  dsl << "\nend"
end

#to_jsonObject



42
43
44
45
# File 'lib/sublime_dsl/sublime_text/setting_set.rb', line 42

def to_json
  h = Hash[settings.map { |s| [s.key, s.value] }]
  JSON.pretty_generate(h)
end