class Wallaby::ActiveRecord::ModelServiceProvider::Permitter
Whitelist the params for mass-assignment
Public Class Methods
new(model_decorator)
click to toggle source
@param model_decorator [Wallaby::ModelDecorator]
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 9 def initialize(model_decorator) @model_decorator = model_decorator end
Public Instance Methods
compound_hashed_fields()
click to toggle source
@return [Array<String>] a list of field names of range and association
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 25 def compound_hashed_fields field_names = range_fields.keys + many_association_fields.map { |_, metadata| metadata[:foreign_key] } field_names.each_with_object({}) { |name, hash| hash[name] = [] } end
simple_field_names()
click to toggle source
@return [Array<String>] a list of field names of general types
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 14 def simple_field_names field_names = non_range_fields.keys + belongs_to_fields.map do |_, metadata| [metadata[:foreign_key], metadata[:polymorphic_type]] end.flatten.compact fields = [@model_decorator.primary_key, 'created_at', 'updated_at'] field_names.reject { |field_name| fields.include? field_name } end
Protected Instance Methods
association_fields()
click to toggle source
@return [Array<String>] a list of association field names
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 50 def association_fields @model_decorator.fields.select { |_, metadata| metadata[:is_association] && !metadata[:has_scope] } end
belongs_to_fields()
click to toggle source
@return [Array<String>] a list of belongs_to association field names
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 62 def belongs_to_fields association_fields.select { |_, metadata| metadata[:type] == 'belongs_to' } end
many_association_fields()
click to toggle source
@return [Array<String>] a list of many association field names:
- has_many - has_and_belongs_to_many
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 57 def many_association_fields association_fields.select { |_, metadata| /many/ =~ metadata[:type] } end
non_association_fields()
click to toggle source
@return [Array<String>] a list of field names that ain't association
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 35 def non_association_fields @model_decorator.fields.reject { |_, metadata| metadata[:is_association] } end
non_range_fields()
click to toggle source
@return [Array<String>] a list of field names that ain't range
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 40 def non_range_fields non_association_fields.reject { |_, metadata| /range|point/ =~ metadata[:type] } end
range_fields()
click to toggle source
@return [Array<String>] a list of range field names
# File lib/adapters/wallaby/active_record/model_service_provider/permitter.rb, line 45 def range_fields non_association_fields.select { |_, metadata| /range|point/ =~ metadata[:type] } end