Class: PuzzlyApiPlugin::ModuleView

Inherits:
Renderable show all
Defined in:
lib/puzzly_api_plugin/view/module.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(context, mod, apis, caches, queries, tables, consumesTopics, producesTopics) ⇒ ModuleView

Returns a new instance of ModuleView.



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/puzzly_api_plugin/view/module.rb', line 34

def initialize(context, mod, apis, caches, queries, tables, consumesTopics, producesTopics)
  mod.copy_to_hash self
  self.delete MetadataFields::CONTEXT_ID
  
  self[MetadataFields::CONTEXT] = context
  self.apis apis
  self.caches caches
  self.queries queries
  self.tables tables
  self[MetadataFields::CONSUMES_TOPICS] = consumesTopics
  self[MetadataFields::PRODUCES_TOPICS] = producesTopics
end

Class Method Details

.create(mod) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/puzzly_api_plugin/view/module.rb', line 5

def self.create(mod)
  context = ContextsCollection.instance.get_by_id mod.context_id
  apis = ApisCollection.instance.get_by_module mod
  caches = CachesCollection.instance.get_by_module mod
  queries = QueriesCollection.instance.get_by_module mod
  tables = TablesCollection.instance.get_by_module mod
  
  consumesTopics = []
  mod.consumesTopics.each do |topic_id|
    topic = TopicsCollection.instance.get_by_id topic_id
    consumesTopics.push topic.to_identity
  end

  producesTopics = []
  mod.producesTopics.each do |topic_id|
    topic = TopicsCollection.instance.get_by_id topic_id
    producesTopics.push topic.to_identity
  end
  
  ModuleView.new(context.to_identity,
                  mod,
                  apis.map { |_id, api| api.to_identity },
                  caches.map { |_id, cache| cache.to_identity },
                  queries.map { |_id, query| query.to_identity },
                  tables.map { |_id, table| table.to_identity },
                  consumesTopics, 
                  producesTopics)
end