Module: EverydayMenu::MyAccessors
Class Method Summary collapse
- .common_names(name) ⇒ Object
- .def_getter(name, do_is = false) ⇒ Object
- .def_setter(name) ⇒ Object
- .define_methods(*names, &block) ⇒ Object
- .fill_options(obj, options) ⇒ Object
- .getter_names(name) ⇒ Object
- .key_to_name(key, prefix = nil) ⇒ Object
- .my_attr_accessor(*names) ⇒ Object
- .my_attr_accessor_bool(*names) ⇒ Object
- .my_attr_reader(*names) ⇒ Object
- .my_attr_reader_bool(*names) ⇒ Object
- .my_attr_writer(*names) ⇒ Object
- .name_to_key(name) ⇒ Object
- .setter_names(name) ⇒ Object
- .setup_obj(obj, label, title, options) ⇒ Object
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #get_val(name) ⇒ Object
- #has(key) ⇒ Object
- #is(key) ⇒ Object
- #set_val(name, value) ⇒ Object
Class Method Details
.common_names(name) ⇒ Object
129 130 131 132 133 |
# File 'lib/everyday-menu/utils.rb', line 129 def self.common_names(name) var_name = :"@#{name.to_s}" name2 = name_to_key(name) return name2, var_name end |
.def_getter(name, do_is = false) ⇒ Object
139 140 141 142 143 144 |
# File 'lib/everyday-menu/utils.rb', line 139 def self.def_getter(name, do_is = false) var_name, isName, name2, name2_is = getter_names(name) block = ->() { self.instance_variable_get(var_name) } define_methods(name, name2, &block) define_methods(isName, name2_is, &block) if do_is end |
.def_setter(name) ⇒ Object
146 147 148 149 150 |
# File 'lib/everyday-menu/utils.rb', line 146 def self.def_setter(name) var_name, setName, name_e, name2_e = setter_names(name) block = ->(val) { self.instance_variable_set(var_name, val) } define_methods(name_e, setName, name2_e, &block) end |
.define_methods(*names, &block) ⇒ Object
135 136 137 |
# File 'lib/everyday-menu/utils.rb', line 135 def self.define_methods(*names, &block) names.each { |name| define_method(name, &block) } end |
.fill_options(obj, options) ⇒ Object
101 102 103 |
# File 'lib/everyday-menu/utils.rb', line 101 def self.(obj, ) .each { |option| obj[option[0]] = option[1] } end |
.getter_names(name) ⇒ Object
114 115 116 117 118 119 |
# File 'lib/everyday-menu/utils.rb', line 114 def self.getter_names(name) name2, var_name = common_names(name) isName = :"#{key_to_name(name, 'is')}" name2_is = :"#{name2.to_s}?" return var_name, isName, name2, name2_is end |
.key_to_name(key, prefix = nil) ⇒ Object
105 106 107 108 |
# File 'lib/everyday-menu/utils.rb', line 105 def self.key_to_name(key, prefix = nil) rval = WeakRef.new(WeakRef.new(key.to_s).gsub(/_(\w)/) { |_| WeakRef.new(WeakRef.new($1).upcase) }) prefix.nil? ? rval : WeakRef.new("#{prefix}#{WeakRef.new(WeakRef.new(rval[0]).upcase)}#{WeakRef.new(rval[1..-1])}") end |
.my_attr_accessor(*names) ⇒ Object
152 153 154 155 156 157 |
# File 'lib/everyday-menu/utils.rb', line 152 def self.my_attr_accessor(*names) names.each { |name| def_getter(name) def_setter(name) } end |
.my_attr_accessor_bool(*names) ⇒ Object
159 160 161 162 163 164 |
# File 'lib/everyday-menu/utils.rb', line 159 def self.my_attr_accessor_bool(*names) names.each { |name| def_getter(name, true) def_setter(name) } end |
.my_attr_reader(*names) ⇒ Object
166 167 168 169 170 |
# File 'lib/everyday-menu/utils.rb', line 166 def self.my_attr_reader(*names) names.each { |name| def_getter(name) } end |
.my_attr_reader_bool(*names) ⇒ Object
172 173 174 175 176 |
# File 'lib/everyday-menu/utils.rb', line 172 def self.my_attr_reader_bool(*names) names.each { |name| def_getter(name, true) } end |
.my_attr_writer(*names) ⇒ Object
178 179 180 181 182 |
# File 'lib/everyday-menu/utils.rb', line 178 def self.my_attr_writer(*names) names.each { |name| def_setter(name) } end |
.name_to_key(name) ⇒ Object
110 111 112 |
# File 'lib/everyday-menu/utils.rb', line 110 def self.name_to_key(name) WeakRef.new(WeakRef.new(name.to_s).gsub(/A-Z/) { |c| WeakRef.new(WeakRef.new(c).downcase) }).to_sym end |
.setter_names(name) ⇒ Object
121 122 123 124 125 126 127 |
# File 'lib/everyday-menu/utils.rb', line 121 def self.setter_names(name) name2, var_name = common_names(name) setName = :"#{key_to_name(name, 'set')}" name_e = :"#{name.to_s}=" name2_e = :"#{name2.to_s}=" return var_name, setName, name_e, name2_e end |
.setup_obj(obj, label, title, options) ⇒ Object
95 96 97 98 99 |
# File 'lib/everyday-menu/utils.rb', line 95 def self.setup_obj(obj, label, title, ) obj[:label] = label obj[:title] = title (obj, ) end |
Instance Method Details
#[](key) ⇒ Object
86 87 88 |
# File 'lib/everyday-menu/utils.rb', line 86 def [](key) get_val(self.class.key_to_name(key)) end |
#[]=(key, value) ⇒ Object
90 91 92 |
# File 'lib/everyday-menu/utils.rb', line 90 def []=(key, value) set_val(self.class.key_to_name(key, 'set'), value) end |
#get_val(name) ⇒ Object
70 71 72 |
# File 'lib/everyday-menu/utils.rb', line 70 def get_val(name) self.respond_to?(name) ? self.send(name) : self.containedObject.send(name) end |
#has(key) ⇒ Object
78 79 80 |
# File 'lib/everyday-menu/utils.rb', line 78 def has(key) get_val(self.class.key_to_name(key, 'has')) end |
#is(key) ⇒ Object
82 83 84 |
# File 'lib/everyday-menu/utils.rb', line 82 def is(key) get_val(self.class.key_to_name(key, 'is')) end |
#set_val(name, value) ⇒ Object
74 75 76 |
# File 'lib/everyday-menu/utils.rb', line 74 def set_val(name, value) self.respond_to?(name) ? self.send(name, value) : self.containedObject.send(name, value) end |