Class: RSpec::Contracts::FulfillmentView

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/contracts/fulfillment_view.rb

Instance Method Summary collapse

Constructor Details

#initialize(fulfillment) ⇒ FulfillmentView

Returns a new instance of FulfillmentView.



6
7
8
# File 'lib/rspec/contracts/fulfillment_view.rb', line 6

def initialize(fulfillment)
  @fulfillment = fulfillment
end

Instance Method Details

#contracts_countObject



28
29
30
# File 'lib/rspec/contracts/fulfillment_view.rb', line 28

def contracts_count
  pluralize @fulfillment.messages_count, "contract"
end

#pluralize(number, noun) ⇒ Object



32
33
34
35
# File 'lib/rspec/contracts/fulfillment_view.rb', line 32

def pluralize(number, noun)
  suffix = (number == 1) ? "" : "s"
  "#{number} #{noun}#{suffix}"
end

#renderObject



10
11
12
# File 'lib/rspec/contracts/fulfillment_view.rb', line 10

def render
  ([summary] + unfulfilled_views).join "\n"
end

#summaryObject



14
15
16
17
18
# File 'lib/rspec/contracts/fulfillment_view.rb', line 14

def summary
  unverified = unfulfilled_views.count
  verified = @fulfillment.messages_count - unverified
  "#{contracts_count}, #{verified} verified, #{unverified} unverified"
end

#unfulfilled_viewsObject



20
21
22
23
24
25
26
# File 'lib/rspec/contracts/fulfillment_view.rb', line 20

def unfulfilled_views
  @fulfillment.incomplete_interfaces.map do |fulfillment|
    fulfillment.unfulfilled_messages.map do |message|
      RSpec::Contracts::MessageView.new(fulfillment.interface.name, message).render
    end
  end.flatten
end