ktutils 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81d1d33bca23a9b970377dcacf3fd013ab571a51
4
- data.tar.gz: 7f3ea4ab88b3f978e6ef20342dec127178aa2b1e
3
+ metadata.gz: a3e9a77a176435e38bb93403e12bad14e8f2adf9
4
+ data.tar.gz: 5da5fb39d166b498cc3d8e8bb97d71a3807a54b6
5
5
  SHA512:
6
- metadata.gz: b511dcb372fe7cbb17e79fe422720a019cd54aad2b43f0ff8c8411e63e100fe86393ac51eae53b39fc82789a35b16cd1278aae2070d79dbb6a07c3e0760dece9
7
- data.tar.gz: 213f6db35622c4b45c1f4722c0d6f7936cb6b76060bc1bfab656b7bf74dc25ce121dbf5dfa33cb1a4e6cbe95212f759584887e5bbeebdcb77be05d64731c85cd
6
+ metadata.gz: a232dc920f46eb7384e56356fa201ca6bbf7cc93debb048318570b9e7488650dd5fdcf7e919b436892c4da428b2ed68acfd47444c47c7f9ddf14c2372cfccf49
7
+ data.tar.gz: bacb0ce1e031577d72ea4d040be6251317dadf71dcefaa30849c556f87e3f7735b06bcadc20caa54b5976de73454142956295d62b6c49d1fee84fd94e36e71c6
data/README.md CHANGED
@@ -31,8 +31,20 @@ or two modules/classes at a time.
31
31
 
32
32
  ### OS Detection
33
33
 
34
+ Determine if you're running on windows, linux or mac. Doesn't currently
35
+ support jruby.
36
+
34
37
  require 'ktutils/os'
35
38
 
39
+ ### Template Parsing
40
+
41
+ Brute force template parsing.
42
+
43
+ require 'ktutils/parse_template'
44
+
45
+ ## TODOs
46
+
47
+ + TESTS!
36
48
 
37
49
  ## Contributing
38
50
 
@@ -5,3 +5,4 @@ module Ktutils
5
5
  end
6
6
 
7
7
  require 'ktutils/os'
8
+ require 'ktutils/parse_template'
@@ -0,0 +1,57 @@
1
+ ##############################################################################
2
+ # File:: parse_template.rb
3
+ # Purpose:: Parse a template file and replace parameters.
4
+ #
5
+ # Author:: Jeff McAffee 06/05/2014
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ # Parse a template file and create a new file with the supplied
11
+ # parameters replaced.
12
+ #
13
+ # Note: this uses brute force token replacement. I'm sure there are better
14
+ # ways to do this.
15
+
16
+ module Ktutils
17
+ class ParseTemplate
18
+
19
+ # start_delim:: Char(s) used to indicate start of replacement token. (default: @)
20
+ # stop_delim:: Char(s) used to indicate end of replacement token. (default: @)
21
+ def initialize(start_delim='@', stop_delim='@')
22
+ @start_delim = start_delim
23
+ @stop_delim = stop_delim
24
+ @tokens = {}
25
+ end
26
+
27
+ # Add a token that will be replaced. The key *must* be surrounded with '@'
28
+ # (or the specified delimiters) in the template document
29
+ # key:: token to be replaced.
30
+ # val:: value to replace token with.
31
+ def add_token(key, val)
32
+ @tokens[key] = val
33
+ end
34
+
35
+ # Parse the src document and place the result at dest.
36
+ # src:: source document (template) to parse.
37
+ # dest:: destination path to resulting document.
38
+ def parse(src, dest)
39
+ return unless @tokens.size > 0
40
+
41
+ File.open( src, "r" ) do |sf|
42
+ File.open( dest, "w" ) do |df|
43
+ sf.each do |sline|
44
+ @tokens.each do |token, val|
45
+ val = val.to_s unless (val.class == String)
46
+ rtok = "#{@start_delim}#{token}#{@stop_delim}"
47
+ sline.gsub!(rtok, val)
48
+ end # each token
49
+
50
+ df.write( sline )
51
+ end # each src line
52
+ end # Dest file open
53
+ end # Src file open
54
+ end
55
+ end # ParseTemplate
56
+ end # Ktutils
57
+
@@ -1,3 +1,3 @@
1
1
  module Ktutils
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ktutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff McAffee
@@ -53,6 +53,7 @@ files:
53
53
  - ktutils.gemspec
54
54
  - lib/ktutils.rb
55
55
  - lib/ktutils/os.rb
56
+ - lib/ktutils/parse_template.rb
56
57
  - lib/ktutils/version.rb
57
58
  homepage: https://github.com/jmcaffee/ktutils
58
59
  licenses: