Exception: Filterameter::DeclarationErrors::CannotBeInlineScopeError
- Inherits:
-
DeclarationError
- Object
- StandardError
- DeclarationError
- Filterameter::DeclarationErrors::CannotBeInlineScopeError
- Defined in:
- lib/filterameter/declaration_errors/cannot_be_inline_scope_error.rb
Overview
Cannot Be Inline Scope Error
Error CannotBeInlineScopeError occurs when an inline scope has been used to define a filter that takes a parameter. This is not valid for use as a Filterameter filter because an inline scope always has an arity of -1 meaning the factory cannot tell if it has an argument or not. As such, all inline scopes are assumed to not have arguments and thus be conditional scopes.
The Rails guide provides guidance suggesting scopes that take arguments be written as class methods. This takes that guidance a step further and makes it a requirement for a scope that will be used as a filter.
Instance Method Summary collapse
-
#initialize(model_name, scope_name) ⇒ CannotBeInlineScopeError
constructor
A new instance of CannotBeInlineScopeError.
Constructor Details
#initialize(model_name, scope_name) ⇒ CannotBeInlineScopeError
Returns a new instance of CannotBeInlineScopeError.
16 17 18 19 20 21 |
# File 'lib/filterameter/declaration_errors/cannot_be_inline_scope_error.rb', line 16 def initialize(model_name, scope_name) super(<<~ERROR.chomp) #{model_name} scope '#{scope_name}' needs to be written as a class method, not as an inline scope. This is a suggestion from the Rails guide but a requirement in order to use a scope that has an argument as a filter. ERROR end |