class Tataru::TopDsl
human representation of resources
Attributes
resources[R]
Public Class Methods
new(pool)
click to toggle source
# File lib/tataru/top_dsl.rb, line 8 def initialize(pool) @resources = {} @pool = pool end
Public Instance Methods
dep_graph()
click to toggle source
# File lib/tataru/top_dsl.rb, line 25 def dep_graph @resources.map do |name, resource_representation| deps = Set.new resource_representation.properties.each do |_key, value| deps += value.dependencies end [name, deps.to_a] end.to_h end
resource(symbol, name, &block)
click to toggle source
# File lib/tataru/top_dsl.rb, line 13 def resource(symbol, name, &block) unless @pool.resource_desc_exist?(symbol) raise "no such resource: #{symbol}" end raise "already defined: #{name}" if @resources.key? name resource = ResourceDsl.new(name, @pool.resource_desc_for(symbol).new) resource.instance_eval(&block) if block @resources[name] = resource.representation end