erbside 0.2.0 → 0.2.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/.ruby +10 -4
- data/HISTORY.rdoc +26 -4
- data/MANIFEST +8 -7
- data/PROFILE +6 -3
- data/VERSION +1 -1
- data/lib/erbside.rb +16 -2
- data/lib/erbside.yml +54 -0
- data/lib/erbside/inline.rb +37 -14
- data/lib/erbside/inline/cpp.rb +1 -1
- data/lib/erbside/inline/css.rb +1 -1
- data/lib/erbside/inline/js.rb +1 -1
- data/lib/erbside/inline/sgml.rb +18 -0
- data/main.assembly +2 -1
- data/qed/{ruby.rdoc → 01_ruby.rdoc} +0 -0
- data/qed/{bash.rdoc → 02_bash.rdoc} +0 -0
- data/qed/{cpp.rdoc → 03_cpp.rdoc} +0 -0
- data/qed/{javascript.rdoc → 04_js.rdoc} +0 -0
- data/qed/{css.rdoc → 05_css.rdoc} +0 -0
- data/qed/{sgml.rdoc → 06_sgml.rdoc} +5 -5
- data/qed/{cli.rdoc → 09_cli.rdoc} +0 -0
- metadata +24 -12
data/.ruby
CHANGED
@@ -12,11 +12,18 @@ conflicts: []
|
|
12
12
|
|
13
13
|
requirements:
|
14
14
|
- name: facets
|
15
|
-
- name:
|
16
|
-
- name: ko
|
15
|
+
- name: qed
|
17
16
|
groups:
|
18
17
|
- test
|
19
18
|
development: true
|
19
|
+
- name: citron
|
20
|
+
groups:
|
21
|
+
- test
|
22
|
+
development: true
|
23
|
+
- name: detroit
|
24
|
+
groups:
|
25
|
+
- build
|
26
|
+
development: true
|
20
27
|
dependencies: []
|
21
28
|
|
22
29
|
repositories:
|
@@ -31,7 +38,6 @@ resources:
|
|
31
38
|
load_path:
|
32
39
|
- lib
|
33
40
|
extra:
|
34
|
-
contact: trans <transfire@gmail.com>
|
35
41
|
manifest: MANIFEST
|
36
42
|
source: []
|
37
43
|
|
@@ -43,6 +49,6 @@ summary: ERB-based Inline Templating
|
|
43
49
|
suite: rubyworks
|
44
50
|
created: "2009-07-15"
|
45
51
|
description: Erbside is a simple project-oriented erb-based inline template system. Inline templates make it easy to do basic code generation without the need for duplicate files.
|
46
|
-
version: 0.2.
|
52
|
+
version: 0.2.1
|
47
53
|
name: erbside
|
48
54
|
date: "2011-08-22"
|
data/HISTORY.rdoc
CHANGED
@@ -1,11 +1,33 @@
|
|
1
1
|
= HISTORY
|
2
2
|
|
3
|
+
== 0.2.1 / 2011-08-23
|
4
|
+
|
5
|
+
Failed to fix dependencies in previous release.
|
6
|
+
|
7
|
+
Changes:
|
8
|
+
|
9
|
+
* Remove POM from dependencies.
|
10
|
+
|
11
|
+
|
12
|
+
== 0.2.0 / 2011-08-22
|
13
|
+
|
14
|
+
The release drops use of POM altogether and adds support for multiple optional
|
15
|
+
metadata resources in its place, including .ruby and .gemspecs, yaml files
|
16
|
+
(ending in .yaml/.yml) and "metadir" metadata directories.
|
17
|
+
|
18
|
+
Changes:
|
19
|
+
|
20
|
+
* Support multiple metadata resources (via -r/--resource).
|
21
|
+
* Block templates keep the same layout as given.
|
22
|
+
* Project metadata is dynamically loaded using .ruby file.
|
23
|
+
|
24
|
+
|
3
25
|
== 0.1.0 / 2011-02-22
|
4
26
|
|
5
|
-
This is the initial release of Erbside. Erbside is a derivative of
|
6
|
-
|
27
|
+
This is the initial release of Erbside. Erbside is a derivative of and
|
28
|
+
successor to an earlier program called Till (a name I never quite liked).
|
7
29
|
|
8
|
-
|
30
|
+
Changes:
|
9
31
|
|
10
|
-
|
32
|
+
* Happy Birthday!
|
11
33
|
|
data/MANIFEST
CHANGED
@@ -14,14 +14,15 @@ lib/erbside/inline.rb
|
|
14
14
|
lib/erbside/metadata.rb
|
15
15
|
lib/erbside/runner.rb
|
16
16
|
lib/erbside.rb
|
17
|
+
lib/erbside.yml
|
18
|
+
qed/01_ruby.rdoc
|
19
|
+
qed/02_bash.rdoc
|
20
|
+
qed/03_cpp.rdoc
|
21
|
+
qed/04_js.rdoc
|
22
|
+
qed/05_css.rdoc
|
23
|
+
qed/06_sgml.rdoc
|
24
|
+
qed/09_cli.rdoc
|
17
25
|
qed/applique/env.rb
|
18
|
-
qed/bash.rdoc
|
19
|
-
qed/cli.rdoc
|
20
|
-
qed/cpp.rdoc
|
21
|
-
qed/css.rdoc
|
22
|
-
qed/javascript.rdoc
|
23
|
-
qed/ruby.rdoc
|
24
|
-
qed/sgml.rdoc
|
25
26
|
test/fixture/inline.rb
|
26
27
|
test/fixture/inline_complex.rb
|
27
28
|
test/inline_test.rb
|
data/PROFILE
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title : Erbside
|
3
3
|
summary: ERB-based Inline Templating
|
4
|
-
contact: trans <transfire@gmail.com>
|
5
4
|
suite : rubyworks
|
6
5
|
authors: Thomas Sawyer <transfire@gmail.com>
|
7
6
|
created: 2009-07-15
|
@@ -13,8 +12,12 @@ description:
|
|
13
12
|
|
14
13
|
requires:
|
15
14
|
- facets
|
16
|
-
-
|
17
|
-
-
|
15
|
+
- qed (test)
|
16
|
+
- citron (test)
|
17
|
+
- detroit (build)
|
18
|
+
|
19
|
+
#suggestions:
|
20
|
+
# - dotruby
|
18
21
|
|
19
22
|
resources:
|
20
23
|
home: http://rubyworks.github.com/erbside
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/erbside.rb
CHANGED
@@ -1,9 +1,23 @@
|
|
1
1
|
module Erbside
|
2
|
-
|
3
2
|
require 'erbside/runner'
|
4
3
|
|
5
4
|
#
|
6
|
-
|
5
|
+
module MetadataMixin
|
6
|
+
def metadata
|
7
|
+
@_metadata ||= (
|
8
|
+
require 'yaml'
|
9
|
+
YAML.load_file(File.dirname(__FILE__) + '/erbside.yml')
|
10
|
+
)
|
11
|
+
end
|
12
|
+
def const_missing(name)
|
13
|
+
key = name.to_s.downcase
|
14
|
+
metadata.key?(key) ? metadata[key] : super(name)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
extend MetadataMixin
|
18
|
+
|
19
|
+
# Yea, this is old school.
|
20
|
+
#VERSION="0.2.0" #:erb: VERSION="<%= version %>"
|
7
21
|
|
8
22
|
#
|
9
23
|
def self.cli(argv=ARGV)
|
data/lib/erbside.yml
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
---
|
2
|
+
authors:
|
3
|
+
- name: Thomas Sawyer
|
4
|
+
email: transfire@gmail.com
|
5
|
+
copyrights:
|
6
|
+
- holder: Thomas Sawyer
|
7
|
+
year: "2010"
|
8
|
+
license: Apache 2.0
|
9
|
+
replacements: []
|
10
|
+
|
11
|
+
conflicts: []
|
12
|
+
|
13
|
+
requirements:
|
14
|
+
- name: facets
|
15
|
+
- name: qed
|
16
|
+
groups:
|
17
|
+
- test
|
18
|
+
development: true
|
19
|
+
- name: citron
|
20
|
+
groups:
|
21
|
+
- test
|
22
|
+
development: true
|
23
|
+
- name: detroit
|
24
|
+
groups:
|
25
|
+
- build
|
26
|
+
development: true
|
27
|
+
dependencies: []
|
28
|
+
|
29
|
+
repositories:
|
30
|
+
- uri: git://github.com/proutils/till.git
|
31
|
+
scm: git
|
32
|
+
name: public
|
33
|
+
resources:
|
34
|
+
home: http://rubyworks.github.com/erbside
|
35
|
+
code: http://github.com/rubyworks/erbside
|
36
|
+
docs: http://rubydoc.info/gems/erbside/frames
|
37
|
+
mail: http://googlegroups.com/group/rubyworks-mailinglist
|
38
|
+
load_path:
|
39
|
+
- lib
|
40
|
+
extra:
|
41
|
+
manifest: MANIFEST
|
42
|
+
source: []
|
43
|
+
|
44
|
+
alternatives: []
|
45
|
+
|
46
|
+
revision: 0
|
47
|
+
title: Erbside
|
48
|
+
summary: ERB-based Inline Templating
|
49
|
+
suite: rubyworks
|
50
|
+
created: "2009-07-15"
|
51
|
+
description: Erbside is a simple project-oriented erb-based inline template system. Inline templates make it easy to do basic code generation without the need for duplicate files.
|
52
|
+
version: 0.2.1
|
53
|
+
name: erbside
|
54
|
+
date: "2011-08-22"
|
data/lib/erbside/inline.rb
CHANGED
@@ -2,6 +2,7 @@ module Erbside
|
|
2
2
|
|
3
3
|
# Base class for all the inline parsers.
|
4
4
|
#
|
5
|
+
# TODO: Split this into two classes, one for inline and one for blocks.
|
5
6
|
class Inline
|
6
7
|
|
7
8
|
# C L A S S - M E T H O D S
|
@@ -166,18 +167,19 @@ module Erbside
|
|
166
167
|
|
167
168
|
indent = md[1]
|
168
169
|
front = md[2]
|
169
|
-
remark = [ md[3], md[4], md[5], md[6], md[7], md[8], md[9] ].join('')
|
170
|
+
#remark = [ md[3], md[4], md[5], md[6], md[7], md[8], md[9] ].join('')
|
171
|
+
remark = md[3..-1].join('')
|
170
172
|
tmplt = md[9].strip
|
171
|
-
count = md[7]
|
173
|
+
count = md[7].to_i
|
172
174
|
|
173
175
|
render = render_template(tmplt)
|
174
176
|
|
175
177
|
result << text[index...md.begin(0)]
|
176
|
-
result << format_side(indent, front, remark, tmplt, render, count)
|
178
|
+
result << format_side(indent, front, remark, tmplt, render, !count.zero?)
|
177
179
|
|
178
180
|
#index = md.end(0)
|
179
181
|
i = md.end(0) + 1
|
180
|
-
count.
|
182
|
+
count.times{ i = text[i..-1].index(/(\n|\Z)/) + i + 1 }
|
181
183
|
index = i
|
182
184
|
end
|
183
185
|
|
@@ -206,7 +208,18 @@ module Erbside
|
|
206
208
|
def block_match
|
207
209
|
b = Regexp.escape(remarker_block_begin)
|
208
210
|
e = Regexp.escape(remarker_block_end)
|
209
|
-
%r{^(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*\n)((?m:.*?))(\n#{e})}
|
211
|
+
%r{^()(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*\n)((?m:.*?))(\n#{e})}
|
212
|
+
end
|
213
|
+
|
214
|
+
#
|
215
|
+
def block_parts(match_data)
|
216
|
+
{ :indent => match_data[1],
|
217
|
+
:pad => match_data[3],
|
218
|
+
:count => match_data[5],
|
219
|
+
:space => match_data[7],
|
220
|
+
:template => match_data[8],
|
221
|
+
:tail => match_data[9]
|
222
|
+
}
|
210
223
|
end
|
211
224
|
|
212
225
|
#
|
@@ -217,17 +230,19 @@ module Erbside
|
|
217
230
|
text.scan(block_match) do |m|
|
218
231
|
md = $~
|
219
232
|
|
220
|
-
#
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
233
|
+
#remark = md[0]
|
234
|
+
|
235
|
+
parts = block_parts(md)
|
236
|
+
|
237
|
+
indent = parts[:indent]
|
238
|
+
pad = parts[:pad]
|
239
|
+
count = parts[:count]
|
240
|
+
tmplt = parts[:template]
|
226
241
|
|
227
242
|
render = render_template(tmplt)
|
228
243
|
|
229
244
|
result << text[index...md.begin(0)]
|
230
|
-
result << format_block(
|
245
|
+
result << format_block(parts, render)
|
231
246
|
|
232
247
|
i = md.end(0) + 1
|
233
248
|
count.to_i.times{ i = text[i..-1].index(/(\n|\Z)/) + i + 1 }
|
@@ -239,11 +254,19 @@ module Erbside
|
|
239
254
|
end
|
240
255
|
|
241
256
|
#
|
242
|
-
def format_block(
|
257
|
+
def format_block(parts, render)
|
258
|
+
indent, pad, space, template, tail = parts.values_at(:indent, :pad, :space, :template, :tail)
|
259
|
+
|
243
260
|
size = render.count("\n") + 1
|
261
|
+
|
244
262
|
b = remarker_block_begin
|
245
263
|
e = remarker_block_end
|
246
|
-
|
264
|
+
|
265
|
+
#if template.count("\n") > 0
|
266
|
+
"#{indent}#{b}#{pad}:#{TAG}+#{size}:#{space}#{template}#{tail}\n#{render}\n"
|
267
|
+
#else
|
268
|
+
# "#{indent}#{b}#{pad}:#{TAG}+#{size}: #{template} #{e}\n#{render}\n"
|
269
|
+
#end
|
247
270
|
end
|
248
271
|
|
249
272
|
end
|
data/lib/erbside/inline/cpp.rb
CHANGED
@@ -30,7 +30,7 @@ module Erbside
|
|
30
30
|
def block_match
|
31
31
|
b = Regexp.escape(remarker_block_begin)
|
32
32
|
e = Regexp.escape(remarker_block_end)
|
33
|
-
%r{^(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
33
|
+
%r{^(\s*)(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
data/lib/erbside/inline/css.rb
CHANGED
@@ -32,7 +32,7 @@ module Erbside
|
|
32
32
|
def block_match
|
33
33
|
b = Regexp.escape(remarker_block_begin)
|
34
34
|
e = Regexp.escape(remarker_block_end)
|
35
|
-
%r{^(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
35
|
+
%r{^(\s*)(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
data/lib/erbside/inline/js.rb
CHANGED
@@ -32,7 +32,7 @@ module Erbside
|
|
32
32
|
def block_match
|
33
33
|
b = Regexp.escape(remarker_block_begin)
|
34
34
|
e = Regexp.escape(remarker_block_end)
|
35
|
-
%r{^(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
35
|
+
%r{^(\s*)(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
data/lib/erbside/inline/sgml.rb
CHANGED
@@ -33,6 +33,24 @@ module Erbside
|
|
33
33
|
/^(\ *)(.*?)(\ *)(#{rem})(\ *)(:#{TAG})()?(:)(.*?\S.*?)(-->)$/
|
34
34
|
end
|
35
35
|
|
36
|
+
#
|
37
|
+
def block_match
|
38
|
+
b = Regexp.escape(remarker_block_begin)
|
39
|
+
e = Regexp.escape(remarker_block_end)
|
40
|
+
%r{^(\s*)(#{b})(\s*)(:#{TAG})(\+\d*)?(\:)(\s*)((?m:.*?))(\s#{e})}
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
def block_parts(match_data)
|
45
|
+
{ :indent => match_data[1],
|
46
|
+
:pad => match_data[3],
|
47
|
+
:count => match_data[5],
|
48
|
+
:space => match_data[7],
|
49
|
+
:template => match_data[8],
|
50
|
+
:tail => match_data[9]
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
36
54
|
=begin
|
37
55
|
#
|
38
56
|
def render_result
|
data/main.assembly
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -22,7 +22,7 @@ Given a file named 'example.xml' containing:
|
|
22
22
|
|
23
23
|
<root>
|
24
24
|
<letters>
|
25
|
-
<!-- :erb+1: <%= %w{z y x}.sort.join("\n").indent(4) -->
|
25
|
+
<!-- :erb+1: <%= %w{z y x}.sort.join("\n").indent(4) %> -->
|
26
26
|
blah blah blah
|
27
27
|
</letters>
|
28
28
|
</root>
|
@@ -31,10 +31,10 @@ The rendered result of 'example.xml' will be:
|
|
31
31
|
|
32
32
|
<root>
|
33
33
|
<letters>
|
34
|
-
<!-- :erb+3: <%= %w{z y x}.sort.join("\n").indent(4) -->
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
<!-- :erb+3: <%= %w{z y x}.sort.join("\n").indent(4) %> -->
|
35
|
+
x
|
36
|
+
y
|
37
|
+
z
|
38
38
|
</letters>
|
39
39
|
</root>
|
40
40
|
|
File without changes
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: erbside
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Thomas Sawyer
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-23 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: facets
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
type: :runtime
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: qed
|
28
28
|
prerelease: false
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: "0"
|
35
|
-
type: :
|
35
|
+
type: :development
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: citron
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
@@ -45,6 +45,17 @@ dependencies:
|
|
45
45
|
version: "0"
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: detroit
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id004
|
48
59
|
description: Erbside is a simple project-oriented erb-based inline template system. Inline templates make it easy to do basic code generation without the need for duplicate files.
|
49
60
|
email:
|
50
61
|
- transfire@gmail.com
|
@@ -69,6 +80,7 @@ files:
|
|
69
80
|
- VERSION
|
70
81
|
- bin/erbside
|
71
82
|
- lib/erbside.rb
|
83
|
+
- lib/erbside.yml
|
72
84
|
- lib/erbside/context.rb
|
73
85
|
- lib/erbside/gemspec.rb
|
74
86
|
- lib/erbside/inline.rb
|
@@ -81,14 +93,14 @@ files:
|
|
81
93
|
- lib/erbside/metadata.rb
|
82
94
|
- lib/erbside/runner.rb
|
83
95
|
- main.assembly
|
96
|
+
- qed/01_ruby.rdoc
|
97
|
+
- qed/02_bash.rdoc
|
98
|
+
- qed/03_cpp.rdoc
|
99
|
+
- qed/04_js.rdoc
|
100
|
+
- qed/05_css.rdoc
|
101
|
+
- qed/06_sgml.rdoc
|
102
|
+
- qed/09_cli.rdoc
|
84
103
|
- qed/applique/env.rb
|
85
|
-
- qed/bash.rdoc
|
86
|
-
- qed/cli.rdoc
|
87
|
-
- qed/cpp.rdoc
|
88
|
-
- qed/css.rdoc
|
89
|
-
- qed/javascript.rdoc
|
90
|
-
- qed/ruby.rdoc
|
91
|
-
- qed/sgml.rdoc
|
92
104
|
- site/.htaccess
|
93
105
|
- site/.rsync-filter
|
94
106
|
- site/assets/css/highlight.css
|