Class: ActiveAdmin::Favorites::Favorite::MacroValidator

Inherits:
Object
  • Object
show all
Defined in:
app/models/active_admin/favorites/favorite/macro_validator.rb

Defined Under Namespace

Classes: ValidationError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(macros, resource_key:) ⇒ MacroValidator

Returns a new instance of MacroValidator.



13
14
15
16
17
# File 'app/models/active_admin/favorites/favorite/macro_validator.rb', line 13

def initialize(macros, resource_key:)
  @macros = Array(macros)
  @resource_key = resource_key
  @allowed_attributes = Favorite.ransackable_attributes_for(resource_key)
end

Class Method Details

.validate!(macros, resource_key:) ⇒ Object



9
10
11
# File 'app/models/active_admin/favorites/favorite/macro_validator.rb', line 9

def self.validate!(macros, resource_key:)
  new(macros, resource_key:).validate!
end

Instance Method Details

#validate!Object

Raises:



19
20
21
22
23
24
25
# File 'app/models/active_admin/favorites/favorite/macro_validator.rb', line 19

def validate!
  raise ValidationError, "macros must be an array" unless @macros.is_a?(Array)
  raise ValidationError, "too many macros" if @macros.size > MacroResolver::MAX_MACROS

  @macros.each { |macro| validate_macro!(macro) }
  true
end