Class: FileGenTask
- Inherits:
-
Object
- Object
- FileGenTask
- Defined in:
- lib/rakeutils/filegentask.rb
Overview
Define a generator object that creates a file from a template and a YML data file.
Instance Method Summary collapse
-
#generate(src, dest, data) ⇒ Object
Generate files.
-
#initialize(verbose = false) ⇒ FileGenTask
constructor
- Constructor verbose
-
verbose output flag.
-
#load_data(data_file) ⇒ Object
Load data from YAML based data file.
-
#parse_src_to(src, dest) ⇒ Object
Parse the source file and create the destination file.
-
#set_delimiters(start, stop) ⇒ Object
- Set token delimiters start
- start delimiter char stop
-
stop delimiter char.
Constructor Details
#initialize(verbose = false) ⇒ FileGenTask
Constructor
- verbose
-
verbose output flag. Default = false
59 60 61 62 63 64 65 66 |
# File 'lib/rakeutils/filegentask.rb', line 59 def initialize(verbose=false) @src = "" @dest = "" @data_file = "" @start_delim = "@" @stop_delim = "@" @verbose = verbose end |
Instance Method Details
#generate(src, dest, data) ⇒ Object
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.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# 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) ⇒ Object
Load data from YAML based data file.
- data_file
-
name/path of YAML based data file
98 99 100 101 102 |
# 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) ⇒ Object
Parse the source file and create the destination file.
- src
-
source template file
- dest
-
Destination filename and path
107 108 109 110 111 112 113 114 |
# 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) ⇒ Object
Set token delimiters
- start
-
start delimiter char
- stop
-
stop delimiter char
71 72 73 74 75 |
# 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 |