serb 0.1.0

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