Sha256: 4f3014075b0ff23003f26662b40c44013cae825f1dfc21750a0714fbe98e62df

Contents?: true

Size: 1021 Bytes

Versions: 1

Compression:

Stored size: 1021 Bytes

Contents

require "simple-hd-graph/node"

module SimpleHdGraph
  class ContextNode < Node
    required :id

    attr_reader :resources, :relations, :depends # Array

    #
    # @return [String]
    #
    def alias
      @content[:id]
    end

    #
    # @return [String]
    #
    def id
      id = camelize(self.alias)
      id[0] = id[0].downcase
      id
    end

    #
    # @param resource [ResourceNode]
    #
    def <<(resource)
      @resources ||= []
      @resource_dict ||= {}
      @resources << resource
      @resource_dict[resource.alias] = resource.id
    end

    #
    # @param depends [Array]
    #
    def set_depends(depends)
      @depends = depends
    end

    def refill_relation
      @resource ||= []
      @relations ||= []
      @resources.each { |resource|
        dependencies = resource.has
        if dependencies.respond_to? :each
          dependencies.each { |dependency|
            @relations << {resource.id => @resource_dict[dependency]}
          }
        end
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-hd-graph-0.3.5 lib/simple-hd-graph/context.rb