Class: ActiveRecord::Like::ScopeSpawners::NotLikeScopeSpawners::AbstractSpawner

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/like/scope_spawner.rb

Overview

:nodoc:

Direct Known Subclasses

Rails71AndBelowSpawner

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope, opts, *rest) ⇒ AbstractSpawner

Assign ivar only Actual operation is in #spawn

Parameters:

  • scope (ActiveRecord::Relation)

    Relation or collection proxy or some AR classes

  • opts (Hash)

    Column value pairs

  • rest (Array)

    Rest of arguments

See Also:



186
187
188
189
190
# File 'lib/active_record/like/scope_spawner.rb', line 186

def initialize(scope, opts, *rest)
  @scope  = scope
  @opts   = opts
  @rest   = rest
end

Instance Attribute Details

#optsObject (readonly)

:nodoc:



163
164
165
# File 'lib/active_record/like/scope_spawner.rb', line 163

def opts
  @opts
end

#restObject (readonly)

:nodoc:



163
164
165
# File 'lib/active_record/like/scope_spawner.rb', line 163

def rest
  @rest
end

#scopeObject (readonly)

:nodoc:



163
164
165
# File 'lib/active_record/like/scope_spawner.rb', line 163

def scope
  @scope
end

Class Method Details

.spawn(*args) ⇒ Object

Spawn different scopes based on value Just delegates to new though

Parameters:

  • args (Array)

    arguments that are passed to #initialize

See Also:



171
172
173
# File 'lib/active_record/like/scope_spawner.rb', line 171

def self.spawn(*args)
  new(*args).spawn
end

Instance Method Details

#spawnActiveRecord::Relation

Spawn different scopes based on value Data conversion and query string generation are handled by different spanwer classes

Returns:

  • (ActiveRecord::Relation)

    Relation or collection proxy or some AR classs

Raises:

  • (NotImplementedError)


196
197
198
# File 'lib/active_record/like/scope_spawner.rb', line 196

def spawn
  raise NotImplementedError
end