dwt 0.1.0 → 0.1.1
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.
- data/Gemfile +1 -3
- data/Gemfile.lock +2 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/dwt +21 -0
- data/dwt.gemspec +17 -6
- data/lib/dwt.rb +39 -4
- data/test/files/Templates/link-attribute-01.dwt +16 -0
- data/test/files/Templates/link-attribute-02.dwt +11 -0
- data/test/files/Templates/link-attribute-03.dwt +11 -0
- data/test/files/{simple-01.dwt → Templates/simple-01.dwt} +0 -0
- data/test/files/{simple-02.dwt → Templates/simple-02.dwt} +0 -0
- data/test/files/link-attribute-01.html +16 -0
- data/test/files/link-attribute-02.html +11 -0
- data/test/files/link-attribute-03.html +11 -0
- data/test/files/outside-html-01.html +11 -0
- data/test/files/simple-01.html +1 -1
- data/test/test_dwt.rb +36 -4
- metadata +36 -16
- data/dwt.rb +0 -42
data/Gemfile
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
2
|
+
gem "trollop", ">= 0"
|
5
3
|
|
6
4
|
# Add dependencies to develop your gem here.
|
7
5
|
# Include everything needed to run rake, tests, features, etc.
|
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ Jeweler::Tasks.new do |gem|
|
|
18
18
|
gem.homepage = "http://github.com/andrewferk/dwt"
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = 'Dreamweaver Template tool'
|
21
|
-
gem.description = 'Dreamweaver
|
21
|
+
gem.description = 'Library and command line tool to apply Dreamweaver templates to HTML files.'
|
22
22
|
gem.email = "andrewferk@gmail.com"
|
23
23
|
gem.authors = ["Andrew Ferk"]
|
24
24
|
# dependencies defined in Gemfile
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/dwt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
3
|
+
|
4
|
+
require 'trollop'
|
5
|
+
require 'dwt'
|
6
|
+
|
7
|
+
opts = Trollop::options do
|
8
|
+
opt :template, "DWT file", :short => 't', :type => String
|
9
|
+
opt :file, "Target file", :short => 'f', :type => String
|
10
|
+
end
|
11
|
+
Trollop::die :template, "must be present" unless opts[:template]
|
12
|
+
Trollop::die :template, "must exist" unless File.exist?(opts[:template]) if opts[:template]
|
13
|
+
Trollop::die :file, "must be present" unless opts[:file]
|
14
|
+
Trollop::die :file, "must exist" unless File.exist?(opts[:template]) if opts[:template]
|
15
|
+
|
16
|
+
dwt = DWT.new
|
17
|
+
dwt.template = opts[:template]
|
18
|
+
dwt.files = opts[:file]
|
19
|
+
puts dwt.apply
|
20
|
+
|
21
|
+
exit 0
|
data/dwt.gemspec
CHANGED
@@ -5,13 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dwt}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Andrew Ferk}]
|
12
|
-
s.date = %q{2011-
|
13
|
-
s.description = %q{Dreamweaver
|
12
|
+
s.date = %q{2011-08-01}
|
13
|
+
s.description = %q{Library and command line tool to apply Dreamweaver templates to HTML files.}
|
14
14
|
s.email = %q{andrewferk@gmail.com}
|
15
|
+
s.executables = [%q{dwt}]
|
15
16
|
s.extra_rdoc_files = [
|
16
17
|
"LICENSE.txt",
|
17
18
|
"README.rdoc"
|
@@ -24,12 +25,19 @@ Gem::Specification.new do |s|
|
|
24
25
|
"README.rdoc",
|
25
26
|
"Rakefile",
|
26
27
|
"VERSION",
|
28
|
+
"bin/dwt",
|
27
29
|
"dwt.gemspec",
|
28
|
-
"dwt.rb",
|
29
30
|
"lib/dwt.rb",
|
30
|
-
"test/files/
|
31
|
+
"test/files/Templates/link-attribute-01.dwt",
|
32
|
+
"test/files/Templates/link-attribute-02.dwt",
|
33
|
+
"test/files/Templates/link-attribute-03.dwt",
|
34
|
+
"test/files/Templates/simple-01.dwt",
|
35
|
+
"test/files/Templates/simple-02.dwt",
|
36
|
+
"test/files/link-attribute-01.html",
|
37
|
+
"test/files/link-attribute-02.html",
|
38
|
+
"test/files/link-attribute-03.html",
|
39
|
+
"test/files/outside-html-01.html",
|
31
40
|
"test/files/simple-01.html",
|
32
|
-
"test/files/simple-02.dwt",
|
33
41
|
"test/files/simple-02.html",
|
34
42
|
"test/helper.rb",
|
35
43
|
"test/test_dwt.rb"
|
@@ -44,17 +52,20 @@ Gem::Specification.new do |s|
|
|
44
52
|
s.specification_version = 3
|
45
53
|
|
46
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_runtime_dependency(%q<trollop>, [">= 0"])
|
47
56
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
48
57
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
49
58
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
50
59
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
51
60
|
else
|
61
|
+
s.add_dependency(%q<trollop>, [">= 0"])
|
52
62
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
53
63
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
54
64
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
55
65
|
s.add_dependency(%q<rcov>, [">= 0"])
|
56
66
|
end
|
57
67
|
else
|
68
|
+
s.add_dependency(%q<trollop>, [">= 0"])
|
58
69
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
59
70
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
60
71
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
data/lib/dwt.rb
CHANGED
@@ -16,14 +16,19 @@ class DWT
|
|
16
16
|
copy = (tpl_end ? tpl[0,tpl_end] : tpl)
|
17
17
|
copy.gsub!(/<html([^>]*)>/, '<html\1><!-- InstanceBegin template="'+tpl_src+'" codeOutsideHTMLIsLocked="false" -->')
|
18
18
|
copy.gsub!(/<\/html>/,'<!-- InstanceEnd --></html>')
|
19
|
-
|
19
|
+
html_index = copy.index('<html')
|
20
|
+
tpl_copy << (html_index ? copy[html_index, copy.length - html_index] : copy)
|
20
21
|
tpl = tpl_start ? tpl[tpl_start,tpl.length] : ''
|
21
22
|
end while tpl.length > 0
|
22
23
|
|
23
24
|
tar_end_editable_str = "<!-- InstanceEndEditable -->"
|
24
|
-
|
25
|
+
filename = files[0]
|
26
|
+
tar = File.open(filename).read
|
25
27
|
tar_copy = []
|
26
28
|
|
29
|
+
html_index = tar.index('<html')
|
30
|
+
tar_copy << tar[0, html_index]
|
31
|
+
|
27
32
|
begin
|
28
33
|
tar_start = tar.index("<!-- InstanceBeginEditable")
|
29
34
|
tar_end = tar.index(tar_end_editable_str)
|
@@ -34,10 +39,40 @@ class DWT
|
|
34
39
|
|
35
40
|
new = ''
|
36
41
|
(0..(tar_copy.length)).to_a.each do |i|
|
37
|
-
|
38
|
-
new = new += tar_copy[i]
|
42
|
+
next if tar_copy[i].nil?
|
43
|
+
new = new += tar_copy[i]
|
44
|
+
copy = tpl_copy[i]
|
45
|
+
copy = apply_link_update(copy,'link','href',filename)
|
46
|
+
copy = apply_link_update(copy,'script','src',filename)
|
47
|
+
copy = apply_link_update(copy,'form','action',filename)
|
48
|
+
copy = apply_link_update(copy,'a','href',filename)
|
49
|
+
copy = apply_link_update(copy,'img','src',filename)
|
50
|
+
new = new += copy
|
39
51
|
end
|
40
52
|
|
41
53
|
return new
|
42
54
|
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def apply_link_update(html, tag, attribute, filename)
|
58
|
+
html.gsub(/<#{tag}(.*)#{attribute}="([^"]*)"([^>]*)>/) do |match|
|
59
|
+
tpl_link = $2
|
60
|
+
if tpl_link.start_with?('http')
|
61
|
+
replace_link = tpl_link
|
62
|
+
else
|
63
|
+
tpl_links = tpl_link.split(File::SEPARATOR)
|
64
|
+
tpl_links.delete_at(0) if tpl_links[0] == '..'
|
65
|
+
filedir = Dir.new(File.dirname(filename))
|
66
|
+
back_separators = 0
|
67
|
+
begin
|
68
|
+
filedir_ls = filedir.each.to_a
|
69
|
+
break if filedir_ls.include?('Templates')
|
70
|
+
filedir.chdir("..")
|
71
|
+
back_separators += 1
|
72
|
+
end while filedir.pwd != "/"
|
73
|
+
replace_link = ("../" * back_separators) + tpl_links.join('/')
|
74
|
+
end
|
75
|
+
"<#{tag}#{$1}#{attribute}=\"#{replace_link}\"#{$3}>"
|
76
|
+
end
|
77
|
+
end
|
43
78
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<!-- TemplateBeginEditable name="doctitle" -->
|
5
|
+
<title>Untitled Document</title>
|
6
|
+
<!-- TemplateEndEditable -->
|
7
|
+
<link href="../styles/main.css" rel="stylesheet" type="text/css" media="screen" />
|
8
|
+
<script type="text/javascript" src="../javascripts/app.js"></script>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<form action="../search" method="get" name="search">
|
12
|
+
</form>
|
13
|
+
<a href="../home" title="Home">Home</a>
|
14
|
+
<img src="../images/logo.png" alt="Logo" />
|
15
|
+
</body>
|
16
|
+
</html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<!-- TemplateBeginEditable name="doctitle" -->
|
5
|
+
<title>Untitled Document</title>
|
6
|
+
<!-- TemplateEndEditable -->
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<a href="http://www.andrewferk.com/" title="Andrew Ferk">Andrew Ferk</a>
|
10
|
+
</body>
|
11
|
+
</html>
|
File without changes
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html><!-- InstanceBegin template="/Templates/link-attribute-01.dwt" codeOutsideHTMLIsLocked="false" -->
|
3
|
+
<head>
|
4
|
+
<!-- InstanceBeginEditable name="doctitle" -->
|
5
|
+
<title>Untitled Document</title>
|
6
|
+
<!-- InstanceEndEditable -->
|
7
|
+
<link href="styles/main.css" rel="stylesheet" type="text/css" media="screen" />
|
8
|
+
<script type="text/javascript" src="javascripts/app.js"></script>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<form action="search" method="get" name="search">
|
12
|
+
</form>
|
13
|
+
<a href="home" title="Home">Home</a>
|
14
|
+
<img src="images/logo.png" alt="Logo" />
|
15
|
+
</body>
|
16
|
+
<!-- InstanceEnd --></html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html><!-- InstanceBegin template="/Templates/link-attribute-02.dwt" codeOutsideHTMLIsLocked="false" -->
|
3
|
+
<head>
|
4
|
+
<!-- InstanceBeginEditable name="doctitle" -->
|
5
|
+
<title>Untitled Document</title>
|
6
|
+
<!-- InstanceEndEditable -->
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<a href="http://www.andrewferk.com/" title="Andrew Ferk">Andrew Ferk</a>
|
10
|
+
</body>
|
11
|
+
<!-- InstanceEnd --></html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html><!-- InstanceBegin template="/Templates/link-attribute-03.dwt" codeOutsideHTMLIsLocked="false" -->
|
3
|
+
<head>
|
4
|
+
<!-- InstanceBeginEditable name="doctitle" -->
|
5
|
+
<title>Untitled Document</title>
|
6
|
+
<!-- InstanceEndEditable -->
|
7
|
+
<script type="text/javascript" src="app.js"></script>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
</body>
|
11
|
+
<!-- InstanceEnd --></html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!-- This comment is important -->
|
3
|
+
<html><!-- InstanceBegin template="/Templates/simple-01.dwt" codeOutsideHTMLIsLocked="false" -->
|
4
|
+
<head>
|
5
|
+
<!-- InstanceBeginEditable name="doctitle" -->
|
6
|
+
<title>Untitled Document</title>
|
7
|
+
<!-- InstanceEndEditable -->
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
</body>
|
11
|
+
<!-- InstanceEnd --></html>
|
data/test/files/simple-01.html
CHANGED
data/test/test_dwt.rb
CHANGED
@@ -2,9 +2,41 @@ require 'helper'
|
|
2
2
|
|
3
3
|
class TestDwt < Test::Unit::TestCase
|
4
4
|
should "update page with template" do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
assert_equal File.open(File.dirname(__FILE__) + '/files/simple-02.html').read, dwt.apply
|
5
|
+
assert_dwt(File.dirname(__FILE__) + '/files/Templates/simple-02.dwt',
|
6
|
+
File.dirname(__FILE__) + '/files/simple-01.html',
|
7
|
+
File.open(File.dirname(__FILE__) + '/files/simple-02.html').read)
|
9
8
|
end
|
9
|
+
|
10
|
+
should "not touch coude outside html tag" do
|
11
|
+
assert_dwt(File.dirname(__FILE__) + '/files/Templates/simple-01.dwt',
|
12
|
+
File.dirname(__FILE__) + '/files/outside-html-01.html',
|
13
|
+
File.open(File.dirname(__FILE__) + '/files/outside-html-01.html').read)
|
14
|
+
end
|
15
|
+
|
16
|
+
should "modify href, src, action attributes" do
|
17
|
+
assert_dwt(File.dirname(__FILE__) + '/files/Templates/link-attribute-01.dwt',
|
18
|
+
File.dirname(__FILE__) + '/files/simple-01.html',
|
19
|
+
File.open(File.dirname(__FILE__) + '/files/link-attribute-01.html').read)
|
20
|
+
end
|
21
|
+
|
22
|
+
should "modify link attributes, but ignore external location" do
|
23
|
+
assert_dwt(File.dirname(__FILE__) + '/files/Templates/link-attribute-02.dwt',
|
24
|
+
File.dirname(__FILE__) + '/files/simple-01.html',
|
25
|
+
File.open(File.dirname(__FILE__) + '/files/link-attribute-02.html').read)
|
26
|
+
end
|
27
|
+
|
28
|
+
should "modify link attributes, but ignore external not relative" do
|
29
|
+
assert_dwt(File.dirname(__FILE__) + '/files/Templates/link-attribute-03.dwt',
|
30
|
+
File.dirname(__FILE__) + '/files/simple-01.html',
|
31
|
+
File.open(File.dirname(__FILE__) + '/files/link-attribute-03.html').read)
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
def assert_dwt(template, file, expected)
|
36
|
+
dwt = DWT.new
|
37
|
+
dwt.template = template
|
38
|
+
dwt.files = file
|
39
|
+
assert_equal expected, dwt.apply
|
40
|
+
end
|
41
|
+
|
10
42
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dwt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-08-01 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: trollop
|
16
|
+
requirement: &13301780 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *13301780
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: shoulda
|
16
|
-
requirement: &
|
27
|
+
requirement: &13299940 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ! '>='
|
@@ -21,10 +32,10 @@ dependencies:
|
|
21
32
|
version: '0'
|
22
33
|
type: :development
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *13299940
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: bundler
|
27
|
-
requirement: &
|
38
|
+
requirement: &13298240 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ~>
|
@@ -32,10 +43,10 @@ dependencies:
|
|
32
43
|
version: 1.0.0
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *13298240
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: jeweler
|
38
|
-
requirement: &
|
49
|
+
requirement: &13297300 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ~>
|
@@ -43,10 +54,10 @@ dependencies:
|
|
43
54
|
version: 1.6.4
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *13297300
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: rcov
|
49
|
-
requirement: &
|
60
|
+
requirement: &13296440 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ! '>='
|
@@ -54,10 +65,12 @@ dependencies:
|
|
54
65
|
version: '0'
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
description: Dreamweaver
|
68
|
+
version_requirements: *13296440
|
69
|
+
description: Library and command line tool to apply Dreamweaver templates to HTML
|
70
|
+
files.
|
59
71
|
email: andrewferk@gmail.com
|
60
|
-
executables:
|
72
|
+
executables:
|
73
|
+
- dwt
|
61
74
|
extensions: []
|
62
75
|
extra_rdoc_files:
|
63
76
|
- LICENSE.txt
|
@@ -70,12 +83,19 @@ files:
|
|
70
83
|
- README.rdoc
|
71
84
|
- Rakefile
|
72
85
|
- VERSION
|
86
|
+
- bin/dwt
|
73
87
|
- dwt.gemspec
|
74
|
-
- dwt.rb
|
75
88
|
- lib/dwt.rb
|
76
|
-
- test/files/
|
89
|
+
- test/files/Templates/link-attribute-01.dwt
|
90
|
+
- test/files/Templates/link-attribute-02.dwt
|
91
|
+
- test/files/Templates/link-attribute-03.dwt
|
92
|
+
- test/files/Templates/simple-01.dwt
|
93
|
+
- test/files/Templates/simple-02.dwt
|
94
|
+
- test/files/link-attribute-01.html
|
95
|
+
- test/files/link-attribute-02.html
|
96
|
+
- test/files/link-attribute-03.html
|
97
|
+
- test/files/outside-html-01.html
|
77
98
|
- test/files/simple-01.html
|
78
|
-
- test/files/simple-02.dwt
|
79
99
|
- test/files/simple-02.html
|
80
100
|
- test/helper.rb
|
81
101
|
- test/test_dwt.rb
|
@@ -94,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
114
|
version: '0'
|
95
115
|
segments:
|
96
116
|
- 0
|
97
|
-
hash:
|
117
|
+
hash: 3986656619842453243
|
98
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
119
|
none: false
|
100
120
|
requirements:
|
data/dwt.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'trollop'
|
2
|
-
|
3
|
-
opts = Trollop::options do
|
4
|
-
opt :template, "DWT file", :short => 't', :type => String
|
5
|
-
opt :file, "Target file", :short => 'f', :type => String
|
6
|
-
end
|
7
|
-
Trollop::die :template, "must be present" unless opts[:template]
|
8
|
-
Trollop::die :template, "must exist" unless File.exist?(opts[:template]) if opts[:template]
|
9
|
-
Trollop::die :file, "must be present" unless opts[:file]
|
10
|
-
Trollop::die :file, "must exist" unless File.exist?(opts[:template]) if opts[:template]
|
11
|
-
|
12
|
-
tpl_end_editable_str = "<!-- TemplateEndEditable -->"
|
13
|
-
tpl = File.open(opts[:template]).read
|
14
|
-
tpl_copy = []
|
15
|
-
|
16
|
-
begin
|
17
|
-
tpl_end = tpl.index("<!-- TemplateBeginEditable")
|
18
|
-
tpl_start = tpl.index(tpl_end_editable_str)
|
19
|
-
tpl_start = tpl_start + tpl_end_editable_str.length if tpl_start
|
20
|
-
tpl_copy << (tpl_end ? tpl[0,tpl_end] : tpl)
|
21
|
-
tpl = tpl_start ? tpl[tpl_start,tpl.length] : ''
|
22
|
-
end while tpl.length > 0
|
23
|
-
|
24
|
-
tar_end_editable_str = "<!-- InstanceEndEditable -->"
|
25
|
-
tar = File.open(opts[:file]).read
|
26
|
-
tar_copy = []
|
27
|
-
|
28
|
-
begin
|
29
|
-
tar_start = tar.index("<!-- InstanceBeginEditable")
|
30
|
-
tar_end = tar.index(tar_end_editable_str)
|
31
|
-
tar_end = tar_end + tar_end_editable_str.length if tar_end
|
32
|
-
tar_copy << tar[tar_start,tar_end] if tar_start
|
33
|
-
tar = tar_end ? tar[tar_end,tar.length] : ''
|
34
|
-
end while tar.length > 0
|
35
|
-
|
36
|
-
new = ''
|
37
|
-
(0..(tar_copy.length)).to_a.each do |i|
|
38
|
-
new = new += tpl_copy[i]
|
39
|
-
new = new += tar_copy[i] if tar_copy[i]
|
40
|
-
end
|
41
|
-
|
42
|
-
puts new
|