Sha256: ea191e7cc26b0a6232e6df17f65538b247c0f0a84967ebfe636321e44a834775

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 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
    end

    desc "add <source>", "Create new erb file"
    option :source, :type => :string
    def add(source)
      path = @template_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(@template_dir.find(template_name) || "", nil, "%<>").result())
        end
      end
    end

    desc "list", "Show erb templates"
    def list()
      @template_dir.list.each{ |name| puts name }
    end

    default_task :touch
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
touch_erb-0.2.0 lib/touch_erb/cli.rb