class SexpInfo

Constants

VERSION

Attributes

sexp[R]

Public Class Methods

new(sexp) click to toggle source
# File lib/sexp_info.rb, line 7
def initialize(sexp)
  @sexp = sexp
end

Public Instance Methods

[](name) click to toggle source
# File lib/sexp_info.rb, line 36
def [](name)
  (children).find{|m| m == name }
end
children() click to toggle source
# File lib/sexp_info.rb, line 32
def children
  defined_classes + defined_methods + defined_modules
end
defined_classes() click to toggle source
# File lib/sexp_info.rb, line 19
def defined_classes
  defined(:class)
end
defined_methods() click to toggle source
# File lib/sexp_info.rb, line 15
def defined_methods
  defined(:def)
end
defined_modules() click to toggle source
# File lib/sexp_info.rb, line 27
def defined_modules
  defined(:module)
end
to_h() click to toggle source
# File lib/sexp_info.rb, line 23
def to_h
  Hash[children.map{|c| [c.name, c.to_h] }]
end
type() click to toggle source
# File lib/sexp_info.rb, line 11
def type
  sexp[1][0][0]
end

Private Instance Methods

defined(type) click to toggle source
# File lib/sexp_info.rb, line 43
def defined(type)
  sexp[1] ? sexp[1].find_all{|s| s[0] == type}.map{|c| "SexpThing::#{type.to_s.camelize}".constantize.new(c) } : []
end