Module: Enumeric
- Defined in:
- lib/enumeric.rb,
lib/enumeric/version.rb
Defined Under Namespace
Modules: ModuleMethods Classes: Error
Constant Summary collapse
- VERSION =
"0.1.2"
Class Method Summary collapse
Class Method Details
.define(name_and_values) ⇒ Module
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/enumeric.rb', line 44 def define(name_and_values) name_and_values_frozen = name_and_values.each_with_object({}) {|(name, value), h| raise Error, "`#{name.inspect}` is not a Symbol" unless name.is_a?(Symbol) raise Error, "`#{value.inspect}` does not have `freeze` method" unless value.respond_to?(:freeze) h[name] = value.freeze }.freeze m = Module.new do @name_and_values = name_and_values_frozen @name_and_values.each do |k, v| const_set(k, v) end extend ModuleMethods end m end |