class Goku::ElementFactory
Attributes
path[R]
Public Class Methods
new(path)
click to toggle source
# File lib/goku/element_factory.rb, line 6 def initialize(path) @path = path end
Public Instance Methods
ancestor_names()
click to toggle source
# File lib/goku/element_factory.rb, line 26 def ancestor_names @ancestor_names ||= @path.directories.drop(1) end
ancestors()
click to toggle source
# File lib/goku/element_factory.rb, line 22 def ancestors @ancestors ||= ancestor_names.map { |m| Goku::Elements::Module.new(m) } end
create_class()
click to toggle source
# File lib/goku/element_factory.rb, line 10 def create_class nested(Goku::Elements::Class.new(path.filename)) end
create_module()
click to toggle source
# File lib/goku/element_factory.rb, line 14 def create_module nested(Goku::Elements::Module.new(path.filename)) end
create_spec()
click to toggle source
# File lib/goku/element_factory.rb, line 18 def create_spec Goku::Elements::Spec.new(path.filename, ancestor_names) end
nested(element)
click to toggle source
# File lib/goku/element_factory.rb, line 30 def nested(element) elements = ancestors << element elements.each_cons(2) { |parent, sub| parent.add(sub) } elements.first end