Module: Mynu::Dsl::Block
- Included in:
- Mynu, Menu::BlockMenuItem
- Defined in:
- lib/mynu/dsl/block.rb
Instance Method Summary collapse
- #add_item(title, runtime_block, &block) ⇒ Object
- #app(title, app, &block) ⇒ Object
- #item(title, &block) ⇒ Object
- #item_block(original_block, &block) ⇒ Object
- #menu(title, &block) ⇒ Object
- #open(title, path, &block) ⇒ Object
- #separator ⇒ Object
- #terminal(title, command, options = {}, &block) ⇒ Object
Instance Method Details
#add_item(title, runtime_block, &block) ⇒ Object
71 72 73 74 75 76 |
# 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) ⇒ Object
8 9 10 11 12 13 14 |
# 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) ⇒ Object
35 36 37 38 39 40 41 |
# 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) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 |
# 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) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/mynu/dsl/block.rb', line 43 def (title, &block) raise "Block must be provided for a menu" unless block_given? add_item( title, item_block(Proc.new {}) {} ) { case block.arity when 0 self.instance_eval(&block) when 1 block.call(self) else raise end if self.items.length > 0 = Menu.new .setAutoenablesItems false self. self.items.each do |item| .addItem item end end } end |
#open(title, path, &block) ⇒ Object
16 17 18 19 20 21 22 |
# 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 ⇒ Object
4 5 6 |
# File 'lib/mynu/dsl/block.rb', line 4 def separator @items << NSMenuItem.separatorItem end |
#terminal(title, command, options = {}, &block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/mynu/dsl/block.rb', line 24 def terminal(title, command, ={}, &block) block = Proc.new {} unless block_given? add_item( title, item_block(block) { terminal = Mynu::Support::Terminal.new terminal.create_tab(command, ) } ) end |