class Taketo::Constructs::BaseConstruct

Attributes

default_server_config[W]
name[R]
parent[RW]

Public Class Methods

new(name) click to toggle source
Calls superclass method
# File lib/taketo/constructs/base_construct.rb, line 14
def initialize(name)
  super
  @name = name
  @default_server_config = proc {}
  @parent = NullConstruct
end

Public Instance Methods

default_server_config() click to toggle source
# File lib/taketo/constructs/base_construct.rb, line 46
def default_server_config
  parent_default_server_config = parent.default_server_config
  own_default_server_config = @default_server_config
  proc { instance_eval(&parent_default_server_config); instance_eval(&own_default_server_config)}
end
node_type() click to toggle source
# File lib/taketo/constructs/base_construct.rb, line 21
def node_type
  demodulized = self.class.name.gsub(/.*::/, '')
  demodulized.gsub(/([a-z])([A-Z])/, '\\1_\\2').downcase.to_sym
end
parent=(parent) click to toggle source

Override in subclasses if needed

# File lib/taketo/constructs/base_construct.rb, line 28
def parent=(parent)
  @parent = parent
end
parents() click to toggle source
# File lib/taketo/constructs/base_construct.rb, line 32
def parents
  result = []
  p = parent
  while p != NullConstruct
    result << p
    p = p.parent
  end
  result
end
path() click to toggle source
# File lib/taketo/constructs/base_construct.rb, line 42
def path
  parents.reverse_each.map(&:name).concat([self.name]).reject(&:nil?).join(":")
end
qualified_name() click to toggle source
# File lib/taketo/constructs/base_construct.rb, line 52
def qualified_name
  "#{node_type} #{self.name}"
end