class LCClasses::LCClass
Public Class Methods
flatten(hash)
click to toggle source
Convert nested LCClasses::CLASS_HASH to flat array.
# File lib/lcclasses.rb, line 19 def self.flatten(hash) return self[] if hash.nil? hash.sort { |a, b| a[0] <=> b[0] }.inject(self[]) do |result, klass| result << self[klass[0], klass[1][:name]] result + self.flatten(klass[1][:subclasses]) end end
nest(hash)
click to toggle source
Convert nested LCClasses::CLASS_HASH to nested array.
# File lib/lcclasses.rb, line 6 def self.nest(hash) return self[] if hash.nil? hash.sort { |a, b| a[0] <=> b[0] }.inject(self[]) do |result, klass| result << if klass[1][:subclasses] self[klass[0], klass[1][:name], self.nest(klass[1][:subclasses])] else self[klass[0], klass[1][:name]] end end end
Public Instance Methods
code()
click to toggle source
The class code.
# File lib/lcclasses.rb, line 37 def code self[0] end
name()
click to toggle source
THe class name.
# File lib/lcclasses.rb, line 42 def name self[1] end
subclasses()
click to toggle source
Return the subclasses of this class, if any.
# File lib/lcclasses.rb, line 29 def subclasses class_data = LCClasses::CLASS_HASH[self[0]] return if class_data.nil? || class_data.empty? LCClasses::LCClass.nest(class_data[:subclasses]) end