everyday-menu 1.3.2 → 1.3.3

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: 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