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 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