Returns strongly connected components as an array of arrays of nodes. The array is sorted from children to parents. Each elements of the array represents a strongly connected component.
class G include TSort def initialize(g) @g = g end def tsort_each_child(n, &b) @g[n].each(&b) end def tsort_each_node(&b) @g.each_key(&b) end end graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}) p graph.strongly_connected_components #=> [[4], [2], [3], [1]] graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}) p graph.strongly_connected_components #=> [[4], [2, 3], [1]]
Returns strongly connected components as an array of arrays of nodes. The array is sorted from children to parents. Each elements of the array represents a strongly connected component.
The graph is represented by each_node and each_child. each_node should have call
method which yields for each node in the graph. each_child should have call
method which takes a node argument and yields for each child node.
g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]} each_node = lambda {|&b| g.each_key(&b) } each_child = lambda {|n, &b| g[n].each(&b) } p TSort.strongly_connected_components(each_node, each_child) #=> [[4], [2], [3], [1]] g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]} each_node = lambda {|&b| g.each_key(&b) } each_child = lambda {|n, &b| g[n].each(&b) } p TSort.strongly_connected_components(each_node, each_child) #=> [[4], [2, 3], [1]]
Generates a random prime number of bit length bits. If safe is set to true
, generates a safe prime. If add is specified, generates a prime that fulfills condition p % add = rem
.
true if this object uses STARTTLS.
Parses arg
and returns rest of arg
and matched portion to the argument pattern. Yields when the pattern doesn’t match substring.
@return the current line in the source
@return the current line in the source
Returns a valid argument to make_expires
and the renewer or nil.
Given true
, nil
, or Numeric
, returns that value and nil
(no actual renewer). Otherwise it returns an expiry value from calling it.renew
and the renewer.
Builds and installs indices.
returns an integer in (-infty, 0] a number closer to 0 means the dependency is less constraining
dependencies w/ 0 or 1 possibilities (ignoring version requirements) are given very negative values, so they always sort first, before dependencies that are unconstrained
returns an Array of the components defined from the COMPONENT
Array
Returns the one-character string which cause Encoding::UndefinedConversionError
.
ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP") begin ec.convert("\xa0") rescue Encoding::UndefinedConversionError puts $!.error_char.dump #=> "\xC2\xA0" p $!.error_char.encoding #=> #<Encoding:UTF-8> end
Any parameters specified for the content type, returned as a Hash
. For example, a header of Content-Type: text/html; charset=EUC-JP would result in type_params
returning {‘charset’ => ‘EUC-JP’}
Enumerates the parents of directory
.
This format specification is a subset of mod_log_config of Apache:
Remote IP address
Total response size
Given variable in ENV
Response filename
Remote host name
Given request header
Remote logname, always “-”
Request method
Given request attribute from req.attributes
Given response header
Server’s request port
The canonical port of the server serving the request or the actual port or the client’s actual port. Valid formats are canonical, local or remote.
Request query string
First line of the request
Request status
Time
the request was received
Time
taken to process the request
Remote user from auth
Unparsed URI
Literal %
Creates a new DH
instance from scratch by generating the private and public components alike.
size is an integer representing the desired key size. Keys smaller than 1024 bits should be considered insecure.
generator is a small number > 1, typically 2 or 5.