Class: RediSearch::Schema::TagField
- Defined in:
- lib/redi_search/schema/tag_field.rb
Instance Method Summary collapse
- #cast(value) ⇒ Object
- #coerce(value) ⇒ Object
-
#initialize(name, separator: ",", sortable: false, no_index: false, &block) ⇒ TagField
constructor
A new instance of TagField.
- #serialize(record) ⇒ Object
- #to_a ⇒ Object
Methods inherited from Field
Constructor Details
#initialize(name, separator: ",", sortable: false, no_index: false, &block) ⇒ TagField
6 7 8 9 10 11 12 13 |
# File 'lib/redi_search/schema/tag_field.rb', line 6 def initialize(name, separator: ",", sortable: false, no_index: false, &block) @name = name @separator = separator @sortable = sortable @no_index = no_index @value_block = block end |
Instance Method Details
#cast(value) ⇒ Object
27 28 29 |
# File 'lib/redi_search/schema/tag_field.rb', line 27 def cast(value) value.split(separator) end |
#coerce(value) ⇒ Object
23 24 25 |
# File 'lib/redi_search/schema/tag_field.rb', line 23 def coerce(value) value.join(separator) end |
#serialize(record) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/redi_search/schema/tag_field.rb', line 31 def serialize(record) if value_block record.instance_exec(&value_block) else record.public_send(name) end.to_a end |
#to_a ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/redi_search/schema/tag_field.rb', line 15 def to_a query = [name.to_s, "TAG"] query += ["SEPARATOR", separator] if separator query += query end |