class HashWithStructAccess < Hash
  VERSION = "0.0.2"

  def initialize(hash = {})
    hash.each_pair do |key, value|
      self[key] = value.kind_of?(Hash) ? self.class.new(value) : value
    end
    self.freeze
  end

  def method_missing(method_name)
    self[method_name] || self[method_name.to_s] || super
  end

  # Method stub to be overriden by plugins
  def self.compute_path(path)
    path
  end
end