class FileGenTask
Define a generator object that creates a file from a template and a YML data file.
Public Class Methods
new(verbose=false)
click to toggle source
Constructor
- verbose
-
verbose output flag. Default = false
# File lib/rakeutils/filegentask.rb, line 59 def initialize(verbose=false) @src = "" @dest = "" @data_file = "" @start_delim = "@" @stop_delim = "@" @verbose = verbose end
Public Instance Methods
generate(src, dest, data)
click to toggle source
Generate files.
- src
-
source template file
- dest
-
name of file to output.
- data
-
string or hash. if a string, it will be treated as a YML filename.
# File lib/rakeutils/filegentask.rb, line 81 def generate(src, dest, data) puts "FileGenTask: Generating file [ #{dest} ] from [ #{src} ]" if @verbose if(data.class == String) load_data(data) else if( data.class != Hash ) puts "* ERROR: FileGenTask::generate - data must be string (YML filename) or hash *" return unless (data.class == Hash) end @data = data end parse_src_to( src, dest ) end
load_data(data_file)
click to toggle source
Load data from YAML based data file.
- data_file
-
name/path of YAML based data file
# File lib/rakeutils/filegentask.rb, line 98 def load_data(data_file) puts "FileGenTask: Loading data from YML file [ #{data_file} ]" if @verbose df = DataFile.new @data = df.read( data_file ) end
parse_src_to(src, dest)
click to toggle source
Parse the source file and create the destination file.
- src
-
source template file
- dest
-
Destination filename and path
# File lib/rakeutils/filegentask.rb, line 107 def parse_src_to(src, dest) pt = Ktutils::ParseTemplate.new(@start_delim, @stop_delim) @data.each do |t, v| pt.add_token( t, v ) end pt.parse( src, dest ) end
set_delimiters(start, stop)
click to toggle source
Set token delimiters
- start
-
start delimiter char
- stop
-
stop delimiter char
# File lib/rakeutils/filegentask.rb, line 71 def set_delimiters(start, stop) @start_delim = start @stop_delim = stop puts "FileGenTask: Setting token delimeters to #{@start_delim}, #{@stop_delim}" if @verbose end