Sha256: 9384909c453729c3ebe3cc8ea1d0a7690c5f9149d58502e22e015cbef433087b
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
# encoding: utf-8 require "cli" require "simple-templater" require "simple-templater/generator" class SimpleTemplater # one project can has a generator in system gems and in ~/.rango/stubs/project, # and these two generators are one generator set class GeneratorSet attr_reader :name, :paths def initialize(name, *paths) @name = name.to_sym @paths = check_paths(paths) if File.directory?(self.custom) puts "Added custom generator from #{self.custom}" @paths.unshift(self.custom) end end def custom File.join(ENV["HOME"], ".simple-templater", self.name) end def generators @generators ||= self.paths.map { |path| Generator.new(self.name, path) } end def run(args = ARGV) full = self.generators.find { |generator| generator.full? } diff = self.generators.find { |generator| not generator.full? } raise GeneratorNotFound, "Generator set #{self.inspect} hasn't any full generator" if full.nil? full.run(args) diff.run(args) unless diff.nil? end protected def check_paths(paths) paths.each do |path| Dir.exist?(path) || raise(GeneratorNotFound, path) end return paths end end end
Version data entries
3 entries across 3 versions & 1 rubygems