module EverydayMenu::MyAccessors

Public Class Methods

common_names(name) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/everyday-menu/utils.rb, line 101
def self.fill_options(obj, options)
  options.each { |option| obj[option[0]] = option[1] }
end
getter_names(name) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/everyday-menu/utils.rb, line 95
def self.setup_obj(obj, label, title, options)
  obj[:label] = label
  obj[:title] = title
  fill_options(obj, options)
end

Public Instance Methods

[](key) click to toggle source
# File lib/everyday-menu/utils.rb, line 86
def [](key)
  get_val(self.class.key_to_name(key))
end
[]=(key, value) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/everyday-menu/utils.rb, line 78
def has(key)
  get_val(self.class.key_to_name(key, 'has'))
end
is(key) click to toggle source
# 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) click to toggle source
# 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