erbside 0.1.0 → 0.2.0
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/.gemspec +152 -0
- data/.gitignore +8 -0
- data/.ruby +48 -0
- data/.yardopts +6 -0
- data/{HISTORY → HISTORY.rdoc} +0 -0
- data/MANIFEST +33 -0
- data/NOTICE.rdoc +32 -0
- data/PROFILE +6 -3
- data/README.rdoc +76 -0
- data/VERSION +1 -1
- data/lib/erbside.rb +6 -2
- data/lib/erbside/context.rb +3 -3
- data/lib/erbside/gemspec.rb +19 -0
- data/lib/erbside/inline.rb +8 -5
- data/lib/erbside/inline/cpp.rb +7 -0
- data/lib/erbside/inline/css.rb +7 -0
- data/lib/erbside/inline/js.rb +7 -0
- data/lib/erbside/metadata.rb +86 -50
- data/lib/erbside/runner.rb +14 -5
- data/main.assembly +56 -0
- data/{test/functional → qed}/applique/env.rb +0 -0
- data/{test/functional → qed}/bash.rdoc +0 -0
- data/{test/functional → qed}/cli.rdoc +0 -0
- data/{test/functional → qed}/cpp.rdoc +0 -0
- data/{test/functional → qed}/css.rdoc +0 -0
- data/{test/functional → qed}/javascript.rdoc +0 -0
- data/{test/functional → qed}/ruby.rdoc +0 -0
- data/{test/functional → qed}/sgml.rdoc +0 -0
- data/site/.htaccess +2 -0
- data/site/.rsync-filter +7 -0
- data/site/assets/css/highlight.css +96 -0
- data/site/assets/css/reset.css +19 -0
- data/site/assets/css/site.css +52 -0
- data/site/assets/img/curb.jpg +0 -0
- data/site/assets/img/emeraled.png +0 -0
- data/site/assets/img/fade.png +0 -0
- data/site/assets/img/fork-me.png +0 -0
- data/site/assets/img/icon.jpg +0 -0
- data/site/assets/js/highlight.js +1 -0
- data/site/assets/js/jquery.js +19 -0
- data/site/assets/js/jquery.tabs.js +1 -0
- data/site/index.html +229 -0
- data/test/{unit/fixture → fixture}/inline.rb +3 -3
- data/test/{unit/fixture → fixture}/inline_complex.rb +0 -0
- data/test/inline_test.rb +15 -0
- data/work/defunct/css/color.css +45 -0
- data/work/defunct/css/font.css +39 -0
- data/work/defunct/css/struct.css +51 -0
- data/work/defunct/inline-old/bash.rb +36 -0
- data/work/defunct/inline-old/cpp.rb +39 -0
- data/work/defunct/inline-old/css.rb +32 -0
- data/work/defunct/inline-old/html.rb +32 -0
- data/work/defunct/inline-old/js.rb +85 -0
- data/work/defunct/inline-old/ruby.rb +147 -0
- data/work/defunct/inline-old/type.rb +91 -0
- data/work/defunct/inline.rb +202 -0
- data/work/defunct/plan.rb +37 -0
- data/work/defunct/tiller.rb +200 -0
- data/work/defunct/webme/options.yml +4 -0
- data/work/defunct/whole.rb +221 -0
- data/{lib → work}/plugins/syckle/erbside.rb +0 -0
- data/work/radio_earth.jpg +0 -0
- data/yard.watchr +12 -0
- metadata +94 -50
- data/LICENSE +0 -206
- data/README +0 -88
- data/test/unit/inline_test.rb +0 -14
data/.gemspec
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
Gem::Specification.new do |gemspec|
|
6
|
+
|
7
|
+
manifest = Dir.glob('manifest{,.txt)', File::FNM_CASEFOLD).first
|
8
|
+
|
9
|
+
scm = case
|
10
|
+
when File.directory?('.git')
|
11
|
+
:git
|
12
|
+
end
|
13
|
+
|
14
|
+
files = case
|
15
|
+
when manifest
|
16
|
+
File.readlines(manifest).
|
17
|
+
map{ |line| line.srtip }.
|
18
|
+
reject{ |line| line.empty? || line[0,1] == '#' }
|
19
|
+
when scm == :git
|
20
|
+
`git ls-files -z`.split("\0")
|
21
|
+
else
|
22
|
+
Dir.glob('{**/}{.*,*}') # TODO: be more specific using standard locations ?
|
23
|
+
end.select{ |path| File.file?(path) }
|
24
|
+
|
25
|
+
patterns = {
|
26
|
+
:bin_files => 'bin/*',
|
27
|
+
:lib_files => 'lib/{**/}*.rb',
|
28
|
+
:ext_files => 'ext/{**/}extconf.rb',
|
29
|
+
:doc_files => '*.{txt,rdoc,md,markdown,tt,textile}',
|
30
|
+
:test_files => '{test/{**/}*_test.rb,spec/{**/}*_spec.rb}'
|
31
|
+
}
|
32
|
+
|
33
|
+
glob_files = lambda { |pattern|
|
34
|
+
Dir.glob(pattern).select { |path|
|
35
|
+
File.file?(path) && files.include?(path)
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
#files = glob_files[patterns[:files]]
|
40
|
+
|
41
|
+
executables = glob_files[patterns[:bin_files]].map do |path|
|
42
|
+
File.basename(path)
|
43
|
+
end
|
44
|
+
|
45
|
+
extensions = glob_files[patterns[:ext_files]].map do |path|
|
46
|
+
File.basename(path)
|
47
|
+
end
|
48
|
+
|
49
|
+
metadata = YAML.load_file('.ruby')
|
50
|
+
|
51
|
+
# build-out the gemspec
|
52
|
+
|
53
|
+
case metadata['revision']
|
54
|
+
when 0
|
55
|
+
gemspec.name = metadata['name']
|
56
|
+
gemspec.version = metadata['version']
|
57
|
+
gemspec.summary = metadata['summary']
|
58
|
+
gemspec.description = metadata['description']
|
59
|
+
|
60
|
+
metadata['authors'].each do |author|
|
61
|
+
gemspec.authors << author['name']
|
62
|
+
|
63
|
+
if author.has_key?('email')
|
64
|
+
if gemspec.email
|
65
|
+
gemspec.email << author['email']
|
66
|
+
else
|
67
|
+
gemspec.email = [author['email']]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
gemspec.licenses = metadata['licenses']
|
73
|
+
|
74
|
+
metadata['requirements'].each do |req|
|
75
|
+
name = req['name']
|
76
|
+
version = req['version']
|
77
|
+
groups = req['groups'] || []
|
78
|
+
|
79
|
+
if md = /^(.*?)([+-~])$/.match(version)
|
80
|
+
version = case md[2]
|
81
|
+
when '+' then ">= #{$1}"
|
82
|
+
when '-' then "< #{$1}"
|
83
|
+
when '~' then "~> #{$1}"
|
84
|
+
else version
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
#development = req['development']
|
89
|
+
#if development
|
90
|
+
# # populate development dependencies
|
91
|
+
# if gemspec.respond_to?(:add_development_dependency)
|
92
|
+
# gemspec.add_development_dependency(name,*version)
|
93
|
+
# else
|
94
|
+
# gemspec.add_dependency(name,*version)
|
95
|
+
# end
|
96
|
+
#else
|
97
|
+
# # populate runtime dependencies
|
98
|
+
# if gemspec.respond_to?(:add_runtime_dependency)
|
99
|
+
# gemspec.add_runtime_dependency(name,*version)
|
100
|
+
# else
|
101
|
+
# gemspec.add_dependency(name,*version)
|
102
|
+
# end
|
103
|
+
#end
|
104
|
+
|
105
|
+
if groups.empty? or groups.include?('runtime')
|
106
|
+
# populate runtime dependencies
|
107
|
+
if gemspec.respond_to?(:add_runtime_dependency)
|
108
|
+
gemspec.add_runtime_dependency(name,*version)
|
109
|
+
else
|
110
|
+
gemspec.add_dependency(name,*version)
|
111
|
+
end
|
112
|
+
else
|
113
|
+
# populate development dependencies
|
114
|
+
if gemspec.respond_to?(:add_development_dependency)
|
115
|
+
gemspec.add_development_dependency(name,*version)
|
116
|
+
else
|
117
|
+
gemspec.add_dependency(name,*version)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# convert external dependencies into a requirements
|
123
|
+
if metadata['external_dependencies']
|
124
|
+
##gemspec.requirements = [] unless metadata['external_dependencies'].empty?
|
125
|
+
metadata['external_dependencies'].each do |req|
|
126
|
+
gemspec.requirements << req.to_s
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# determine homepage from resources
|
131
|
+
homepage = metadata['resources'].find{ |key, url| key =~ /^home/ }
|
132
|
+
gemspec.homepage = homepage.last if homepage
|
133
|
+
|
134
|
+
gemspec.require_paths = metadata['load_path'] || ['lib']
|
135
|
+
gemspec.post_install_message = metadata['install_message']
|
136
|
+
|
137
|
+
# RubyGems specific metadata
|
138
|
+
gemspec.files = files
|
139
|
+
gemspec.extensions = extensions
|
140
|
+
gemspec.executables = executables
|
141
|
+
|
142
|
+
if Gem::VERSION < '1.7.'
|
143
|
+
gemspec.default_executable = gemspec.executables.first
|
144
|
+
end
|
145
|
+
|
146
|
+
gemspec.test_files = glob_files[patterns[:test_files]]
|
147
|
+
|
148
|
+
unless gemspec.files.include?('.document')
|
149
|
+
gemspec.extra_rdoc_files = glob_files[patterns[:doc_files]]
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
data/.gitignore
ADDED
data/.ruby
ADDED
@@ -0,0 +1,48 @@
|
|
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: pom
|
16
|
+
- name: ko
|
17
|
+
groups:
|
18
|
+
- test
|
19
|
+
development: true
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
repositories:
|
23
|
+
- uri: git://github.com/proutils/till.git
|
24
|
+
scm: git
|
25
|
+
name: public
|
26
|
+
resources:
|
27
|
+
home: http://rubyworks.github.com/erbside
|
28
|
+
code: http://github.com/rubyworks/erbside
|
29
|
+
docs: http://rubydoc.info/gems/erbside/frames
|
30
|
+
mail: http://googlegroups.com/group/rubyworks-mailinglist
|
31
|
+
load_path:
|
32
|
+
- lib
|
33
|
+
extra:
|
34
|
+
contact: trans <transfire@gmail.com>
|
35
|
+
manifest: MANIFEST
|
36
|
+
source: []
|
37
|
+
|
38
|
+
alternatives: []
|
39
|
+
|
40
|
+
revision: 0
|
41
|
+
title: Erbside
|
42
|
+
summary: ERB-based Inline Templating
|
43
|
+
suite: rubyworks
|
44
|
+
created: "2009-07-15"
|
45
|
+
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
|
47
|
+
name: erbside
|
48
|
+
date: "2011-08-22"
|
data/.yardopts
ADDED
data/{HISTORY → HISTORY.rdoc}
RENAMED
File without changes
|
data/MANIFEST
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!mast .ruby .yardopts bin lib qed test [A-Z][A-Z]*
|
2
|
+
.ruby
|
3
|
+
.yardopts
|
4
|
+
bin/erbside
|
5
|
+
lib/erbside/context.rb
|
6
|
+
lib/erbside/gemspec.rb
|
7
|
+
lib/erbside/inline/bash.rb
|
8
|
+
lib/erbside/inline/cpp.rb
|
9
|
+
lib/erbside/inline/css.rb
|
10
|
+
lib/erbside/inline/js.rb
|
11
|
+
lib/erbside/inline/ruby.rb
|
12
|
+
lib/erbside/inline/sgml.rb
|
13
|
+
lib/erbside/inline.rb
|
14
|
+
lib/erbside/metadata.rb
|
15
|
+
lib/erbside/runner.rb
|
16
|
+
lib/erbside.rb
|
17
|
+
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
|
+
test/fixture/inline.rb
|
26
|
+
test/fixture/inline_complex.rb
|
27
|
+
test/inline_test.rb
|
28
|
+
HISTORY.rdoc
|
29
|
+
PROFILE
|
30
|
+
DEMOS.rdoc
|
31
|
+
README.rdoc
|
32
|
+
VERSION
|
33
|
+
NOTICE.rdoc
|
data/NOTICE.rdoc
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
= COPYRIGHT NOTICES
|
2
|
+
|
3
|
+
== Erbside
|
4
|
+
|
5
|
+
Copyright:: (c) 2009 Thomas Sawyer, Rubyworks
|
6
|
+
License:: BSD-2-Clause
|
7
|
+
Website:: http://rubyworks.github.com/erbside
|
8
|
+
|
9
|
+
Copyright 2009 Thomas Sawyer. All rights reserved.
|
10
|
+
|
11
|
+
Redistribution and use in source and binary forms, with or without modification, are
|
12
|
+
permitted provided that the following conditions are met:
|
13
|
+
|
14
|
+
1. Redistributions of source code must retain the above copyright notice, this list of
|
15
|
+
conditions and the following disclaimer.
|
16
|
+
|
17
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
18
|
+
of conditions and the following disclaimer in the documentation and/or other materials
|
19
|
+
provided with the distribution.
|
20
|
+
|
21
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
22
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
|
24
|
+
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
25
|
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
27
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
28
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
29
|
+
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
(http://spdx.org/licenses/BSD-2-Clause)
|
32
|
+
|
data/PROFILE
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
---
|
2
2
|
title : Erbside
|
3
3
|
summary: ERB-based Inline Templating
|
4
|
-
license: Apache 2.0
|
5
4
|
contact: trans <transfire@gmail.com>
|
6
5
|
suite : rubyworks
|
7
|
-
authors: Thomas Sawyer
|
6
|
+
authors: Thomas Sawyer <transfire@gmail.com>
|
8
7
|
created: 2009-07-15
|
9
8
|
|
10
9
|
description:
|
@@ -14,14 +13,18 @@ description:
|
|
14
13
|
|
15
14
|
requires:
|
16
15
|
- facets
|
16
|
+
- pom
|
17
|
+
- ko (test)
|
17
18
|
|
18
19
|
resources:
|
19
20
|
home: http://rubyworks.github.com/erbside
|
20
21
|
code: http://github.com/rubyworks/erbside
|
22
|
+
docs: http://rubydoc.info/gems/erbside/frames
|
23
|
+
mail: http://googlegroups.com/group/rubyworks-mailinglist
|
21
24
|
|
22
25
|
repositories:
|
23
26
|
public: git://github.com/proutils/till.git
|
24
27
|
|
25
28
|
copyright:
|
26
29
|
Copyright (c) 2010 Thomas Sawyer
|
27
|
-
|
30
|
+
license: Apache 2.0
|
data/README.rdoc
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
= Erbside
|
2
|
+
|
3
|
+
{Homepage}[http://rubyworks.github.com/erbside] |
|
4
|
+
{Documentation}[http://rubydoc.info/gems/erbside/frames] |
|
5
|
+
{Source Code}[http://github.com/rubyworks/erbside] |
|
6
|
+
{Mailing List}[http://googlegroups.com/group/rubyworks-mailinglist]
|
7
|
+
|
8
|
+
|
9
|
+
== DESCRIPTION
|
10
|
+
|
11
|
+
Erbside is a simple in-line project-oriented ERB-based template system.
|
12
|
+
With Erbside it is very easy to do basic templating without the need
|
13
|
+
for file duplication.
|
14
|
+
|
15
|
+
Erbside also provides direct access to project metadata. It does this
|
16
|
+
automatically via {DotRuby}[http://dotruby.github.com/dotruby], or it
|
17
|
+
can be instructed to use other resources, including a project's gemspec.
|
18
|
+
|
19
|
+
|
20
|
+
== FEATURES
|
21
|
+
|
22
|
+
* Easy to use.
|
23
|
+
* Uses ERB. Easy.
|
24
|
+
* Uses .ruby and .gemspec. Easy.
|
25
|
+
* The file is the template. Easy.
|
26
|
+
* Did I mention it was easy?
|
27
|
+
|
28
|
+
|
29
|
+
== SYNOPSIS
|
30
|
+
|
31
|
+
In a Ruby script add an ERB comment.
|
32
|
+
|
33
|
+
module YourLibrary
|
34
|
+
VERSION = "1.0.0" #:erb: VERSION="<%= version %>"
|
35
|
+
end
|
36
|
+
|
37
|
+
Then run:
|
38
|
+
|
39
|
+
$ erbside myscript.rb
|
40
|
+
|
41
|
+
Unless you use the --force option, Erbside will ask you if
|
42
|
+
want to overwrite the file. Type y<Enter> and all of the #:erb:
|
43
|
+
in-line templating will be filled in.
|
44
|
+
|
45
|
+
To see what erbside would do without actually writing to the file,
|
46
|
+
use the `-o/--stdout` option.
|
47
|
+
|
48
|
+
$ erbside -o myscript.rb
|
49
|
+
|
50
|
+
|
51
|
+
== HOW TO INSTALL
|
52
|
+
|
53
|
+
Describe your installation procedure here.
|
54
|
+
|
55
|
+
To install with RubyGems simply open a console and type:
|
56
|
+
|
57
|
+
$ gem install erb
|
58
|
+
|
59
|
+
Local installation requires Setup.rb (gem install setup),
|
60
|
+
then download the tarball package and type:
|
61
|
+
|
62
|
+
$ tar -xvzf erb-1.0.0.tgz
|
63
|
+
$ cd erb-1.0.0.tgz
|
64
|
+
$ sudo setup.rb all
|
65
|
+
|
66
|
+
Windows users use 'ruby setup.rb all'.
|
67
|
+
|
68
|
+
|
69
|
+
== COPYRIGHT & LICENSE
|
70
|
+
|
71
|
+
Copyright (c) 2009 Thomas Sawyer
|
72
|
+
|
73
|
+
Erbside is made available according to the terms of the *FreeBSD* license.
|
74
|
+
|
75
|
+
See NOTICE.rdoc for details.
|
76
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/erbside.rb
CHANGED
@@ -3,14 +3,14 @@ module Erbside
|
|
3
3
|
require 'erbside/runner'
|
4
4
|
|
5
5
|
#
|
6
|
-
VERSION="0.
|
6
|
+
VERSION="0.2.0" #:erb: VERSION="<%= version %>"
|
7
7
|
|
8
8
|
#
|
9
9
|
def self.cli(argv=ARGV)
|
10
10
|
require 'optparse'
|
11
11
|
require 'erbside/runner'
|
12
12
|
|
13
|
-
options = {}
|
13
|
+
options = {:resources=>[]}
|
14
14
|
|
15
15
|
usage = OptionParser.new do |use|
|
16
16
|
use.banner = 'Usage: erbside [OPTIONS] [FILE1 FILE2 ...]'
|
@@ -19,6 +19,10 @@ module Erbside
|
|
19
19
|
# options[:delete] = true
|
20
20
|
#end
|
21
21
|
|
22
|
+
use.on('-r', '--resource FILE', 'get metadata from file') do |file|
|
23
|
+
options[:resources] << file
|
24
|
+
end
|
25
|
+
|
22
26
|
use.on('-f', '--force', 'automatically make overwrites') do
|
23
27
|
options[:force] = true
|
24
28
|
end
|
data/lib/erbside/context.rb
CHANGED
@@ -10,10 +10,10 @@ module Erbside
|
|
10
10
|
attr :metadata
|
11
11
|
|
12
12
|
#
|
13
|
-
def initialize(file=
|
13
|
+
def initialize(file, resources=[])
|
14
14
|
@filename = file
|
15
15
|
@directory = File.dirname(file)
|
16
|
-
@metadata = Metadata.new(
|
16
|
+
@metadata = Metadata.new(resources)
|
17
17
|
end
|
18
18
|
|
19
19
|
#
|
@@ -35,7 +35,7 @@ module Erbside
|
|
35
35
|
def render(text)
|
36
36
|
Dir.chdir(@directory) do
|
37
37
|
erb = ERB.new(text)
|
38
|
-
erb.filename = @filename
|
38
|
+
erb.filename = @filename.to_s
|
39
39
|
erb.result(binding)
|
40
40
|
end
|
41
41
|
end
|