wunderbar 0.8.7 → 0.8.8
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/README.md +69 -64
- data/lib/wunderbar/cgi-methods.rb +6 -1
- data/lib/wunderbar/environment.rb +2 -3
- data/lib/wunderbar/html-methods.rb +1 -1
- data/lib/wunderbar/version.rb +1 -1
- data/wunderbar.gemspec +2 -2
- metadata +4 -4
data/README.md
CHANGED
@@ -16,59 +16,59 @@ Quick Start
|
|
16
16
|
|
17
17
|
Simple element:
|
18
18
|
|
19
|
-
|
19
|
+
_br
|
20
20
|
|
21
21
|
Nested elements:
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
_div do
|
24
|
+
_hr
|
25
|
+
end
|
26
26
|
|
27
27
|
Element with text:
|
28
28
|
|
29
|
-
|
29
|
+
_h1 "My weblog"
|
30
30
|
|
31
31
|
Element with attributes:
|
32
32
|
|
33
|
-
|
33
|
+
_img src: '/img/logo.jpg', alt: 'site logo'
|
34
34
|
|
35
35
|
Element with both text and attributes:
|
36
36
|
|
37
|
-
|
37
|
+
_a 'search', href: 'http://google.com'
|
38
38
|
|
39
39
|
Text:
|
40
40
|
|
41
|
-
|
41
|
+
_ "hello"
|
42
42
|
|
43
43
|
Mixed content (autospaced):
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
_p do
|
46
|
+
_ 'It is a'
|
47
|
+
_em 'very'
|
48
|
+
_ 'nice day.'
|
49
|
+
end
|
50
50
|
|
51
51
|
Mixed content (space controlled):
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
_p! do
|
54
|
+
_ 'Source is on '
|
55
|
+
_a 'github', href: 'https://github.com/'
|
56
|
+
_ '.'
|
57
|
+
end
|
58
58
|
|
59
59
|
Insert blank lines between rows in the HTML produced:
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
61
|
+
_tbody do
|
62
|
+
_tr_ do
|
63
|
+
_td 1
|
64
|
+
end
|
65
|
+
_tr_ do
|
66
|
+
_td 2
|
67
|
+
end
|
68
|
+
_tr_ do
|
69
|
+
_td 3
|
70
|
+
end
|
71
|
+
end
|
72
72
|
|
73
73
|
Capture exceptions:
|
74
74
|
|
@@ -83,31 +83,36 @@ Basic interface
|
|
83
83
|
A typical main program produces one or more of HTML, JSON, or plain text
|
84
84
|
output. This is accomplished by providing one or more of the following:
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
86
|
+
Wunderbar.html do
|
87
|
+
code
|
88
|
+
end
|
89
|
+
|
90
|
+
Wunderbar.xhtml do
|
91
|
+
code
|
92
|
+
end
|
93
|
+
|
94
|
+
Wunderbar.json do
|
95
|
+
expression
|
96
|
+
end
|
97
|
+
|
98
|
+
Wunderbar.text do
|
99
|
+
code
|
100
|
+
end
|
97
101
|
|
98
102
|
Arbitrary Ruby code can be placed in each. For html, use the `_` methods described here. For json, the results (typically a hash or array) are converted to JSON. For text, use `puts` and `print` statements to produce the desired results.
|
99
103
|
|
100
104
|
Methods provided to Wunderbar.html
|
101
105
|
---
|
102
106
|
|
103
|
-
Invoking methods that start with a Unicode
|
104
|
-
|
105
|
-
|
106
|
-
can
|
107
|
+
Invoking methods that start with a Unicode
|
108
|
+
[low line](http://www.fileformat.info/info/unicode/char/5f/index.htm)
|
109
|
+
character ("_") will generate a HTML tag. As with builder on which this
|
110
|
+
library is based, these tags can have text content and attributes. Tags can
|
111
|
+
also be nested. Logic can be freely intermixed.
|
107
112
|
|
108
113
|
Wunderbar knows which HTML tags need to be explicitly closed with separate end
|
109
|
-
tags (example: textarea), and which should never be closed with separate end
|
110
|
-
tags (example: br). It also takes care of HTML quoting and escaping of
|
114
|
+
tags (example: `textarea`), and which should never be closed with separate end
|
115
|
+
tags (example: `br`). It also takes care of HTML quoting and escaping of
|
111
116
|
arguments and text.
|
112
117
|
|
113
118
|
Suffixes after the tag name will modify the processing.
|
@@ -120,9 +125,9 @@ The "`_`" method serves a number of purposes. Calling it with a single argument
|
|
120
125
|
produces text nodes. Inserting markup verbatim is done by "`_ << text`". A
|
121
126
|
number of other convenience methods are defined:
|
122
127
|
|
123
|
-
* _
|
124
|
-
* _
|
125
|
-
* _
|
128
|
+
* `_.post?` -- was this invoked via HTTP POST?
|
129
|
+
* `_.system` -- invokes a shell command, captures stdin, stdout, and stderr
|
130
|
+
* `_.submit`: runs command (or block) as a deamon process
|
126
131
|
|
127
132
|
Access to all of the builder _defined_ methods (typically these end in an esclamation mark) and all of the Wunderbar module methods can be accessed in this way. Examples:
|
128
133
|
|
@@ -189,24 +194,24 @@ Builder extensions
|
|
189
194
|
|
190
195
|
Logging:
|
191
196
|
---
|
192
|
-
* _
|
193
|
-
* _
|
194
|
-
* _
|
195
|
-
* _
|
196
|
-
* _
|
197
|
-
* _
|
198
|
-
* _
|
197
|
+
* `_.debug`: debug messages
|
198
|
+
* `_.info`: informational messages
|
199
|
+
* `_.warn`: warning messages
|
200
|
+
* `_.error`: error messages
|
201
|
+
* `_.fatal`: fatal error messages
|
202
|
+
* `_.log_level`=: set logging level (default: `:warn`)
|
203
|
+
* `_.logger`: return [Logger](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) instance
|
199
204
|
|
200
205
|
Command line options
|
201
206
|
---
|
202
207
|
When run from the command line, CGI name=value pairs can be specified.
|
203
208
|
Additionally, the following options are supported:
|
204
209
|
|
205
|
-
*
|
206
|
-
*
|
207
|
-
*
|
208
|
-
*
|
209
|
-
*
|
210
|
-
*
|
211
|
-
*
|
212
|
-
*
|
210
|
+
* `--get`: HTML (HTTP GET) output is expected
|
211
|
+
* `--post`: HTML (HTTP POST) output is expected
|
212
|
+
* `--json`: JSON (XML HTTP Request) output is expected
|
213
|
+
* `--html`: force HTML output
|
214
|
+
* `--prompt` or `--offline`: prompt for key/value pairs using stdin
|
215
|
+
* `--debug`, `--info`, `--warn`, `--error`, `--fatal`: set log level
|
216
|
+
* `--install=`path: produce an suexec-callable wrapper script
|
217
|
+
* `--rescue` or `--backtrace` cause wrapper script to capture errors
|
@@ -116,6 +116,12 @@ end
|
|
116
116
|
# canonical interface
|
117
117
|
module Wunderbar
|
118
118
|
def self.html(*args, &block)
|
119
|
+
$XHTML = false unless ARGV.delete('--xhtml')
|
120
|
+
$cgi.html!(*args, &block)
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.xhtml(*args, &block)
|
124
|
+
$XHTML = false if ARGV.delete('--html')
|
119
125
|
$cgi.html!(*args, &block)
|
120
126
|
end
|
121
127
|
|
@@ -127,4 +133,3 @@ module Wunderbar
|
|
127
133
|
$cgi.text!(*args, &block)
|
128
134
|
end
|
129
135
|
end
|
130
|
-
|
@@ -1,8 +1,7 @@
|
|
1
1
|
# explicit request types
|
2
|
-
$HTTP_GET = ARGV.delete('--
|
2
|
+
$HTTP_GET = ARGV.delete('--get')
|
3
3
|
$HTTP_POST = ARGV.delete('--post')
|
4
4
|
$XHR_JSON = ARGV.delete('--json')
|
5
|
-
$XHTML = ARGV.delete('--xhtml')
|
6
5
|
$TEXT = ARGV.delete('--text')
|
7
6
|
|
8
7
|
# Only prompt if explicitly asked for
|
@@ -17,8 +16,8 @@ $param = $cgi.params
|
|
17
16
|
$HTTP_GET ||= ($cgi.request_method == 'GET')
|
18
17
|
$HTTP_POST ||= ($cgi.request_method == 'POST')
|
19
18
|
$XHR_JSON ||= ($cgi.accept.to_s =~ /json/)
|
20
|
-
$XHTML ||= ($cgi.accept.to_s =~ /xhtml/)
|
21
19
|
$TEXT ||= ($cgi.accept.to_s =~ /plain/ and $cgi.accept.to_s !~ /html/)
|
20
|
+
$XHTML = ($cgi.accept.to_s =~ /xhtml/ or $cgi.accept == nil)
|
22
21
|
|
23
22
|
# get arguments if CGI couldn't find any...
|
24
23
|
$param.merge!(CGI.parse(ARGV.join('&'))) if $param.empty?
|
data/lib/wunderbar/version.rb
CHANGED
data/wunderbar.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "wunderbar"
|
5
|
-
s.version = "0.8.
|
5
|
+
s.version = "0.8.8"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Sam Ruby"]
|
9
|
-
s.date = "2012-03-
|
9
|
+
s.date = "2012-03-18"
|
10
10
|
s.description = " Provides a number of globals, helper methods, and monkey patches which\n simplify the generation of HTML and the development of CGI scripts.\n"
|
11
11
|
s.email = "rubys@intertwingly.net"
|
12
12
|
s.extra_rdoc_files = ["COPYING", "README.md", "lib/wunderbar.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/logger.rb", "lib/wunderbar/version.rb"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wunderbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 8
|
10
|
+
version: 0.8.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sam Ruby
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-03-
|
18
|
+
date: 2012-03-18 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: builder
|