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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da6d30cd6c8e784123bf3c01669eb99c27c29b82
4
- data.tar.gz: 351d736ce3c8d45269d1432ad0573641e9346786
3
+ metadata.gz: 7d7c7d4de6de96f60a5b03671122223e76d49793
4
+ data.tar.gz: 4348ae4701f08f4671479d6c904451cc63088221
5
5
  SHA512:
6
- metadata.gz: 4deb36dd997d2e87e0bdad716a60ea03b79f5a359ecc765e29353a04dcb011d4a2ccfb948a5ac4283c303fc57de7728dff3c7cb4453682169f8afabecd8d4046
7
- data.tar.gz: 1b3401db78117dfedf598c2f48f6feae52c598da6c7a2b88e05ab8b6b61cdfa2edfb9114e7f1ca17aec716ddc9e8a17abe601e5b1a1d889735d2f9813324f9e2
6
+ metadata.gz: 5e365b939bba2f9c0879f5df17a645e19920937f2495d5d192b559c7d38d00878c0ad6c15565f3ad814b378bd74634bf6cf44ce98c8e09372798fce14ebbdb25
7
+ data.tar.gz: 768d6958aaa85c2d315a498e635a0a53461e8340466202183471b5019b4c8b57276e83d9ad0b729b02e6b344ef3874317ed52827745c31dfe5903841033cd51c
data/.gitignore CHANGED
@@ -21,3 +21,5 @@ vendor
21
21
  /.idea/
22
22
 
23
23
  /projectFilesBackup/
24
+
25
+ /.repl_history
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
 
@@ -3,6 +3,7 @@ class AppDelegate
3
3
  @has_open = false
4
4
  MainMenu.build!
5
5
 
6
+ MainMenu[:app].subscribe(:hide_others) { |_, _| NSApp.hideOtherApplications(self) }
6
7
  MainMenu[:app].subscribe(:quit) { |_, _| NSApp.terminate(self) }
7
8
 
8
9
  MainMenu[:file].subscribe(:new) { |_, _|
@@ -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
 
@@ -41,36 +41,36 @@ module EverydayMenu
41
41
 
42
42
  def has(key)
43
43
  name = key_to_name(key, 'has')
44
- begin
44
+ if self.respond_to?(name)
45
45
  self.send(name)
46
- rescue NoMethodError
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
- begin
53
+ if self.respond_to?(name)
54
54
  self.send(name)
55
- rescue NoMethodError
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
- begin
62
+ if self.respond_to?(name)
63
63
  self.send(name)
64
- rescue NoMethodError
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
- begin
71
+ if self.respond_to?(name)
72
72
  self.send(name, value)
73
- rescue NoMethodError
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
- begin
30
+ if self.respond_to?(name)
31
31
  self.send(name)
32
- rescue NoMethodError
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
- begin
39
+ if self.respond_to?(name)
40
40
  self.send(name)
41
- rescue NoMethodError
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
- begin
48
+ if self.respond_to?(name)
49
49
  self.send(name)
50
- rescue NoMethodError
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
- begin
57
+ if self.respond_to?(name)
58
58
  self.send(name, value)
59
- rescue NoMethodError
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
@@ -1,3 +1,3 @@
1
1
  module EverydayMenu
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: everyday-menu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Henderson