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