module Ransack::Enum::Adapters::ActiveRecord::Base
Public Instance Methods
enum(definitions)
click to toggle source
@see github.com/rails/rails/blob/66cabeda2c46c582d19738e1318be8d59584cc5b/activerecord/lib/active_record/enum.rb#L150 @param [Hash] definitions @return [Hash]
Calls superclass method
# File lib/ransack/enum/adapters/active_record/base.rb, line 12 def enum(definitions) enum_ransacker(*definitions.to_a.first) if respond_to?(:ransacker) super end
Private Instance Methods
enum_ransack_value_converter(name, values)
click to toggle source
@param [String] name @param [Hash] values @return [Proc]
# File lib/ransack/enum/adapters/active_record/base.rb, line 32 def enum_ransack_value_converter(name, values) lambda do |value| val = values[value.to_sym] return val if Ransack::Enum.enabled? && !val.nil? Ransack::Nodes::Value.new(nil, value).cast(attribute_types[name]&.type) end end
enum_ransacker(name, values)
click to toggle source
@param [Symbol] name @param [Hash] values @return [Hash]
# File lib/ransack/enum/adapters/active_record/base.rb, line 22 def enum_ransacker(name, values) converter = enum_ransack_value_converter(name.to_s, values) ransacker name, formatter: lambda { |value| value.is_a?(Array) ? value.map(&converter) : converter.call(value) } end