smoke 0.5.17 → 0.5.19
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.markdown +5 -5
- data/Rakefile +1 -0
- data/VERSION.yml +2 -2
- data/lib/core_ext/array.rb +12 -0
- data/lib/smoke.rb +24 -13
- data/lib/smoke/cache.rb +4 -4
- data/lib/smoke/origin.rb +6 -11
- data/lib/smoke/request.rb +5 -14
- data/lib/smoke/transformer.rb +7 -0
- data/lib/smoke/transformers/json.rb +15 -0
- data/lib/smoke/transformers/ruby.rb +11 -0
- data/lib/smoke/{output → transformers}/xml.rb +12 -6
- data/lib/smoke/transformers/yaml.rb +15 -0
- data/spec/smoke/origin_spec.rb +4 -0
- data/spec/smoke/request_spec.rb +7 -0
- data/spec/smoke/{output → transformers}/xml_spec.rb +4 -6
- data/spec/smoke/transformers_spec.rb +35 -0
- data/spec/smoke_spec.rb +18 -10
- data/spec/supports/twitter_timeline.json +22 -0
- metadata +23 -30
- data/rdoc/classes/Smoke.html +0 -260
- data/rdoc/classes/Smoke/Origin.html +0 -340
- data/rdoc/classes/Smoke/Source/Data.html +0 -126
- data/rdoc/classes/Smoke/Source/Feed.html +0 -117
- data/rdoc/classes/Smoke/Source/YQL.html +0 -223
- data/rdoc/created.rid +0 -1
- data/rdoc/files/README_markdown.html +0 -180
- data/rdoc/files/lib/core_ext/hash_rb.html +0 -49
- data/rdoc/files/lib/smoke/origin_rb.html +0 -49
- data/rdoc/files/lib/smoke/request_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/data_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/feed_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/join_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/yql_rb.html +0 -49
- data/rdoc/files/lib/smoke_rb.html +0 -65
- data/rdoc/fr_class_index.html +0 -21
- data/rdoc/fr_file_index.html +0 -28
- data/rdoc/fr_method_index.html +0 -4459
- data/rdoc/index.html +0 -15
- data/rdoc/rdoc-style.css +0 -319
- data/spec/smoke/input/xls_spec.rb +0 -15
- data/spec/smoke/shared_spec.rb +0 -182
- data/spec/supports/gov_act_toliets.xls +0 -0
data/rdoc/created.rid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Mon, 08 Jun 2009 23:18:27 +1000
|
@@ -1,180 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: README.markdown [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>README.markdown</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
README.markdown
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Mon Jun 08 19:58:40 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='description'>
|
40
|
-
<p>
|
41
|
-
# smoke
|
42
|
-
</p>
|
43
|
-
<p>
|
44
|
-
smoke is a Ruby based DSL that allows you to take data from YQL, RSS / Atom
|
45
|
-
(and more, if you think of a useful source). This “data” can
|
46
|
-
then be re-represented, sorted and filtered. You can collect data from a
|
47
|
-
multiude of sources, sort them on a common property and return a plain old
|
48
|
-
ruby object or json (You could add in something to output XML too)
|
49
|
-
</p>
|
50
|
-
<p>
|
51
|
-
## Media
|
52
|
-
</p>
|
53
|
-
<ul>
|
54
|
-
<li>[Presentation from Melbourne roro](<a
|
55
|
-
href="http://www.slideshare.net/benschwarz/smoke-1371124">www.slideshare.net/benschwarz/smoke-1371124</a>)
|
56
|
-
|
57
|
-
</li>
|
58
|
-
<li>Early [screencast](<a
|
59
|
-
href="http://vimeo.com/4272804">vimeo.com/4272804</a>) to get developer /
|
60
|
-
peer feedback
|
61
|
-
|
62
|
-
</li>
|
63
|
-
</ul>
|
64
|
-
<p>
|
65
|
-
## The concept
|
66
|
-
</p>
|
67
|
-
<p>
|
68
|
-
The concept comes from using [Yahoo Pipes](<a
|
69
|
-
href="http://pipes.yahoo.com">pipes.yahoo.com</a>) to make little mash ups,
|
70
|
-
get a list of tv shows for my torrent client, compile a recipe book or make
|
71
|
-
tools to give me a list of albums that artists in my music library are
|
72
|
-
about to be release.
|
73
|
-
</p>
|
74
|
-
<p>
|
75
|
-
## How or what to contribute
|
76
|
-
</p>
|
77
|
-
<ul>
|
78
|
-
<li>Test everything you do
|
79
|
-
|
80
|
-
</li>
|
81
|
-
<li>Add a way to output (XML, anyone?)
|
82
|
-
|
83
|
-
</li>
|
84
|
-
<li>Examples of queries you’d like to be able to do (email / github
|
85
|
-
message them to me)
|
86
|
-
|
87
|
-
</li>
|
88
|
-
</ul>
|
89
|
-
<p>
|
90
|
-
## API Examples ### YQL
|
91
|
-
</p>
|
92
|
-
<pre># This will use yahoo search to get an array of search results about Ruby
Smoke.yql(:ruby) do
 select :all
 from "search.web"
 where :query, "ruby"

 discard :title, /tuesday/i
end

Smoke.yql(:python) do
 select :all
 from "search.web"
 where :query, "python"
end</pre>
|
93
|
-
<p>
|
94
|
-
### Join sources and use them together
|
95
|
-
</p>
|
96
|
-
<pre>Smoke.join(:ruby, :python)</pre>
|
97
|
-
<p>
|
98
|
-
or even
|
99
|
-
</p>
|
100
|
-
<pre>Smoke.join(:python, :ruby) do
 emit do
 sort :title
 rename :shit_name => :title
 end
end</pre>
|
101
|
-
<p>
|
102
|
-
### Define a source allowing for variables to be injected later
|
103
|
-
</p>
|
104
|
-
<p>
|
105
|
-
Source definition:
|
106
|
-
</p>
|
107
|
-
<pre>Smoke.feed :delicious do
 prepare do
 url "http://feeds.delicious.com/v2/rss/#{username}?count=15"
 end
end</pre>
|
108
|
-
<p>
|
109
|
-
Execution:
|
110
|
-
</p>
|
111
|
-
<pre>Smoke[:delicious].username("bschwarz").output</pre>
|
112
|
-
<p>
|
113
|
-
### CI
|
114
|
-
</p>
|
115
|
-
<p>
|
116
|
-
Integrity [is running for smoke](<a
|
117
|
-
href="http://integrity.ffolio.net/smoke">integrity.ffolio.net/smoke</a>)
|
118
|
-
</p>
|
119
|
-
<p>
|
120
|
-
### TODO (working on, just mental notes)
|
121
|
-
</p>
|
122
|
-
<ul>
|
123
|
-
<li>Joined sources require a call to dispatch when their parent calls output
|
124
|
-
|
125
|
-
</li>
|
126
|
-
<li>Sources that are renamed also need their @name’s renaming
|
127
|
-
|
128
|
-
</li>
|
129
|
-
<li>Implement a disaptch / request method that will actually thread property
|
130
|
-
(event-machine)
|
131
|
-
|
132
|
-
</li>
|
133
|
-
<li>Checkout experimental fakeweb version to stub out the yql specs
|
134
|
-
|
135
|
-
</li>
|
136
|
-
</ul>
|
137
|
-
<p>
|
138
|
-
#### Later / maybe
|
139
|
-
</p>
|
140
|
-
<ul>
|
141
|
-
<li>Allow for sources to explicitly set the content type being returned for
|
142
|
-
those stupid content providers
|
143
|
-
|
144
|
-
</li>
|
145
|
-
<li>YQL w/oAuth
|
146
|
-
|
147
|
-
</li>
|
148
|
-
<li>YQL Subqueries?
|
149
|
-
|
150
|
-
</li>
|
151
|
-
</ul>
|
152
|
-
<p>
|
153
|
-
#### For wiki pages (docs, later)
|
154
|
-
</p>
|
155
|
-
<ul>
|
156
|
-
<li>How to use `path`
|
157
|
-
|
158
|
-
</li>
|
159
|
-
<li>YQL Definitions
|
160
|
-
|
161
|
-
</li>
|
162
|
-
</ul>
|
163
|
-
<p>
|
164
|
-
### Copyright
|
165
|
-
</p>
|
166
|
-
<p>
|
167
|
-
Copyright © 2009 Ben Schwarz. See LICENSE for details.
|
168
|
-
</p>
|
169
|
-
</div>
|
170
|
-
<div id='section'>
|
171
|
-
</div>
|
172
|
-
</div>
|
173
|
-
</div>
|
174
|
-
<div id='footer-push'></div>
|
175
|
-
</div>
|
176
|
-
<div id='footer'>
|
177
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
178
|
-
</div>
|
179
|
-
</body>
|
180
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: hash.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>hash.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/core_ext/hash.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Wed Apr 08 15:45:49 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: origin.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>origin.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/smoke/origin.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Mon Jun 08 21:45:08 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: request.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>request.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/smoke/request.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Wed Jun 03 21:40:58 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: data.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>data.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/smoke/source/data.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Mon Jun 08 19:58:40 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: feed.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>feed.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/smoke/source/feed.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Mon Jun 08 19:58:40 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>File: join.rb [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='file' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>join.rb</h1>
|
29
|
-
<div class='paths'>
|
30
|
-
lib/smoke/source/join.rb
|
31
|
-
</div>
|
32
|
-
<div class='last-update'>
|
33
|
-
Last Update:
|
34
|
-
<span class='datetime'>Mon Jun 08 23:09:33 +1000 2009</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div id='content'>
|
38
|
-
<div id='text'>
|
39
|
-
<div id='section'>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
<div id='footer-push'></div>
|
44
|
-
</div>
|
45
|
-
<div id='footer'>
|
46
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
47
|
-
</div>
|
48
|
-
</body>
|
49
|
-
</html>
|