class SuperDiff::RSpec::MatcherTextBuilders::RespondTo

Attributes

expected_arity[R]
expected_keywords[R]

Public Class Methods

new( expected_arity:, arbitrary_keywords:, expected_keywords:, unlimited_arguments:, **rest ) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 5
def initialize(
  expected_arity:,
  arbitrary_keywords:,
  expected_keywords:,
  unlimited_arguments:,
  **rest
)
  super(**rest)
  @expected_arity = expected_arity
  @arbitrary_keywords = arbitrary_keywords
  @expected_keywords = expected_keywords
  @unlimited_arguments = unlimited_arguments
end

Protected Instance Methods

add_expected_value_to(template, expected) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 21
def add_expected_value_to(template, expected)
  template.add_text " "
  template.add_list_in_color(expected_color, expected)
end
add_extra_after_expected_to(template) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 26
def add_extra_after_expected_to(template)
  if expected_arity
    add_arity_clause_to(template)
  end

  if arbitrary_keywords?
    add_arbitrary_keywords_clause_to(template)
  elsif has_expected_keywords?
    add_keywords_clause_to(template)
  end

  if unlimited_arguments?
    add_unlimited_arguments_clause_to(template)
  end
end

Private Instance Methods

add_arbitrary_keywords_clause_to(template) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 65
def add_arbitrary_keywords_clause_to(template)
  template.add_text " with "
  template.add_text_in_color expected_color, "any"
  template.add_text " keywords"
end
add_arity_clause_to(template) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 58
def add_arity_clause_to(template)
  template.add_text " with "
  template.add_text_in_color expected_color, expected_arity
  template.add_text " "
  template.add_text pluralize("argument", expected_arity)
end
add_keywords_clause_to(template) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 71
def add_keywords_clause_to(template)
  template.add_text " with "
  template.add_text pluralize("keyword", expected_keywords.length)
  template.add_text " "
  template.add_list_in_color expected_color, expected_keywords
end
add_unlimited_arguments_clause_to(template) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 78
def add_unlimited_arguments_clause_to(template)
  if arbitrary_keywords? || has_expected_keywords?
    template.add_text " and "
  else
    template.add_text " with "
  end

  template.add_text_in_color expected_color, "unlimited"
  template.add_text " arguments"
end
arbitrary_keywords?() click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 46
def arbitrary_keywords?
  @arbitrary_keywords
end
has_expected_keywords?() click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 50
def has_expected_keywords?
  expected_keywords && expected_keywords.count > 0
end
pluralize(word, count) click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 89
def pluralize(word, count)
  if count == 1
    word
  else
    "#{word}s"
  end
end
unlimited_arguments?() click to toggle source
# File lib/super_diff/rspec/matcher_text_builders/respond_to.rb, line 54
def unlimited_arguments?
  @unlimited_arguments
end