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