Session ID class for in Arrow::Session objects.
Create a new Arrow::Session::Id object for the given request (an Apache::Request) of the type specified by uri.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 53
53: def self::create( uri, request, idstring=nil )
54: uri = Arrow::Session.parse_uri( uri ) if uri.is_a?( String )
55: super( uri.scheme.dup, uri, request, idstring )
56: end
Returns the Array of directories to search for derivatives; part of the PluginFactory interface.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 46
46: def self::derivativeDirs
47: [ 'arrow/session', 'arrow/session/id' ]
48: end
Generate a new id string for the given request.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 60
60: def self::generate( uri, request )
61: raise NotImplementedError, "%s does not implement #generate" %
62: self.name
63: end
Create a new Arrow::Session::Id object. If the idstring is given, it will be used as the unique key for this session. If it is not specified, a new one will be generated.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 82
82: def initialize( uri, request, idstring=nil )
83: @new = true
84:
85: if idstring
86: self.log.debug "Validating id %p" % [ idstring ]
87: @str = self.class.validate( uri, idstring )
88: self.log.debug " validation %s" % [ @str ? "succeeded" : "failed" ]
89: @new = false
90: end
91:
92: @str ||= self.class.generate( uri, request )
93: super()
94: end
Validate the given idstring, returning an untainted copy of it if it‘s valid, or nil if it‘s not.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 68
68: def self::validate( uri, idstring )
69: raise NotImplementedError, "%s does not implement #validate" %
70: self.name
71: end
--- SEC00107
--- ""
---
- methods:
- visibility: public
aref: M000106
name: create
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 53</span>\n\
53: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">create</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span>, <span class=\"ruby-identifier\">idstring</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\
54: <span class=\"ruby-identifier\">uri</span> = <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Session</span>.<span class=\"ruby-identifier\">parse_uri</span>( <span class=\"ruby-identifier\">uri</span> ) <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">String</span> )\n\
55: <span class=\"ruby-keyword kw\">super</span>( <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">scheme</span>.<span class=\"ruby-identifier\">dup</span>, <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span>, <span class=\"ruby-identifier\">idstring</span> )\n\
56: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Create a <a href="Id.html#M000109">new</a> <a
href="Id.html">Arrow::Session::Id</a> object for the given <tt>request</tt>
(an <a href="../../Apache/Request.html">Apache::Request</a>) of the type
specified by <tt>uri</tt>.
</p>
params: ( uri, request, idstring=nil )
- visibility: public
aref: M000105
name: derivativeDirs
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 46</span>\n\
46: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">derivativeDirs</span>\n\
47: [ <span class=\"ruby-value str\">'arrow/session'</span>, <span class=\"ruby-value str\">'arrow/session/id'</span> ]\n\
48: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns the Array of directories to search for derivatives; part of the
PluginFactory interface.
</p>
params: ()
- visibility: public
aref: M000107
name: generate
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 60</span>\n\
60: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">generate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span> )\n\
61: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">NotImplementedError</span>, <span class=\"ruby-value str\">"%s does not implement #generate"</span> <span class=\"ruby-operator\">%</span>\n\
62: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>\n\
63: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Generate a <a href="Id.html#M000109">new</a> id string for the given
<tt>request</tt>.
</p>
params: ( uri, request )
- visibility: public
aref: M000109
name: new
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 82</span>\n\
82: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span>, <span class=\"ruby-identifier\">idstring</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\
83: <span class=\"ruby-ivar\">@new</span> = <span class=\"ruby-keyword kw\">true</span>\n\
84: \n\
85: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">idstring</span>\n\
86: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">log</span>.<span class=\"ruby-identifier\">debug</span> <span class=\"ruby-value str\">"Validating id %p"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-identifier\">idstring</span> ]\n\
87: <span class=\"ruby-ivar\">@str</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">validate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">idstring</span> )\n\
88: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">log</span>.<span class=\"ruby-identifier\">debug</span> <span class=\"ruby-value str\">" validation %s"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-ivar\">@str</span> <span class=\"ruby-operator\">?</span> <span class=\"ruby-value str\">"succeeded"</span> <span class=\"ruby-operator\">:</span> <span class=\"ruby-value str\">"failed"</span> ]\n\
89: <span class=\"ruby-ivar\">@new</span> = <span class=\"ruby-keyword kw\">false</span>\n\
90: <span class=\"ruby-keyword kw\">end</span>\n\
91: \n\
92: <span class=\"ruby-ivar\">@str</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">generate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span> )\n\
93: <span class=\"ruby-keyword kw\">super</span>()\n\
94: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Create a <a href="Id.html#M000109">new</a> <a
href="Id.html">Arrow::Session::Id</a> object. If the <tt>idstring</tt> is
given, it will be used as the unique key for this session. If it is not
specified, a <a href="Id.html#M000109">new</a> one will be generated.
</p>
params: ( uri, request, idstring=nil )
- visibility: public
aref: M000108
name: validate
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 68</span>\n\
68: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">validate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">idstring</span> )\n\
69: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">NotImplementedError</span>, <span class=\"ruby-value str\">"%s does not implement #validate"</span> <span class=\"ruby-operator\">%</span>\n\
70: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>\n\
71: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Validate the given <tt>idstring</tt>, returning an untainted copy of it if
it‘s valid, or <tt>nil</tt> if it‘s not.
</p>
params: ( uri, idstring )
category: Class
type: Public
- methods:
- visibility: public
aref: M000111
name: new?
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 110</span>\n\
110: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">new?</span>\n\
111: <span class=\"ruby-ivar\">@new</span> <span class=\"ruby-operator\">?</span> <span class=\"ruby-keyword kw\">true</span> <span class=\"ruby-operator\">:</span> <span class=\"ruby-keyword kw\">false</span>\n\
112: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns <tt>true</tt> if the id was generated for this request as opposed
to being fetched from a cookie or the URL.
</p>
params: ()
- visibility: public
aref: M000110
name: to_s
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/id.rb, line 103</span>\n\
103: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">to_s</span>\n\
104: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-ivar\">@str</span>\n\
105: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Return the id as a String.
</p>
params: ()
category: Instance
type: Public
---
---
- name: SVNRev
desc: |+
SVN Revision
value: "%q$Rev: 437 $"
- name: SVNId
desc: |+
SVN <a href="Id.html">Id</a>
value: "%q$Id: id.rb 437 2008-03-28 00:49:20Z deveiant $"
Generated with the Darkfish Rdoc Generator.