contacts 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -137,7 +137,7 @@ Class <a href="Contacts/Yahoo.html" class="link">Contacts::Yahoo</a><br />
137
137
  <tr class="top-aligned-row context-row">
138
138
  <td class="context-item-name">VERSION</td>
139
139
  <td>=</td>
140
- <td class="context-item-value">&quot;1.0.3&quot;</td>
140
+ <td class="context-item-value">&quot;1.0.4&quot;</td>
141
141
  </tr>
142
142
  </table>
143
143
  </div>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 182</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 186</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">login</span>, <span class="ruby-identifier">password</span>)
15
15
  <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">intern</span>)
16
16
  <span class="ruby-constant">TYPES</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">intern</span>].<span class="ruby-identifier">new</span>(<span class="ruby-identifier">login</span>, <span class="ruby-identifier">password</span>)
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 190</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 194</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">guess</span>(<span class="ruby-identifier">login</span>, <span class="ruby-identifier">password</span>)
15
15
  <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">inject</span>([]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
16
16
  <span class="ruby-keyword kw">begin</span>
@@ -86,12 +86,12 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000006">connect</a>&nbsp;&nbsp;
90
- <a href="#M000007">connected?</a>&nbsp;&nbsp;
91
- <a href="#M000008">contacts</a>&nbsp;&nbsp;
92
- <a href="#M000009">login</a>&nbsp;&nbsp;
93
- <a href="#M000005">new</a>&nbsp;&nbsp;
94
- <a href="#M000010">password</a>&nbsp;&nbsp;
89
+ <a href="#M000007">connect</a>&nbsp;&nbsp;
90
+ <a href="#M000008">connected?</a>&nbsp;&nbsp;
91
+ <a href="#M000009">contacts</a>&nbsp;&nbsp;
92
+ <a href="#M000010">login</a>&nbsp;&nbsp;
93
+ <a href="#M000006">new</a>&nbsp;&nbsp;
94
+ <a href="#M000011">password</a>&nbsp;&nbsp;
95
95
  </div>
96
96
  </div>
97
97
 
@@ -113,29 +113,13 @@
113
113
  <div id="methods">
114
114
  <h3 class="section-bar">Public Class methods</h3>
115
115
 
116
- <div id="method-M000005" class="method-detail">
117
- <a name="M000005"></a>
118
-
119
- <div class="method-heading">
120
- <a href="Base.src/M000005.html" target="Code" class="method-signature"
121
- onclick="popupCode('Base.src/M000005.html');return false;">
122
- <span class="method-name">new</span><span class="method-args">(login, password)</span>
123
- </a>
124
- </div>
125
-
126
- <div class="method-description">
127
- </div>
128
- </div>
129
-
130
- <h3 class="section-bar">Public Instance methods</h3>
131
-
132
116
  <div id="method-M000006" class="method-detail">
133
117
  <a name="M000006"></a>
134
118
 
135
119
  <div class="method-heading">
136
120
  <a href="Base.src/M000006.html" target="Code" class="method-signature"
137
121
  onclick="popupCode('Base.src/M000006.html');return false;">
138
- <span class="method-name">connect</span><span class="method-args">()</span>
122
+ <span class="method-name">new</span><span class="method-args">(login, password)</span>
139
123
  </a>
140
124
  </div>
141
125
 
@@ -143,13 +127,15 @@
143
127
  </div>
144
128
  </div>
145
129
 
130
+ <h3 class="section-bar">Public Instance methods</h3>
131
+
146
132
  <div id="method-M000007" class="method-detail">
147
133
  <a name="M000007"></a>
148
134
 
149
135
  <div class="method-heading">
150
136
  <a href="Base.src/M000007.html" target="Code" class="method-signature"
151
137
  onclick="popupCode('Base.src/M000007.html');return false;">
152
- <span class="method-name">connected?</span><span class="method-args">()</span>
138
+ <span class="method-name">connect</span><span class="method-args">()</span>
153
139
  </a>
154
140
  </div>
155
141
 
@@ -163,7 +149,7 @@
163
149
  <div class="method-heading">
164
150
  <a href="Base.src/M000008.html" target="Code" class="method-signature"
165
151
  onclick="popupCode('Base.src/M000008.html');return false;">
166
- <span class="method-name">contacts</span><span class="method-args">()</span>
152
+ <span class="method-name">connected?</span><span class="method-args">()</span>
167
153
  </a>
168
154
  </div>
169
155
 
@@ -177,7 +163,7 @@
177
163
  <div class="method-heading">
178
164
  <a href="Base.src/M000009.html" target="Code" class="method-signature"
179
165
  onclick="popupCode('Base.src/M000009.html');return false;">
180
- <span class="method-name">login</span><span class="method-args">()</span>
166
+ <span class="method-name">contacts</span><span class="method-args">()</span>
181
167
  </a>
182
168
  </div>
183
169
 
@@ -191,6 +177,20 @@
191
177
  <div class="method-heading">
192
178
  <a href="Base.src/M000010.html" target="Code" class="method-signature"
193
179
  onclick="popupCode('Base.src/M000010.html');return false;">
180
+ <span class="method-name">login</span><span class="method-args">()</span>
181
+ </a>
182
+ </div>
183
+
184
+ <div class="method-description">
185
+ </div>
186
+ </div>
187
+
188
+ <div id="method-M000011" class="method-detail">
189
+ <a name="M000011"></a>
190
+
191
+ <div class="method-heading">
192
+ <a href="Base.src/M000011.html" target="Code" class="method-signature"
193
+ onclick="popupCode('Base.src/M000011.html');return false;">
194
194
  <span class="method-name">password</span><span class="method-args">()</span>
195
195
  </a>
196
196
  </div>
@@ -5,15 +5,17 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>connect (Contacts::Base)</title>
8
+ <title>new (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 21</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>
15
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">AuthenticationError</span>, <span class="ruby-node">&quot;Login and password must not be nil, login: #{@login.inspect}, password: #{@password.inspect}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@password</span>.<span class="ruby-identifier">nil?</span>
16
- <span class="ruby-identifier">real_connect</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 14</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">login</span>, <span class="ruby-identifier">password</span>)
15
+ <span class="ruby-ivar">@login</span> = <span class="ruby-identifier">login</span>
16
+ <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
17
+ <span class="ruby-ivar">@connections</span> = {}
18
+ <span class="ruby-identifier">connect</span>
17
19
  <span class="ruby-keyword kw">end</span></pre>
18
20
  </body>
19
21
  </html>
@@ -5,14 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>connected? (Contacts::Base)</title>
8
+ <title>connect (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 26</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connected?</span>
15
- <span class="ruby-ivar">@cookies</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">empty?</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 21</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">AuthenticationError</span>, <span class="ruby-node">&quot;Login and password must not be nil, login: #{@login.inspect}, password: #{@password.inspect}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@password</span>.<span class="ruby-identifier">nil?</span>
16
+ <span class="ruby-identifier">real_connect</span>
16
17
  <span class="ruby-keyword kw">end</span></pre>
17
18
  </body>
18
19
  </html>
@@ -5,27 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>contacts (Contacts::Base)</title>
8
+ <title>connected? (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 30</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contacts</span>
15
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@contacts</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contacts</span>
16
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">connected?</span>
17
- <span class="ruby-identifier">url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">contact_list_url</span>)
18
- <span class="ruby-identifier">http</span> = <span class="ruby-identifier">open_http</span>(<span class="ruby-identifier">url</span>)
19
- <span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-identifier">http</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">&quot;#{url.path}?#{url.query}&quot;</span>,
20
- <span class="ruby-value str">&quot;Cookie&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>
21
- )
22
-
23
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code_type</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPOK</span>
24
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ConnectionError</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">:PROTOCOL_ERROR</span>)
25
- <span class="ruby-keyword kw">end</span>
26
-
27
- <span class="ruby-identifier">parse</span> <span class="ruby-identifier">data</span>
28
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 26</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connected?</span>
15
+ <span class="ruby-ivar">@cookies</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">empty?</span>
29
16
  <span class="ruby-keyword kw">end</span></pre>
30
17
  </body>
31
18
  </html>
@@ -5,24 +5,26 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>login (Contacts::Base)</title>
8
+ <title>contacts (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 47</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">login</span>
15
- <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
16
- <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
17
-
18
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
19
- <span class="ruby-ivar">@login</span>
20
- <span class="ruby-keyword kw">else</span>
21
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-node">&quot;@#{domain}&quot;</span>)
22
- <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-node">&quot;@#{domain}&quot;</span>,<span class="ruby-value str">&quot;&quot;</span>)
23
- <span class="ruby-keyword kw">else</span>
24
- <span class="ruby-node">&quot;#{@login}@#{domain}&quot;</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 30</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contacts</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@contacts</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contacts</span>
16
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">connected?</span>
17
+ <span class="ruby-identifier">url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">contact_list_url</span>)
18
+ <span class="ruby-identifier">http</span> = <span class="ruby-identifier">open_http</span>(<span class="ruby-identifier">url</span>)
19
+ <span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-identifier">http</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">&quot;#{url.path}?#{url.query}&quot;</span>,
20
+ <span class="ruby-value str">&quot;Cookie&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>
21
+ )
22
+
23
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code_type</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPOK</span>
24
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ConnectionError</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">:PROTOCOL_ERROR</span>)
25
25
  <span class="ruby-keyword kw">end</span>
26
+
27
+ <span class="ruby-identifier">parse</span> <span class="ruby-identifier">data</span>
26
28
  <span class="ruby-keyword kw">end</span>
27
29
  <span class="ruby-keyword kw">end</span></pre>
28
30
  </body>
@@ -5,14 +5,25 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>password (Contacts::Base)</title>
8
+ <title>login (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 62</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
15
- <span class="ruby-ivar">@password</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 47</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">login</span>
15
+ <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
16
+ <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
17
+
18
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attempt</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
19
+ <span class="ruby-ivar">@login</span>
20
+ <span class="ruby-keyword kw">else</span>
21
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-node">&quot;@#{domain}&quot;</span>)
22
+ <span class="ruby-ivar">@login</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-node">&quot;@#{domain}&quot;</span>,<span class="ruby-value str">&quot;&quot;</span>)
23
+ <span class="ruby-keyword kw">else</span>
24
+ <span class="ruby-node">&quot;#{@login}@#{domain}&quot;</span>
25
+ <span class="ruby-keyword kw">end</span>
26
+ <span class="ruby-keyword kw">end</span>
16
27
  <span class="ruby-keyword kw">end</span></pre>
17
28
  </body>
18
29
  </html>
@@ -5,17 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>new (Contacts::Base)</title>
8
+ <title>password (Contacts::Base)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 14</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">login</span>, <span class="ruby-identifier">password</span>)
15
- <span class="ruby-ivar">@login</span> = <span class="ruby-identifier">login</span>
16
- <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
17
- <span class="ruby-ivar">@connections</span> = {}
18
- <span class="ruby-identifier">connect</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/base.rb, line 62</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
15
+ <span class="ruby-ivar">@password</span>
19
16
  <span class="ruby-keyword kw">end</span></pre>
20
17
  </body>
21
18
  </html>
@@ -88,7 +88,7 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000004">real_connect</a>&nbsp;&nbsp;
91
+ <a href="#M000005">real_connect</a>&nbsp;&nbsp;
92
92
  </div>
93
93
  </div>
94
94
 
@@ -143,12 +143,12 @@
143
143
  <div id="methods">
144
144
  <h3 class="section-bar">Public Instance methods</h3>
145
145
 
146
- <div id="method-M000004" class="method-detail">
147
- <a name="M000004"></a>
146
+ <div id="method-M000005" class="method-detail">
147
+ <a name="M000005"></a>
148
148
 
149
149
  <div class="method-heading">
150
- <a href="Gmail.src/M000004.html" target="Code" class="method-signature"
151
- onclick="popupCode('Gmail.src/M000004.html');return false;">
150
+ <a href="Gmail.src/M000005.html" target="Code" class="method-signature"
151
+ onclick="popupCode('Gmail.src/M000005.html');return false;">
152
152
  <span class="method-name">real_connect</span><span class="method-args">()</span>
153
153
  </a>
154
154
  </div>
@@ -88,7 +88,7 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000011">real_connect</a>&nbsp;&nbsp;
91
+ <a href="#M000012">real_connect</a>&nbsp;&nbsp;
92
92
  </div>
93
93
  </div>
94
94
 
@@ -153,12 +153,12 @@
153
153
  <div id="methods">
154
154
  <h3 class="section-bar">Public Instance methods</h3>
155
155
 
156
- <div id="method-M000011" class="method-detail">
157
- <a name="M000011"></a>
156
+ <div id="method-M000012" class="method-detail">
157
+ <a name="M000012"></a>
158
158
 
159
159
  <div class="method-heading">
160
- <a href="Hotmail.src/M000011.html" target="Code" class="method-signature"
161
- onclick="popupCode('Hotmail.src/M000011.html');return false;">
160
+ <a href="Hotmail.src/M000012.html" target="Code" class="method-signature"
161
+ onclick="popupCode('Hotmail.src/M000012.html');return false;">
162
162
  <span class="method-name">real_connect</span><span class="method-args">()</span>
163
163
  </a>
164
164
  </div>
@@ -88,6 +88,7 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
+ <a href="#M000004">contacts</a>&nbsp;&nbsp;
91
92
  <a href="#M000003">real_connect</a>&nbsp;&nbsp;
92
93
  </div>
93
94
  </div>
@@ -115,6 +116,11 @@
115
116
  <td>=</td>
116
117
  <td class="context-item-value">&quot;https://login.yahoo.com/config/login&quot;</td>
117
118
  </tr>
119
+ <tr class="top-aligned-row context-row">
120
+ <td class="context-item-name">ADDRESS_BOOK_URL</td>
121
+ <td>=</td>
122
+ <td class="context-item-value">&quot;http://address.mail.yahoo.com/?1&amp;VPC=import_export&quot;</td>
123
+ </tr>
118
124
  <tr class="top-aligned-row context-row">
119
125
  <td class="context-item-name">CONTACT_LIST_URL</td>
120
126
  <td>=</td>
@@ -138,6 +144,20 @@
138
144
  <div id="methods">
139
145
  <h3 class="section-bar">Public Instance methods</h3>
140
146
 
147
+ <div id="method-M000004" class="method-detail">
148
+ <a name="M000004"></a>
149
+
150
+ <div class="method-heading">
151
+ <a href="Yahoo.src/M000004.html" target="Code" class="method-signature"
152
+ onclick="popupCode('Yahoo.src/M000004.html');return false;">
153
+ <span class="method-name">contacts</span><span class="method-args">()</span>
154
+ </a>
155
+ </div>
156
+
157
+ <div class="method-description">
158
+ </div>
159
+ </div>
160
+
141
161
  <div id="method-M000003" class="method-detail">
142
162
  <a name="M000003"></a>
143
163
 
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/contacts/yahoo.rb, line 10</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/yahoo.rb, line 11</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">real_connect</span>
15
15
  <span class="ruby-identifier">postdata</span> = <span class="ruby-value str">&quot;.tries=2&amp;.src=ym&amp;.md5=&amp;.hash=&amp;.js=&amp;.last=&amp;promo=&amp;.intl=us&amp;.bypass=&quot;</span>
16
16
  <span class="ruby-identifier">postdata</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;&amp;.partner=&amp;.u=4eo6isd23l8r3&amp;.v=0&amp;.challenge=gsMsEcoZP7km3N3NeI4mX&quot;</span>
@@ -0,0 +1,45 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>contacts (Contacts::Yahoo)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/contacts/yahoo.rb, line 38</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contacts</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@contacts</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contacts</span>
16
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">connected?</span>
17
+ <span class="ruby-comment cmt"># first, get the addressbook site with the new crumb parameter</span>
18
+ <span class="ruby-identifier">url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">address_book_url</span>)
19
+ <span class="ruby-identifier">http</span> = <span class="ruby-identifier">open_http</span>(<span class="ruby-identifier">url</span>)
20
+ <span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-identifier">http</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">&quot;#{url.path}?#{url.query}&quot;</span>,
21
+ <span class="ruby-value str">&quot;Cookie&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>
22
+ )
23
+
24
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code_type</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPOK</span>
25
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ConnectionError</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">:PROTOCOL_ERROR</span>)
26
+ <span class="ruby-keyword kw">end</span>
27
+
28
+ <span class="ruby-identifier">crumb</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">to_s</span>[<span class="ruby-regexp re">/id=&quot;crumb2&quot; value=&quot;(.*?)&quot;/</span>][<span class="ruby-value">19</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>]
29
+
30
+ <span class="ruby-comment cmt"># now proceed with the new &quot;.crumb&quot; parameter to get the csv data</span>
31
+ <span class="ruby-identifier">url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-node">&quot;#{contact_list_url}&amp;.crumb=#{crumb}&quot;</span>)
32
+ <span class="ruby-identifier">http</span> = <span class="ruby-identifier">open_http</span>(<span class="ruby-identifier">url</span>)
33
+ <span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-identifier">http</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">&quot;#{url.path}?#{url.query}&quot;</span>,
34
+ <span class="ruby-value str">&quot;Cookie&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>
35
+ )
36
+
37
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code_type</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPOK</span>
38
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ConnectionError</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">:PROTOCOL_ERROR</span>)
39
+ <span class="ruby-keyword kw">end</span>
40
+
41
+ <span class="ruby-identifier">parse</span> <span class="ruby-identifier">data</span>
42
+ <span class="ruby-keyword kw">end</span>
43
+ <span class="ruby-keyword kw">end</span></pre>
44
+ </body>
45
+ </html>
data/doc/created.rid CHANGED
@@ -1 +1 @@
1
- Mon Jun 04 13:35:30 PDT 2007
1
+ Tue Aug 28 17:00:59 PDT 2007
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Jun 04 13:35:11 PDT 2007</td>
59
+ <td>Tue Aug 28 17:00:28 PDT 2007</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Dec 07 10:23:11 PST 2006</td>
59
+ <td>Tue Aug 28 16:59:42 PDT 2007</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -20,17 +20,18 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/Contacts/Base.html#M000006">connect (Contacts::Base)</a><br />
24
- <a href="classes/Contacts/Base.html#M000007">connected? (Contacts::Base)</a><br />
25
- <a href="classes/Contacts/Base.html#M000008">contacts (Contacts::Base)</a><br />
23
+ <a href="classes/Contacts/Base.html#M000007">connect (Contacts::Base)</a><br />
24
+ <a href="classes/Contacts/Base.html#M000008">connected? (Contacts::Base)</a><br />
25
+ <a href="classes/Contacts/Yahoo.html#M000004">contacts (Contacts::Yahoo)</a><br />
26
+ <a href="classes/Contacts/Base.html#M000009">contacts (Contacts::Base)</a><br />
26
27
  <a href="classes/Contacts.html#M000002">guess (Contacts)</a><br />
27
- <a href="classes/Contacts/Base.html#M000009">login (Contacts::Base)</a><br />
28
+ <a href="classes/Contacts/Base.html#M000010">login (Contacts::Base)</a><br />
28
29
  <a href="classes/Contacts.html#M000001">new (Contacts)</a><br />
29
- <a href="classes/Contacts/Base.html#M000005">new (Contacts::Base)</a><br />
30
- <a href="classes/Contacts/Base.html#M000010">password (Contacts::Base)</a><br />
30
+ <a href="classes/Contacts/Base.html#M000006">new (Contacts::Base)</a><br />
31
+ <a href="classes/Contacts/Base.html#M000011">password (Contacts::Base)</a><br />
31
32
  <a href="classes/Contacts/Yahoo.html#M000003">real_connect (Contacts::Yahoo)</a><br />
32
- <a href="classes/Contacts/Gmail.html#M000004">real_connect (Contacts::Gmail)</a><br />
33
- <a href="classes/Contacts/Hotmail.html#M000011">real_connect (Contacts::Hotmail)</a><br />
33
+ <a href="classes/Contacts/Gmail.html#M000005">real_connect (Contacts::Gmail)</a><br />
34
+ <a href="classes/Contacts/Hotmail.html#M000012">real_connect (Contacts::Hotmail)</a><br />
34
35
  </div>
35
36
  </div>
36
37
  </body>
data/lib/contacts/base.rb CHANGED
@@ -8,7 +8,7 @@ require "thread"
8
8
 
9
9
  class Contacts
10
10
  TYPES = {}
11
- VERSION = "1.0.3"
11
+ VERSION = "1.0.4"
12
12
 
13
13
  class Base
14
14
  def initialize(login, password)
@@ -73,6 +73,10 @@ class Contacts
73
73
  self.class.const_get(:CONTACT_LIST_URL)
74
74
  end
75
75
 
76
+ def address_book_url
77
+ self.class.const_get(:ADDRESS_BOOK_URL)
78
+ end
79
+
76
80
  def open_http(url)
77
81
  c = @connections[Thread.current.object_id] ||= {}
78
82
  http = c["#{url.host}:#{url.port}"]
@@ -4,6 +4,7 @@ class Contacts
4
4
  class Yahoo < Base
5
5
  URL = "http://mail.yahoo.com/"
6
6
  LOGIN_URL = "https://login.yahoo.com/config/login"
7
+ ADDRESS_BOOK_URL = "http://address.mail.yahoo.com/?1&VPC=import_export"
7
8
  CONTACT_LIST_URL = "http://address.yahoo.com/index.php?VPC=import_export&A=B&submit[action_export_yahoo]=Export%20Now"
8
9
  PROTOCOL_ERROR = "Yahoo has changed its protocols, please upgrade this library first. If that does not work, contact lucas@rufy.com with this error"
9
10
 
@@ -34,6 +35,37 @@ class Contacts
34
35
  @cookies = cookies
35
36
  end
36
37
 
38
+ def contacts
39
+ return @contacts if @contacts
40
+ if connected?
41
+ # first, get the addressbook site with the new crumb parameter
42
+ url = URI.parse(address_book_url)
43
+ http = open_http(url)
44
+ resp, data = http.get("#{url.path}?#{url.query}",
45
+ "Cookie" => @cookies
46
+ )
47
+
48
+ if resp.code_type != Net::HTTPOK
49
+ raise ConnectionError, self.class.const_get(:PROTOCOL_ERROR)
50
+ end
51
+
52
+ crumb = data.to_s[/id="crumb2" value="(.*?)"/][19...-1]
53
+
54
+ # now proceed with the new ".crumb" parameter to get the csv data
55
+ url = URI.parse("#{contact_list_url}&.crumb=#{crumb}")
56
+ http = open_http(url)
57
+ resp, data = http.get("#{url.path}?#{url.query}",
58
+ "Cookie" => @cookies
59
+ )
60
+
61
+ if resp.code_type != Net::HTTPOK
62
+ raise ConnectionError, self.class.const_get(:PROTOCOL_ERROR)
63
+ end
64
+
65
+ parse data
66
+ end
67
+ end
68
+
37
69
  private
38
70
 
39
71
  def parse(data)
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: contacts
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.3
7
- date: 2007-06-04 00:00:00 -07:00
6
+ version: 1.0.4
7
+ date: 2007-08-28 00:00:00 -07:00
8
8
  summary: Ridiculously easy contact list information from various providers including Yahoo, Gmail, and Hotmail
9
9
  require_paths:
10
10
  - lib
@@ -61,15 +61,16 @@ files:
61
61
  - doc/classes/Contacts/TypeNotFound.html
62
62
  - doc/classes/Contacts/Yahoo.html
63
63
  - doc/classes/Contacts/Yahoo.src
64
- - doc/classes/Contacts/Base.src/M000005.html
65
64
  - doc/classes/Contacts/Base.src/M000006.html
66
65
  - doc/classes/Contacts/Base.src/M000007.html
67
66
  - doc/classes/Contacts/Base.src/M000008.html
68
67
  - doc/classes/Contacts/Base.src/M000009.html
69
68
  - doc/classes/Contacts/Base.src/M000010.html
70
- - doc/classes/Contacts/Gmail.src/M000004.html
71
- - doc/classes/Contacts/Hotmail.src/M000011.html
69
+ - doc/classes/Contacts/Base.src/M000011.html
70
+ - doc/classes/Contacts/Gmail.src/M000005.html
71
+ - doc/classes/Contacts/Hotmail.src/M000012.html
72
72
  - doc/classes/Contacts/Yahoo.src/M000003.html
73
+ - doc/classes/Contacts/Yahoo.src/M000004.html
73
74
  - doc/classes/Contacts.src/M000001.html
74
75
  - doc/classes/Contacts.src/M000002.html
75
76
  - doc/files/lib