Module: Croods::Resource::Search

Defined in:
lib/croods/resource/search.rb

Instance Method Summary collapse

Instance Method Details

#default_search_optionsObject



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/croods/resource/search.rb', line 30

def default_search_options
  searchable = []

  attributes.each do |key, value|
    searchable << key if value.type.in? %i[string text]
  end

  {
    against: searchable
  }
end

#search_attributeObject



6
7
8
9
10
11
12
# File 'lib/croods/resource/search.rb', line 6

def search_attribute
  return if skip_search?

  @search_attribute ||= Croods::Attribute.new(
    'query', :string, null: true
  )
end

#search_attribute_nameObject



20
21
22
23
24
# File 'lib/croods/resource/search.rb', line 20

def search_attribute_name
  return if skip_search?

  @search_attribute.name
end

#search_blockObject



46
47
48
# File 'lib/croods/resource/search.rb', line 46

def search_block
  @search_block
end

#search_by(name, options = {}, &block) ⇒ Object



58
59
60
61
62
# File 'lib/croods/resource/search.rb', line 58

def search_by(name, options = {}, &block)
  @search_method_name = name
  @search_options = options
  @search_block = block
end

#search_method_nameObject



26
27
28
# File 'lib/croods/resource/search.rb', line 26

def search_method_name
  @search_method_name ||= :search
end

#search_optionsObject



42
43
44
# File 'lib/croods/resource/search.rb', line 42

def search_options
  @search_options ||= default_search_options
end

#search_paramsObject



14
15
16
17
18
# File 'lib/croods/resource/search.rb', line 14

def search_params
  return [] if skip_search?

  @search_params ||= [search_attribute]
end

#skip_searchObject



54
55
56
# File 'lib/croods/resource/search.rb', line 54

def skip_search
  @skip_search ||= true
end

#skip_search?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/croods/resource/search.rb', line 50

def skip_search?
  @skip_search
end