Class: SunspotMatchers::HaveSearchableField

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

Instance Method Summary collapse

Constructor Details

#initialize(field) ⇒ HaveSearchableField

Returns a new instance of HaveSearchableField.



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

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

#matches?(klass_or_object) ⇒ Boolean

Returns:

  • (Boolean)


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

def matches?(klass_or_object)
  @klass = klass_or_object.class.name == 'Class' ? klass_or_object : klass_or_object.class
  @sunspot = Sunspot::Setup.for(@klass)
  @sunspot && (@sunspot.all_text_fields + @sunspot.fields).collect(&:name).include?(@field)
end