Class: RediSearch::Schema::TagField

Inherits:
Field
  • Object
show all
Defined in:
lib/redi_search/schema/tag_field.rb

Instance Method Summary collapse

Methods inherited from Field

#name

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_aObject



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 += boolean_options_string

  query
end