everyday-menu 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +8 -0
- data/examples/basic_main_menu/app_delegate.rb +1 -0
- data/examples/basic_main_menu/main_menu.rb +3 -0
- data/lib/everyday-menu/menu.rb +8 -8
- data/lib/everyday-menu/menu_item.rb +19 -8
- data/lib/everyday-menu/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7d7c7d4de6de96f60a5b03671122223e76d49793
         | 
| 4 | 
            +
              data.tar.gz: 4348ae4701f08f4671479d6c904451cc63088221
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5e365b939bba2f9c0879f5df17a645e19920937f2495d5d192b559c7d38d00878c0ad6c15565f3ad814b378bd74634bf6cf44ce98c8e09372798fce14ebbdb25
         | 
| 7 | 
            +
              data.tar.gz: 768d6958aaa85c2d315a498e635a0a53461e8340466202183471b5019b4c8b57276e83d9ad0b729b02e6b344ef3874317ed52827745c31dfe5903841033cd51c
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -31,6 +31,7 @@ Everyday Menu separates menu layout from menu definition. Menu definition looks | |
| 31 31 | 
             
            class MainMenu
         | 
| 32 32 | 
             
              extend EverydayMenu::MenuBuilder
         | 
| 33 33 |  | 
| 34 | 
            +
              menuItem :hide_others, 'Hide Others', key_equivalent: 'H', key_equivalent_modifier_mask: NSCommandKeyMask|NSAlternateKeyMask
         | 
| 34 35 | 
             
              menuItem :quit, 'Quit', key_equivalent: 'q'
         | 
| 35 36 |  | 
| 36 37 | 
             
              menuItem :open, 'Open', key_equivalent: 'o'
         | 
| @@ -47,6 +48,8 @@ class MainMenu | |
| 47 48 | 
             
              extend EverydayMenu::MenuBuilder
         | 
| 48 49 |  | 
| 49 50 | 
             
              mainMenu(:app, 'Blah') {
         | 
| 51 | 
            +
                hide_others
         | 
| 52 | 
            +
                ___
         | 
| 50 53 | 
             
                quit
         | 
| 51 54 | 
             
              }
         | 
| 52 55 |  | 
| @@ -66,6 +69,7 @@ class AppDelegate | |
| 66 69 | 
             
                @has_open = false
         | 
| 67 70 | 
             
                MainMenu.build!
         | 
| 68 71 |  | 
| 72 | 
            +
                MainMenu[:app].subscribe(:hide_others) { |_, _| NSApp.hideOtherApplications(self) }
         | 
| 69 73 | 
             
                MainMenu[:app].subscribe(:quit) { |_, _| NSApp.terminate(self) }
         | 
| 70 74 |  | 
| 71 75 | 
             
                MainMenu[:file].subscribe(:new) { |_, _|
         | 
| @@ -85,7 +89,11 @@ class AppDelegate | |
| 85 89 | 
             
              end
         | 
| 86 90 | 
             
            end
         | 
| 87 91 | 
             
            ```
         | 
| 92 | 
            +
            ## Known Issues
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            Here are known issues.  If you encounter one, please log a bug ticket in the issue tracker (link above)
         | 
| 88 95 |  | 
| 96 | 
            +
            1. Some methods in `NSMenuItem` that set values don't like being called with `send`.  I have to handle these on a case-by-case basis.  Please log a bug in my issue tracker (link above) with any you find.  It is possible that `NSMenu` might have the same issue.
         | 
| 89 97 |  | 
| 90 98 | 
             
            ## Running the Examples
         | 
| 91 99 |  | 
| @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            class MainMenu
         | 
| 2 2 | 
             
              extend EverydayMenu::MenuBuilder
         | 
| 3 3 |  | 
| 4 | 
            +
              menuItem :hide_others, 'Hide Others', key_equivalent: 'H', key_equivalent_modifier_mask: NSCommandKeyMask|NSAlternateKeyMask
         | 
| 4 5 | 
             
              menuItem :quit, 'Quit', key_equivalent: 'q'
         | 
| 5 6 |  | 
| 6 7 | 
             
              menuItem :open, 'Open', key_equivalent: 'o'
         | 
| @@ -8,6 +9,8 @@ class MainMenu | |
| 8 9 | 
             
              menuItem :close, 'Close', key_equivalent: 'w'
         | 
| 9 10 |  | 
| 10 11 | 
             
              mainMenu(:app, 'Blah') {
         | 
| 12 | 
            +
                hide_others
         | 
| 13 | 
            +
                ___
         | 
| 11 14 | 
             
                quit
         | 
| 12 15 | 
             
              }
         | 
| 13 16 |  | 
    
        data/lib/everyday-menu/menu.rb
    CHANGED
    
    | @@ -41,36 +41,36 @@ module EverydayMenu | |
| 41 41 |  | 
| 42 42 | 
             
                def has(key)
         | 
| 43 43 | 
             
                  name = key_to_name(key, 'has')
         | 
| 44 | 
            -
                   | 
| 44 | 
            +
                  if self.respond_to?(name)
         | 
| 45 45 | 
             
                    self.send(name)
         | 
| 46 | 
            -
                   | 
| 46 | 
            +
                  else
         | 
| 47 47 | 
             
                    @menu.send(name)
         | 
| 48 48 | 
             
                  end
         | 
| 49 49 | 
             
                end
         | 
| 50 50 |  | 
| 51 51 | 
             
                def is(key)
         | 
| 52 52 | 
             
                  name = key_to_name(key, 'is')
         | 
| 53 | 
            -
                   | 
| 53 | 
            +
                  if self.respond_to?(name)
         | 
| 54 54 | 
             
                    self.send(name)
         | 
| 55 | 
            -
                   | 
| 55 | 
            +
                  else
         | 
| 56 56 | 
             
                    @menu.send(name)
         | 
| 57 57 | 
             
                  end
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| 60 60 | 
             
                def [](key)
         | 
| 61 61 | 
             
                  name = key_to_name(key)
         | 
| 62 | 
            -
                   | 
| 62 | 
            +
                  if self.respond_to?(name)
         | 
| 63 63 | 
             
                    self.send(name)
         | 
| 64 | 
            -
                   | 
| 64 | 
            +
                  else
         | 
| 65 65 | 
             
                    @menu.send(name)
         | 
| 66 66 | 
             
                  end
         | 
| 67 67 | 
             
                end
         | 
| 68 68 |  | 
| 69 69 | 
             
                def []=(key, value)
         | 
| 70 70 | 
             
                  name = key_to_name(key, 'set')
         | 
| 71 | 
            -
                   | 
| 71 | 
            +
                  if self.respond_to?(name)
         | 
| 72 72 | 
             
                    self.send(name, value)
         | 
| 73 | 
            -
                   | 
| 73 | 
            +
                  else
         | 
| 74 74 | 
             
                    @menu.send(name, value)
         | 
| 75 75 | 
             
                  end
         | 
| 76 76 | 
             
                end
         | 
| @@ -27,36 +27,36 @@ module EverydayMenu | |
| 27 27 |  | 
| 28 28 | 
             
                def has(key)
         | 
| 29 29 | 
             
                  name = key_to_name(key, 'has')
         | 
| 30 | 
            -
                   | 
| 30 | 
            +
                  if self.respond_to?(name)
         | 
| 31 31 | 
             
                    self.send(name)
         | 
| 32 | 
            -
                   | 
| 32 | 
            +
                  else
         | 
| 33 33 | 
             
                    @menuItem.send(name)
         | 
| 34 34 | 
             
                  end
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 37 | 
             
                def is(key)
         | 
| 38 38 | 
             
                  name = key_to_name(key, 'is')
         | 
| 39 | 
            -
                   | 
| 39 | 
            +
                  if self.respond_to?(name)
         | 
| 40 40 | 
             
                    self.send(name)
         | 
| 41 | 
            -
                   | 
| 41 | 
            +
                  else
         | 
| 42 42 | 
             
                    @menuItem.send(name)
         | 
| 43 43 | 
             
                  end
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 46 | 
             
                def [](key)
         | 
| 47 47 | 
             
                  name = key_to_name(key)
         | 
| 48 | 
            -
                   | 
| 48 | 
            +
                  if self.respond_to?(name)
         | 
| 49 49 | 
             
                    self.send(name)
         | 
| 50 | 
            -
                   | 
| 50 | 
            +
                  else
         | 
| 51 51 | 
             
                    @menuItem.send(name)
         | 
| 52 52 | 
             
                  end
         | 
| 53 53 | 
             
                end
         | 
| 54 54 |  | 
| 55 55 | 
             
                def []=(key, value)
         | 
| 56 56 | 
             
                  name = key_to_name(key, 'set')
         | 
| 57 | 
            -
                   | 
| 57 | 
            +
                  if self.respond_to?(name)
         | 
| 58 58 | 
             
                    self.send(name, value)
         | 
| 59 | 
            -
                   | 
| 59 | 
            +
                  else
         | 
| 60 60 | 
             
                    @menuItem.send(name, value)
         | 
| 61 61 | 
             
                  end
         | 
| 62 62 | 
             
                end
         | 
| @@ -97,6 +97,17 @@ module EverydayMenu | |
| 97 97 |  | 
| 98 98 | 
             
                alias :tag= :setTag
         | 
| 99 99 |  | 
| 100 | 
            +
                def keyEquivalentModifierMask
         | 
| 101 | 
            +
                  @menuItem.keyEquivalentModifierMask
         | 
| 102 | 
            +
                end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                def setKeyEquivalentModifierMask(value)
         | 
| 105 | 
            +
                  @menuItem.keyEquivalentModifierMask = value
         | 
| 106 | 
            +
                end
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                alias :keyEquivalentModifierMask= :setKeyEquivalentModifierMask
         | 
| 109 | 
            +
                alias :key_equivalent_modifier_mask= :setKeyEquivalentModifierMask
         | 
| 110 | 
            +
             | 
| 100 111 | 
             
                def subscribe(&block)
         | 
| 101 112 | 
             
                  @menuItem.subscribe(self.label, &block)
         | 
| 102 113 | 
             
                end
         |