/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 dpavlin 10 <?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