Sha256: c334314b44920fb018e6ad6e9e3e8778f2d5fbaf2d18d04d8539d74b78e13895
Contents?: true
Size: 1.72 KB
Versions: 4
Compression:
Stored size: 1.72 KB
Contents
require "gem-content" module Veewee class Templates attr_accessor :env def initialize(env) @env = env return self end def [](name) result = nil valid_paths(env.template_path).each do |template_dir| template = Veewee::Template.new(name, File.join(template_dir, name), @env) if template.exists? result = template return result end end return nil end # Fetch all Templates def each(&block) templates = Hash.new valid_paths(env.template_path).each do |template_dir| env.logger.debug("[Template] Searching #{template_dir} for templates") subdirs = Dir.glob("#{template_dir}/*") subdirs.each do |sub| if File.directory?("#{sub}") name = sub.sub(/#{template_dir}\//, '') template = Veewee::Template.new(name, sub, @env) if template.exists? env.logger.debug("[Template] template '#{name}' found") templates[name] = template end end end end if templates.length == 0 env.logger.debug("[Template] no templates found") end Hash[templates.sort].each(&block) end private # Traverses path to see which exist or not # and checks if available def valid_paths(paths) paths = GemContent.get_gem_paths("veewee-templates") valid_paths = paths.collect { |path| if File.exists?(path) && File.directory?(path) env.logger.info "Path #{path} exists" File.expand_path(path) else env.logger.info "Path #{path} does not exist, skipping" nil end } return valid_paths.compact end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
veewee-0.5.0.alpha4 | lib/veewee/templates.rb |
veewee-0.5.0.alpha3 | lib/veewee/templates.rb |
veewee-0.5.0.alpha2 | lib/veewee/templates.rb |
veewee-0.5.0.alpha1 | lib/veewee/templates.rb |