class SublimeDSL::SublimeText::MouseMap::MouseBinding
A mouse binding: a click with its command(s).
Attributes
click[R]
command[R]
count[R]
press_command[R]
source_file[RW]
Public Class Methods
from_json(json_hash)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 63 def self.from_json(json_hash) h = json_hash.dup button = h.delete('button') or raise Error, 'no button: ' << json_hash.inspect modifiers = h.delete('modifiers') spec = [*modifiers, button].join('+') click = Mouse.sublime.ensure_click(spec) count = h.delete('count') count = count.to_i if count press = h.delete('press_command') press_command = press ? Command.new(press, h.delete('press_args')) : nil cmd = h.delete('command') command = cmd ? Command.new(cmd, h.delete('args')) : nil h.empty? or raise Error, 'unexpected JSON keys: ' << h.inspect new(click, count, press_command, command) rescue => ex warn "error with binding #{json_hash.inspect}" warn ex.message raise end
new(click, count, press_command, command)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 92 def initialize(click, count, press_command, command) @click = click @count = count @press_command = press_command @command = command end
Public Instance Methods
to_dsl()
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 99 def to_dsl spec = click.to_spec dsl = "click#{count} #{spec.to_source}" dsl << ", down: #{press_command.to_dsl}" if press_command dsl << ", up: #{command.to_dsl}" if command dsl end
to_h()
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 108 def to_h h = click.to_h h['count'] = count if count h.merge! press_command.to_h('press_command', 'press_args') if press_command h.merge! command.to_h if command h end