Module: ActiveModule::Enum
- Includes:
- ClassMethodsDefiner, InstanceMethodsDefiner, Util
- Defined in:
- lib/active_module/enum.rb,
lib/active_module/enum/util.rb,
lib/active_module/enum/class_methods_definer.rb,
lib/active_module/enum/instance_methods_definer.rb
Defined Under Namespace
Modules: ClassMethodsDefiner, InstanceMethodsDefiner, Util
Instance Method Summary collapse
Methods included from ClassMethodsDefiner
#build_fields_map, #define_class_query, #define_enum_scope, #define_fields_method
Methods included from InstanceMethodsDefiner
Methods included from Util
#build_ambiguity_map, #build_name_maps, #build_unique_names_map, #define_if_new, #determine_prefix, #determine_suffix, #enum_method_name, #warn_if_ambiguous
Instance Method Details
#active_module_enum(attribute_name, prefix: nil, suffix: nil, scope: true, **options) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/active_module/enum.rb', line 10 def active_module_enum(attribute_name, prefix: nil, suffix: nil, scope: true, **) type = attribute_types[attribute_name.to_s] unless type.is_a?(ActiveModule::Base) raise ArgumentError, "#{attribute_name} is not " \ "an active_module attribute" end opts = build_enum_opts( attribute_name, prefix, suffix, scope, ) mods = type.possible_modules define_enum_methods(attribute_name, mods, opts) define_fields_method(attribute_name, mods, type.mapping) end |