class Algerb::Generator
Public Instance Methods
generate(files)
click to toggle source
# File lib/algerb/generator.rb, line 4 def generate(files) generate_autoloader_body(files) end
generate_autoloader_body(files)
click to toggle source
# File lib/algerb/generator.rb, line 8 def generate_autoloader_body(files) builder = Algerb::FilesBuilder.new files.each do |file| builder.add file end _generate_autoloader_body(builder.files.files) end
Private Instance Methods
_generate_autoloader_body(files, parent = nil, level = 0)
click to toggle source
# File lib/algerb/generator.rb, line 17 def _generate_autoloader_body(files, parent = nil, level = 0) files.sort_by {|name, file| name }.inject('') do |result, key_value| name, file = key_value path = remove_ext(prefix(parent) + file.name) if file.is_a?(Algerb::File) result += indent(level) + "autoload :#{file_to_class(file.name)}, '#{path}'\n" else result += indent(level) + "module #{file_to_class(file.name)}\n" result += _generate_autoloader_body(file.files, path, level + 1) result += indent(level) + "end\n" end result end end
indent(level)
click to toggle source
# File lib/algerb/generator.rb, line 40 def indent(level) ' ' * level end
prefix(parent)
click to toggle source
# File lib/algerb/generator.rb, line 32 def prefix(parent) if parent.nil? '' else "#{parent}/" end end