Class: SunspotMatchers::HaveSearchableField

Inherits:
Object
  • Object
show all
Defined in:
lib/sunspot_matchers/matchers.rb

Direct Known Subclasses

HaveDynamicField

Instance Method Summary collapse

Constructor Details

#initialize(field) ⇒ HaveSearchableField

Returns a new instance of HaveSearchableField.



329
330
331
# File 'lib/sunspot_matchers/matchers.rb', line 329

def initialize(field)
  @field = field
end

Instance Method Details

#descriptionObject



338
339
340
# File 'lib/sunspot_matchers/matchers.rb', line 338

def description
  "have searchable field '#{@field}'"
end

#failure_messageObject



342
343
344
345
# File 'lib/sunspot_matchers/matchers.rb', line 342

def failure_message
  message = "expected class: #{@klass} to have searchable field: #{@field}"
  message << ", but Sunspot was not configured on #{@klass}" unless @sunspot
end

#failure_message_when_negatedObject



347
348
349
# File 'lib/sunspot_matchers/matchers.rb', line 347

def failure_message_when_negated
  "expected class: #{@klass} NOT to have searchable field: #{@field}"
end

#fields_to_matchObject



355
356
357
# File 'lib/sunspot_matchers/matchers.rb', line 355

def fields_to_match
  (sunspot.all_text_fields + sunspot.fields).collect(&:name)
end

#matches?(klass_or_object) ⇒ Boolean

Returns:

  • (Boolean)


333
334
335
336
# File 'lib/sunspot_matchers/matchers.rb', line 333

def matches?(klass_or_object)
  @klass = klass_or_object.class.name == 'Class' ? klass_or_object : klass_or_object.class
  sunspot && fields_to_match.include?(@field)
end

#sunspotObject



351
352
353
# File 'lib/sunspot_matchers/matchers.rb', line 351

def sunspot
  @sunspot ||= Sunspot::Setup.for(@klass)
end