serb 0.1.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.
Files changed (5) hide show
  1. data/README.md +14 -0
  2. data/Rakefile +15 -0
  3. data/bin/serb +37 -0
  4. data/serb.gemspec +23 -0
  5. metadata +70 -0
data/README.md ADDED
@@ -0,0 +1,14 @@
1
+ Use serb to interactively generate an output file from an erb template.
2
+
3
+ template.txt.erb
4
+
5
+ Hello, <%= name %>
6
+
7
+ Usage
8
+
9
+ $ serb template.txt.erb > template.txt
10
+ Define "name": Daniel
11
+
12
+ $ cat template.txt
13
+ Hello, Daniel
14
+
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ desc "remove built gems"
2
+ task :clean do
3
+ sh "rm serb-*" rescue true
4
+ end
5
+
6
+ desc "build gem"
7
+ task :build do
8
+ sh "gem build serb.gemspec"
9
+ end
10
+
11
+ desc "install gem"
12
+ task :install => [:clean, :build] do
13
+ sh "sudo gem install `ls serb-*`"
14
+ end
15
+
data/bin/serb ADDED
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "erb"
4
+ require "ostruct"
5
+
6
+ $stdout = STDERR
7
+
8
+ unless ARGV[0]
9
+ puts " Usage: serb template.erb"
10
+ exit 1
11
+ end
12
+
13
+ class SerbLocals < OpenStruct
14
+ def get_binding
15
+ binding
16
+ end
17
+
18
+ def method_missing(name, *args, &block)
19
+ super
20
+ return define_variable(name) if args.empty?
21
+ end
22
+
23
+ private
24
+
25
+ def define_variable(var)
26
+ print "Define \"#{var}\": "
27
+ return gets.chomp
28
+ end
29
+ end
30
+
31
+ locals = SerbLocals.new
32
+ template = ERB.new(IO.read(ARGV.pop))
33
+ result = template.result(locals.get_binding)
34
+
35
+ $stdout = STDOUT
36
+ puts result
37
+
data/serb.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "serb"
3
+ s.version = "0.1.0"
4
+
5
+ s.required_rubygems_version = Gem::Requirement.new(">=0") if s.respond_to? :required_rubygems_version=
6
+ s.specification_version = 2 if s.respond_to? :specification_version=
7
+
8
+ s.authors = "Daniel MacDougall"
9
+ s.email = "dmacdougall@gmail.com"
10
+ s.homepage = "https://github.com/dmacdougall/serb"
11
+ s.rubyforge_project = "serb"
12
+
13
+ s.summary = "An interactive CLI tool for generating files from .erb templates"
14
+ s.description = "An interactive CLI tool for generating files from .erb templates"
15
+
16
+ s.executables = ["serb"]
17
+ s.files = %w[
18
+ README.md
19
+ Rakefile
20
+ serb.gemspec
21
+ bin/serb
22
+ ]
23
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: serb
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Daniel MacDougall
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-14 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: An interactive CLI tool for generating files from .erb templates
23
+ email: dmacdougall@gmail.com
24
+ executables:
25
+ - serb
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - README.md
32
+ - Rakefile
33
+ - serb.gemspec
34
+ - bin/serb
35
+ has_rdoc: true
36
+ homepage: https://github.com/dmacdougall/serb
37
+ licenses: []
38
+
39
+ post_install_message:
40
+ rdoc_options: []
41
+
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 3
50
+ segments:
51
+ - 0
52
+ version: "0"
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ requirements: []
63
+
64
+ rubyforge_project: serb
65
+ rubygems_version: 1.3.7
66
+ signing_key:
67
+ specification_version: 2
68
+ summary: An interactive CLI tool for generating files from .erb templates
69
+ test_files: []
70
+