everyday-menu 1.3.2 → 1.3.3

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: 64bed99979e935f478282f9d6218998dad87d586
4
- data.tar.gz: eba863b29ddba7d5e55cd8f598c2cf052657452f
3
+ metadata.gz: ca89f47e4c5aca7b923f7141db58f6394c62932f
4
+ data.tar.gz: ca4a8c33eaa97afa48ce70633fc082d394a94c1b
5
5
  SHA512:
6
- metadata.gz: 60622d82404f57ea187009fc47cc5f03c7363c066097c74dd9b493be72482f2255ddf170176d502399071a49e17b8a508458dc7ae1019bc63afe5562a0d7b716
7
- data.tar.gz: bed17a9ba7e887b9f6cd66389074cc12e80a55c7682fff00d7ef2e5567d35cb56836f5381500464278bce34131bbab5cd81f001e0b76305cd4603900f13a6a1f
6
+ metadata.gz: 8958117eb899bfb0fd09e75112c1603a242b4db54d7a45f39a1ab9d989675253337f33cd27b909398b850d2d65ce2125fdfbd2e844cdf087c35fe8726ba49cce
7
+ data.tar.gz: b987b901ee0e4dba44f649a4437a777ce01fe4618b36bac7cc7d931c2afbeea7af77557f8f8ea62fa39ca4a10ac3149cb2fed6011a75bdb85ce954c547216daf
data/.coveralls.yml ADDED
@@ -0,0 +1,2 @@
1
+ service_name: travis-ci
2
+ repo_token: s2xHXQ48I2ayxbB0PJeeQX18Y0KxKba8M
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format progress
3
+ -rspec_helper
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: objective-c
2
+ before_install:
3
+ - (ruby --version)
4
+ - mkdir -p ~/Library/RubyMotion/build
5
+ - sudo motion update
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # EverydayMenu
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/everyday-menu.png)](http://badge.fury.io/rb/everyday-menu)
4
+ [![Build Status](https://travis-ci.org/henderea/everyday-menu.png?branch=master)](https://travis-ci.org/henderea/everyday-menu)
5
+ [![Dependency Status](https://gemnasium.com/henderea/everyday-menu.png)](https://gemnasium.com/henderea/everyday-menu)
6
+ [![Code Climate](https://codeclimate.com/github/henderea/everyday-menu.png)](https://codeclimate.com/github/henderea/everyday-menu)
4
7
 
5
8
  ## Updates
6
9
  * 0.2.0:
data/Rakefile CHANGED
@@ -1,6 +1,17 @@
1
1
  $:.unshift('/Library/RubyMotion/lib')
2
2
 
3
- ENV['platform'] = 'osx' if ARGV[0] == 'spec'
3
+ if ARGV[0] == 'spec'
4
+ #ENV['CI'] = 'true'
5
+ ENV['platform'] = 'osx'
6
+ # begin
7
+ # require 'simplecov'
8
+ # rescue LoadError
9
+ ## ignored
10
+ # end
11
+ #
12
+ # require 'coveralls'
13
+ # Coveralls.wear!
14
+ end
4
15
 
5
16
  if ENV['platform'] == 'osx'
6
17
  require 'motion/project/template/osx'
@@ -23,4 +34,4 @@ Motion::Project::App.setup do |app|
23
34
  if ENV['example']
24
35
  app.files << Dir["examples/#{ENV['example']}/**/*.rb"]
25
36
  end
26
- end
37
+ end
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_development_dependency 'bundler', '~> 1.3'
21
21
  spec.add_development_dependency 'rake', '~> 10.0'
22
+ #spec.add_development_dependency 'simplecov', '>= 0.8.2'
23
+ #spec.add_development_dependency 'coveralls', '>= 0.7.0'
22
24
 
23
25
  spec.add_dependency 'rm-digest'
24
26
  end
@@ -4,14 +4,25 @@ class AppDelegate
4
4
  @started = false
5
5
  MainMenu.build!
6
6
 
7
- MainMenu[:file].subscribe(:new) { |_, _|
8
- @has_open = true
9
- puts 'new'
7
+ subscribe_new
8
+ subscribe_close
9
+ subscribe_open
10
+ subscribe_start_stop
11
+ puts "start_stop subscribe 1 parent label: #{MainMenu[:file].items[:start_stop][:commands][:start_stop_command_id].label}"
12
+ end
13
+
14
+ def subscribe_start_stop
15
+ MainMenu[:file].subscribe(:start_stop, :start_stop_command_id) { |command, _|
16
+ @started = !@started
17
+ command.parent[:title] = @started ? 'Stop' : 'Start'
18
+ puts "start_stop subscribe 1 command id: #{command.command_id}"
10
19
  }
11
- MainMenu[:file].subscribe(:close) { |_, _|
12
- @has_open = false
13
- puts 'close'
14
- }.canExecuteBlock { |_| @has_open }
20
+ MainMenu[:file].subscribe(:start_stop, :start_stop_command_id2) { |command, _|
21
+ puts "start_stop subscribe 2 command id: #{command.command_id}"
22
+ }
23
+ end
24
+
25
+ def subscribe_open
15
26
  MainMenu[:file].subscribe(:open) { |command, _|
16
27
  @has_open = true
17
28
  puts 'open'
@@ -20,26 +31,31 @@ class AppDelegate
20
31
  MainMenu[:file].subscribe(:open) { |command, _|
21
32
  puts "open subscribe 2 command id: #{command.command_id}"
22
33
  }
23
- MainMenu[:file].subscribe(:start_stop, :start_stop_command_id) { |command, _|
24
- @started = !@started
25
- command.parent[:title] = @started ? 'Stop' : 'Start'
26
- puts "start_stop subscribe 1 command id: #{command.command_id}"
27
- }
28
- MainMenu[:file].subscribe(:start_stop, :start_stop_command_id2) { |command, _|
29
- puts "start_stop subscribe 2 command id: #{command.command_id}"
30
- }
31
- MainMenu[:statusbar].subscribe(:status_new) { |_, _|
34
+ MainMenu[:statusbar].subscribe(:status_open) { |_, _|
32
35
  @has_open = true
33
- puts 'status-new'
36
+ puts 'status-open'
34
37
  }
38
+ end
39
+
40
+ def subscribe_close
41
+ MainMenu[:file].subscribe(:close) { |_, _|
42
+ @has_open = false
43
+ puts 'close'
44
+ }.canExecuteBlock { |_| @has_open }
35
45
  MainMenu[:statusbar].subscribe(:status_close) { |_, _|
36
46
  @has_open = false
37
47
  puts 'status-close'
38
48
  }.canExecuteBlock { |_| @has_open }
39
- MainMenu[:statusbar].subscribe(:status_open) { |_, _|
49
+ end
50
+
51
+ def subscribe_new
52
+ MainMenu[:file].subscribe(:new) { |_, _|
40
53
  @has_open = true
41
- puts 'status-open'
54
+ puts 'new'
55
+ }
56
+ MainMenu[:statusbar].subscribe(:status_new) { |_, _|
57
+ @has_open = true
58
+ puts 'status-new'
42
59
  }
43
- puts "start_stop subscribe 1 parent label: #{MainMenu[:file].items[:start_stop][:commands][:start_stop_command_id].label}"
44
60
  end
45
61
  end
@@ -1,47 +1,53 @@
1
1
  class MainMenu
2
2
  extend EverydayMenu::MenuBuilder
3
3
 
4
- menuItem :hide_others, 'Hide Others', preset: :hide_others
5
- menuItem :show_all, 'Show All', preset: :show_all
6
- menuItem :quit, 'Quit', preset: :quit
7
-
8
- menuItem :services_item, 'Services', preset: :services
9
-
10
- menuItem :open, 'Open', key_equivalent: 'o'
11
- menuItem :new, 'New'
12
- menuItem :close, 'Close', key_equivalent: 'w'
13
- menuItem :start_stop, 'Start'
14
-
15
- menuItem :status_open, 'Open', key_equivalent: 'o'
16
- menuItem :status_new, 'New'
17
- menuItem :status_close, 'Close', key_equivalent: 'w'
18
- menuItem :status_quit, 'Quit', preset: :quit
19
-
20
-
21
- mainMenu(:app, 'Blah') {
22
- hide_others
23
- show_all
24
- ___
25
- services_item
26
- ___
27
- quit
28
- }
29
-
30
- mainMenu(:file, 'File') {
31
- new
32
- open
33
- ___
34
- close
35
- ___
36
- start_stop
37
- }
38
-
39
- statusbarMenu(:statusbar, 'Statusbar Menu') {
40
- status_new
41
- status_open
42
- ___
43
- status_close
44
- ___
45
- status_quit
46
- }
4
+ def self.def_items
5
+ menuItem :hide_others, 'Hide Others', preset: :hide_others
6
+ menuItem :show_all, 'Show All', preset: :show_all
7
+ menuItem :quit, 'Quit', preset: :quit
8
+
9
+ menuItem :services_item, 'Services', preset: :services
10
+
11
+ menuItem :open, 'Open', key_equivalent: 'o'
12
+ menuItem :new, 'New'
13
+ menuItem :close, 'Close', key_equivalent: 'w'
14
+ menuItem :start_stop, 'Start'
15
+
16
+ menuItem :status_open, 'Open', key_equivalent: 'o'
17
+ menuItem :status_new, 'New'
18
+ menuItem :status_close, 'Close', key_equivalent: 'w'
19
+ menuItem :status_quit, 'Quit', preset: :quit
20
+ end
21
+
22
+ def self.def_menus
23
+ mainMenu(:app, 'Blah') {
24
+ hide_others
25
+ show_all
26
+ ___
27
+ services_item
28
+ ___
29
+ quit
30
+ }
31
+
32
+ mainMenu(:file, 'File') {
33
+ new
34
+ open
35
+ ___
36
+ close
37
+ ___
38
+ start_stop
39
+ }
40
+
41
+ statusbarMenu(:statusbar, 'Statusbar Menu') {
42
+ status_new
43
+ status_open
44
+ ___
45
+ status_close
46
+ ___
47
+ status_quit
48
+ }
49
+ end
50
+
51
+ def_menus
52
+ def_items
47
53
  end
@@ -2,22 +2,18 @@ module EverydayMenu
2
2
  class Menu
3
3
  include MyAccessors
4
4
 
5
- my_attr_writer :label
6
-
7
- my_attr_accessor_bool :servicesMenu, :windowsMenu, :helpMenu, :mainMenu
8
-
9
- my_attr_reader_bool :statusMenu
10
-
11
- my_attr_reader :statusItemTitle, :statusItemIcon, :statusItemViewClass
5
+ def self.def_accessors
6
+ my_attr_writer :label
7
+ my_attr_accessor_bool :servicesMenu, :windowsMenu, :helpMenu, :mainMenu
8
+ my_attr_reader_bool :statusMenu
9
+ my_attr_reader :statusItemTitle, :statusItemIcon, :statusItemViewClass, :statusItemLength
10
+ attr_reader :menu, :builder
11
+ end
12
12
 
13
- attr_reader :menu, :builder
13
+ def_accessors
14
14
 
15
15
  def self.create(label, title, options = {}, &block)
16
- new(label, &block).tap { |menu|
17
- menu[:label] = label
18
- menu[:title] = title
19
- options.each { |option| menu[option[0]] = option[1] }
20
- }
16
+ new(label, &block).tap { |menu| setup_obj(menu, label, title, options) }
21
17
  end
22
18
 
23
19
  def initialize(label, &block)
@@ -33,6 +29,7 @@ module EverydayMenu
33
29
  @statusItemTitle = nil
34
30
  @statusItemIcon = nil
35
31
  @statusItemViewClass = nil
32
+ @statusItemLength = nil
36
33
  end
37
34
 
38
35
  def menuItemFromMenu!
@@ -71,10 +68,14 @@ module EverydayMenu
71
68
  @@buildBlocks[field] = block
72
69
  end
73
70
 
74
- registerBuildBlock(:services_menu) { |menu| NSApp.servicesMenu = menu.menu }
75
- registerBuildBlock(:windows_menu) { |menu| NSApp.windowsMenu = menu.menu }
76
- registerBuildBlock(:help_menu) { |menu| NSApp.helpMenu = menu.menu }
77
- registerBuildBlock(:status_menu) { |menu| menu.createStatusItem! }
71
+ def self.def_build_blocks
72
+ registerBuildBlock(:services_menu) { |menu| NSApp.servicesMenu = menu.menu }
73
+ registerBuildBlock(:windows_menu) { |menu| NSApp.windowsMenu = menu.menu }
74
+ registerBuildBlock(:help_menu) { |menu| NSApp.helpMenu = menu.menu }
75
+ registerBuildBlock(:status_menu) { |menu| menu.createStatusItem! }
76
+ end
77
+
78
+ def_build_blocks
78
79
 
79
80
  def label
80
81
  @label ||= nil
@@ -86,30 +87,27 @@ module EverydayMenu
86
87
  @statusMenu = true unless title.nil?
87
88
  end
88
89
 
89
- alias :statusItemTitle= :setStatusItemTitle
90
- alias :status_item_title= :setStatusItemTitle
91
-
92
90
  def setStatusItemIcon(icon)
93
91
  @mainMenu = false unless icon.nil?
94
92
  @statusItemIcon = icon
95
93
  @statusMenu = true unless icon.nil?
96
94
  end
97
95
 
98
- alias :statusItemIcon= :setStatusItemIcon
99
- alias :status_item_icon= :setStatusItemIcon
100
-
101
96
  def setStatusItemViewClass(viewClass)
102
97
  @mainMenu = false unless viewClass.nil?
103
98
  @statusItemViewClass = viewClass
104
99
  @statusMenu = true unless viewClass.nil?
105
100
  end
106
101
 
107
- alias :statusItemViewClass= :setStatusItemViewClass
108
- alias :status_item_view_class= :setStatusItemViewClass
102
+ def setStatusItemLength(length)
103
+ @mainMenu = false unless length.nil?
104
+ @statusItemLength = length
105
+ @statusMenu = true unless length.nil?
106
+ end
109
107
 
110
108
  def createStatusItem!
111
109
  statusBar = NSStatusBar.systemStatusBar
112
- @statusItem = statusBar.statusItemWithLength(NSSquareStatusItemLength)
110
+ @statusItem = statusBar.statusItemWithLength(@statusItemLength || NSSquareStatusItemLength)
113
111
  @statusItem.highlightMode = true
114
112
 
115
113
  @statusItem.menu = self.menu
@@ -134,6 +132,19 @@ module EverydayMenu
134
132
  item = self.items[label]
135
133
  item.execute
136
134
  end
135
+
136
+ def self.def_aliases
137
+ alias :statusItemTitle= :setStatusItemTitle
138
+ alias :status_item_title= :setStatusItemTitle
139
+
140
+ alias :statusItemIcon= :setStatusItemIcon
141
+ alias :status_item_icon= :setStatusItemIcon
142
+
143
+ alias :statusItemViewClass= :setStatusItemViewClass
144
+ alias :status_item_view_class= :setStatusItemViewClass
145
+ end
146
+
147
+ def_aliases
137
148
  end
138
149
 
139
150
  class MenuItemList
@@ -58,17 +58,23 @@ module EverydayMenu
58
58
 
59
59
  def build!
60
60
  @menus.values.each do |menu|
61
- context = Context.new(menu, @menuItems.dup)
62
- context.instance_eval(&menu.builder) if menu.builder
63
- if menu.is :main_menu
64
- @mainMenu ||= NSMenu.new
65
- @mainMenu.addItem menu.menuItemFromMenu!.menuItem
66
- end
61
+ build_menu(menu)
62
+ add_main_menu(menu) if menu.is :main_menu
67
63
  menu.runOnBuild
68
64
  end
69
65
  setupMainMenu if @mainMenu
70
66
  end
71
67
 
68
+ def build_menu(menu)
69
+ context = Context.new(menu, @menuItems.dup)
70
+ context.instance_eval(&menu.builder) if menu.builder
71
+ end
72
+
73
+ def add_main_menu(menu)
74
+ @mainMenu ||= NSMenu.new
75
+ @mainMenu.addItem menu.menuItemFromMenu!.menuItem
76
+ end
77
+
72
78
  private
73
79
 
74
80
  def setupMainMenu
@@ -3,11 +3,7 @@ module EverydayMenu
3
3
  include MyAccessors
4
4
 
5
5
  def self.create(label, title, options = {})
6
- new.tap { |item|
7
- item[:label] = label
8
- item[:title] = title
9
- options.each { |option| item[option[0]] = option[1] }
10
- }
6
+ new.tap { |item| setup_obj(item, label, title, options) }
11
7
  end
12
8
 
13
9
  def self.separator
@@ -77,35 +73,58 @@ module EverydayMenu
77
73
  @@presets[label] = block
78
74
  end
79
75
 
80
- definePreset(:hide) { |item|
81
- item[:key_equivalent] = 'h'
82
- item.subscribe { |_, _| NSApp.hide(item) }
83
- }
76
+ def self.def_presets
77
+ def_hide_preset
78
+ def_hide_others_preset
79
+ def_show_all_preset
80
+ def_quit_preset
81
+ def_close_preset
82
+ def_services_preset
83
+ end
84
+
85
+ def self.fill_preset(item, options = {}, &block)
86
+ fill_options(item, options)
87
+ item.subscribe &block
88
+ end
89
+
90
+ def self.def_hide_preset
91
+ definePreset(:hide) { |item|
92
+ fill_preset(item, key_equivalent: 'h') { |_, _| NSApp.hide(item) }
93
+ }
94
+ end
95
+
96
+ def self.def_hide_others_preset
97
+ definePreset(:hide_others) { |item|
98
+ fill_preset(item, key_equivalent: 'H', key_equivalent_modifier_mask: NSCommandKeyMask|NSAlternateKeyMask) { |_, _| NSApp.hideOtherApplications(item) }
99
+ }
100
+ end
84
101
 
85
- definePreset(:hide_others) { |item|
86
- item[:key_equivalent] = 'H'
87
- item[:key_equivalent_modifier_mask] = NSCommandKeyMask|NSAlternateKeyMask
88
- item.subscribe { |_, _| NSApp.hideOtherApplications(item) }
89
- }
102
+ def self.def_show_all_preset
103
+ definePreset(:show_all) { |item|
104
+ item.subscribe { |_, _| NSApp.unhideAllApplications(item) }
105
+ }
106
+ end
90
107
 
91
- definePreset(:show_all) { |item|
92
- item.subscribe { |_, _| NSApp.unhideAllApplications(item) }
93
- }
108
+ def self.def_quit_preset
109
+ definePreset(:quit) { |item|
110
+ fill_preset(item, key_equivalent: 'q') { |_, _| NSApp.terminate(item) }
111
+ }
112
+ end
94
113
 
95
- definePreset(:quit) { |item|
96
- item[:key_equivalent] = 'q'
97
- item.subscribe { |_, _| NSApp.terminate(item) }
98
- }
114
+ def self.def_close_preset
115
+ definePreset(:close) { |item|
116
+ fill_preset(item, key_equivalent: 'w') { |_, _| NSApp.keyWindow.performClose(item) }
117
+ }
118
+ end
99
119
 
100
- definePreset(:close) { |item|
101
- item[:key_equivalent] = 'w'
102
- item.subscribe { |_, _| NSApp.keyWindow.performClose(item) }
103
- }
120
+ def self.def_services_preset
121
+ definePreset(:services) { |item|
122
+ item[:submenu] = Menu.create(:services_menu, item[:title], services_menu: true)
123
+ item.registerOnBuild { NSApp.servicesMenu = item[:submenu] }
124
+ }
125
+ end
104
126
 
105
- definePreset(:services) { |item|
106
- item[:submenu] = Menu.create(:services_menu, item[:title], services_menu: true)
107
- item.registerOnBuild { NSApp.servicesMenu = item[:submenu] }
108
- }
127
+ def_presets
109
128
 
110
129
  def runOnBuild
111
130
  onBuild.each { |block| block.call }
@@ -67,43 +67,41 @@ module EverydayMenu
67
67
  end
68
68
 
69
69
  module MyAccessors
70
+ def get_val(name)
71
+ self.respond_to?(name) ? self.send(name) : self.containedObject.send(name)
72
+ end
73
+
74
+ def set_val(name, value)
75
+ self.respond_to?(name) ? self.send(name, value) : self.containedObject.send(name, value)
76
+ end
77
+
70
78
  def has(key)
71
- name = self.class.key_to_name(key, 'has')
72
- if self.respond_to?(name)
73
- self.send(name)
74
- else
75
- self.containedObject.send(name)
76
- end
79
+ get_val(self.class.key_to_name(key, 'has'))
77
80
  end
78
81
 
79
82
  def is(key)
80
- name = self.class.key_to_name(key, 'is')
81
- if self.respond_to?(name)
82
- self.send(name)
83
- else
84
- self.containedObject.send(name)
85
- end
83
+ get_val(self.class.key_to_name(key, 'is'))
86
84
  end
87
85
 
88
86
  def [](key)
89
- name = self.class.key_to_name(key)
90
- if self.respond_to?(name)
91
- self.send(name)
92
- else
93
- self.containedObject.send(name)
94
- end
87
+ get_val(self.class.key_to_name(key))
95
88
  end
96
89
 
97
90
  def []=(key, value)
98
- name = self.class.key_to_name(key, 'set')
99
- if self.respond_to?(name)
100
- self.send(name, value)
101
- else
102
- self.containedObject.send(name, value)
103
- end
91
+ set_val(self.class.key_to_name(key, 'set'), value)
104
92
  end
105
93
 
106
94
  class << self
95
+ def self.setup_obj(obj, label, title, options)
96
+ obj[:label] = label
97
+ obj[:title] = title
98
+ fill_options(obj, options)
99
+ end
100
+
101
+ def self.fill_options(obj, options)
102
+ options.each { |option| obj[option[0]] = option[1] }
103
+ end
104
+
107
105
  def self.key_to_name(key, prefix = nil)
108
106
  rval = key.to_s.gsub(/_(\w)/) { |_| $1.upcase }
109
107
  prefix.nil? ? rval : "#{prefix}#{rval[0].upcase}#{rval[1..-1]}"
@@ -113,64 +111,73 @@ module EverydayMenu
113
111
  name.to_s.gsub(/A-Z/) { |c| c.downcase }.to_sym
114
112
  end
115
113
 
114
+ def self.getter_names(name)
115
+ name2, var_name = common_names(name)
116
+ isName = :"#{key_to_name(name, 'is')}"
117
+ name2_is = :"#{name2.to_s}?"
118
+ return var_name, isName, name2, name2_is
119
+ end
120
+
121
+ def self.setter_names(name)
122
+ name2, var_name = common_names(name)
123
+ setName = :"#{key_to_name(name, 'set')}"
124
+ name_e = :"#{name.to_s}="
125
+ name2_e = :"#{name2.to_s}="
126
+ return var_name, setName, name_e, name2_e
127
+ end
128
+
129
+ def self.common_names(name)
130
+ var_name = :"@#{name.to_s}"
131
+ name2 = name_to_key(name)
132
+ return name2, var_name
133
+ end
134
+
135
+ def self.define_methods(*names, &block)
136
+ names.each { |name| define_method(name, &block) }
137
+ end
138
+
139
+ def self.def_getter(name, do_is = false)
140
+ var_name, isName, name2, name2_is = getter_names(name)
141
+ block = ->() { self.instance_variable_get(var_name) }
142
+ define_methods(name, name2, &block)
143
+ define_methods(isName, name2_is, &block) if do_is
144
+ end
145
+
146
+ def self.def_setter(name)
147
+ var_name, setName, name_e, name2_e = setter_names(name)
148
+ block = ->(val) { self.instance_variable_set(var_name, val) }
149
+ define_methods(name_e, setName, name2_e, &block)
150
+ end
151
+
116
152
  def self.my_attr_accessor(*names)
117
153
  names.each { |name|
118
- var_name = :"@#{name.to_s}"
119
- define_method(name) { self.instance_variable_get(var_name) }
120
- define_method(:"#{name.to_s}=") { |val| self.instance_variable_set(var_name, val) }
121
- setName = :"set#{name.to_s[0].upcase}#{name.to_s[1..-1]}"
122
- define_method(setName) { |val| self.instance_variable_set(var_name, val) }
123
- name2 = name_to_key(name)
124
- define_method(name2) { self.instance_variable_get(var_name) }
125
- define_method(:"#{name2.to_s}=") { |val| self.instance_variable_set(var_name, val) }
154
+ def_getter(name)
155
+ def_setter(name)
126
156
  }
127
157
  end
128
158
 
129
159
  def self.my_attr_accessor_bool(*names)
130
160
  names.each { |name|
131
- var_name = :"@#{name.to_s}"
132
- define_method(name) { self.instance_variable_get(var_name) }
133
- define_method(:"#{name.to_s}=") { |val| self.instance_variable_set(var_name, val) }
134
- isName = :"#{key_to_name(name, 'is')}"
135
- define_method(isName) { self.instance_variable_get(var_name) }
136
- setName = :"#{key_to_name(name, 'set')}"
137
- define_method(setName) { |val| self.instance_variable_set(var_name, val) }
138
- name2 = name_to_key(name)
139
- define_method(name2) { self.instance_variable_get(var_name) }
140
- define_method(:"#{name2.to_s}?") { self.instance_variable_get(var_name) }
141
- define_method(:"#{name2.to_s}=") { |val| self.instance_variable_set(var_name, val) }
161
+ def_getter(name, true)
162
+ def_setter(name)
142
163
  }
143
164
  end
144
165
 
145
166
  def self.my_attr_reader(*names)
146
167
  names.each { |name|
147
- var_name = :"@#{name.to_s}"
148
- define_method(name) { self.instance_variable_get(var_name) }
149
- name2 = name_to_key(name)
150
- define_method(name2) { self.instance_variable_get(var_name) }
168
+ def_getter(name)
151
169
  }
152
170
  end
153
171
 
154
172
  def self.my_attr_reader_bool(*names)
155
173
  names.each { |name|
156
- var_name = :"@#{name.to_s}"
157
- define_method(name) { self.instance_variable_get(var_name) }
158
- isName = :"#{key_to_name(name, 'is')}"
159
- define_method(isName) { self.instance_variable_get(var_name) }
160
- name2 = name_to_key(name)
161
- define_method(name2) { self.instance_variable_get(var_name) }
162
- define_method(:"#{name2.to_s}?") { self.instance_variable_get(var_name) }
174
+ def_getter(name, true)
163
175
  }
164
176
  end
165
177
 
166
178
  def self.my_attr_writer(*names)
167
179
  names.each { |name|
168
- var_name = :"@#{name.to_s}"
169
- define_method(:"#{name.to_s}=") { |val| self.instance_variable_set(var_name, val) }
170
- setName = :"#{key_to_name(name, 'set')}"
171
- define_method(setName) { |val| self.instance_variable_set(var_name, val) }
172
- name2 = name_to_key(name)
173
- define_method(:"#{name2.to_s}=") { |val| self.instance_variable_set(var_name, val) }
180
+ def_setter(name)
174
181
  }
175
182
  end
176
183
  end
@@ -1,3 +1,3 @@
1
1
  module EverydayMenu
2
- VERSION = '1.3.2'
2
+ VERSION = '1.3.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: everyday-menu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Henderson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -61,7 +61,10 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
+ - ".coveralls.yml"
64
65
  - ".gitignore"
66
+ - ".rspec"
67
+ - ".travis.yml"
65
68
  - Gemfile
66
69
  - LICENSE.txt
67
70
  - README.md
@@ -98,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
101
  version: '0'
99
102
  requirements: []
100
103
  rubyforge_project:
101
- rubygems_version: 2.2.0
104
+ rubygems_version: 2.2.2
102
105
  signing_key:
103
106
  specification_version: 4
104
107
  summary: A more ruby way to create OS X menus in RubyMotion