module HattrAccessor
Public Instance Methods
hattr_accessor(source, *keys)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 24 def hattr_accessor(source, *keys) hattr_reader source, *keys hattr_writer source, *keys end
Also aliased as: hattr_accessors
hattr_reader(source, *keys)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 2 def hattr_reader(source, *keys) ensure_readable source define_readers(source, keys) end
Also aliased as: hattr_readers
hattr_reader_with_default(source, *keys_with_defaults)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 8 def hattr_reader_with_default(source, *keys_with_defaults) ensure_readable source define_readers_with_defaults(source, keys_with_defaults) end
Also aliased as: hattr_readers_with_defaults
hattr_writer(source, *keys)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 14 def hattr_writer(source, *keys) ensure_readable source keys.each do |key| define_method("#{key}=") do |value| send("#{source}").store(key, value) end end end
Also aliased as: hattr_writers
Protected Instance Methods
define_readers(source, keys)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 38 def define_readers(source, keys) keys.each do|key| define_method(key) { send(source).fetch(key) } end end
define_readers_with_defaults(source, keys)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 32 def define_readers_with_defaults(source, keys) keys.first.each do |key, default_value| define_method(key) { send(source).fetch(key, default_value) } end end
ensure_readable(source)
click to toggle source
# File lib/madhattr/hattr_accessor.rb, line 44 def ensure_readable(source) attr_reader(source) unless method_defined?(source) end