Module: StrongRoutes::Accessorable

Included in:
Config
Defined in:
lib/strong_routes/config.rb

Instance Method Summary collapse

Instance Method Details

#hash_accessor(*names) ⇒ Object

Creates an accessor that simply sets and reads a key in the hash:

class Config < Hash
  hash_accessor :app
end

config = Config.new
config.app = Foo
config[:app] #=> Foo

config[:app] = Bar
config.app #=> Bar


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/strong_routes/config.rb', line 16

def hash_accessor(*names) #:nodoc:
  names.each do |name|
    class_eval <<-METHOD, __FILE__, __LINE__ + 1
      def #{name}
        self[:#{name}]
      end

      def #{name}=(value)
        self[:#{name}] = value
      end

      def #{name}?
        !! self[:#{name}]
      end
    METHOD
  end
end