Class: PactBroker::Api::Decorators::RelationshipsCsvDecorator
- Inherits:
-
Object
- Object
- PactBroker::Api::Decorators::RelationshipsCsvDecorator
- Defined in:
- lib/pact_broker/api/decorators/relationships_csv_decorator.rb
Instance Method Summary collapse
-
#initialize(pacts) ⇒ RelationshipsCsvDecorator
constructor
A new instance of RelationshipsCsvDecorator.
- #pacticipant_array(pacticipant, order) ⇒ Object
- #to_csv ⇒ Object
Constructor Details
#initialize(pacts) ⇒ RelationshipsCsvDecorator
Returns a new instance of RelationshipsCsvDecorator.
12 13 14 15 |
# File 'lib/pact_broker/api/decorators/relationships_csv_decorator.rb', line 12 def initialize pacts @pacts = pacts @relationships = pacts.collect{|pact| PactBroker::Domain::Relationship.new(pact.consumer,pact.provider)} end |
Instance Method Details
#pacticipant_array(pacticipant, order) ⇒ Object
43 44 45 |
# File 'lib/pact_broker/api/decorators/relationships_csv_decorator.rb', line 43 def pacticipant_array pacticipant, order [pacticipant.id, pacticipant.name, 1, 1, 0, order] end |
#to_csv ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/pact_broker/api/decorators/relationships_csv_decorator.rb', line 17 def to_csv hash = {} pacticipants = @relationships.collect{|r| r.pacticipants}.flatten.uniq @relationships.each do | relationship | hash[relationship.consumer.id] ||= pacticipant_array(relationship.consumer, hash.size + 1) hash[relationship.provider.id] ||= pacticipant_array(relationship.provider, hash.size + 1) hash[relationship.consumer.id] << relationship.provider.id end max_length = hash.values.collect{|array| array.size}.max hash.values.each do | array | while array.size < max_length array << 0 end end CSV.generate do |csv| hash.values.each do | array | csv << array end end end |