ktutils 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: