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_accessors(source, *keys)
Alias for: hattr_accessor
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_readers(source, *keys)
Alias for: hattr_reader
hattr_readers_with_defaults(source, *keys_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
hattr_writers(source, *keys)
Alias for: hattr_writer

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