Class: DeviseScim::Filter::ArelVisitor
- Inherits:
-
Object
- Object
- DeviseScim::Filter::ArelVisitor
- Defined in:
- lib/devise_scim/filter/arel_visitor.rb
Overview
Translates a Filter AST into Arel conditions applied to an AR scope.
Constant Summary collapse
- SCIM_TO_AR =
{ "userName" => "email", "externalId" => "scim_uid", "active" => "scim_active", "id" => "id", "emails" => "email", "emails.value" => "email", "name.givenName" => "first_name", "name.familyName" => "last_name" }.freeze
Instance Method Summary collapse
- #apply(ast, scope) ⇒ Object
-
#initialize(model) ⇒ ArelVisitor
constructor
A new instance of ArelVisitor.
Constructor Details
#initialize(model) ⇒ ArelVisitor
Returns a new instance of ArelVisitor.
18 19 20 21 |
# File 'lib/devise_scim/filter/arel_visitor.rb', line 18 def initialize(model) @model = model @table = model.arel_table end |
Instance Method Details
#apply(ast, scope) ⇒ Object
23 24 25 |
# File 'lib/devise_scim/filter/arel_visitor.rb', line 23 def apply(ast, scope) scope.where(visit(ast)) end |