class SublimeDSL::SublimeText::MouseMap
Attributes
bindings[R]
name[R]
Public Class Methods
import(file)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 8 def self.import(file) name = File.basename(file, File.extname(file)) map = new(name) list = JSON[File.read(file, encoding: 'utf-8')] begin map.bindings.concat list.map { |h| MouseBinding.from_json(h) } rescue => ex puts "file: #{file}" raise ex end map end
new(name)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 24 def initialize(name) @name = name @bindings = [] end
Public Instance Methods
export(dir)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 46 def export(dir) file = "#{dir}/#{name}.sublime-mousemap" File.open(file, 'wb:utf-8') { |f| f.write to_json } end
to_json()
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 51 def to_json "[\n" << bindings.map { |b| JSON.generate(b.to_h) }.join(",\n").indent(2) << "\n]" end
write(dir)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 29 def write(dir) file = "#{dir}/#{name}.mousemap.rb" File.open(file, 'wb') do |f| f.puts "\nmousemap #{name.to_source} do" f.puts bindings.each do |b| begin f.puts ' ' << b.to_dsl rescue => ex puts "file: #{file}\nbinding: #{b.click}" raise ex end end f.puts "\nend" end end