Class: PuzzlyApiPlugin::TopicView

Inherits:
Renderable show all
Defined in:
lib/puzzly_api_plugin/view/topic.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Renderable

#apis, #caches, #contexts, #modules, #path, #queries, #render, #schemas, #tables, #topics

Methods inherited from JSONable

#copy_to_hash, #to_s

Constructor Details

#initialize(topic, producers, consumers, schema) ⇒ TopicView

Returns a new instance of TopicView.



17
18
19
20
21
22
23
24
25
# File 'lib/puzzly_api_plugin/view/topic.rb', line 17

def initialize(topic, producers, consumers, schema)
  topic.copy_to_hash self
  self.delete MetadataFields::MODULE_ID
  self.delete MetadataFields::SCHEMA_ID
        
  self[MetadataFields::PRODUCED_BY] = producers
  self[MetadataFields::CONSUMED_BY] = consumers
  self[MetadataFields::SCHEMA] = schema
end

Class Method Details

.create(topic) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/puzzly_api_plugin/view/topic.rb', line 5

def self.create(topic)
  consumers = ModulesCollection.instance.get_consumers topic
  producers = ModulesCollection.instance.get_producers topic
  
  schema = SchemasCollection.instance.get_by_id topic.schema_id

  TopicView.new(topic,
              producers.map{|_id, producer| producer.to_identity},
              consumers.map{|_id, consumer| consumer.to_identity},
              schema.to_identity)
end