class SublimeDSL::SublimeText::SettingSet

Attributes

name[R]
settings[R]

Public Class Methods

import(file) click to toggle source
# 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
new(name) click to toggle source
# File lib/sublime_dsl/sublime_text/setting_set.rb, line 25
def initialize(name)
  @name = name
  @settings = []
end

Public Instance Methods

export(dir) click to toggle source
# 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_dsl() click to toggle source
# 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_json() click to toggle source
# 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