module ActiveInteraction::Extras::FilterExtensions::ObjectClasses
Add support for polymorphic objects
object :account, class: [Account, AnyoneAccount]
Public Instance Methods
class_list()
click to toggle source
# File lib/active_interaction/extras/filter_extensions/object_classes.rb, line 7 def class_list class_names.map do |klass_name| case klass_name when Class klass_name else begin Object.const_get(klass_name.to_s.camelize) rescue NameError raise ActiveInteraction::InvalidNameError, "class #{klass_name.inspect} does not exist" end end end end
class_names()
click to toggle source
# File lib/active_interaction/extras/filter_extensions/object_classes.rb, line 38 def class_names options.fetch(:class, name) end
klass()
click to toggle source
Calls superclass method
# File lib/active_interaction/extras/filter_extensions/object_classes.rb, line 22 def klass if polymorphic? class_list.first else super end end
matches?(value)
click to toggle source
Calls superclass method
# File lib/active_interaction/extras/filter_extensions/object_classes.rb, line 30 def matches?(value) if polymorphic? class_list.any? { |klass| value.class <= klass } else super end end
polymorphic?()
click to toggle source
# File lib/active_interaction/extras/filter_extensions/object_classes.rb, line 42 def polymorphic? class_names.is_a? Array end