class Docks::Containers::Symbol

Attributes

belongs_to[RW]
methods[RW]
properties[RW]

Public Class Methods

from_symbol(symbol) click to toggle source
# File lib/docks/containers/symbol_container.rb, line 10
def self.from_symbol(symbol)
  return if self == symbol.class
  new(symbol.to_h)
end
new(symbol_hash = {}) click to toggle source
Calls superclass method Docks::Containers::Base::new
# File lib/docks/containers/symbol_container.rb, line 15
def initialize(symbol_hash = {})
  super
  self[:symbol_type] = self.class.type
  @properties = []
  @methods = []
end
type() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 8
def self.type; "symbol" end

Public Instance Methods

add_member(symbol) click to toggle source
# File lib/docks/containers/symbol_container.rb, line 33
def add_member(symbol)
  symbol.for = fetch(:name)
  symbol.belongs_to = self
  symbol.static = true

  if symbol.kind_of?(Variable)
    symbol.property = true
    @properties << symbol
  else
    symbol.method = true
    @methods << symbol
  end
end
add_members(*symbols) click to toggle source
# File lib/docks/containers/symbol_container.rb, line 47
def add_members(*symbols)
  symbols.each { |symbol| add_member(symbol) }
end
find(descriptor) click to toggle source
# File lib/docks/containers/symbol_container.rb, line 51
def find(descriptor)
  descriptor = Descriptor.new(descriptor)
  return self if matches_exactly?(descriptor)

  members.find { |member| member.find(descriptor) } || false
end
has_members?() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 31
def has_members?; !members.empty? end
member?() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 25
def member?
  self[:property] == true || self[:method] == true
end
members() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 29
def members; @methods + @properties end
private?() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 22
def private?; fetch(:access, nil) == Docks::Types::Access::PRIVATE end
public?() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 23
def public?; !private? end
summary() click to toggle source
Calls superclass method Docks::Containers::Base#summary
# File lib/docks/containers/symbol_container.rb, line 69
def summary
  summary = super
  summary.properties = @properties.map(&:summary)
  summary.methods = @methods.map(&:summary)
  summary
end
symbol_id() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 58
def symbol_id
  "#{fetch(:symbol_type)}-#{fetch(:name)}"
end
to_descriptor() click to toggle source
# File lib/docks/containers/symbol_container.rb, line 62
def to_descriptor
  descriptor = ""
  descriptor << "#{belongs_to.name}::" unless belongs_to.nil?
  descriptor << fetch(:name)
  descriptor
end