Class: Ktutils::ParseTemplate
- Inherits:
-
Object
- Object
- Ktutils::ParseTemplate
- Defined in:
- lib/ktutils/parse_template.rb
Instance Method Summary collapse
-
#add_token(key, val) ⇒ Object
Add a token that will be replaced.
-
#initialize(start_delim = '@', stop_delim = '@') ⇒ ParseTemplate
constructor
- start_delim
-
Char(s) used to indicate start of replacement token.
-
#parse(src, dest) ⇒ Object
Parse the src document and place the result at dest.
Constructor Details
#initialize(start_delim = '@', stop_delim = '@') ⇒ ParseTemplate
- start_delim
-
Char(s) used to indicate start of replacement token. (default: @)
- stop_delim
-
Char(s) used to indicate end of replacement token. (default: @)
21 22 23 24 25 |
# File 'lib/ktutils/parse_template.rb', line 21 def initialize(start_delim='@', stop_delim='@') @start_delim = start_delim @stop_delim = stop_delim @tokens = {} end |
Instance Method Details
#add_token(key, val) ⇒ Object
Add a token that will be replaced. The key must be surrounded with ‘@’ (or the specified delimiters) in the template document
- key
-
token to be replaced.
- val
-
value to replace token with.
31 32 33 |
# File 'lib/ktutils/parse_template.rb', line 31 def add_token(key, val) @tokens[key] = val end |
#parse(src, dest) ⇒ Object
Parse the src document and place the result at dest.
- src
-
source document (template) to parse.
- dest
-
destination path to resulting document.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ktutils/parse_template.rb', line 38 def parse(src, dest) return unless @tokens.size > 0 File.open( src, "r" ) do |sf| File.open( dest, "w" ) do |df| sf.each do |sline| @tokens.each do |token, val| val = val.to_s unless (val.class == String) rtok = "#{@start_delim}#{token}#{@stop_delim}" sline.gsub!(rtok, val) end # each token df.write( sline ) end # each src line end # Dest file open end # Src file open end |