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.



323
324
325
# File 'lib/sunspot_matchers/matchers.rb', line 323

def initialize(field)
  @field = field
end

Instance Method Details

#descriptionObject



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

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

#failure_message_for_shouldObject



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

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

#failure_message_for_should_notObject



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

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

#matches?(klass_or_object) ⇒ Boolean

Returns:

  • (Boolean)


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

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