erbside 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby CHANGED
@@ -12,11 +12,18 @@ conflicts: []
12
12
 
13
13
  requirements:
14
14
  - name: facets
15
- - name: pom
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.0
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
- and successor to an earlier program called Till.
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
- * 1 Major Enhancment
30
+ Changes:
9
31
 
10
- * Happy Birthday!
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
- - pom
17
- - ko (test)
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.0
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
- VERSION="0.2.0" #:erb: VERSION="<%= version %>"
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"
@@ -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.to_i.times{ i = text[i..-1].index(/(\n|\Z)/) + i + 1 }
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
- #indent = ""
221
- #front = nil
222
- remark = md[0]
223
- pad = md[2]
224
- count = md[4]
225
- tmplt = md[7]
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(pad, tmplt, render)
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(pad, template, render)
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
- "#{b}#{pad}:#{TAG}+#{size}:\n#{template}\n#{e}\n#{render}\n"
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -10,7 +10,8 @@ gem:
10
10
  active: true
11
11
 
12
12
  qed:
13
- active : false
13
+ files : qed/*.rdoc
14
+ active : true
14
15
 
15
16
  #erbside:
16
17
  # service : Custom
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
- x
36
- y
37
- z
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.0
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-22 00:00:00 Z
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: pom
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: :runtime
35
+ type: :development
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: ko
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