module Hashie::Extensions::Structure
The Structure
extension provides facilities for declaring properties that a Hash
can have. This provides for the creation of structures that still behave like hashes but do not allow setting non-allowed keys.
@example
class RestrictedHash < Hash include Hashie::Extensions::MergeInitializer include Hashie::Extensions::Structure key :first key :second, :default => 'foo' end h = RestrictedHash.new(:first => 1) h[:first] # => 1 h[:second] # => 'foo' h[:third] # => ArgumentError
Public Class Methods
included(base)
click to toggle source
# File lib/hashie/extensions/structure.rb, line 23 def self.included(base) base.extend ClassMethods base.class_eval do @permitted_keys = superclass.permitted_keys if superclass.respond_to?(:permitted_keys) end end