Class: Chewy::Type::Adapter::Base
- Defined in:
- lib/chewy/type/adapter/base.rb
Overview
Basic adapter class. Contains interface, need to implement to add any classes support
Constant Summary collapse
- BATCH_SIZE =
1000
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#target ⇒ Object
readonly
Returns the value of attribute target.
Class Method Summary collapse
-
.accepts?(target) ⇒ Boolean
Returns ‘true` if this adapter is applicable for the given target.
Instance Method Summary collapse
-
#identify(collection) ⇒ Object
Returns shortest identifies for further postponed importing.
-
#import(*args, &block) ⇒ Object
Splits passed objects to groups according to ‘:batch_size` options.
-
#load(*args) ⇒ Object
Returns array of loaded objects for passed objects array.
-
#name ⇒ Object
Camelcased name, used as type class constant name.
-
#type_name ⇒ Object
Underscored type name, user for elasticsearch type creation and for type class access with ProductsIndex.type_hash hash or method.
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
8 9 10 |
# File 'lib/chewy/type/adapter/base.rb', line 8 def @options end |
#target ⇒ Object (readonly)
Returns the value of attribute target.
8 9 10 |
# File 'lib/chewy/type/adapter/base.rb', line 8 def target @target end |
Class Method Details
.accepts?(target) ⇒ Boolean
Returns ‘true` if this adapter is applicable for the given target.
12 13 14 |
# File 'lib/chewy/type/adapter/base.rb', line 12 def self.accepts? target true end |
Instance Method Details
#identify(collection) ⇒ Object
Returns shortest identifies for further postponed importing. For ORM/ODM it will be an array of ids for simple objects - just objects themselves
35 36 37 |
# File 'lib/chewy/type/adapter/base.rb', line 35 def identify collection raise NotImplementedError end |
#import(*args, &block) ⇒ Object
Splits passed objects to groups according to ‘:batch_size` options. For every group crates hash with action keys. Example:
{ delete: [object1, object2], index: [object3, object4, object5] }
Returns true id all the block call returns true and false otherwise
46 47 48 |
# File 'lib/chewy/type/adapter/base.rb', line 46 def import *args, &block raise NotImplementedError end |
#load(*args) ⇒ Object
Returns array of loaded objects for passed objects array. If some object was not loaded, it returns ‘nil` in the place of this object
load(double(id: 1), double(id: 2), double(id: 3)) #=>
# [<Product id: 1>, nil, <Product id: 3>], assuming, #2 was not found
56 57 58 |
# File 'lib/chewy/type/adapter/base.rb', line 56 def load *args raise NotImplementedError end |
#name ⇒ Object
Camelcased name, used as type class constant name. For returned value ‘Product’ will be generated class name ‘ProductsIndex::Product`
19 20 21 |
# File 'lib/chewy/type/adapter/base.rb', line 19 def name raise NotImplementedError end |
#type_name ⇒ Object
Underscored type name, user for elasticsearch type creation and for type class access with ProductsIndex.type_hash hash or method. ‘ProductsIndex.type_hash` or `ProductsIndex.product`
27 28 29 |
# File 'lib/chewy/type/adapter/base.rb', line 27 def type_name @type_name ||= name.underscore end |