class Keyremac::Root

Attributes

root_item[R]

Public Class Methods

new() click to toggle source
# File lib/keyremac/base.rb, line 102
def initialize
  @root_item = Item.new 'root_item'
  Keyremac::Focus.focus.clear
  Keyremac::Focus.focus << @root_item
  @children = []
end

Public Instance Methods

app(only, **options, &block) click to toggle source

@param [String] only @option options same as item method @return [Item]

# File lib/keyremac/base.rb, line 127
def app(only, **options, &block)
  options[:app] = only
  item(**options, &block)
end
dump(xml = nil) click to toggle source
# File lib/keyremac/dump.rb, line 90
def dump(xml = nil)
  xml ||= Builder::XmlMarkup.new(indent: 2)
  xml.instruct!
  xml.root do
    @root_item.dump xml
    @children.each { |child|
      child.dump(xml)
    }
  end
end
item(app: nil, inputsource: nil, &block) click to toggle source

@param [String] app only tag @param [String] inputsource inputsource_only tag yield [] children @return [Item]

# File lib/keyremac/base.rb, line 113
def item(app: nil, inputsource: nil, &block)
  Item.new.tap { |item|
    item.only_ app if app
    item.inputsource_only_ inputsource if inputsource
    @children << item
    Keyremac::Focus.set_focus item do
      item.instance_eval(&block)
    end
  }
end