Sha256: dd41da3044596b76f2230bda4df0c1ff6380a4a9a0a5efb8bb4a40323be6c87f
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
require 'touch_erb' require 'thor' require 'erb' require 'fileutils' module TouchErb class CLI < Thor def initialize(*args) super @template_dir = TouchErb::TemplateDir.new @local_template_dir = TouchErb::TemplateDir.new( File.join(Dir.pwd, '.touch_erb'), false ) end desc "add <source>", "Create new erb file" option "local", aliases: "l", type: :boolean method_option :source, :type => :string, :desc => "Create new erb template to {current directory}/.touch_erb/" def add(source) target_dir = @template_dir if options[:local] target_dir = @local_template_dir end path = target_dir.add(source) system("#{ENV['EDITOR']}", path) end desc "<template_name> <output_name>", "Create file to current directory from execute erb template" option :template_name, :type => :string option :output_name, :type => :string, :default => nil def touch(template_name, output_name = nil) dist_name = output_name || template_name if FileTest.exists?(dist_name) FileUtils.touch(dist_name) else File.open(dist_name, 'w') do |f| f.write(ERB.new(@local_template_dir.find(template_name) || @template_dir.find(template_name) || "", nil, "%<>").result()) end end end desc "list", "Show erb templates" option "local", aliases: "l", type: :boolean, desc: "Show templates only local directory .touch_erb" def list() if(options[:local]) @local_template_dir.list().each{ |name| puts name } else (@template_dir.list() + @local_template_dir.list()).each{ |name| puts name } end end default_task :touch end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
touch_erb-0.3.1 | lib/touch_erb/cli.rb |