gnip_api 1.2.2 → 1.2.3
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +24 -3
- data/README.md +70 -33
- data/Rakefile +7 -0
- data/doc/rdoc/classes/Gnip/Activity.html +354 -0
- data/doc/rdoc/classes/Gnip/Actor.html +300 -0
- data/doc/rdoc/classes/Gnip/GnipData.html +154 -0
- data/doc/rdoc/classes/Gnip/Message.html +236 -0
- data/doc/rdoc/classes/Gnip/SystemMessage.html +190 -0
- data/doc/rdoc/classes/Gnip/TwitterComplianceMessage.html +194 -0
- data/doc/rdoc/classes/Gnip/UndefinedMessage.html +83 -0
- data/doc/rdoc/classes/Gnip/Url.html +194 -0
- data/doc/rdoc/classes/Gnip.html +95 -0
- data/doc/rdoc/classes/GnipApi/Adapter.html +287 -0
- data/doc/rdoc/classes/GnipApi/Configuration.html +194 -0
- data/doc/rdoc/classes/GnipApi/Endpoints.html +191 -0
- data/doc/rdoc/classes/GnipApi/Errors/Adapter/GnipSoftwareError.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/Adapter/RateLimitError.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/Adapter/RequestError.html +56 -0
- data/doc/rdoc/classes/GnipApi/Errors/Adapter.html +66 -0
- data/doc/rdoc/classes/GnipApi/Errors/Configuration/InvalidOutputFormat.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/Configuration.html +58 -0
- data/doc/rdoc/classes/GnipApi/Errors/JsonParser/ParseError.html +56 -0
- data/doc/rdoc/classes/GnipApi/Errors/JsonParser.html +64 -0
- data/doc/rdoc/classes/GnipApi/Errors/MissingAdapter.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/MissingCredentials.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/PowerTrack/MissingRules.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/PowerTrack/StreamDown.html +56 -0
- data/doc/rdoc/classes/GnipApi/Errors/PowerTrack.html +65 -0
- data/doc/rdoc/classes/GnipApi/Errors/Search/MissingParameters.html +83 -0
- data/doc/rdoc/classes/GnipApi/Errors/Search.html +64 -0
- data/doc/rdoc/classes/GnipApi/Errors.html +79 -0
- data/doc/rdoc/classes/GnipApi/JsonParser.html +101 -0
- data/doc/rdoc/classes/GnipApi/PowerTrack/Buffer.html +237 -0
- data/doc/rdoc/classes/GnipApi/PowerTrack/Rule.html +196 -0
- data/doc/rdoc/classes/GnipApi/PowerTrack/Rules.html +188 -0
- data/doc/rdoc/classes/GnipApi/PowerTrack/Stream.html +359 -0
- data/doc/rdoc/classes/GnipApi/PowerTrack.html +73 -0
- data/doc/rdoc/classes/GnipApi/Request.html +216 -0
- data/doc/rdoc/classes/GnipApi/Response.html +232 -0
- data/doc/rdoc/classes/GnipApi/Search.html +101 -0
- data/doc/rdoc/classes/GnipApi.html +252 -0
- data/doc/rdoc/created.rid +24 -0
- data/doc/rdoc/css/style.css +343 -0
- data/doc/rdoc/files/LICENSE_txt.html +73 -0
- data/doc/rdoc/files/README_md.html +299 -0
- data/doc/rdoc/files/lib/gnip_api/adapter_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/configuration_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/endpoints_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/errors_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/activity_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/actor_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/gnip_data_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/message_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/system_message_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/twitter_compliance_message_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/gnip/url_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/json_parser_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/power_track/buffer_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/power_track/rule_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/power_track/rules_rb.html +55 -0
- data/doc/rdoc/files/lib/gnip_api/power_track/stream_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/request_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/response_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api/search_rb.html +55 -0
- data/doc/rdoc/files/lib/gnip_api/version_rb.html +51 -0
- data/doc/rdoc/files/lib/gnip_api_rb.html +84 -0
- data/doc/rdoc/fr_class_index.html +92 -0
- data/doc/rdoc/fr_file_index.html +41 -0
- data/doc/rdoc/fr_method_index.html +4791 -0
- data/doc/rdoc/index.html +15 -0
- data/gnip_api.gemspec +3 -1
- data/lib/gnip_api/configuration.rb +18 -4
- data/lib/gnip_api/errors.rb +0 -1
- data/lib/gnip_api/power_track/buffer.rb +60 -14
- data/lib/gnip_api/power_track/stream.rb +52 -17
- data/lib/gnip_api/response.rb +3 -2
- data/lib/gnip_api/version.rb +1 -1
- data/spec/gnip_api/power_track/buffer_spec.rb +8 -0
- data/spec/gnip_api/response_spec.rb +16 -0
- data/spec/spec_helper.rb +1 -0
- metadata +97 -2
@@ -0,0 +1,188 @@
|
|
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>GnipApi::PowerTrack::Rules</title>
|
5
|
+
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
+
<link href='../../../css/style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
+
<script type='text/javascript'>
|
8
|
+
function popupCode(url) {
|
9
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
10
|
+
}
|
11
|
+
|
12
|
+
function toggleCode(id) {
|
13
|
+
var code = document.getElementById(id)
|
14
|
+
|
15
|
+
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
16
|
+
return true
|
17
|
+
}
|
18
|
+
|
19
|
+
// Make codeblocks hidden by default
|
20
|
+
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
21
|
+
</script>
|
22
|
+
</head>
|
23
|
+
<body class='page'>
|
24
|
+
<div class='class' id='wrapper'>
|
25
|
+
<div class='header'>
|
26
|
+
<h1 class='name'><span class='type'>class</span>
|
27
|
+
GnipApi::PowerTrack::Rules
|
28
|
+
</h1>
|
29
|
+
<ol class='paths'>
|
30
|
+
<li>
|
31
|
+
<a href="../../../files/lib/gnip_api/power_track/rules_rb.html">lib/gnip_api/power_track/rules.rb</a>
|
32
|
+
</li>
|
33
|
+
</ol>
|
34
|
+
<div class='parent'>
|
35
|
+
Superclass:
|
36
|
+
<strong>Object</strong>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<div id='content'>
|
40
|
+
<div id='text'>
|
41
|
+
<div id='description'></div>
|
42
|
+
<div id='method-list'>
|
43
|
+
<h2>Methods</h2>
|
44
|
+
<h3>Public Instance</h3>
|
45
|
+
<ol>
|
46
|
+
<li><a href="#method-i-construct_rules">construct_rules</a></li>
|
47
|
+
<li><a href="#method-i-create">create</a></li>
|
48
|
+
<li><a href="#method-i-delete">delete</a></li>
|
49
|
+
<li><a href="#method-i-list">list</a></li>
|
50
|
+
<li><a href="#method-i-parse_rules">parse_rules</a></li>
|
51
|
+
<li><a href="#method-i-validate">validate</a></li>
|
52
|
+
</ol>
|
53
|
+
</div>
|
54
|
+
<div id='context'>
|
55
|
+
</div>
|
56
|
+
<div id='section'>
|
57
|
+
<div id='methods'>
|
58
|
+
<h2>Public Instance methods</h2>
|
59
|
+
<div class='method public-instance' id='method-method-i-construct_rules'>
|
60
|
+
<a name='method-i-construct_rules'></a>
|
61
|
+
<div class='synopsis'>
|
62
|
+
<span class='name'>construct_rules</span>
|
63
|
+
<span class='arguments'>(rules)</span>
|
64
|
+
|
65
|
+
</div>
|
66
|
+
<div class='description'>
|
67
|
+
|
68
|
+
<p>Parses an array of <a href="Rule.html">GnipApi::PowerTrack::Rule</a>
|
69
|
+
objects to the necesary JSON format for the endpoint</p>
|
70
|
+
|
71
|
+
</div>
|
72
|
+
<div class='source'>
|
73
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-construct_rules-source'); return false'>
|
74
|
+
[show source]
|
75
|
+
</a>
|
76
|
+
<pre id='method-i-construct_rules-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 45</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">construct_rules</span> <span class="ruby-identifier">rules</span>
 <span class="ruby-identifier">parsed_rules</span> = {<span class="ruby-value">:rules</span> =<span class="ruby-operator">></span> []}
 <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
 <span class="ruby-identifier">parsed_rules</span>[<span class="ruby-value">:rules</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">attributes</span>
 <span class="ruby-keyword">end</span>
 <span class="ruby-identifier">parsed_rules</span>.<span class="ruby-identifier">to_json</span>
<span class="ruby-keyword">end</span></pre>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
<div class='method public-instance' id='method-method-i-create'>
|
80
|
+
<a name='method-i-create'></a>
|
81
|
+
<div class='synopsis'>
|
82
|
+
<span class='name'>create</span>
|
83
|
+
<span class='arguments'>(rules)</span>
|
84
|
+
|
85
|
+
</div>
|
86
|
+
<div class='description'>
|
87
|
+
|
88
|
+
<p>Creates the specified rule. Parameters:</p>
|
89
|
+
<ul><li>
|
90
|
+
<p>rules: <a href="Rule.html">GnipApi::PowerTrack::Rule</a> object</p>
|
91
|
+
</li></ul>
|
92
|
+
|
93
|
+
</div>
|
94
|
+
<div class='source'>
|
95
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-create-source'); return false'>
|
96
|
+
[show source]
|
97
|
+
</a>
|
98
|
+
<pre id='method-i-create-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 17</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">create</span> <span class="ruby-identifier">rules</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'No rules provided'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">empty?</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_post_request</span>(<span class="ruby-identifier">construct_rules</span>(<span class="ruby-identifier">rules</span>))
 <span class="ruby-identifier">response</span> = <span class="ruby-identifier">fetch_data</span>(<span class="ruby-identifier">request</span>)
 <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">nil?</span>
 <span class="ruby-keyword">return</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">response</span>)
<span class="ruby-keyword">end</span></pre>
|
99
|
+
</div>
|
100
|
+
</div>
|
101
|
+
<div class='method public-instance' id='method-method-i-delete'>
|
102
|
+
<a name='method-i-delete'></a>
|
103
|
+
<div class='synopsis'>
|
104
|
+
<span class='name'>delete</span>
|
105
|
+
<span class='arguments'>(rules)</span>
|
106
|
+
|
107
|
+
</div>
|
108
|
+
<div class='description'>
|
109
|
+
|
110
|
+
<p>Deletes the specified rule. Parameters:</p>
|
111
|
+
<ul><li>
|
112
|
+
<p>rules: <a href="Rule.html">GnipApi::PowerTrack::Rule</a> object</p>
|
113
|
+
</li></ul>
|
114
|
+
|
115
|
+
</div>
|
116
|
+
<div class='source'>
|
117
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-delete-source'); return false'>
|
118
|
+
[show source]
|
119
|
+
</a>
|
120
|
+
<pre id='method-i-delete-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 27</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">delete</span> <span class="ruby-identifier">rules</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'No rules provided'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">empty?</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_delete_request</span>(<span class="ruby-identifier">construct_rules</span>(<span class="ruby-identifier">rules</span>))
 <span class="ruby-identifier">response</span> = <span class="ruby-identifier">fetch_data</span>(<span class="ruby-identifier">request</span>)
 <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">nil?</span>
 <span class="ruby-keyword">return</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">response</span>)
<span class="ruby-keyword">end</span></pre>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
<div class='method public-instance' id='method-method-i-list'>
|
124
|
+
<a name='method-i-list'></a>
|
125
|
+
<div class='synopsis'>
|
126
|
+
<span class='name'>list</span>
|
127
|
+
<span class='arguments'>()</span>
|
128
|
+
|
129
|
+
</div>
|
130
|
+
<div class='description'>
|
131
|
+
|
132
|
+
<p>Returns an array of defined rules</p>
|
133
|
+
|
134
|
+
</div>
|
135
|
+
<div class='source'>
|
136
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-list-source'); return false'>
|
137
|
+
[show source]
|
138
|
+
</a>
|
139
|
+
<pre id='method-i-list-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 9</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">list</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_get_request</span>
 <span class="ruby-identifier">rules</span> = <span class="ruby-identifier">fetch_data</span>(<span class="ruby-identifier">request</span>)
 <span class="ruby-identifier">parse_rules</span>(<span class="ruby-identifier">rules</span>)
<span class="ruby-keyword">end</span></pre>
|
140
|
+
</div>
|
141
|
+
</div>
|
142
|
+
<div class='method public-instance' id='method-method-i-parse_rules'>
|
143
|
+
<a name='method-i-parse_rules'></a>
|
144
|
+
<div class='synopsis'>
|
145
|
+
<span class='name'>parse_rules</span>
|
146
|
+
<span class='arguments'>(data)</span>
|
147
|
+
|
148
|
+
</div>
|
149
|
+
<div class='description'>
|
150
|
+
|
151
|
+
</div>
|
152
|
+
<div class='source'>
|
153
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-parse_rules-source'); return false'>
|
154
|
+
[show source]
|
155
|
+
</a>
|
156
|
+
<pre id='method-i-parse_rules-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 53</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_rules</span> <span class="ruby-identifier">data</span>
 <span class="ruby-identifier">parsed_data</span> = <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">data</span>)
 <span class="ruby-identifier">parsed_data</span>[<span class="ruby-string">'rules'</span>].<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">PowerTrack</span><span class="ruby-operator">::</span><span class="ruby-constant">Rule</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:value</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">rule</span>[<span class="ruby-string">'value'</span>], <span class="ruby-value">:tag</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">rule</span>[<span class="ruby-string">'tag'</span>], <span class="ruby-value">:id</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">rule</span>[<span class="ruby-string">'id'</span>])}
<span class="ruby-keyword">end</span></pre>
|
157
|
+
</div>
|
158
|
+
</div>
|
159
|
+
<div class='method public-instance' id='method-method-i-validate'>
|
160
|
+
<a name='method-i-validate'></a>
|
161
|
+
<div class='synopsis'>
|
162
|
+
<span class='name'>validate</span>
|
163
|
+
<span class='arguments'>(rules)</span>
|
164
|
+
|
165
|
+
</div>
|
166
|
+
<div class='description'>
|
167
|
+
|
168
|
+
</div>
|
169
|
+
<div class='source'>
|
170
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-validate-source'); return false'>
|
171
|
+
[show source]
|
172
|
+
</a>
|
173
|
+
<pre id='method-i-validate-source'><span class="ruby-comment"># File lib/gnip_api/power_track/rules.rb, line 35</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">validate</span> <span class="ruby-identifier">rules</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'No rules provided'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">empty?</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_validation_request</span>(<span class="ruby-identifier">construct_rules</span>(<span class="ruby-identifier">rules</span>))
 <span class="ruby-identifier">response</span> = <span class="ruby-identifier">fetch_data</span>(<span class="ruby-identifier">request</span>)
 <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">nil?</span>
 <span class="ruby-keyword">return</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">response</span>)
<span class="ruby-keyword">end</span></pre>
|
174
|
+
</div>
|
175
|
+
</div>
|
176
|
+
</div>
|
177
|
+
</div>
|
178
|
+
|
179
|
+
</div>
|
180
|
+
</div>
|
181
|
+
|
182
|
+
<div id='footer-push'></div>
|
183
|
+
</div>
|
184
|
+
<div id='footer'>
|
185
|
+
<a href="https://github.com/rdoc/hanna-nouveau"><strong>Hanna Nouveau</strong> RDoc template</a>
|
186
|
+
</div>
|
187
|
+
</body>
|
188
|
+
</html>
|
@@ -0,0 +1,359 @@
|
|
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>GnipApi::PowerTrack::Stream</title>
|
5
|
+
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
+
<link href='../../../css/style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
+
<script type='text/javascript'>
|
8
|
+
function popupCode(url) {
|
9
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
10
|
+
}
|
11
|
+
|
12
|
+
function toggleCode(id) {
|
13
|
+
var code = document.getElementById(id)
|
14
|
+
|
15
|
+
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
16
|
+
return true
|
17
|
+
}
|
18
|
+
|
19
|
+
// Make codeblocks hidden by default
|
20
|
+
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
21
|
+
</script>
|
22
|
+
</head>
|
23
|
+
<body class='page'>
|
24
|
+
<div class='class' id='wrapper'>
|
25
|
+
<div class='header'>
|
26
|
+
<h1 class='name'><span class='type'>class</span>
|
27
|
+
GnipApi::PowerTrack::Stream
|
28
|
+
</h1>
|
29
|
+
<ol class='paths'>
|
30
|
+
<li>
|
31
|
+
<a href="../../../files/lib/gnip_api/power_track/stream_rb.html">lib/gnip_api/power_track/stream.rb</a>
|
32
|
+
</li>
|
33
|
+
</ol>
|
34
|
+
<div class='parent'>
|
35
|
+
Superclass:
|
36
|
+
<strong>Object</strong>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<div id='content'>
|
40
|
+
<div id='text'>
|
41
|
+
<div id='description'>
|
42
|
+
<p>Handles a stream connection to <a href="../PowerTrack.html">PowerTrack</a>
|
43
|
+
to receive the data.</p>
|
44
|
+
|
45
|
+
<p>There are 3 ways to connect and consume the connection provided:</p>
|
46
|
+
<ul><li>
|
47
|
+
<p>:common</p>
|
48
|
+
</li><li>
|
49
|
+
<p>:io</p>
|
50
|
+
</li><li>
|
51
|
+
<p>:pty</p>
|
52
|
+
</li></ul>
|
53
|
+
|
54
|
+
<p>Each method uses a different backend. This is a result of experimentation
|
55
|
+
to mitigate disconnect issues. Each method handles differently the
|
56
|
+
keep-alive signals and works a bit differently at the low level. The
|
57
|
+
recommended method is :common, and will in the future become the default
|
58
|
+
once it's polished enough.</p>
|
59
|
+
|
60
|
+
<p>In addition to the methods above, a third strategy using the :common method
|
61
|
+
is also offered to detach any processing you do on your end using threads.</p>
|
62
|
+
</div>
|
63
|
+
<div id='method-list'>
|
64
|
+
<h2>Methods</h2>
|
65
|
+
<h3>Public Class</h3>
|
66
|
+
<ol>
|
67
|
+
<li><a href="#method-c-new">new</a></li>
|
68
|
+
</ol>
|
69
|
+
<h3>Public Instance</h3>
|
70
|
+
<ol>
|
71
|
+
<li><a href="#method-i-build_message">build_message</a></li>
|
72
|
+
<li><a href="#method-i-consume">consume</a></li>
|
73
|
+
<li><a href="#method-i-consume_json">consume_json</a></li>
|
74
|
+
<li><a href="#method-i-consume_raw">consume_raw</a></li>
|
75
|
+
<li><a href="#method-i-logger">logger</a></li>
|
76
|
+
<li><a href="#method-i-parse_json">parse_json</a></li>
|
77
|
+
<li><a href="#method-i-process_entries">process_entries</a></li>
|
78
|
+
<li><a href="#method-i-read_io_stream">read_io_stream</a></li>
|
79
|
+
<li><a href="#method-i-read_pty_stream">read_pty_stream</a></li>
|
80
|
+
<li><a href="#method-i-read_stream">read_stream</a></li>
|
81
|
+
<li><a href="#method-i-thread_consume">thread_consume</a></li>
|
82
|
+
</ol>
|
83
|
+
</div>
|
84
|
+
<div id='context'>
|
85
|
+
</div>
|
86
|
+
<div id='section'>
|
87
|
+
<div id='methods'>
|
88
|
+
<h2>Public Class methods</h2>
|
89
|
+
<div class='method public-class' id='method-method-c-new'>
|
90
|
+
<a name='method-c-new'></a>
|
91
|
+
<div class='synopsis'>
|
92
|
+
<span class='name'>new</span>
|
93
|
+
<span class='arguments'>()</span>
|
94
|
+
|
95
|
+
</div>
|
96
|
+
<div class='description'>
|
97
|
+
|
98
|
+
</div>
|
99
|
+
<div class='source'>
|
100
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-c-new-source'); return false'>
|
101
|
+
[show source]
|
102
|
+
</a>
|
103
|
+
<pre id='method-c-new-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 19</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>
 <span class="ruby-ivar">@user</span> = <span class="ruby-constant">GnipApi</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">user</span>
 <span class="ruby-ivar">@password</span> = <span class="ruby-constant">GnipApi</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">password</span>
 <span class="ruby-ivar">@account</span> = <span class="ruby-constant">GnipApi</span>.<span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">account</span>
 <span class="ruby-ivar">@adapter</span> = <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">Adapter</span>.<span class="ruby-identifier">new</span>
 <span class="ruby-ivar">@buffer</span> = <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">PowerTrack</span><span class="ruby-operator">::</span><span class="ruby-constant">Buffer</span>.<span class="ruby-identifier">new</span>
 <span class="ruby-ivar">@running</span> = <span class="ruby-keyword">false</span>
<span class="ruby-keyword">end</span></pre>
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
<h2>Public Instance methods</h2>
|
107
|
+
<div class='method public-instance' id='method-method-i-build_message'>
|
108
|
+
<a name='method-i-build_message'></a>
|
109
|
+
<div class='synopsis'>
|
110
|
+
<span class='name'>build_message</span>
|
111
|
+
<span class='arguments'>(params)</span>
|
112
|
+
|
113
|
+
</div>
|
114
|
+
<div class='description'>
|
115
|
+
|
116
|
+
<p>Builds a <a href="../../Gnip/Message.html">Gnip::Message</a> object from
|
117
|
+
the item params received.</p>
|
118
|
+
|
119
|
+
</div>
|
120
|
+
<div class='source'>
|
121
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-build_message-source'); return false'>
|
122
|
+
[show source]
|
123
|
+
</a>
|
124
|
+
<pre id='method-i-build_message-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 192</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">build_message</span> <span class="ruby-identifier">params</span>
 <span class="ruby-constant">Gnip</span><span class="ruby-operator">::</span><span class="ruby-constant">Message</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">params</span>)
<span class="ruby-keyword">end</span></pre>
|
125
|
+
</div>
|
126
|
+
</div>
|
127
|
+
<div class='method public-instance' id='method-method-i-consume'>
|
128
|
+
<a name='method-i-consume'></a>
|
129
|
+
<div class='synopsis'>
|
130
|
+
<span class='name'>consume</span>
|
131
|
+
<span class='arguments'>(stream_method=:common)</span>
|
132
|
+
|
133
|
+
</div>
|
134
|
+
<div class='description'>
|
135
|
+
|
136
|
+
<p>The following methods are different ways of consuming the stream There are
|
137
|
+
3 different methods that return data slighly different. :common method uses
|
138
|
+
a simple HTTParty request reading chunks and decoding the GZip. This
|
139
|
+
method has a flaw that it waits for certain data to be buffered by Zlib in
|
140
|
+
order to return a decoded chunk. :common will return chunks that may
|
141
|
+
contain more than 1 objects.</p>
|
142
|
+
|
143
|
+
<p>:io method uses curl under the hood, in combination with IO.popen to
|
144
|
+
captrue stdout. For this method a single line is returned, which would be
|
145
|
+
an object sent to stream. Curl handles the GZip decoding better, however
|
146
|
+
the read method for the IO buffers up the keep alive signals due to not
|
147
|
+
flushing STDOUT.</p>
|
148
|
+
|
149
|
+
<p>:pty method is an alternative for :io in where the stdout output is
|
150
|
+
captured as it comes using PTY features. It almost works the same as :io,
|
151
|
+
but the keep alive signals are now captured properly.</p>
|
152
|
+
|
153
|
+
</div>
|
154
|
+
<div class='source'>
|
155
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-consume-source'); return false'>
|
156
|
+
[show source]
|
157
|
+
</a>
|
158
|
+
<pre id='method-i-consume-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 73</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">consume</span> <span class="ruby-identifier">stream_method</span>=<span class="ruby-value">:common</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">"Block required, non given"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block_given?</span>
 <span class="ruby-keyword">if</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:common</span>
 <span class="ruby-identifier">read_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">process_entries</span>(<span class="ruby-identifier">data</span>))
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:io</span>
 <span class="ruby-identifier">read_io_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">process_entries</span>([<span class="ruby-identifier">data</span>]))
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:pty</span>
 <span class="ruby-identifier">read_pty_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">process_entries</span>([<span class="ruby-identifier">data</span>]))
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">else</span> 
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Undefined stream method #{stream_method}"</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
159
|
+
</div>
|
160
|
+
</div>
|
161
|
+
<div class='method public-instance' id='method-method-i-consume_json'>
|
162
|
+
<a name='method-i-consume_json'></a>
|
163
|
+
<div class='synopsis'>
|
164
|
+
<span class='name'>consume_json</span>
|
165
|
+
<span class='arguments'>(stream_method=:common)</span>
|
166
|
+
|
167
|
+
</div>
|
168
|
+
<div class='description'>
|
169
|
+
|
170
|
+
<p>Similar to <a href="Stream.html#method-i-consume">consume</a> but parses
|
171
|
+
the JSON to Hash with no further processing. <code>stream_method</code>
|
172
|
+
param accepts the same options as <a
|
173
|
+
href="Stream.html#method-i-consume">consume</a>.</p>
|
174
|
+
|
175
|
+
</div>
|
176
|
+
<div class='source'>
|
177
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-consume_json-source'); return false'>
|
178
|
+
[show source]
|
179
|
+
</a>
|
180
|
+
<pre id='method-i-consume_json-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 117</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">consume_json</span> <span class="ruby-identifier">stream_method</span>=<span class="ruby-value">:common</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">"Block required, non given"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block_given?</span>
 <span class="ruby-keyword">if</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:common</span>
 <span class="ruby-identifier">read_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">data</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">item</span>)})
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:io</span>
 <span class="ruby-identifier">read_io_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">data</span>))
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:pty</span>
 <span class="ruby-identifier">read_pty_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">data</span>))
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">else</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Undefined stream method #{stream_method}"</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
181
|
+
</div>
|
182
|
+
</div>
|
183
|
+
<div class='method public-instance' id='method-method-i-consume_raw'>
|
184
|
+
<a name='method-i-consume_raw'></a>
|
185
|
+
<div class='synopsis'>
|
186
|
+
<span class='name'>consume_raw</span>
|
187
|
+
<span class='arguments'>(stream_method=:common)</span>
|
188
|
+
|
189
|
+
</div>
|
190
|
+
<div class='description'>
|
191
|
+
|
192
|
+
<p>Similar to <a href="Stream.html#method-i-consume">consume</a> with the
|
193
|
+
difference this one spits out raw JSON and has no parsing on the data
|
194
|
+
received. Use it for a faster consumtion. <code>stream_method</code> param
|
195
|
+
accepts the same options as <a
|
196
|
+
href="Stream.html#method-i-consume">consume</a>.</p>
|
197
|
+
|
198
|
+
</div>
|
199
|
+
<div class='source'>
|
200
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-consume_raw-source'); return false'>
|
201
|
+
[show source]
|
202
|
+
</a>
|
203
|
+
<pre id='method-i-consume_raw-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 95</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">consume_raw</span> <span class="ruby-identifier">stream_method</span>=<span class="ruby-value">:common</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">"Block required, non given"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block_given?</span>
 <span class="ruby-keyword">if</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:common</span>
 <span class="ruby-identifier">read_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">data</span>)
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:io</span>
 <span class="ruby-identifier">read_io_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">data</span>)
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">stream_method</span> <span class="ruby-operator">==</span> <span class="ruby-value">:pty</span>
 <span class="ruby-identifier">read_pty_stream</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">data</span>)
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">else</span> 
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Undefined stream method #{stream_method}"</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
204
|
+
</div>
|
205
|
+
</div>
|
206
|
+
<div class='method public-instance' id='method-method-i-logger'>
|
207
|
+
<a name='method-i-logger'></a>
|
208
|
+
<div class='synopsis'>
|
209
|
+
<span class='name'>logger</span>
|
210
|
+
<span class='arguments'>()</span>
|
211
|
+
|
212
|
+
</div>
|
213
|
+
<div class='description'>
|
214
|
+
|
215
|
+
<p>Returns the configured logger.</p>
|
216
|
+
|
217
|
+
</div>
|
218
|
+
<div class='source'>
|
219
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-logger-source'); return false'>
|
220
|
+
[show source]
|
221
|
+
</a>
|
222
|
+
<pre id='method-i-logger-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 29</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">logger</span>
 <span class="ruby-constant">GnipApi</span>.<span class="ruby-identifier">logger</span>
<span class="ruby-keyword">end</span></pre>
|
223
|
+
</div>
|
224
|
+
</div>
|
225
|
+
<div class='method public-instance' id='method-method-i-parse_json'>
|
226
|
+
<a name='method-i-parse_json'></a>
|
227
|
+
<div class='synopsis'>
|
228
|
+
<span class='name'>parse_json</span>
|
229
|
+
<span class='arguments'>(json)</span>
|
230
|
+
|
231
|
+
</div>
|
232
|
+
<div class='description'>
|
233
|
+
|
234
|
+
<p>Returns a Hash from a parsed JSON string.</p>
|
235
|
+
|
236
|
+
</div>
|
237
|
+
<div class='source'>
|
238
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-parse_json-source'); return false'>
|
239
|
+
[show source]
|
240
|
+
</a>
|
241
|
+
<pre id='method-i-parse_json-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 197</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_json</span> <span class="ruby-identifier">json</span>
 <span class="ruby-keyword">begin</span> 
 <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">parse</span> <span class="ruby-identifier">json</span>
 <span class="ruby-keyword">rescue</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">JsonParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span>
 <span class="ruby-keyword">nil</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
242
|
+
</div>
|
243
|
+
</div>
|
244
|
+
<div class='method public-instance' id='method-method-i-process_entries'>
|
245
|
+
<a name='method-i-process_entries'></a>
|
246
|
+
<div class='synopsis'>
|
247
|
+
<span class='name'>process_entries</span>
|
248
|
+
<span class='arguments'>(entries)</span>
|
249
|
+
|
250
|
+
</div>
|
251
|
+
<div class='description'>
|
252
|
+
|
253
|
+
<p>Processes the items received after splitting them up, returning appropiate
|
254
|
+
<a href="../../Gnip.html">Gnip</a> objects.</p>
|
255
|
+
|
256
|
+
</div>
|
257
|
+
<div class='source'>
|
258
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-process_entries-source'); return false'>
|
259
|
+
[show source]
|
260
|
+
</a>
|
261
|
+
<pre id='method-i-process_entries-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 183</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">process_entries</span> <span class="ruby-identifier">entries</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">"PowerTrack Stream: #{entries.size} items received"</span>
 <span class="ruby-identifier">data</span> = <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">e</span>)}.<span class="ruby-identifier">compact</span>
 <span class="ruby-identifier">data</span>.<span class="ruby-identifier">map!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">build_message</span>(<span class="ruby-identifier">e</span>)} 
 <span class="ruby-identifier">data</span>.<span class="ruby-identifier">select</span>(<span class="ruby-operator">&</span><span class="ruby-value">:system_message?</span>).<span class="ruby-identifier">each</span>(<span class="ruby-operator">&</span><span class="ruby-value">:log!</span>)
 <span class="ruby-keyword">return</span> <span class="ruby-identifier">data</span>
<span class="ruby-keyword">end</span></pre>
|
262
|
+
</div>
|
263
|
+
</div>
|
264
|
+
<div class='method public-instance' id='method-method-i-read_io_stream'>
|
265
|
+
<a name='method-i-read_io_stream'></a>
|
266
|
+
<div class='synopsis'>
|
267
|
+
<span class='name'>read_io_stream</span>
|
268
|
+
<span class='arguments'>()</span>
|
269
|
+
|
270
|
+
</div>
|
271
|
+
<div class='description'>
|
272
|
+
|
273
|
+
<p>Opens the connection to the <a href="../PowerTrack.html">PowerTrack</a>
|
274
|
+
stream and returns any data received using CURL IO transfer method.</p>
|
275
|
+
|
276
|
+
</div>
|
277
|
+
<div class='source'>
|
278
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-read_io_stream-source'); return false'>
|
279
|
+
[show source]
|
280
|
+
</a>
|
281
|
+
<pre id='method-i-read_io_stream-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 138</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">read_io_stream</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_request</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-string">"Opening PowerTrack parsed stream"</span>
 <span class="ruby-keyword">begin</span>
 <span class="ruby-ivar">@adapter</span>.<span class="ruby-identifier">io_curl_stream</span>(<span class="ruby-identifier">request</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span> <span class="ruby-identifier">data</span>
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">ensure</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span> <span class="ruby-string">"Closing stream"</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
282
|
+
</div>
|
283
|
+
</div>
|
284
|
+
<div class='method public-instance' id='method-method-i-read_pty_stream'>
|
285
|
+
<a name='method-i-read_pty_stream'></a>
|
286
|
+
<div class='synopsis'>
|
287
|
+
<span class='name'>read_pty_stream</span>
|
288
|
+
<span class='arguments'>()</span>
|
289
|
+
|
290
|
+
</div>
|
291
|
+
<div class='description'>
|
292
|
+
|
293
|
+
<p>Opens the connection to the <a href="../PowerTrack.html">PowerTrack</a>
|
294
|
+
stream and returns any data received using CURL PTY transfer method.</p>
|
295
|
+
|
296
|
+
</div>
|
297
|
+
<div class='source'>
|
298
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-read_pty_stream-source'); return false'>
|
299
|
+
[show source]
|
300
|
+
</a>
|
301
|
+
<pre id='method-i-read_pty_stream-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 152</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">read_pty_stream</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_request</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-string">"Opening PowerTrack parsed stream"</span>
 <span class="ruby-keyword">begin</span>
 <span class="ruby-ivar">@adapter</span>.<span class="ruby-identifier">pty_curl_stream</span>(<span class="ruby-identifier">request</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
 <span class="ruby-keyword">yield</span> <span class="ruby-identifier">data</span>
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">ensure</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span> <span class="ruby-string">"Closing stream"</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
302
|
+
</div>
|
303
|
+
</div>
|
304
|
+
<div class='method public-instance' id='method-method-i-read_stream'>
|
305
|
+
<a name='method-i-read_stream'></a>
|
306
|
+
<div class='synopsis'>
|
307
|
+
<span class='name'>read_stream</span>
|
308
|
+
<span class='arguments'>()</span>
|
309
|
+
|
310
|
+
</div>
|
311
|
+
<div class='description'>
|
312
|
+
|
313
|
+
<p>Opens the connection to the <a href="../PowerTrack.html">PowerTrack</a>
|
314
|
+
stream and returns any data received using HTTParty and standard net/http.
|
315
|
+
The buffer is used in this case to collect the chunks and later split them
|
316
|
+
into items.</p>
|
317
|
+
|
318
|
+
</div>
|
319
|
+
<div class='source'>
|
320
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-read_stream-source'); return false'>
|
321
|
+
[show source]
|
322
|
+
</a>
|
323
|
+
<pre id='method-i-read_stream-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 167</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">read_stream</span>
 <span class="ruby-identifier">request</span> = <span class="ruby-identifier">create_request</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-string">"Opening PowerTrack parsed stream"</span>
 <span class="ruby-keyword">begin</span>
 <span class="ruby-ivar">@adapter</span>.<span class="ruby-identifier">stream_get</span> <span class="ruby-identifier">request</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span>
 <span class="ruby-ivar">@buffer</span>.<span class="ruby-identifier">insert!</span> <span class="ruby-identifier">chunk</span>
 <span class="ruby-keyword">yield</span> <span class="ruby-ivar">@buffer</span>.<span class="ruby-identifier">read!</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">ensure</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span> <span class="ruby-string">"Closing stream"</span>
 <span class="ruby-ivar">@running</span> = <span class="ruby-keyword">false</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
324
|
+
</div>
|
325
|
+
</div>
|
326
|
+
<div class='method public-instance' id='method-method-i-thread_consume'>
|
327
|
+
<a name='method-i-thread_consume'></a>
|
328
|
+
<div class='synopsis'>
|
329
|
+
<span class='name'>thread_consume</span>
|
330
|
+
<span class='arguments'>()</span>
|
331
|
+
|
332
|
+
</div>
|
333
|
+
<div class='description'>
|
334
|
+
|
335
|
+
<p>Consumes the stream using a streamer thread instead of a simple block. This
|
336
|
+
way the streamer can fill in the buffer and the block consumes it
|
337
|
+
periodically.</p>
|
338
|
+
|
339
|
+
</div>
|
340
|
+
<div class='source'>
|
341
|
+
<a class='source-toggle' href='#' onclick='toggleCode('method-i-thread_consume-source'); return false'>
|
342
|
+
[show source]
|
343
|
+
</a>
|
344
|
+
<pre id='method-i-thread_consume-source'><span class="ruby-comment"># File lib/gnip_api/power_track/stream.rb, line 35</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">thread_consume</span>
 <span class="ruby-identifier">streamer</span> = <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-string">"Starting streamer Thread"</span>
 <span class="ruby-keyword">begin</span>
 <span class="ruby-identifier">read_stream</span>
 <span class="ruby-keyword">ensure</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span> <span class="ruby-string">"Streamer exited"</span>
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">end</span>

 <span class="ruby-keyword">begin</span>
 <span class="ruby-identifier">loop</span> <span class="ruby-keyword">do</span>
 <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span> <span class="ruby-string">"Streamer is down"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">streamer</span>.<span class="ruby-identifier">alive?</span>
 <span class="ruby-identifier">raise</span> <span class="ruby-constant">GnipApi</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">PowerTrack</span><span class="ruby-operator">::</span><span class="ruby-constant">StreamDown</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">streamer</span>.<span class="ruby-identifier">alive?</span>
 <span class="ruby-identifier">entries</span> = <span class="ruby-ivar">@buffer</span>.<span class="ruby-identifier">read!</span>
 <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">any?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">process_entries</span>(<span class="ruby-identifier">entries</span>)) <span class="ruby-operator">:</span> <span class="ruby-identifier">sleep</span>(<span class="ruby-value">0.1</span>)
 <span class="ruby-keyword">end</span>
 <span class="ruby-keyword">ensure</span>
 <span class="ruby-identifier">streamer</span>.<span class="ruby-identifier">kill</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">streamer</span>.<span class="ruby-identifier">alive?</span>
 <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
|
345
|
+
</div>
|
346
|
+
</div>
|
347
|
+
</div>
|
348
|
+
</div>
|
349
|
+
|
350
|
+
</div>
|
351
|
+
</div>
|
352
|
+
|
353
|
+
<div id='footer-push'></div>
|
354
|
+
</div>
|
355
|
+
<div id='footer'>
|
356
|
+
<a href="https://github.com/rdoc/hanna-nouveau"><strong>Hanna Nouveau</strong> RDoc template</a>
|
357
|
+
</div>
|
358
|
+
</body>
|
359
|
+
</html>
|