everyday-menu 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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