/[hyperestraier]/upstream/0.5.3/doc/rbapidoc/classes/Estraier/Node.src/M000019.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /upstream/0.5.3/doc/rbapidoc/classes/Estraier/Node.src/M000019.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10 - (show annotations)
Wed Aug 3 15:25:48 2005 UTC (18 years, 9 months ago) by dpavlin
File MIME type: text/html
File size: 13599 byte(s)
import of upstream 0.5.3

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>search (Estraier::Node)</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 estraier.rb, line 581</span>
14 <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">cond</span>, <span class="ruby-identifier">depth</span>)
15 <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">cond</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">Condition</span>, <span class="ruby-identifier">depth</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
16 <span class="ruby-ivar">@status</span> = <span class="ruby-value">-1</span>
17 <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@url</span>
18 <span class="ruby-identifier">turl</span> = <span class="ruby-ivar">@url</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/search&quot;</span>
19 <span class="ruby-identifier">reqheads</span> = [ <span class="ruby-value str">&quot;Content-Type: application/x-www-form-urlencoded&quot;</span> ]
20 <span class="ruby-identifier">reqheads</span>.<span class="ruby-identifier">push</span>(<span class="ruby-value str">&quot;Authorization: Basic &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">base_encode</span>(<span class="ruby-ivar">@auth</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@auth</span>
21 <span class="ruby-identifier">reqbody</span> = <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">cond_to_query</span>(<span class="ruby-identifier">cond</span>, <span class="ruby-identifier">depth</span>)
22 <span class="ruby-identifier">resbody</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
23 <span class="ruby-identifier">rv</span> = <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">shuttle_url</span>(<span class="ruby-identifier">turl</span>, <span class="ruby-ivar">@pxhost</span>, <span class="ruby-ivar">@pxport</span>, <span class="ruby-ivar">@timeout</span>, <span class="ruby-identifier">reqheads</span>, <span class="ruby-identifier">reqbody</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">resbody</span>)
24 <span class="ruby-ivar">@status</span> = <span class="ruby-identifier">rv</span>
25 <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rv</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
26 <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">resbody</span>.<span class="ruby-identifier">string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\n/</span>)
27 <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
28 <span class="ruby-identifier">docs</span> = []
29 <span class="ruby-identifier">hints</span> = {}
30 <span class="ruby-identifier">nres</span> = <span class="ruby-constant">NodeResult</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">docs</span>, <span class="ruby-identifier">hints</span>)
31 <span class="ruby-identifier">border</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-value">0</span>]
32 <span class="ruby-identifier">isend</span> = <span class="ruby-keyword kw">false</span>
33 <span class="ruby-identifier">lnum</span> = <span class="ruby-value">1</span>
34 <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">lnum</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">length</span>
35 <span class="ruby-identifier">line</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">lnum</span>]
36 <span class="ruby-identifier">lnum</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
37 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">border</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">border</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
38 <span class="ruby-identifier">isend</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-identifier">border</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">...</span><span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;:END&quot;</span>
39 <span class="ruby-keyword kw">break</span>
40 <span class="ruby-keyword kw">end</span>
41 <span class="ruby-identifier">lidx</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;\t&quot;</span>)
42 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lidx</span>
43 <span class="ruby-identifier">key</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">lidx</span>]
44 <span class="ruby-identifier">value</span> = <span class="ruby-identifier">line</span>[(<span class="ruby-identifier">lidx</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)<span class="ruby-operator">...</span><span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span>]
45 <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
46 <span class="ruby-keyword kw">end</span>
47 <span class="ruby-keyword kw">end</span>
48 <span class="ruby-identifier">snum</span> = <span class="ruby-identifier">lnum</span>
49 <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">isend</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">lnum</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">length</span>
50 <span class="ruby-identifier">line</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">lnum</span>]
51 <span class="ruby-identifier">lnum</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
52 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">border</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">border</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
53 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lnum</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">snum</span>
54 <span class="ruby-identifier">rdattrs</span> = {}
55 <span class="ruby-identifier">sb</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
56 <span class="ruby-identifier">rlnum</span> = <span class="ruby-identifier">snum</span>
57 <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">rlnum</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">lnum</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
58 <span class="ruby-identifier">rdline</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">rlnum</span>]
59 <span class="ruby-identifier">rlnum</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
60 <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rdline</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
61 <span class="ruby-identifier">lidx</span> = <span class="ruby-identifier">rdline</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;=&quot;</span>)
62 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lidx</span>
63 <span class="ruby-identifier">key</span> = <span class="ruby-identifier">rdline</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">lidx</span>]
64 <span class="ruby-identifier">value</span> = <span class="ruby-identifier">rdline</span>[(<span class="ruby-identifier">lidx</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)<span class="ruby-operator">...</span><span class="ruby-identifier">rdline</span>.<span class="ruby-identifier">length</span>]
65 <span class="ruby-identifier">rdattrs</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
66 <span class="ruby-keyword kw">end</span>
67 <span class="ruby-keyword kw">end</span>
68 <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">rlnum</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">lnum</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
69 <span class="ruby-identifier">rdline</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">rlnum</span>]
70 <span class="ruby-identifier">rlnum</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
71 <span class="ruby-identifier">sb</span>.<span class="ruby-identifier">printf</span>(<span class="ruby-value str">&quot;%s\n&quot;</span>, <span class="ruby-identifier">rdline</span>)
72 <span class="ruby-keyword kw">end</span>
73 <span class="ruby-identifier">rduri</span> = <span class="ruby-identifier">rdattrs</span>[<span class="ruby-value str">&quot;@uri&quot;</span>]
74 <span class="ruby-identifier">rdsnippet</span> = <span class="ruby-identifier">sb</span>.<span class="ruby-identifier">string</span>
75 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rduri</span>
76 <span class="ruby-identifier">rdoc</span> = <span class="ruby-constant">ResultDocument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rduri</span>, <span class="ruby-identifier">rdattrs</span>, <span class="ruby-identifier">rdsnippet</span>)
77 <span class="ruby-identifier">docs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">rdoc</span>)
78 <span class="ruby-keyword kw">end</span>
79 <span class="ruby-keyword kw">end</span>
80 <span class="ruby-identifier">snum</span> = <span class="ruby-identifier">lnum</span>
81 <span class="ruby-identifier">isend</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-identifier">border</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">...</span><span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;:END&quot;</span>
82 <span class="ruby-keyword kw">end</span>
83 <span class="ruby-keyword kw">end</span>
84 <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">isend</span>
85 <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nres</span>
86 <span class="ruby-keyword kw">end</span></pre>
87 </body>
88 </html>

  ViewVC Help
Powered by ViewVC 1.1.26