dwt 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|