module Mynu::Dsl::Block

Public Instance Methods

add_item(title, runtime_block, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 71
def add_item(title, runtime_block, &block)
  item = Menu::BlockMenuItem.new(title, runtime_block)
  item.instance_eval(&block) if block_given?
  @items << item
  item
end
app(title, app, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 8
def app(title, app, &block)
  block = Proc.new {} unless block_given?
  add_item(
    title, 
    item_block(block) { `open -a #{app}` }
  )
end
item(title, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 35
def item(title, &block)
  block = Proc.new {} unless block_given?
  add_item(
    title, 
    item_block(block) { }
  )
end
item_block(original_block, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 78
def item_block(original_block, &block)
  Receivable.new { |sender|
    block.call(sender) if block
    case original_block.arity
      when 0
        sender.instance_eval(&original_block)
      when 1
        original_block.call(sender)
      else
        raise
    end
  }
end
menu(title, &block) click to toggle source
open(title, path, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 16
def open(title, path, &block)
  block = Proc.new {} unless block_given?
  add_item(
    title, 
    item_block(block) { `open #{path}` }
  )
end
separator() click to toggle source
# File lib/mynu/dsl/block.rb, line 4
def separator
  @items << NSMenuItem.separatorItem
end
terminal(title, command, options={}, &block) click to toggle source
# File lib/mynu/dsl/block.rb, line 24
def terminal(title, command, options={}, &block)
  block = Proc.new {} unless block_given?
  add_item(
    title, 
    item_block(block) {
      terminal = Mynu::Support::Terminal.new
      terminal.create_tab(command, options)
    }
  )
end