diff --git a/app/models/concerns/active_fields/customizable_concern.rb b/app/models/concerns/active_fields/customizable_concern.rb index b06aef6..c95fd91 100644 --- a/app/models/concerns/active_fields/customizable_concern.rb +++ b/app/models/concerns/active_fields/customizable_concern.rb @@ -85,12 +85,12 @@ def active_fields ActiveFields.config.field_base_class.for(model_name.name) end - def available_field_types - ActiveFields.registry.field_types_for(model_name.name) || [] + def available_field_type_names + ActiveFields.registry.field_type_names_for(model_name.name).to_a end def available_field_class_names - ActiveFields.config.fields.values_at(*available_field_types) + ActiveFields.config.fields.values_at(*available_field_type_names) end end diff --git a/app/models/concerns/active_fields/field_concern.rb b/app/models/concerns/active_fields/field_concern.rb index 6d03680..9123512 100644 --- a/app/models/concerns/active_fields/field_concern.rb +++ b/app/models/concerns/active_fields/field_concern.rb @@ -90,7 +90,7 @@ def type_name end def available_customizable_types - ActiveFields.registry.customizable_types_for(type_name) || [] + ActiveFields.registry.customizable_types_for(type_name).to_a end private @@ -111,8 +111,8 @@ def validate_default_value end def validate_customizable_model_allows_type - allowed_types = ActiveFields.registry.field_types_for(customizable_type) || [] - return true if allowed_types.include?(type_name) + allowed_type_names = ActiveFields.registry.field_type_names_for(customizable_type).to_a + return true if allowed_type_names.include?(type_name) errors.add(:customizable_type, :inclusion) false diff --git a/lib/active_fields/registry.rb b/lib/active_fields/registry.rb index 2fe8db5..22d2963 100644 --- a/lib/active_fields/registry.rb +++ b/lib/active_fields/registry.rb @@ -10,25 +10,25 @@ def initialize @customizables = {} end - def add(field_type, customizable_type) - if ActiveFields.config.type_names.exclude?(field_type) - raise ArgumentError, "undefined ActiveFields type provided for #{customizable_type}: #{field_type}" + def add(field_type_name, customizable_type) + if ActiveFields.config.type_names.exclude?(field_type_name) + raise ArgumentError, "undefined ActiveFields type provided for #{customizable_type}: #{field_type_name}" end - @fields[field_type] ||= Set.new - @fields[field_type] << customizable_type + @fields[field_type_name] ||= Set.new + @fields[field_type_name] << customizable_type @customizables[customizable_type] ||= Set.new - @customizables[customizable_type] << field_type + @customizables[customizable_type] << field_type_name nil end - def customizable_types_for(field_type) - @fields[field_type] + def customizable_types_for(field_type_name) + @fields[field_type_name] end - def field_types_for(customizable_type) + def field_type_names_for(customizable_type) @customizables[customizable_type] end end diff --git a/spec/dummy/config/environments/development.rb b/spec/dummy/config/environments/development.rb index a26e182..1d4bbc2 100644 --- a/spec/dummy/config/environments/development.rb +++ b/spec/dummy/config/environments/development.rb @@ -11,7 +11,7 @@ config.enable_reloading = true # Do not eager load code on boot. - config.eager_load = true + config.eager_load = false # Show full error reports. config.consider_all_requests_local = true