Sha256: e0a2e923f35ee03c2fb7dc4f6f8ff3f8db98aaf08e6a2919c6a75bbede6118cb
Contents?: true
Size: 894 Bytes
Versions: 12
Compression:
Stored size: 894 Bytes
Contents
# encoding: utf-8 module LocalizableModel class Configuration def initialize(attributes = nil) @attributes = attributes end def attribute(attribute_name, options = {}) attribute_table[attribute_name.to_sym] = options end def attributes attribute_table.merge(dictionary_attributes) end def dictionary(dict) dictionaries << dict end def attribute?(attribute) attributes.keys.include?(attribute) end private def dictionaries @dictionaries ||= [] end def dictionary_attributes dictionaries.map(&:call).inject({}) do |attrs, list| attrs.merge(hashify(list)) end end def hashify(list) return list if list.is_a?(Hash) list.each_with_object({}) do |e, a| a[e] = {} end end def attribute_table @attributes ||= {} end end end
Version data entries
12 entries across 12 versions & 1 rubygems