🐐 GOAT Shell

Current path: tmp/



⬆️ Go up:

📄 Viewing: phpq51tdK

#!/opt/alt/ruby18/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rack' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/
    version = $1
    ARGV.shift
  end
end

gem 'rack', version
load Gem.bin_path('rack', 'rackup', version)
#!/opt/alt/ruby18/bin/ruby
# usage:
#
#   ri  name...
#
# where name can be 
#
#   Class | Class::method | Class#method | Class.method | method
#
# All names may be abbreviated to their minimum unbiguous form. If a name
# _is_ ambiguous, all valid options will be listed.
#
# The form '.' method matches either class or instance methods, while 
# #method matches only instance and ::method matches only class methods.
#
#
# == Installing Documentation
#
# 'ri' uses a database of documentation built by the RDoc utility.
# 
# So, how do you install this documentation on your system?
# It depends on how you installed Ruby.
#
# <em>If you installed Ruby from source files</em> (that is, if it some point
# you typed 'make' during the process :), you can install the RDoc
# documentation yourself. Just go back to the place where you have 
# your Ruby source and type
#
#    make install-doc
#
# You'll probably need to do this as a superuser, as the documentation
# is installed in the Ruby target tree (normally somewhere under 
# <tt>/usr/local</tt>.
#
# <em>If you installed Ruby from a binary distribution</em> (perhaps
# using a one-click installer, or using some other packaging system),
# then the team that produced the package probably forgot to package
# the documentation as well. Contact them, and see if they can add
# it to the next release.
#


require 'rdoc/ri/ri_driver'

######################################################################

ri = RiDriver.new
ri.process_args

#!/opt/alt/ruby18/bin/ruby
#
#  RDoc: Documentation tool for source code
#        (see lib/rdoc/rdoc.rb for more information)
#
#  Copyright (c) 2003 Dave Thomas
#  Released under the same terms as Ruby
#
#  $Revision: 11708 $

## Transitional Hack ####
#
#  RDoc was initially distributed independently, and installed
#  itself into <prefix>/lib/ruby/site_ruby/<ver>/rdoc...
#
#  Now that RDoc is part of the distribution, it's installed into
#  <prefix>/lib/ruby/<ver>, which unfortunately appears later in the
#  search path. This means that if you have previously installed RDoc,
#  and then install from ruby-lang, you'll pick up the old one by
#  default. This hack checks for the condition, and readjusts the
#  search path if necessary.

def adjust_for_existing_rdoc(path)
  
  $stderr.puts %{
  It seems as if you have a previously-installed RDoc in
  the directory #{path}.

  Because this is now out-of-date, you might want to consider
  removing the directories:

    #{File.join(path, "rdoc")}

  and

    #{File.join(path, "markup")}

  }

  # Move all the site_ruby directories to the end
  p $:
  $:.replace($:.partition {|path| /site_ruby/ !~ path}.flatten)
  p $:
end

$:.each do |path|
  if /site_ruby/ =~ path 
    rdoc_path = File.join(path, 'rdoc', 'rdoc.rb')
    if File.exists?(rdoc_path)
      adjust_for_existing_rdoc(path)
      break
    end
  end
end

## End of Transitional Hack ##


require 'rdoc/rdoc'

begin
  r = RDoc::RDoc.new
  r.document(ARGV)
rescue RDoc::RDocError => e
  $stderr.puts e.message
  exit(1)
end
#!/opt/alt/ruby18/bin/ruby
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

# The prelude in 1.9.1 injects rubygems.rb into $LOADED_FEATURES
# which prevents the `require 'rubygems'` from actually loading
# the site's version of rubygems. So we have to use it's API
# to get it's prelude out of the way.
#
if RUBY_VERSION =~ /^1\.9\.1/ && defined?(Gem::QuickLoader)
  Gem::QuickLoader.load_full_rubygems_library
end

require 'rubygems'
require 'rubygems/gem_runner'
require 'rubygems/exceptions'

required_version = Gem::Requirement.new ">= 1.8.7"

unless required_version.satisfied_by? Gem.ruby_version then
  abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"
end

args = ARGV.clone

begin
  Gem::GemRunner.new.run args
rescue Gem::SystemExitException => e
  exit e.exit_code
end

#!/opt/alt/ruby18/bin/ruby
# Tiny eRuby --- ERB2
# Copyright (c) 1999-2000,2002 Masatoshi SEKI 
# You can redistribute it and/or modify it under the same terms as Ruby.

require 'erb'

class ERB
  module Main
    def ARGV.switch
      return nil if self.empty?
      arg = self.shift
      return nil if arg == '--'
      if arg =~ /^-(.)(.*)/
        return arg if $1 == '-'
        raise 'unknown switch "-"' if $2.index('-')
        self.unshift "-#{$2}" if $2.size > 0
        "-#{$1}"
      else
        self.unshift arg
        nil
      end
    end
    
    def ARGV.req_arg
      self.shift || raise('missing argument')
    end

    def trim_mode_opt(trim_mode, disable_percent)
      return trim_mode if disable_percent
      case trim_mode
      when 0
        return '%'
      when 1
        return '%>'
      when 2
        return '%<>'
      when '-'
        return '%-'
      end
    end
    module_function :trim_mode_opt

    def run(factory=ERB)
      trim_mode = 0
      disable_percent = false
      begin
        while switch = ARGV.switch
          case switch
          when '-x'                        # ruby source
            output = true
          when '-n'                        # line number
            number = true
          when '-v'                        # verbose
            $VERBOSE = true
          when '--version'                 # version
            STDERR.puts factory.version
            exit
          when '-d', '--debug'             # debug
            $DEBUG = true
          when '-r'                        # require
            require ARGV.req_arg
          when '-S'                        # security level
            arg = ARGV.req_arg
            raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/
            safe_level = arg.to_i
          when '-T'                        # trim mode
            arg = ARGV.req_arg
            if arg == '-'
              trim_mode = arg 
              next
            end
            raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/
            trim_mode = arg.to_i
          when '-K'                        # KCODE
            arg = ARGV.req_arg
            case arg.downcase
            when 'e', '-e', 'euc'
              $KCODE = 'EUC'
            when 's', '-s', 'sjis'
              $KCODE = 'SJIS'
            when 'u', '-u', 'utf8'
              $KCODE = 'UTF8'
            when 'n', '-n', 'none'
              $KCODE = 'NONE'
            else
              raise "invalid KCODE #{arg.dump}"
            end
          when '-P'
            disable_percent = true
          when '--help'
            raise "print this help"
          else
            raise "unknown switch #{switch.dump}"
          end
        end
      rescue                               # usage
        STDERR.puts $!.to_s
        STDERR.puts File.basename($0) + 
          " [switches] [inputfile]"
        STDERR.puts <<EOU
  -x               print ruby script
  -n               print ruby script with line number
  -v               enable verbose mode
  -d               set $DEBUG to true
  -r [library]     load a library
  -K [kcode]       specify KANJI code-set
  -S [safe_level]  set $SAFE (0..4)
  -T [trim_mode]   specify trim_mode (0..2, -)
  -P               ignore lines which start with "%"
EOU
        exit 1
      end

      src = $<.read
      filename = $FILENAME
      exit 2 unless src
      trim = trim_mode_opt(trim_mode, disable_percent)
      erb = factory.new(src.untaint, safe_level, trim)
      erb.filename = filename
      if output
        if number
          l = 1
          for line in erb.src
            puts "%3d %s"%[l, line]
            l += 1
          end
        else
          puts erb.src
        end
      else
        erb.run(TOPLEVEL_BINDING.taint)
      end
    end
    module_function :run
  end
end

if __FILE__ == $0
  ERB::Main.run
end
#!/opt/alt/ruby18/bin/ruby
#
#   irb.rb - intaractive ruby
#   	$Release Version: 0.9.5 $
#   	$Revision: 11708 $
#   	$Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#

require "irb"

if __FILE__ == $0
  IRB.start(__FILE__)
else
  # check -e option
  if /^-e$/ =~ $0
    IRB.start(__FILE__)
  else
    IRB.setup(__FILE__)
  end
end
#!/opt/alt/ruby18/bin/ruby
require 'test/unit'
(r = Test::Unit::AutoRunner.new(true)).process_args(ARGV) or
  abort r.options.banner + " tests..."
exit r.run
ELF>�@@@8@@@@@@hh��@�@@@�� �
�
`�
`�� �
�
`�
`@@��@�@  ��@�@DDS�td��@�@  P�td8
8
@8
@DDQ�tdR�td�
�
`�
`pp/lib64/ld-linux-x86-64.so.2GNU�GNUGNU͝Q�{,Jռ7/�~�H��c	�Q! e�(	BE��j	Cֻ�|:��K����2b���qXk�|
� �U, bk{; �<`8`�@`	 8`(
@#�	@e
�@/�<`�p@;�
@libruby.so.1.8_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableruby_optionsruby_runruby_init_stackruby_initlibpthread.so.0librt.so.1libdl.so.2libcrypt.so.1libm.so.6libc.so.6__libc_start_main_edata__bss_start_end__libc_csu_fini__data_start_IO_stdin_used__libc_csu_initGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby18/lib64�ui	3�`�`�`�`` `(`0`��H��H�! H��t��H����5" �%# ��h�������h��������h�������h��������%� D���%� D���%� D���%� D��UH��S��H��dH�%(H�D$1�H���������H���������D��1�I��^H��H���PTI�
@H��	@H��p@�
 ����f.��H�=I H�B H9�tH�� H��t	�����H�= H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� uUH���z����� ]�ff.�@���f.���AWI��AVI��AUA��ATL�%� UH�-� SL)�H�����H��t1��L��L��D��A��H��H9�u�H��[]A\A]A^A_�ff.������H��H���;D����������8����x���`����th�������0zRx����/D0,���$D���PFJw�?:*3$"l@���@�h���;E�D�F0D�x���eF�E�E �E(�H0�H8�G@n8A0A(B BBB������	@`	@������?�@

@�
`�
`���o0@H@�@
l```@@`	���o�@���o�o�@�
`�@@@ @GA$3a1�@%
@GA$3p1067p@
@GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*GOW*�p@�@GA*GOW*�	@
@GA+GLIBCXX_ASSERTIONS�@
@
GA*FORTIFY��@�@
GA*FORTIFY�	@
@ruby-1.8.7-16.el8.x86_64.debugai�4�7zXZ�ִF!t/���a]?�E�h=��ڊ̓�N���ˢ�)X�٩�0���]QQ$W)w,ʐ�;y�4ʒ�+},�����!�t����E���C����~�U���6aDi��Pk=�k�4���1%�/;n�r�b�sC�K.aQ���eN�Ե#*�>�77��!��@�L˒~��
���|����*]�:�3�{�Lה�N5׹�	�'�z�ct�ZI���?�RZ����9%
#������d"\�[���Bv��>��+*�9ͤ$����d:�1)R)�<#�F�z�o\r��[l�J�@m�+?�� N��
�b` ��GoQ��䒅�։����VH7��Ŗ_��д���d���d���	V��FZ�����'��~7!_֕{>���F!�W�	dߧe�渎�I�d{f����9B�5(�ܞ�:Vm<�h?R��/�	�n�!ј �*7�:@n��L���g#��_�h��_�i��T}knv�i�#T�}#nT �#���q�9�#�( d���‚��@A�mwoRTcE�0�U�P�(`')=�
շ��
W�A|������6D��v^Ev�j�Ǒ܊X�J�!�]\XZ�C���.l!$� ܧC�`=���a4	��ȥ6U
�b���+��rWM�$;��T�XEJ�Ǧ�-�)¥9� ��`��>a'�y���4_�`�Ƣ���S��F�3�G��o��z�"c���D_�I�L▬i�k��Ӗ�C��1f�1������}f+��(x��zR�R�?3|��΁e,�l`<=`_�-�joH����h���!��mp#�V�T�c8�(p�
��o�b_O��#m�~��
��["�+�tJw<o��I��t���nv7Ա�g�YZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata�@��@� &�@� 4@$G���o0@0LQ�@��YH@Hla���o�@�&n���o�@� }@`�B`@``��@���@�P�0@0@�p@p��
@

�(
@(
�8
@8
D��
@�
��
`�
��
`�
��
`�
@��`� �`8�8`8<`<@�<��$+��:.\" README.EXT -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995

This document explains how to make extension libraries for Ruby.

1. Basic knowledge

In C, variables have types and data do not have types.  In contrast,
Ruby variables do not have a static type, and data themselves have
types, so data will need to be converted between the languages.

Data in Ruby are represented by the C type `VALUE'.  Each VALUE data
has its data-type.

To retrieve C data from a VALUE, you need to:

 (1) Identify the VALUE's data type
 (2) Convert the VALUE into C data

Converting to the wrong data type may cause serious problems.


1.1 Data-types

The Ruby interpreter has the following data types:

	T_NIL		nil
	T_OBJECT	ordinary object
	T_CLASS		class
	T_MODULE	module
	T_FLOAT		floating point number
	T_STRING	string
	T_REGEXP	regular expression
	T_ARRAY		array
	T_FIXNUM	Fixnum(31bit integer)
	T_HASH		associative array
	T_STRUCT	(Ruby) structure
	T_BIGNUM	multi precision integer
	T_FILE		IO
	T_TRUE		true
	T_FALSE		false
	T_DATA		data
	T_SYMBOL        symbol

In addition, there are several other types used internally:

	T_ICLASS
	T_MATCH
	T_UNDEF
	T_VARMAP
	T_SCOPE
	T_NODE

Most of the types are represented by C structures.

1.2 Check Data Type of the VALUE

The macro TYPE() defined in ruby.h shows the data type of the VALUE.
TYPE() returns the constant number T_XXXX described above.  To handle
data types, your code will look something like this:

  switch (TYPE(obj)) {
    case T_FIXNUM:
      /* process Fixnum */
      break;
    case T_STRING:
      /* process String */
      break;
    case T_ARRAY:
      /* process Array */
      break;
    default:
      /* raise exception */
      rb_raise(rb_eTypeError, "not valid value");
      break;
  }

There is the data-type check function

  void Check_Type(VALUE value, int type)

which raises an exception if the VALUE does not have the type specified.

There are also faster check macros for fixnums and nil.

  FIXNUM_P(obj)
  NIL_P(obj)

1.3 Convert VALUE into C data

The data for type T_NIL, T_FALSE, T_TRUE are nil, true, false
respectively.  They are singletons for the data type.

The T_FIXNUM data is a 31bit length fixed integer (63bit length on
some machines), which can be converted to a C integer by using the
FIX2INT() macro.  There is also NUM2INT() which converts any Ruby
numbers into C integers.  The NUM2INT() macro includes a type check, so
an exception will be raised if the conversion failed.  NUM2DBL() can
be used to retrieve the double float value in the same way.

In version 1.7 or later it is recommended that you use the new macros
StringValue() and StringValuePtr() to get a char* from a VALUE.
StringValue(var) replaces var's value with the result of "var.to_str()".
StringValuePtr(var) does same replacement and returns char*
representation of var.  These macros will skip the replacement if var is
a String.  Notice that the macros take only the lvalue as their
argument, to change the value of var in place.

In version 1.6 or earlier, STR2CSTR() was used to do the same thing
but now it is deprecated in version 1.7, because STR2CSTR() has a risk
of a dangling pointer problem in the to_str() impliclit conversion.

Other data types have corresponding C structures, e.g. struct RArray
for T_ARRAY etc. The VALUE of the type which has the corresponding structure
can be cast to retrieve the pointer to the struct.  The casting macro
will be of the form RXXXX for each data type; for instance, RARRAY(obj). 
See "ruby.h".

For example, `RSTRING(str)->len' is the way to get the size of the
Ruby String object.  The allocated region can be accessed by
`RSTRING(str)->ptr'.  For arrays, use `RARRAY(ary)->len' and
`RARRAY(ary)->ptr' respectively.

Notice: Do not change the value of the structure directly, unless you
are responsible for the result.  This ends up being the cause of interesting
bugs.

1.4 Convert C data into VALUE

To convert C data to Ruby values:

  * FIXNUM

    left shift 1 bit, and turn on LSB.

  * Other pointer values

    cast to VALUE.

You can determine whether a VALUE is pointer or not by checking its LSB.  

Notice Ruby does not allow arbitrary pointer values to be a VALUE.  They
should be pointers to the structures which Ruby knows about.  The known
structures are defined in <ruby.h>.

To convert C numbers to Ruby values, use these macros.

  INT2FIX()	for integers within 31bits.
  INT2NUM()	for arbitrary sized integer.

INT2NUM() converts an integer into a Bignum if it is out of the FIXNUM
range, but is a bit slower.

1.5 Manipulating Ruby data

As I already mentioned, it is not recommended to modify an object's internal
structure.  To manipulate objects, use the functions supplied by the Ruby
interpreter. Some (not all) of the useful functions are listed below:

 String functions

  rb_str_new(const char *ptr, long len)

    Creates a new Ruby string.

  rb_str_new2(const char *ptr)

    Creates a new Ruby string from a C string.  This is equivalent to
    rb_str_new(ptr, strlen(ptr)).

  rb_tainted_str_new(const char *ptr, long len)

    Creates a new tainted Ruby string.  Strings from external data
    sources should be tainted.

  rb_tainted_str_new2(const char *ptr)

    Creates a new tainted Ruby string from a C string.

  rb_str_cat(VALUE str, const char *ptr, long len)

    Appends len bytes of data from ptr to the Ruby string.

 Array functions

  rb_ary_new()

    Creates an array with no elements.

  rb_ary_new2(long len)

    Creates an array with no elements, allocating internal buffer
    for len elements.

  rb_ary_new3(long n, ...)

    Creates an n-element array from the arguments.

  rb_ary_new4(long n, VALUE *elts)

    Creates an n-element array from a C array.

  rb_ary_push(VALUE ary, VALUE val)
  rb_ary_pop(VALUE ary)
  rb_ary_shift(VALUE ary)
  rb_ary_unshift(VALUE ary, VALUE val)

    Array operations.  The first argument to each functions must be an 
    array.  They may dump core if other types are given.

2. Extending Ruby with C

2.1 Addding new features to Ruby

You can add new features (classes, methods, etc.) to the Ruby
interpreter.  Ruby provides APIs for defining the following things:

 * Classes, Modules
 * Methods, Singleton Methods
 * Constants

2.1.1 Class/module definition

To define a class or module, use the functions below:

  VALUE rb_define_class(const char *name, VALUE super)
  VALUE rb_define_module(const char *name)

These functions return the newly created class or module.  You may
want to save this reference into a variable to use later.

To define nested classes or modules, use the functions below:

  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
  VALUE rb_define_module_under(VALUE outer, const char *name)

2.1.2 Method/singleton method definition

To define methods or singleton methods, use these functions:

  void rb_define_method(VALUE klass, const char *name, 
		        VALUE (*func)(), int argc)

  void rb_define_singleton_method(VALUE object, const char *name, 
			          VALUE (*func)(), int argc)

The `argc' represents the number of the arguments to the C function,
which must be less than 17.  But I doubt you'll need that many.

If `argc' is negative, it specifies the calling sequence, not number of
the arguments.  

If argc is -1, the function will be called as:

  VALUE func(int argc, VALUE *argv, VALUE obj)

where argc is the actual number of arguments, argv is the C array of
the arguments, and obj is the receiver.

If argc is -2, the arguments are passed in a Ruby array. The function
will be called like:

  VALUE func(VALUE obj, VALUE args)

where obj is the receiver, and args is the Ruby array containing
actual arguments.

There are two more functions to define methods.  One is to define
private methods:

  void rb_define_private_method(VALUE klass, const char *name, 
			        VALUE (*func)(), int argc)

The other is to define module functions, which are private AND singleton
methods of the module.  For example, sqrt is the module function
defined in Math module.  It can be called in the following way:

  Math.sqrt(4)

or

  include Math
  sqrt(4)

To define module functions, use:

  void rb_define_module_function(VALUE module, const char *name, 
				 VALUE (*func)(), int argc)

Oh, in addition, function-like methods, which are private methods defined
in the Kernel module, can be defined using:

  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)

To define an alias for the method,

  void rb_define_alias(VALUE module, const char* new, const char* old);

To define and undefine the `allocate' class method,

  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));
  void rb_undef_alloc_func(VALUE klass);

func have to take the klass as the argument and return a newly
allocated instance.  This instance should be empty as possible,
without any expensive (including external) resources.

2.1.3 Constant definition

We have 2 functions to define constants:

  void rb_define_const(VALUE klass, const char *name, VALUE val)
  void rb_define_global_const(const char *name, VALUE val)

The former is to define a constant under specified class/module.  The
latter is to define a global constant.

2.2 Use Ruby features from C

There are several ways to invoke Ruby's features from C code.

2.2.1 Evaluate Ruby Programs in a String

The easiest way to use Ruby's functionality from a C program is to
evaluate the string as Ruby program.  This function will do the job:

  VALUE rb_eval_string(const char *str)

Evaluation is done under the current context, thus current local variables
of the innermost method (which is defined by Ruby) can be accessed.

2.2.2 ID or Symbol

You can invoke methods directly, without parsing the string.  First I need
to explain about ID.  ID is the integer number to represent Ruby's
identifiers such as variable names.  The Ruby data type corresponding to ID
is Symbol.  It can be accessed from Ruby in the form:

 :Identifier

You can get the ID value from a string within C code by using

  rb_intern(const char *name)

You can retrieve ID from Ruby object (Symbol or String) given as an
argument by using

  rb_to_id(VALUE symbol)

You can convert C ID to Ruby Symbol by using

  VALUE ID2SYM(ID id)

and to convert Ruby Symbol object to ID, use

  ID SYM2ID(VALUE symbol)

2.2.3 Invoke Ruby method from C

To invoke methods directly, you can use the function below

  VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)

This function invokes a method on the recv, with the method name
specified by the symbol mid.

2.2.4 Accessing the variables and constants

You can access class variables and instance variables using access
functions.  Also, global variables can be shared between both environments.
There's no way to access Ruby's local variables.

The functions to access/modify instance variables are below:

  VALUE rb_ivar_get(VALUE obj, ID id)
  VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)

id must be the symbol, which can be retrieved by rb_intern().

To access the constants of the class/module:

  VALUE rb_const_get(VALUE obj, ID id)

See 2.1.3 for defining new constant.

3. Information sharing between Ruby and C

3.1 Ruby constants that C can be accessed from C

The following Ruby constants can be referred from C.

  Qtrue
  Qfalse

Boolean values.  Qfalse is false in C also (i.e. 0).

  Qnil

Ruby nil in C scope.

3.2 Global variables shared between C and Ruby

Information can be shared between the two environments using shared global
variables.  To define them, you can use functions listed below:

  void rb_define_variable(const char *name, VALUE *var)

This function defines the variable which is shared by both environments.
The value of the global variable pointed to by `var' can be accessed
through Ruby's global variable named `name'.

You can define read-only (from Ruby, of course) variables using the
function below.

  void rb_define_readonly_variable(const char *name, VALUE *var)

You can defined hooked variables.  The accessor functions (getter and
setter) are called on access to the hooked variables.

  void rb_define_hooked_variable(constchar *name, VALUE *var,
				 VALUE (*getter)(), void (*setter)())

If you need to supply either setter or getter, just supply 0 for the
hook you don't need.  If both hooks are 0, rb_define_hooked_variable()
works just like rb_define_variable().

  void rb_define_virtual_variable(const char *name,
				  VALUE (*getter)(), void (*setter)())

This function defines a Ruby global variable without a corresponding C
variable.  The value of the variable will be set/get only by hooks.

The prototypes of the getter and setter functions are as follows:

  (*getter)(ID id, void *data, struct global_entry* entry);
  (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);

3.3 Encapsulate C data into a Ruby object

To wrap and objectify a C pointer as a Ruby object (so called
DATA), use Data_Wrap_Struct().

  Data_Wrap_Struct(klass, mark, free, ptr)

Data_Wrap_Struct() returns a created DATA object.  The klass argument
is the class for the DATA object.  The mark argument is the function
to mark Ruby objects pointed by this data.  The free argument is the
function to free the pointer allocation.  If this is -1, the pointer
will be just freed.  The functions mark and free will be called from
garbage collector.

You can allocate and wrap the structure in one step.

  Data_Make_Struct(klass, type, mark, free, sval)

This macro returns an allocated Data object, wrapping the pointer to
the structure, which is also allocated.  This macro works like:

  (sval = ALLOC(type), Data_Wrap_Struct(klass, mark, free, sval))

Arguments klass, mark, and free work like their counterparts in
Data_Wrap_Struct().  A pointer to the allocated structure will be
assigned to sval, which should be a pointer of the type specified.

To retrieve the C pointer from the Data object, use the macro
Data_Get_Struct().

  Data_Get_Struct(obj, type, sval)

A pointer to the structure will be assigned to the variable sval.

See the example below for details. 

4. Example - Creating dbm extension

OK, here's the example of making an extension library.  This is the
extension to access DBMs.  The full source is included in the ext/
directory in the Ruby's source tree.

(1) make the directory

  % mkdir ext/dbm

Make a directory for the extension library under ext directory.

(2) design the library

You need to design the library features, before making it.

(3) write C code.

You need to write C code for your extension library.  If your library
has only one source file, choosing ``LIBRARY.c'' as a file name is
preferred.  On the other hand, in case your library has multiple source
files, avoid choosing ``LIBRARY.c'' for a file name.  It may conflict
with an intermediate file ``LIBRARY.o'' on some platforms.

Ruby will execute the initializing function named ``Init_LIBRARY'' in
the library.  For example, ``Init_dbm()'' will be executed when loading
the library.

Here's the example of an initializing function.

--
Init_dbm()
{
    /* define DBM class */
    cDBM = rb_define_class("DBM", rb_cObject);
    /* DBM includes Enumerate module */
    rb_include_module(cDBM, rb_mEnumerable);

    /* DBM has class method open(): arguments are received as C array */
    rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);

    /* DBM instance method close(): no args */
    rb_define_method(cDBM, "close", fdbm_close, 0);
    /* DBM instance method []: 1 argument */
    rb_define_method(cDBM, "[]", fdbm_fetch, 1);
		:

    /* ID for a instance variable to store DBM data */
    id_dbm = rb_intern("dbm");
}
--

The dbm extension wraps the dbm struct in the C environment using 
Data_Make_Struct.

--
struct dbmdata {
    int  di_size;
    DBM *di_dbm;
};


obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
--

This code wraps the dbmdata structure into a Ruby object.  We avoid wrapping
DBM* directly, because we want to cache size information.

To retrieve the dbmdata structure from a Ruby object, we define the
following macro:

--
#define GetDBM(obj, dbmp) {\
    Data_Get_Struct(obj, struct dbmdata, dbmp);\
    if (dbmp->di_dbm == 0) closed_dbm();\
}
--

This sort of complicated macro does the retrieving and close checking for
the DBM.

There are three kinds of way to receive method arguments.  First,
methods with a fixed number of arguments receive arguments like this:

--
static VALUE
fdbm_delete(obj, keystr)
    VALUE obj, keystr;
{
	:
}
--

The first argument of the C function is the self, the rest are the
arguments to the method.

Second, methods with an arbitrary number of arguments receive
arguments like this:

--
static VALUE
fdbm_s_open(argc, argv, klass)
    int argc;
    VALUE *argv;
    VALUE klass;
{
	:
    if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
	mode = 0666;		/* default value */
    }
	:
}
--

The first argument is the number of method arguments, the second
argument is the C array of the method arguments, and the third
argument is the receiver of the method.

You can use the function rb_scan_args() to check and retrieve the
arguments.  For example, "11" means that the method requires at least one
argument, and at most receives two arguments.

Methods with an arbitrary number of arguments can receive arguments
by Ruby's array, like this:

--
static VALUE
fdbm_indexes(obj, args)
    VALUE obj, args;
{
	:
}
--

The first argument is the receiver, the second one is the Ruby array
which contains the arguments to the method.

** Notice

GC should know about global variables which refer to Ruby's objects, but
are not exported to the Ruby world.  You need to protect them by

  void rb_global_variable(VALUE *var)

(4) prepare extconf.rb

If the file named extconf.rb exists, it will be executed to generate
Makefile.

extconf.rb is the file for checking compilation conditions etc.  You
need to put

  require 'mkmf'

at the top of the file.  You can use the functions below to check
various conditions.

  have_library(lib, func): check whether library containing function exists.
  have_func(func, header): check whether function exists
  have_header(header): check whether header file exists
  create_makefile(target): generate Makefile

The value of the variables below will affect the Makefile.

  $CFLAGS: included in CFLAGS make variable (such as -O)
  $CPPFLAGS: included in CPPFLAGS make variable (such as -I, -D)
  $LDFLAGS: included in LDFLAGS make variable (such as -L)
  $objs: list of object file names

Normally, the object files list is automatically generated by searching
source files, but you must define them explicitly if any sources will
be generated while building.

If a compilation condition is not fulfilled, you should not call
``create_makefile''.  The Makefile will not be generated, compilation will
not be done.

(5) prepare depend (optional)

If the file named depend exists, Makefile will include that file to
check dependencies.  You can make this file by invoking

  % gcc -MM *.c > depend

It's harmless.  Prepare it.

(6) generate Makefile

Try generating the Makefile by:

  ruby extconf.rb

If the library should be installed under vendor_ruby directory
instead of site_ruby directory, use --vendor option as follows.

  ruby extconf.rb --vendor

You don't need this step if you put the extension library under the ext
directory of the ruby source tree.  In that case, compilation of the
interpreter will do this step for you.

(7) make

Type

  make

to compile your extension.  You don't need this step either if you have
put the extension library under the ext directory of the ruby source tree.

(8) debug

You may need to rb_debug the extension.  Extensions can be linked
statically by adding the directory name in the ext/Setup file so that
you can inspect the extension with the debugger.

(9) done, now you have the extension library

You can do anything you want with your library.  The author of Ruby
will not claim any restrictions on your code depending on the Ruby API.
Feel free to use, modify, distribute or sell your program.

Appendix A. Ruby source files overview

ruby language core

  class.c
  error.c
  eval.c
  gc.c
  object.c
  parse.y
  variable.c

utility functions

  dln.c
  regex.c
  st.c
  util.c

ruby interpreter implementation

  dmyext.c
  inits.c
  main.c
  ruby.c
  version.c

class library

  array.c
  bignum.c
  compar.c
  dir.c
  enum.c
  file.c
  hash.c
  io.c
  marshal.c
  math.c
  numeric.c
  pack.c
  prec.c
  process.c
  random.c
  range.c
  re.c
  signal.c
  sprintf.c
  string.c
  struct.c
  time.c

Appendix B. Ruby extension API reference

** Types

 VALUE

The type for the Ruby object.  Actual structures are defined in ruby.h,
such as struct RString, etc.  To refer the values in structures, use
casting macros like RSTRING(obj).

** Variables and constants

 Qnil

const: nil object

 Qtrue

const: true object(default true value)

 Qfalse

const: false object

** C pointer wrapping

 Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)

Wrap a C pointer into a Ruby object.  If object has references to other
Ruby objects, they should be marked by using the mark function during
the GC process.  Otherwise, mark should be 0.  When this object is no
longer referred by anywhere, the pointer will be discarded by free
function.

 Data_Make_Struct(klass, type, mark, free, sval)

This macro allocates memory using malloc(), assigns it to the variable
sval, and returns the DATA encapsulating the pointer to memory region.

 Data_Get_Struct(data, type, sval)

This macro retrieves the pointer value from DATA, and assigns it to
the variable sval. 

** Checking data types

TYPE(value)
FIXNUM_P(value)
NIL_P(value)
void Check_Type(VALUE value, int type)
void Check_SafeStr(VALUE value)

** Data type conversion

FIX2INT(value)
INT2FIX(i)
NUM2INT(value)
INT2NUM(i)
NUM2DBL(value)
rb_float_new(f)
StringValue(value)
StringValuePtr(value)
StringValueCStr(value)
rb_str_new2(s)

** defining class/module

 VALUE rb_define_class(const char *name, VALUE super)

Defines a new Ruby class as a subclass of super.

 VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)

Creates a new Ruby class as a subclass of super, under the module's
namespace.

 VALUE rb_define_module(const char *name)

Defines a new Ruby module.

 VALUE rb_define_module_under(VALUE module, const char *name)

Defines a new Ruby module under the module's namespace.

 void rb_include_module(VALUE klass, VALUE module)

Includes module into class.  If class already includes it, just
ignored.

 void rb_extend_object(VALUE object, VALUE module)

Extend the object with the module's attributes.

** Defining Global Variables

 void rb_define_variable(const char *name, VALUE *var)

Defines a global variable which is shared between C and Ruby.  If name
contains a character which is not allowed to be part of the symbol,
it can't be seen from Ruby programs.

 void rb_define_readonly_variable(const char *name, VALUE *var)

Defines a read-only global variable.  Works just like
rb_define_variable(), except the defined variable is read-only.

 void rb_define_virtual_variable(const char *name,
				 VALUE (*getter)(), VALUE (*setter)())

Defines a virtual variable, whose behavior is defined by a pair of C
functions.  The getter function is called when the variable is
referenced.  The setter function is called when the variable is set to a
value.  The prototype for getter/setter functions are:

	VALUE getter(ID id)
	void setter(VALUE val, ID id)

The getter function must return the value for the access.

 void rb_define_hooked_variable(const char *name, VALUE *var,
				VALUE (*getter)(), VALUE (*setter)())

Defines hooked variable.  It's a virtual variable with a C variable.  
The getter is called as

	VALUE getter(ID id, VALUE *var)

returning a new value.  The setter is called as

	void setter(VALUE val, ID id, VALUE *var)

GC requires C global variables which hold Ruby values to be marked.

 void rb_global_variable(VALUE *var)

Tells GC to protect these variables.

** Constant Definition

 void rb_define_const(VALUE klass, const char *name, VALUE val)

Defines a new constant under the class/module.

 void rb_define_global_const(const char *name, VALUE val)

Defines a global constant.  This is just the same as

     rb_define_const(cKernal, name, val)

** Method Definition

 rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

Defines a method for the class.  func is the function pointer.  argc
is the number of arguments.  if argc is -1, the function will receive
3 arguments: argc, argv, and self.  if argc is -2, the function will
receive 2 arguments, self and args, where args is a Ruby array of
the method arguments.

 rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

Defines a private method for the class.  Arguments are same as
rb_define_method().

 rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

Defines a singleton method.  Arguments are same as rb_define_method().

 rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)

Retrieve argument from argc, argv.  The fmt is the format string for
the arguments, such as "12" for 1 non-optional argument, 2 optional
arguments.  If `*' appears at the end of fmt, it means the rest of
the arguments are assigned to the corresponding variable, packed in
an array.

** Invoking Ruby method

 VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)

Invokes a method.  To retrieve mid from a method name, use rb_intern().

 VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)

Invokes a method, passing arguments by an array of values.

 VALUE rb_eval_string(const char *str)

Compiles and executes the string as a Ruby program.

 ID rb_intern(const char *name)

Returns ID corresponding to the name.

 char *rb_id2name(ID id)

Returns the name corresponding ID.

 char *rb_class2name(VALUE klass)

Returns the name of the class.

 int rb_respond_to(VALUE object, ID id)

Returns true if the object responds to the message specified by id.

** Instance Variables

 VALUE rb_iv_get(VALUE obj, const char *name)

Retrieve the value of the instance variable.  If the name is not
prefixed by `@', that variable shall be inaccessible from Ruby.

 VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)

Sets the value of the instance variable.

** Control Structure

 VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)

Calls the function func1, supplying func2 as the block.  func1 will be
called with the argument arg1.  func2 receives the value from yield as
the first argument, arg2 as the second argument.
 
 VALUE rb_yield(VALUE val)

Evaluates the block with value val.

 VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)

Calls the function func1, with arg1 as the argument.  If an exception
occurs during func1, it calls func2 with arg2 as the argument.  The
return value of rb_rescue() is the return value from func1 if no
exception occurs, from func2 otherwise.

 VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)

Calls the function func1 with arg1 as the argument, then calls func2
with arg2 if execution terminated.  The return value from
rb_ensure() is that of func1.

** Exceptions and Errors

 void rb_warn(const char *fmt, ...)

Prints a warning message according to a printf-like format.

 void rb_warning(const char *fmt, ...)

Prints a warning message according to a printf-like format, if
$VERBOSE is true.

void rb_raise(rb_eRuntimeError, const char *fmt, ...)

Raises RuntimeError.  The fmt is a format string just like printf().

 void rb_raise(VALUE exception, const char *fmt, ...)

Raises a class exception.  The fmt is a format string just like printf().

 void rb_fatal(const char *fmt, ...)

Raises a fatal error, terminates the interpreter.  No exception handling
will be done for fatal errors, but ensure blocks will be executed.

 void rb_bug(const char *fmt, ...)

Terminates the interpreter immediately.  This function should be
called under the situation caused by the bug in the interpreter.  No
exception handling nor ensure execution will be done.

** Initialize and Start the Interpreter

The embedding API functions are below (not needed for extension libraries):

 void ruby_init()

Initializes the interpreter.

 void ruby_options(int argc, char **argv)

Process command line arguments for the interpreter.

 void ruby_run()

Starts execution of the interpreter.

 void ruby_script(char *name)

Specifies the name of the script ($0).

** Hooks for the Interpreter Events

 void rb_add_event_hook(rb_event_hook_func_t func, rb_event_t events)

Adds a hook function for the specified interpreter events.
events should be Or'ed value of:

	RUBY_EVENT_LINE
	RUBY_EVENT_CLASS
	RUBY_EVENT_END
	RUBY_EVENT_CALL
	RUBY_EVENT_RETURN
	RUBY_EVENT_C_CALL
	RUBY_EVENT_C_RETURN
	RUBY_EVENT_RAISE
	RUBY_EVENT_ALL

The definition of rb_event_hook_func_t is below:

 typedef void (*rb_event_hook_func_t)(rb_event_t event, NODE *node,
 				      VALUE self, ID id, VALUE klass)

 int rb_remove_event_hook(rb_event_hook_func_t func)

Removes the specified hook function.

Appendix C. Functions Available in extconf.rb

These functions are available in extconf.rb:

 have_macro(macro, headers)

Checks whether macro is defined with header.  Returns true if the macro
is defined.

 have_library(lib, func)

Checks whether the library exists, containing the specified function.
Returns true if the library exists.

 find_library(lib, func, path...)

Checks whether a library which contains the specified function exists in
path.  Returns true if the library exists.

 have_func(func, header)

Checks whether func exists with header.  Returns true if the function
exists.  To check functions in an additional library, you need to
check that library first using have_library().

 have_var(var, header)

Checks whether var exists with header.  Returns true if the variable
exists.  To check variables in an additional library, you need to
check that library first using have_library().

 have_header(header)

Checks whether header exists.  Returns true if the header file exists.

 find_header(header, path...)

Checks whether header exists in path.  Returns true if the header file
exists.

 have_struct_member(type, member, header)

Checks whether type has member with header.  Returns true if the type
is defined and has the member.

 have_type(type, header, opt)

Checks whether type is defined with header.  Returns true if the type
is defined.

 check_sizeof(type, header)

Checks the size of type in char with header.  Returns the size if the
type is defined, otherwise nil.

 create_makefile(target)

Generates the Makefile for the extension library.  If you don't invoke
this method, the compilation will not be done.

 find_executable(bin, path)

Finds command in path, which is File::PATH_SEPARATOR-separated list of
directories.  If path is nil or omitted, environment varialbe PATH
will be used.  Returns the path name of the command if it is found,
otherwise nil.

 with_config(withval[, default=nil])

Parses the command line options and returns the value specified by
--with-<withval>.

 enable_config(config, *defaults)
 disable_config(config, *defaults)

Parses the command line options for boolean.  Returns true if
--enable-<config> is given, or false if --disable-<config> is given.
Otherwise, yields defaults to the given block and returns the result
if it is called with a block, or returns defaults.

 dir_config(target[, default_dir])
 dir_config(target[, default_include, default_lib])

Parses the command line options and adds the directories specified by
--with-<target>-dir, --with-<target>-include, and/or --with-<target>-lib
to $CFLAGS and/or $LDFLAGS.  --with-<target>-dir=/path is equivalent to
--with-<target>-include=/path/include --with-<target>-lib=/path/lib.
Returns an array of the added directories ([include_dir, lib_dir]).

 pkg_config(pkg)

Obtains the information for pkg by pkg-config command.  The actual
command name can be overriden by --with-pkg-config command line
option.

/*
 * Local variables:
 * fill-column: 70
 * end:
 */
* Ruby�Ȥ�

Ruby�ϥ���ץ뤫�Ķ��Ϥʥ��֥������Ȼظ�������ץȸ���Ǥ���
Ruby�Ϻǽ餫����ʥ��֥������Ȼظ�����Ȥ���߷פ���Ƥ���
�����顤���֥������Ȼظ��ץ���ߥ󥰤��ڤ˹Ԥ����������
����������̾�μ�³�����Υץ���ߥ󥰤��ǽ�Ǥ���

Ruby�ϥƥ����Ƚ���ط���ǽ�Ϥʤɤ�ͥ�졤Perl��Ʊ�����餤����
�Ǥ�������˥���ץ��ʸˡ�ȡ��㳰����䥤�ƥ졼���ʤɤε���
�ˤ�äơ����ʬ����䤹���ץ���ߥ󥰤�����ޤ���


* Ruby����Ĺ

  + ����ץ��ʸˡ
  + ���̤Υ��֥������Ȼظ���ǽ(���饹���᥽�åɥ�����ʤ�)
  + �ü�ʥ��֥������Ȼظ���ǽ(Mixin, �ðۥ᥽�åɤʤ�)
  + �黻�ҥ����С�����
  + �㳰�����ǽ
  + ���ƥ졼���ȥ�������
  + �����١������쥯��
  + �����ʥߥå����ǥ��� (�������ƥ�����ˤ��)
  + �ܿ������⤤��¿����UNIX���ư�������Ǥʤ���DOS��Windows��
    Mac��BeOS�ʤɤξ�Ǥ�ư��


* ���ˡ

** FTP��

�ʲ��ξ��ˤ����Ƥ���ޤ���

  ftp://ftp.ruby-lang.org/pub/ruby/

** Subversion��

�ܥ֥���Ruby�κǿ��Υ����������ɤϼ��Υ��ޥ�ɤǼ���Ǥ��ޤ���

  $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8/

��ȯ��ü�Υ����������ɤϼ��Υ��ޥ�ɤǼ���Ǥ��ޤ���

  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby

¾�˳�ȯ��Υ֥��ΰ���ϼ��Υ��ޥ�ɤǸ����ޤ���

  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/


* �ۡ���ڡ���

Ruby�Υۡ���ڡ�����URL��

   http://www.ruby-lang.org/

�Ǥ���


* �᡼��󥰥ꥹ��

Ruby�Υ᡼��󥰥ꥹ�Ȥ�����ޤ������ô�˾�����

   ruby-list-ctl@ruby-lang.org

�ޤ���ʸ��

   subscribe YourFirstName YourFamilyName
   
�Ƚ񤤤���äƲ������� 

Ruby��ȯ�Ը����᡼��󥰥ꥹ�Ȥ⤢��ޤ���������Ǥ�ruby�Υ�
��������λ��ͳ�ĥ�ʤɼ���������ˤĤ��Ƶ������Ƥ��ޤ���
���ô�˾�����

   ruby-dev-ctl@ruby-lang.org

�ޤ�ruby-list��Ʊ�ͤ��ˡ�ǥ᡼�뤷�Ƥ��������� 

Ruby��ĥ�⥸�塼��ˤĤ����ä��礦ruby-ext�᡼��󥰥ꥹ�Ȥ�
��شط�������ˤĤ����ä��礦ruby-math�᡼��󥰥ꥹ�Ȥ�
�Ѹ���ä��礦ruby-talk�᡼��󥰥ꥹ�Ȥ⤢��ޤ��������ˡ
�Ϥɤ��Ʊ���Ǥ��� 


* ����ѥ��롦���󥹥ȡ���

�ʲ��μ��ǹԤäƤ���������

  1. �⤷configure�ե����뤬���Ĥ���ʤ����⤷����
     configure.in���Ť��褦�ʤ顢autoconf��¹Ԥ���
     ������configure�������

  2. configure��¹Ԥ���Makefile�ʤɤ������

     �Ķ��ˤ�äƤϥǥե���Ȥ�C����ѥ����ѥ��ץ�����դ�
     �ޤ���configure���ץ����� optflags=.. warnflags=.. �
     �Ǿ�񤭤Ǥ��ޤ���

  3. (ɬ�פʤ��)defines.h���Խ�����

     ¿ʬ��ɬ��̵���Ȼפ��ޤ���

  4. (ɬ�פʤ��)ext/Setup���Ū�˥�󥯤����ĥ�⥸�塼���
     ���ꤹ��

     ext/Setup�˵��Ҥ����⥸�塼����Ū�˥�󥯤���ޤ���

     �����ʥߥå����ǥ��󥰤򥵥ݡ��Ȥ��Ƥ��ʤ��������ƥ�
     ����Ǥ�Setup��1���ܤΡ�option nodynamic�פȤ����ԤΥ�
     ���Ȥ򳰤�ɬ�פ�����ޤ����ޤ������Υ������ƥ������
     ��ĥ�⥸�塼�����Ѥ��뤿��ˤϡ����餫�����Ū�˥��
     �����Ƥ���ɬ�פ�����ޤ���

  5. make��¹Ԥ��ƥ���ѥ��뤹��

  6. make test�ǥƥ��Ȥ�Ԥ���

     ��test succeeded�פ�ɽ������������Ǥ����������ƥ���
     ��������Ƥⴰ�����ݾڤ���Ƥ�����ǤϤ���ޤ���

  7. make install

     root�Ǻ�Ȥ���ɬ�פ����뤫�⤷��ޤ���

�⤷������ѥ����˥��顼��ȯ���������ˤϥ��顼�Υ��ȥ�
����OS�μ����ޤ�Ǥ������ܤ�����ݡ��Ȥ��Ԥ���äƤ�
�������¾����Τ���ˤ�ʤ�ޤ���


* �ܿ�

UNIX�Ǥ����configure���ۤȤ�ɤκ��ۤ�ۼ����Ƥ����Ϥ���
�������פ�̸���Ȥ������ä����(����˰㤤�ʤ�)����Ԥˤ���
���Ȥ��ݡ��Ȥ���С����Ǥ��뤫���Τ�ޤ���

�������ƥ�����ˤ�äȤ��¸����Τ�GC��Ǥ���Ruby��GC���о�
�Υ������ƥ����㤬setjmp()�ˤ�ä���ƤΥ쥸������ jmp_buf��
��Ǽ���뤳�Ȥȡ�jmp_buf�ȥ����å���32bit���饤����Ȥ����
���뤳�Ȥ��ꤷ�Ƥ��ޤ����ä���Ԥ���Ω���ʤ������б�����
��˺���Ǥ��礦����Ԥβ������Ū��ñ�ǡ�gc.c�ǥ����å���
�ޡ������Ƥ�����ʬ�˥��饤����ȤΥХ��ȿ�����餷�ƥޡ�
�����륳���ɤ��ɲä������ǺѤߤޤ�����defined(THINK_C)�פ�
����Ƥ�����ʬ�򻲹ͤˤ��Ƥ�������

# �ºݤˤ�Ruby��Think C�Ǥϥ���ѥ���Ǥ��ޤ���

�쥸����������ɥ����CPU�Ǥϡ��쥸����������ɥ��򥹥���
���˥ե�å��夹�륢����֥饳���ɤ��ɲä���ɬ�פ����뤫����
��ޤ���


* ���۾��

COPYING.ja�ե�����򻲾Ȥ��Ƥ���������


* ���

�����ȡ��Х���ݡ��Ȥ���¾�� matz@netlab.jp �ޤǡ�
-------------------------------------------------------
created at: Thu Aug  3 11:57:36 JST 1995
Local variables:
mode: indented-text
end:
LEGAL NOTICE INFORMATION
------------------------

All the files in this distribution are covered under either the Ruby's
license (see the file COPYING) or public-domain except some files
mentioned below.

regex.[ch]:

  These files are under LGPL.  Treat them as LGPL says. (See the file
  LGPL for details)

    Extended regular expression matching and search library.
    Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.

    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.

    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with the GNU C Library; see the file LGPL.  If not,
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */

    Multi-byte extension added May, 1993 by t^2 (Takahiro Tanimoto)
    Last change: May 21, 1993 by t^2
    removed gapped buffer support, multiple syntax support by matz <matz@nts.co.jp>
    Perl5 extension added by matz <matz@caelum.co.jp>
    UTF-8 extension added Jan 16 1999 by Yoshida Masato  <yoshidam@tau.bekkoame.ne.jp>

configure:

  This file is free software.

    Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.

    This configure script is free software; the Free Software Foundation
    gives unlimited permission to copy, distribute and modify it.

config.guess:
config.sub:

  As long as you distribute these files with the file configure, they
  are covered under the Ruby's license.

      Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
      Free Software Foundation, Inc.

    This file is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

    As a special exception to the GNU General Public License, if you
    distribute this file as part of a program that contains a
    configuration script generated by Autoconf, you may include it under
    the same distribution terms that you use for the rest of that program.

parse.c:

  This file is licensed under the GPL, but is incorporated into Ruby and 
  redistributed under the terms of the Ruby license, as permitted by the
  exception to the GPL below.

     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     Free Software Foundation, Inc.

     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2, or (at your option)
     any later version.

     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin Street, Fifth Floor,
     Boston, MA 02110-1301, USA.  */

  /* As a special exception, you may create a larger work that contains
     part or all of the Bison parser skeleton and distribute that work
     under terms of your choice, so long as that work isn't itself a
     parser generator using the skeleton or a modified version thereof
     as a parser skeleton.  Alternatively, if you modify or redistribute
     the parser skeleton itself, you may (at your option) remove this
     special exception, which will cause the skeleton and the resulting
     Bison output files to be licensed under the GNU General Public
     License without this special exception.

     This special exception was added by the Free Software Foundation in
     version 2.2 of Bison.  */

util.c (partly):
win32/win32.[ch]:

  You can apply the Artistic License to these files. (or GPL,
  alternatively)

    Copyright (c) 1993, Intergraph Corporation

    You may distribute under the terms of either the GNU General Public
    License or the Artistic License, as specified in the perl README file.

random.c

  This file is under the new-style BSD license.

    A C-program for MT19937, with initialization improved 2002/2/10.
    Coded by Takuji Nishimura and Makoto Matsumoto.
    This is a faster version by taking Shawn Cokus's optimization,
    Matthe Bellew's simplification, Isaku Wada's real version.

    Before using, initialize the state by using init_genrand(seed) 
    or init_by_array(init_key, key_length).

    Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
    All rights reserved.                          

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:

      1. Redistributions of source code must retain the above copyright
	 notice, this list of conditions and the following disclaimer.

      2. Redistributions in binary form must reproduce the above copyright
	 notice, this list of conditions and the following disclaimer in the
	 documentation and/or other materials provided with the distribution.

      3. The names of its contributors may not be used to endorse or promote 
	 products derived from this software without specific prior written 
	 permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


    Any feedback is very welcome.
    http://www.math.keio.ac.jp/matumoto/emt.html
    email: matumoto@math.keio.ac.jp

st.[ch]:
x68/*:
missing/alloca.c:
missing/dup2.c:
missing/finite.c:
missing/hypot.c:
missing/isinf.c:
missing/isnan.c:
missing/memcmp.c:
missing/memmove.c:
missing/strcasecmp.c:
missing/strchr.c:
missing/streror.c:
missing/strftime.c:
missing/strncasecmp.c:
missing/strstr.c:
missing/strtol.c:
ext/digest/sha1/sha1.[ch]:

  These files are all under public domain.

missing/strtod.c:

  This file will not be used on most platforms depending on how the
  configure script results.  In any case you must not receive any fee
  with the file itself.

    Copyright (c) 1988-1993 The Regents of the University of California.
    Copyright (c) 1994 Sun Microsystems, Inc.

    Permission to use, copy, modify, and distribute this
    software and its documentation for any purpose and without
    fee is hereby granted, provided that the above copyright
    notice appear in all copies.  The University of California
    makes no representations about the suitability of this
    software for any purpose.  It is provided "as is" without
    express or implied warranty.

missing/strtoul.c:

  This file will not be used on most platforms depending on how the
  configure script results.  In any case you must not receive any fee
  with the file itself.

    Copyright 1988 Regents of the University of California

    Permission to use, copy, modify, and distribute this
    software and its documentation for any purpose and without
    fee is hereby granted, provided that the above copyright
    notice appear in all copies.  The University of California
    makes no representations about the suitability of this
    software for any purpose.  It is provided "as is" without
    express or implied warranty.

missing/erf.c:
missing/crypt.c:
missing/vsnprintf.c:

  This file is under the old-style BSD license.  Note that the
  paragraph 3 below is now null and void.

    Copyright (c) 1990, 1993
         The Regents of the University of California.  All rights reserved.

    This code is derived from software contributed to Berkeley by
    Chris Torek.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the University nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

    IMPORTANT NOTE:
    --------------
    From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
    paragraph 3 above is now null and void.

ext/digest/md5/md5.[ch]:

  These files are under the following license.  Ruby uses modified
  versions of them.

    Copyright (C) 1999, 2000 Aladdin Enterprises.  All rights reserved.

    This software is provided 'as-is', without any express or implied
    warranty.  In no event will the authors be held liable for any damages
    arising from the use of this software.

    Permission is granted to anyone to use this software for any purpose,
    including commercial applications, and to alter it and redistribute it
    freely, subject to the following restrictions:

    1. The origin of this software must not be misrepresented; you must not
       claim that you wrote the original software. If you use this software
       in a product, an acknowledgment in the product documentation would be
       appreciated but is not required.
    2. Altered source versions must be plainly marked as such, and must not be
       misrepresented as being the original software.
    3. This notice may not be removed or altered from any source distribution.

    L. Peter Deutsch
    ghost@aladdin.com

ext/digest/rmd160/rmd160.[ch]:

  These files have the following copyright information, and by the
  author we are allowed to use it under the new-style BSD license.

    AUTHOR:   Antoon Bosselaers, ESAT-COSIC
              (Arranged for libc by Todd C. Miller)
    DATE:     1 March 1996

    Copyright (c) Katholieke Universiteit Leuven
    1996, All Rights Reserved

ext/digest/rmd160/rmd160hl.c:
ext/digest/sha1/sha1hl.c:

  These files are under the beer-ware license.

    "THE BEER-WARE LICENSE" (Revision 42):
    <phk@login.dkuug.dk> wrote this file.  As long as you retain this notice you
    can do whatever you want with this stuff. If we meet some day, and you think
    this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp

ext/digest/sha2/sha2.[ch]:
ext/digest/sha2/sha2hl.c:

  These files are under the new-style BSD license.

    Copyright 2000 Aaron D. Gifford.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the copyright holder nor the names of contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

ext/nkf/nkf-utf8/config.h:
ext/nkf/nkf-utf8/nkf.c:
ext/nkf/nkf-utf8/utf8tbl.c:

  These files are under the following license.  So to speak, it is
  copyrighted semi-public-domain software.

    Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
       Everyone is permitted to do anything on this program 
       including copying, modifying, improving,
       as long as you don't try to pretend that you wrote it.
       i.e., the above copyright notice has to appear in all copies.
       Binary distribution requires original version messages.
       You don't have to ask before copying, redistribution or publishing.
       THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.

ext/socket/addrinfo.h:
ext/socket/getaddrinfo.c:
ext/socket/getnameinfo.c:

  These files are under the new-style BSD license.

    Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the project nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

ext/win32ole/win32ole.c:

  You can apply the Artistic License to this file. (or GPL,
  alternatively)

    (c) 1995 Microsoft Corporation. All rights reserved.
    Developed by ActiveWare Internet Corp., http://www.ActiveWare.com

    Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy
    <gsar@umich.edu> and Jan Dubois <jan.dubois@ibm.net>
 
    You may distribute under the terms of either the GNU General Public
    License or the Artistic License, as specified in the README file
    of the Perl distribution.
* What's Ruby

Ruby is the interpreted scripting language for quick and
easy object-oriented programming.  It has many features to
process text files and to do system management tasks (as in
Perl).  It is simple, straight-forward, and extensible.


* Features of Ruby

  + Simple Syntax
  + *Normal* Object-Oriented features(ex. class, method calls)
  + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
  + Operator Overloading
  + Exception Handling
  + Iterators and Closures
  + Garbage Collection
  + Dynamic Loading of Object files(on some architecture)
  + Highly Portable(works on many UNIX machines, and on DOS,
    Windows, Mac, BeOS etc.)


* How to get Ruby

The Ruby distribution files can be found in the following FTP site:

  ftp://ftp.ruby-lang.org/pub/ruby/

The latest source code of this version series can be checked out
through SVN with the following command:

  $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8/

The trunk of the Ruby source tree can be checked out with the
following command:

  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby

There are some other branches under development.  Try the following
command and see the list of branches:

  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/


* Ruby home-page

The URL of the Ruby home-page is:

   http://www.ruby-lang.org/


* Mailing list

There is a mailing list to talk about Ruby.
To subscribe this list, please send the following phrase

	subscribe YourFirstName YourFamilyName
e.g.
        subscribe Joseph Smith

in the mail body (not subject) to the address <ruby-talk-ctl@ruby-lang.org>.


* How to compile and install

This is what you need to do to compile and install Ruby:

  1. If ./configure does not exist or is older than configure.in,
     run autoconf to (re)generate configure.

  2. Run ./configure, which will generate config.h and Makefile.

     Some C compiler flags may be added by default depending on your
     environment.  Specify optflags=.. and warnflags=.. as necessary
     to override them.

  3. Edit defines.h if you need.  Usually this step will not be needed.

  4. Remove comment mark(#) before the module names from ext/Setup (or
     add module names if not present), if you want to link modules
     statically.

     If you don't want to compile non static extension modules
     (probably on architectures which does not allow dynamic loading),
     remove comment mark from the line "#option nodynamic" in
     ext/Setup.

  5. Run make.

  6. Optionally, run 'make test' to check whether the compiled Ruby
     interpreter works well.  If you see the message "test succeeded",
     your ruby works as it should (hopefully).

  7. Run 'make install'

     You may have to be a super user to install ruby.

If you fail to compile ruby, please send the detailed error report with
the error log and machine/OS type, to help others.


* Copying

See the file COPYING.


* The Author

Feel free to send comments and bug reports to the author.  Here is the 
author's latest mail address:

  matz@netlab.jp

-------------------------------------------------------
created at: Thu Aug  3 11:57:36 JST 1995
Local variables:
mode: indented-text
end:
= NEWS

This document is a list of user visible feature changes made between
releases except for bug fixes.

Note that each entry is kept so brief that no reason behind or
reference information is supplied with.  For a full list of changes
with all sufficient information, see the ChangeLog file.

* REXML

  * REXML::Document.entity_expansion_limit=

    New method to set the entity expansion limit. By default the limit is
    set to 10000.  See the following URL for details.

    http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/

== Changes since the 1.8.6 release

=== Configuration changes

* vendor_ruby directory

  A new library directory named `vendor_ruby' is introduced in
  addition to `site_ruby'.  The idea is to separate libraries
  installed by the package system (`vendor') from manually (`site')
  installed libraries preventing the former from getting overwritten
  by the latter, while preserving the user option to override vendor
  libraries with site libraries. (`site_ruby' takes precedence over
  `vendor_ruby')

  If you are a package maintainer, make each library package configure
  the library passing the `--vendor' option to `extconf.rb' so that
  the library files will get installed under `vendor_ruby'.

  You can change the directory locations using configure options such
  as `--with-sitedir=DIR' and `--with-vendordir=DIR'.

=== Global constants

* new constants

  * RUBY_COPYRIGHT
  * RUBY_DESCRIPTION

=== Library updates (outstanding ones only)

* new library

  * securerandom

* builtin classes

  * Array#flatten
  * Array#flatten!

    Takes an optional argument that determines the level of recursion
    to flatten.

  * Array#eql?
  * Array#hash
  * Array#==
  * Array#<=>

    Handle recursive data properly.

  * Array#index
  * Array#rindex

    Take a block instead of an argument.

  * Array#collect!
  * Array#map!
  * Array#each
  * Array#each_index
  * Array#reverse_each
  * Array#reject
  * Array#reject!
  * Array#delete_if
  * Array#select

    Return an enumerator if no block is given.

    Note that #map and #collect still return an array unlike Ruby 1.9
    to keep compatibility.

  * Array#pop
  * Array#shift

    Take an optional argument specifying the number of elements to
    remove.

  * Array#choice
  * Array#combination
  * Array#cycle
  * Array#drop
  * Array#drop_while
  * Array#permutation
  * Array#product
  * Array#shuffle
  * Array#shuffle!
  * Array#take,
  * Array#take_while

    New methods.

  * Binding#eval

    New method.

  * Dir#each
  * Dir#foreach

    Return an enumerator if no block is given.

  * Enumerable::Enumerator

    New class for various enumeration defined by the enumerator library.

  * Enumerable#each_slice
  * Enumerable#each_cons
  * Object#to_enum
  * Object#enum_for

    New methods for various enumeration defined by the enumerator library.

  * Enumerable#count
  * Enumerable#cycle
  * Enumerable#drop
  * Enumerable#drop_while
  * Enumerable#find_index
  * Enumerable#first
  * Enumerable#group_by
  * Enumerable#max_by
  * Enumerable#min_by
  * Enumerable#minmax
  * Enumerable#minmax_by
  * Enumerable#none?
  * Enumerable#one?
  * Enumerable#take
  * Enumerable#take_while

    New methods.

  * Enumerable#find
  * Enumerable#find_all
  * Enumerable#partition
  * Enumerable#reject
  * Enumerable#select
  * Enumerable#sort_by

    Return an enumerator if no block is given.

    Note that #map and #collect still return an array unlike Ruby 1.9
    to keep compatibility.

  * Enumerable#inject

    Accepts a binary operator instead of a block.

  * Enumerable#reduce

    New alias to #inject.

  * Enumerable#to_a

    Can take optional arguments and pass them to #each.

  * Hash#eql?
  * Hash#hash
  * Hash#==

    Handle recursive data properly.

  * Hash#delete_if
  * Hash#each
  * Hash#each_key
  * Hash#each_pair
  * Hash#each_value
  * Hash#reject!
  * Hash#select
  * ENV.delete_if
  * ENV.each
  * ENV.each_key
  * ENV.each_pair
  * ENV.each_value
  * ENV.reject!
  * ENV.select

    Return an enumerator if no block is given.

  * GC.stress
  * GC.stress=

    New methods.

  * Integer#ord
  * Integer#odd?
  * Integer#even?
  * Integer#pred

    New methods.

  * Integer#downto
  * Integer#times
  * Integer#upto

    Return an enumerator if no block is given.

  * IO#each
  * IO#each_line
  * IO#each_byte
  * IO.foreach
  * ARGF.each
  * ARGF.each_line
  * ARGF.each_byte

    Return an enumerator if no block is given.

  * IO#bytes
  * IO#chars
  * IO#each_char
  * IO#getbyte
  * IO#lines
  * IO#readbyte
  * ARGF.bytes
  * ARGF.chars
  * ARGF.each_char
  * ARGF.getbyte
  * ARGF.lines
  * ARGF.readbyte

    New methods. 

  * Method#name
  * Method#owner
  * Method#receiver
  * UnboundMethod#name
  * UnboundMethod#owner

    New methods.

  * Module#class_exec
  * Module#module_exec

    New methods.

  * Numeric#step

    Return an enumerator if no block is given.

  * Object#instance_exec
  * Object#tap

    New methods.

  * ObjectSpace.each_object

    Return an enumerator if no block is given.

  * Process.exec implemented.

  * Range#each
  * Range#step

    Return an enumerator if no block is given.

  * Regexp.union accepts an array of patterns.

  * String#bytes

    New method

  * String#bytesize

    New method, returning the size in bytes. (alias length and size)

  * String#chars
  * String#each_char
  * String#lines
  * String#partition
  * String#rpartition
  * String#start_with?
  * String#end_with?

    New methods.  These are $KCODE aware unlike #index, #rindex and
    #include?.

  * String#each_byte
  * String#each
  * String#each_line
  * String#gsub(pattern)

    Return an enumerator if no block is given.

  * String#upto

    An optional second argument is added to specify if the last value
    should be included.

  * StopIteration

    New exception class that causes Kernel#loop to stop iteration when
    raised.

  * Struct#each
  * Struct#each_pair

    Return an enumerator if no block is given.

  * Symbol#to_proc

    New method.

  * __method__

    New global function that returns the name of the current method as
    a Symbol.

* enumerator

  * Enumerator is now a built-in module.  The #next and #rewind
    methods are implemented using the "generator" library.  Use with
    care and be aware of the performance loss.

* ipaddr

  * New methods
    * IPAddr#<=>
    * IPAddr#succ

      IPAddr objects are now comparable and enumerable having these
      methods.  This also means that it is possible to have a Range
      object between two IPAddr objects.

    * IPAddr#to_range

      A new method to create a Range object for the (network) address.

  * Type coercion support
    * IPAddr#&
    * IPAddr#|
    * IPAddr#==
    * IPAddr#include?

      These methods now accept a string or an integer instead of an
      IPAddr object as the argument.

* net/smtp

  * Support SSL/TLS.

* openssl

  * New classes
    * OpenSSL::PKey::EC
    * OpenSSL::PKey::EC::Group
    * OpenSSL::PKey::EC::Point
    * OpenSSL::PKey::PKCS5
    * OpenSSL::SSL::Session

  * Documentation!

  * Various new methods (see documentation).

  * Remove redundant module namespace in Cipher, Digest, PKCS7, PKCS12.
    Compatibility classes are provided which will be removed in Ruby 1.9.

* shellwords

  * Add methods for escaping shell-unsafe characters:
    * Shellwords.join
    * Shellwords.escape
    * Array#shelljoin
    * String#shellescape

  * Add shorthand methods:
    * Shellwords.split (alias shellwords)
    * String#shellsplit

* stringio

  * StringIO#getbyte
  * StringIO#readbyte

    New methods. (aliases for compatibility with 1.9)

  * StringIO#each_char
  * StringIO#chars

    New methods.

  * StringIO#each
  * StringIO#each_line
  * StringIO#each_byte

    Return an enumerator if no block is given.

* tempfile

  * Tempfile.open and Tempfile.new now accept a suffix for the
    temporary file to be created.  To specify a suffix, pass an array
    of [basename, suffix] as the first argument.

      Tempfile.open(['image', 'jpg']) { |tempfile| ... }

* tmpdir

  * New method:

    * Dir.mktmpdir

* uri

  * added LDAPS scheme.
  * Change for RFC3986:
    * FTP
      * URI('ftp://example.com/foo').path #=> 'foo'
      * URI('ftp://example.com/%2Ffoo').path #=> '/foo'
      * URI::FTP.build([nil, 'example.com', nil, '/foo', 'i').to_s #=> 'ftp://example.com/%2Ffoo;type=i'
    * URI merge
      * URI('http://a/b/c/d;p?q').merge('?y') == URI('http://a/b/c/d;p?y')
      * URI('http://a/b/c/d;p?q').merge('/./g') == URI('http://a/g')
      * URI('http://a/b/c/d;p?q').merge('/../g') == URI('http://a/g')
      * URI('http://a/b/c/d;p?q').merge('../../../g') == URI('http://a/g')
      * URI('http://a/b/c/d;p?q').merge('../../../../g') == URI('http://a/g')

* rss

  * 0.1.6 -> 0.2.4

  * Fix image module URI

  * Atom support

  * ITunes module support

  * Slash module support

  * content:encoded with RSS 2.0 support

=== Interpreter Implementation

* passing a block to a Proc [experimental]

  This implementation in current shape is known to be buggy/broken,
  especially with nested block invocation.  Take this as an
  experimental feature.

* stack trace

  On non-SystemStackError exception, full stack trace is shown.

=== Compatibility issues (excluding feature bug fixes)

* String#slice! had some unintentional bugs and they have been fixed
  because either they disagreed with documentation or their respective
  behavior of #slice.  Unfortunately, this causes some
  incompatibilities in the following (somewhat rare) cases.

  * #slice! no longer expands the array when an out-of-boundary value
    is given.

      # Ruby 1.8.6
      a = [1,2]
      a.slice!(4,0)   #=> nil
      a               #=> [1,2,nil,nil]

      # Ruby 1.8.7
      a = [1,2]
      a.slice!(4,0)   #=> nil
      a               #=> [1,2]

  * #slice! no longer raises an exception but returns nil when a
    negative length or out-of-boundary negative position is given.

      # Ruby 1.8.6
      a = [1,2]
      a.slice!(1,-1)  #=> (raises IndexError)
      a.slice!(-5,1)  #=> (raises IndexError)

      # Ruby 1.8.7
      a = [1,2]
      a.slice!(1,-1)  #=> nil
      a.slice!(-5,1)  #=> nil

* String#to_i, String#hex and String#oct no longer accept a sequence
  of underscores (`__') as part of a number.

    # Ruby 1.8.6
    '1__0'.to_i     #=> 10
    '1__0'.to_i(2)  #=> 2  # 0b10
    '1__0'.oct      #=> 8  # 010
    '1__0'.hex      #=> 16 # 0x10

    # Ruby 1.8.7
    '1__0'.to_i     #=> 1
    '1__0'.to_i(2)  #=> 1
    '1__0'.oct      #=> 1
    '1__0'.hex      #=> 1

  The old behavior was inconsistent with Ruby syntax and considered as
  a bug.

* date

  * Date.parse

    '##.##.##' (where each '#' is a digit) is now taken as 'YY.MM.DD'
    instead of 'MM.DD.YY'.  While the change may confuse you, you can
    always use Date.strptime() when you know what you are dealing
    with.

* stringio

  * StringIO#each_byte

    The return value changed from nil to self.  This is what the
    document says and the same as each_line() does.

* tempfile

  * The file name format has changed.  No dots are included by default
    in temporary file names any more.  See above for how to specify a
    suffix.

* uri

  * See above for details.

== Changes since the 1.8.5 release

=== New platforms/build tools support

* IA64 HP-UX

* Visual C++ 8 SP1

* autoconf 2.6x

=== Global constants

* RUBY_PATCHLEVEL

  New constant since 1.8.5-p1.

=== Library updates (outstanding ones only)

* builtin classes

  * New method: Kernel#instance_variable_defined?

  * New method: Module#class_variable_defined?

  * New feature: Dir::glob() can now take an array of glob patterns.

* date

  * Updated based on date2 4.0.3.

* digest

  * New internal APIs for C and Ruby.

  * Support for autoloading.

      require 'digest'

      # autoloads digest/md5
      md = Digest::MD5.digest("string")

  * New digest class methods: file

  * New digest instance methods: clone, reset, new, inspect,
    digest_length (alias size or length), block_length()

  * New library: digest/bubblebabble

  * New function: Digest(name)

* fileutils

  * New option for FileUtils.cp_r(): :remove_destination

* nkf

  * Updated based on nkf as of 2007-01-28.

* thread

  * Replaced with much faster mutex implementation in C.  The former
    implementation, which is slow but considered to be stable, is
    available with a configure option `--disable-fastthread'.

* tk

  * Updated Tile extension support based on Tile 0.7.8.

  * Support --without-X11 configure option for non-X11 versions of
    Tcl/Tk (e.g. Tcl/Tk Aqua).

  * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble
    about STDIN blocking on Windows.

* webrick

  * New method: WEBrick::Cookie.parse_set_cookies()

=== Compatibility issues (excluding feature bug fixes)

* builtin classes

  * String#intern now raises SecurityError when $SAFE level is greater
    than zero.

* date

  * Time#to_date and Time#to_datetime are added as private methods.
    They cause name conflict error in ActiveSupport 1.4.1 and prior,
    which comes with Rails 1.2.2 and prior.  Updating ActiveSupport
    and/or Rails to the latest versions fixes the problem.

* digest

  * The constructor does no longer take an initial string to feed.
    The following examples show how to migrate:

      # Before
      md = Digest::MD5.new("string")
      # After (works with any version)
      md = Digest::MD5.new.update("string")
        
      # Before
      hd = Digest::MD5.new("string").hexdigest
      # After (works with any version)
      hd = Digest::MD5.hexdigest("string")

* fileutils

  * A minor implementation change breaks Rake <=0.7.1.
    Updating Rake to 0.7.2 or higher fixes the problem.

* tk

  * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable
    (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available,
    but it is an alias name.
Thu Jun 27 20:55:23 2013  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* test/openssl/test_ssl.rb: Oops, sorry!

Thu Jun 27 20:21:18 2013  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* ext/openssl/lib/openssl/ssl-internal.rb (OpenSSL::SSL#verify_certificate_identity):
	  fix hostname verification. Patch by nahi.

	* test/openssl/test_ssl.rb (OpenSSL#test_verify_certificate_identity):
	  test for above.

Sat May 18 23:34:50 2013  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rexml/document.rb: move entity_expansion_text_limit accessor to ...
	* lib/rexml/rexml.rb: ... here to make rexml/text independent from
	  REXML::Document. It causes circular require.
	* lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
	  deprecated.
	* lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit=):
	  deprecated.
	* lib/rexml/text.rb: add missing require "rexml/rexml" for
	  REXML.entity_expansion_text_limit.
	  Reported by Robert Ulejczyk. Thanks!!! [ruby-core:52895] [Bug #7961]

Sat May 18 23:34:50 2013  Aaron Patterson <aaron@tenderlovemaking.com>

	* lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
	  new attribute to read/write entity expansion text limit.  the default
	  limit is 10Kb.

	* lib/rexml/text.rb (REXML::Text.unnormalize): check above attribute.

Fri Oct 12 12:25:15 2012  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* error.c (name_err_to_s): we need not infect msg.

	* test/ruby/test_exception.rb (TestException#test_exception_to_s_should_not_propagate_untrustedness): test for it.

Fri Jun 29 21:26:05 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (stack_extend): prevent ALLOCA_N, which reserves a memory
	  space with for restoring machine stack stored in each threads, from
	  optimization out.  backport r34278 from the trunk.

Mon Jun 18 18:32:43 2012  Martin Bosslet  <Martin.Bosslet@googlemail.com>

	* backport r32609 from trunk.

	* ext/openssl/ossl_hmac.c: Revert checking return type of
	  HMAC_Init_ex as it is not compatible with OpenSSL < 1.0.0.

Mon Jun 18 18:32:43 2012  Martin Bosslet  <Martin.Bosslet@googlemail.com>

	* backport r32606 from trunk.

	* ext/openssl/ossl_digest.c: Check return value of EVP_DigestInit_ex.
	* ext/openssl/ossl_hmac.c: Check return value of HMAC_Init_ex.
	  Thanks, Jared Jennings, for the patch.
	  [ Ruby 1.9 - Bug #4944 ] [ruby-core:37670]

Sun Jun 10 03:00:21 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_setjmp): need to save the stack after r2 (the Table
	  of Contents on ppc64) is saved onto the stack by getcontext().
	  based on <https://bugzilla.redhat.com/show_bug.cgi?id=628715>.
	  Bug#4411

Thu Jun  7 19:00:35 2012  Kenta Murata <mrkn@mrkn.jp>

	* ext/bigdecimal/bigdecimal.c (VpMemAlloc): Fixes a bug reported
	  by Drew Yao <ayao at apple.com>

Wed Jun  6 15:09:00 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_join), ext/thread/thread.c (wake_one): adjusts
	  targets of rest waiting threads to join.  [ruby-core:23457]

Wed Jun  6 14:44:13 2012  Kenta Murata  <mrkn@mrkn.jp>

	* bignum.c (rb_big2dbl), test/ruby/test_bignum.rb (test_to_f):
	  A negative Bignum out of Float range should be converted to -Infinity.
	  [ruby-core:30492] [Bug #3362]

Wed Jun  6 14:06:02 2012  Tanaka Akira  <akr@fsij.org>

	* lib/webrick/utils.rb: fix fcntl call.

	* lib/drb/unix.rb: ditto.

Mon May 21 16:29:47 2012  Akinori MUSHA  <knu@iDaemons.org>

	* ext/syslog/syslog.c (mSyslog_inspect): Make sure self is a
	  module before calling rb_class2name().

Fri May 11 14:09:48 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
	  must not cast it to unsigned long, which may be shorter than
	  VALUE, and the result can be mere garbage.

Sat Apr 14 18:51:41 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big2str0): prevent working clone from
	  GC. [exerb-dev:0578].  patched by MURASE Masamitsu
	  <masamitsu.murase AT gmail.com> at [exerb-dev:0580]

Fri Mar  2 11:44:33 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (mark_dump_arg): mark destination string.  patch by
	  Vit Ondruch.  [Bug #4339]

	* marshal.c (clear_dump_arg, clear_load_arg): clean up also data
	  tables as same as symbols tables.

Fri Mar  2 11:44:33 2012  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (struct {dump,load}_arg): manage with dfree, instead
	  of using local variable which may be moved by context switch.
	  [ruby-dev:39425]

Wed Feb  8 14:06:59 2012  Hiroshi Nakamura  <nahi@ruby-lang.org>

	* ext/openssl/ossl_ssl.c: Add SSL constants and allow to unset SSL
	  option to prevent BEAST attack. See [Bug #5353].

	  In OpenSSL, OP_DONT_INSERT_EMPTY_FRAGMENTS is used to prevent
	  TLS-CBC-IV vulunerability described at
	  http://www.openssl.org/~bodo/tls-cbc.txt
	  It's known issue of TLSv1/SSLv3 but it attracts lots of attention
	  these days as BEAST attack. (CVE-2011-3389)

	  Until now ossl sets OP_ALL at SSLContext allocation and call
	  SSL_CTX_set_options at connection.  SSL_CTX_set_options updates the
	  value by using |= so bits set by OP_ALL cannot be unset afterwards.

	  This commit changes to call SSL_CTX_set_options only 1 time for each
	  SSLContext. It sets the specified value if SSLContext#options= are
	  called and sets OP_ALL if not.

	  To help users to unset bits in OP_ALL, this commit also adds several
	  constant to SSL such as
	  OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS.  These constants were
	  not exposed in Ruby because there's no way to unset bits in OP_ALL
	  before.

	  Following is an example to enable 0/n split for BEAST prevention.

	    ctx.options = OP_ALL & ~OP_DONT_INSERT_EMPTY_FRAGMENTS

	* test/openssl/test_ssl.rb: Test above option exists.

Wed Dec 28 21:34:23 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* string.c (rb_str_hash): randomize hash to avoid algorithmic
	  complexity attacks. CVE-2011-4815

	* st.c (strhash): ditto.

	* string.c (Init_String): initialization of hash_seed to be at the
	  beginning of the process.

	* st.c (Init_st): ditto.

Thu Dec  8 11:57:04 2011  Tanaka Akira  <akr@fsij.org>

	* inits.c (rb_call_inits): call Init_RandomSeed at first.

	* random.c (seed_initialized): defined.
	  (fill_random_seed): extracted from random_seed.
	  (make_seed_value): extracted from random_seed.
	  (rb_f_rand): initialize random seed at first.
	  (initial_seed): defined.
	  (Init_RandomSeed): defined.
	  (Init_RandomSeed2): defined.
	  (rb_reset_random_seed): defined.
	  (Init_Random): call Init_RandomSeed2.

Sat Dec 10 20:44:23 2011  Tanaka Akira  <akr@fsij.org>

	* lib/securerandom.rb: call OpenSSL::Random.seed at the
	  SecureRandom.random_bytes call.
	  insert separators for array join.
	  patch by Masahiro Tomita.  [ruby-dev:44270]

Mon Oct 17 04:20:22 2011  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb: fix for continued lines.  based on a patch from
	  Marcus Rueckert <darix AT opensu.se> at [ruby-core:20420].

Mon Oct 17 04:19:39 2011  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (flo_cmp): Infinity is greater than any bignum
	  number.  [ruby-dev:38672]

	* bignum.c (rb_big_cmp): ditto.

Mon Oct 17 03:56:12 2011  Yusuke Endoh  <mame@tsg.ne.jp>

	* ext/openssl/ossl_x509store.c (ossl_x509store_initialize): initialize
	  store->ex_data.sk.  [ruby-core:28907] [ruby-core:23971]
	  [ruby-core:18121]

Thu Jun 30 12:52:56 2011  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/tk/extconf.rb (intptr_t, uintptr_t): support for the latest ActiveTcl with mingw.

Sun Jun 26 17:52:32 2011  Nobuhiro Iwamatsu  <iwamatsu@nigauri.org>

        * ext/openssl/ossl_ssl.c: By trunk@31346, function check of SSLv2 is executed.
        However, the problem is not revised in this.
        This adds the control of using function of SSLv2 in made macro by function check.

Sun Jun 26 17:52:32 2011  Nobuhiro Iwamatsu  <iwamatsu@nigauri.org>

	* ext/openssl/extconf.rb: Should check SSLv2_*method.
	  openssl compiled with "no-ssl2" the extconf don't fail
	  when running `make' having this compilation errors.
	  Patched by Laurent Arnoud. fixes #4562, #4556

Sun Jun 26 17:46:43 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* ext/tk/extconf.rb: copy from trunk, as requested by Hidetoshi NAGAI.

Thu Jun 23 18:38:43 2011  Hiroshi Nakamura  <nahi@ruby-lang.org>

	backported r26281 from ruby_1_8

	* lib/webrick/accesslog.rb (WEBrick::AccessLog.format): log parameter
	  embedding did not work. See #4913.

	* test/webrick/test_accesslog.rb: Add for test it.

Thu Jun 16 22:55:02 2011  Hiroshi Nakamura  <nahi@ruby-lang.org>

	* test/test_securerandom.rb: Add testcase.  This testcase does NOT aim
	  to test cryptographically strongness and randomness.  It includes
	  the test for PID recycle issue of OpenSSL described in #4579 but
	  it's disabled by default.

Mon Jun 13 18:33:04 2011  Tanaka Akira  <akr@fsij.org>

	* lib/securerandom.rb (SecureRandom.random_bytes): modify PRNG state
	  to prevent random number sequence repeatation at forked
	  child process which has same pid.
	  reported by Eric Wong.  [ruby-core:35765]

Thu Jun  2 18:33:51 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* variable.c (rb_const_get_0):  Fix  previous change.   There were
	  possibilities   when   an   autoload-specified   library   lacks
	  definition of  the constant  it was bound  to.  Once  after such
	  library had  already beed loaded, the autoload  engine shall not
	  reload  it.   Instead  the  interpreter have  to  consider  such
	  constant nonexistent.  It results in a const_missing situation.

	* variable.c (rb_autoload_load): ditto.

	* variable.c (autoload_node): ditto.

Thu Jun  2 18:28:58 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* variable.c (rb_autoload_load):  There is a  race condition while
	  autoloading.  When two or more threads touch a single autoloaded
	  constant at  a time,  one of them  does the require,  but others
	  behave  oddly.   To  fix  this  situation we  now  refrain  from
	  deleting the autoload table while someone is doing the autoload.
	  That  deletion is  deferred to  a  point where  a require  ended
	  successfully.  Doing so make it possible for multiple threads to
	  enter autoloading at the same  time but the require is protected
	  against  multiple simultaneous  entrance anyway  so all  but one
	  thread  gets blocked  at that  point.   So with  it, touching  a
	  constant that gets autoloaded cause those threads to block until
	  there is another one that does the same thing.
	  [ruby-core:36308] (#921)

	* variable.c (rb_const_get_0): ditto.

	* variable.c (autoload_node): ditto.

	* variable.c (autoload_delete): ditto.

Mon May 30 10:58:17 2011  Hiroshi Nakamura  <nahi@ruby-lang.org>

	* lib/logger.rb (Logger::ProgName): do not depend on subversion
	  keyword ($Id: ChangeLog 41678 2013-06-27 11:56:26Z shyouhei $). ProgName with revision number was written in the
	  header line of each logfile for ease of tracking what version user
	  is using in troubleshooting.  Logger is already stable enough.

Sat May 21 07:33:54 2011  Yusuke Endoh  <mame@tsg.ne.jp>

	* ext/zlib/zlib.c (zstream_append_input2): add RB_GC_GUARD.
	  This caused failure when test/csv is executed with GC.stress = true.

Sat May 21 05:43:03 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* eval.c (rb_thread_atfork): When a ruby process forks, its random
	  seed shall be reinitialized to prevent CVE-2003-0900 situation.
	  This bug affects for 1.8 and earlier series, but not for 1.9.
	  fixed [ruby-core:34944].

	* io.c (pipe_open): ditto.

	* random.c (rb_reset_random_seed): ditto.

	* intern.h (rb_reset_random_seed): ditto.

Sat May 21 04:55:15 2011  Akinori MUSHA  <knu@iDaemons.org>

	* lib/uri/generic.rb (#route_from_path): Fix a bug where
	  URI('http://h/b/').route_to('http://h/b') wrongly returned './'
	  (should be '../b'). [Bug #4476]

Sat May 21 04:54:20 2011  Akinori MUSHA  <knu@iDaemons.org>

	* lib/fileutils.rb (FileUtils#touch): Fix corrupted output.
	  ref [ruby-dev:43401]

Sat May 21 02:10:09 2011  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.h (RMATCH_REGS): parenthesize cast expression.  suggested
	  from Nikolai Weibull in [ruby-core:35825].

Sat May 21 01:32:08 2011  NAKAMURA Usaku  <usa@ruby-lang.org>

	backported r31286 from trunk

	* numeric.c (ruby_float_step): wrong loop condition.
	  fixes [ruby-core:35753], reported by Joey Zhou.

	* test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):
	  test above change.

Sat May 21 00:55:21 2011  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/zlib/zlib.c (gzfile_check_footer): ISIZE (Input SIZE) in gzip's
	header is the size of uncompressed input data modulo 2^32.
	[ruby-core:34481] http://www.ietf.org/rfc/rfc1952.txt

Fri May 20 23:46:44 2011  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/{getaddrinfo,getnameinfo}.c: include winsock2.h only when
	  specified to use winsock2 by user.
	  this problem is reported by kosaki.

Fri May 20 23:23:45 2011  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (make_addrinfo): skip IPv6 addresses when ruby
	  doesn't support IPv6 but system supports it.
	  [ruby-dev:42944] (#4230)

Fri May 20 23:10:07 2011  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/README.win32: note to need NT based OS to build ruby.

	* win32/{configure.bat,setup.mak}: backport current build method from
	  trunk. [ruby-dev:42893] (#4206)

Fri May 20 23:06:31 2011  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* Backported the fix at
	  Mon Sep 13 09:23:58 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/openssl/ossl_bn.c (ossl_bn_is_prime): fix comparison
	  with rb_scan_args. Before this fix, OpenSSL::BN#prime?
	  is fully broken.

Fri May 20 23:06:31 2011  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* Backported the fix at
	  Mon Oct  4 09:30:42 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/openssl/lib/openssl/bn.rb (Integer#to_bn): OpenSSL::BN.new
	  accepts only Strings, so call Integer#to_s(16).
	  16 is for an optimization. [ruby-dev:42336]

Fri Feb 18 21:18:55 2011  Shugo Maeda  <shugo@ruby-lang.org>

	* test/ruby/test_exception.rb (TestException::test_to_s_taintness_propagation):
	  Test for below.

Fri Feb 18 21:18:55 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* error.c (exc_to_s): untainted strings can be tainted via
	  Exception#to_s, which enables attackers to overwrite sane strings.
	  Reported by: Yusuke Endoh <mame at tsg.ne.jp>.

	* error.c (name_err_to_s): ditto.

Fri Feb 18 21:17:22 2011  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/fileutils.rb (FileUtils::remove_entry_secure): there is a
	  race condition in the case where the given path is a directory,
	  and some other user can move that directory, and create a
	  symlink while this method is executing.
	  Reported by: Nicholas Jefferson <nicholas at pythonic.com.au>

Fri Feb 18 19:46:46 2011  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (init_stdhandle): backport mistake of r29382.
	  some code are needless in ruby 1.8.
	  [ruby-core:34579]

Fri Feb 18 19:22:17 2011  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* configure.in: revert revision r29854.  This revision introduced
	  binary incompatibilities on some circumstances.  The bug that
	  revision was fixing gets reopened by this reversion.
	  [ruby-dev:43152] cf. [Bug #2553]

Thu Dec 23 12:22:35 2010  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb (Resolv::IPv4::Regex): make it only accept 0 to 255.
	  [ruby-core:29501]

Tue Dec 21 01:43:01 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/webrick/https.rb: uninitialized instance variables.
	  Backport a part of r20864 for ruby_1_8.

Sat Dec  4 11:35:15 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (init_mkmf): needs default library path even if
	  cross compiling.

Sat Dec  4 11:25:02 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* re.c (rb_reg_regcomp): should succeed the taint status from the
	  origin. [ruby-core:33338]

Thu Dec  2 21:13:42 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* Makefile.in (fake.rb): need to expand the topdir in case of it
	  being relative, a patch from Luis Lavena <luislavena at gmail.com>.
	  [ruby-core:33466]

Wed Nov 24 18:24:26 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/extconf.rb: backported entirely from ruby_1_8, with small
	  modifications for the difference of mkmf.rb.

Wed Nov 24 16:24:24 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb (patchlevel): config.status may not contain
	  PATCHLEVEL even if other version numbers exist.

Wed Nov 24 16:18:02 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* win32/Makefile.sub ($(RCFILES)): no revision.h in this
	  branch, a patch from Luis Lavena <luislavena at gmail.com>.
	  [ruby-core:33310]

	* cygwin/GNUmakefile.in ($(RCFILES)): ditto.

Wed Nov 24 15:44:11 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/extconf.rb (getaddrinfo): should initialize winsock on
	  windows.

Wed Nov 24 13:55:21 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/setup.mak: use findstr.exe instead of find.exe, because all
	  target build platforms should have findstr.exe, and, find.exe often
	  means another command such as cygwin's.

Wed Nov 24 13:27:34 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/stringio/stringio.c (strio_getline): fix for "" as separator.
	  [ruby-dev:34591] (Backport r17739 by Yusuke Endoh from trunk).

Wed Nov 24 13:27:20 2010  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/net/pop.rb (Net::POP3#set_all_uids): speed
	  up. a patch from <m-sumi AT techfirm.co.jp> [ruby-list:45047]

Tue Nov 23 20:48:10 2010  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (initialize): sets sync_close to true.
	  Thanks, Hiroshi NAKAMURA.  [ruby-core:31753]

Tue Nov 23 17:09:14 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/pathname.rb (relative_path_from): backport r23093 and r25440
	  from ruby_1_9_2.  [ruby-core:32415]

Mon Nov 22 14:13:45 2010  Masaki Suketa <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: fix checking version of GCC.

Mon Nov 22 14:13:45 2010  Masaki Suketa <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: NONAMELESSUNION defined only if gcc
	  version is older than 3.4.4. [ruby-core:31567] [Bug #3637]
	* ext/win32ole/extconf.rb: ditto.

Fri Nov 19 19:28:00 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* Makefile.in (fake.rb): hook needed to fake mkmf.rb.
	  #2531 [ruby-core:27327]

Mon Oct 18 10:21:01 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* lib/net/http.rb (transport_request): @socket may be nil.
	  patched by Egbert Eich [ruby-core:32829]

Fri Oct  8 10:51:56 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (RBCONFIG): depends on version.h due to
	  RUBY_PATCHLEVEL.  [ruby-core:32709]

Thu Oct  7 18:10:35 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* cygwin/GNUmakefile.in, win32/Makefile.sub (RCFILES): depend on
	  real config.rb file.  [ruby-core:32709]

Sun Oct  3 18:30:23 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (rb_intern): should check symbol table overflow.
	  #3900 [ruby-dev:42330]

Fri Oct  1 15:12:05 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (init_stdhandle): redirect unopened IOs to NUL.
	  backport r11362 from trunk. [ruby-core:31445]

Mon Aug 23 11:42:41 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_asn1.c (obj_to_asn1bool): fixed ASN1::Boolean
	  encoding issue for OpenSSL 1.0.0 compatibility.
	  ASN1::Boolean.new(false).to_der wrongly generated "\1\1\377" which
	  means 'true'.  [BUG:3735] 
	  
	  ASN1_TYPE_set of OpenSSL <= 0.9.8 treats value 0x100 as 'false' but
	  OpenSSL >= 1.0.0 treats it as 'true'.  ruby-ossl was using 0x100 for
	  'false' for backward compatibility.  Just use 0x0 for the case
	  OpenSSL >= OpenSSL 0.9.7.

	* test/openssl/test_asn1.rb: test added.

Tue Aug 10 17:35:49 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest::parse_uri):
	  rollup leading slashes. [ruby-core:31657]
	  patched by Jamison Wilde
	  NOTE: //authority/path is valid relative URI both RFC2396 and
	  RFC3986. So when give a relative URI-like string to URI lib,
	  users must care leading slashes.

Fri Jul 30 08:51:51 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): home directory must be absolute.
	  [ruby-core:31537]

Fri Jul 30 08:33:20 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): should check if could find user.
	  [ruby-core:31538]

Thu Jul 29 22:43:57 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/webrick/ssl.rb (WEBrick::Utils.create_self_signed_cert): wrongly
	  created dummy SSL certificate with version == 3 (no such version) and
	  serial == 0 (must be >0).

Sat Jul 24 15:44:29 2010  Masaki Suketa <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (fev_initialize): initialize pTypeInfo.
	  [ruby-core:31304][Bug #3576].

Tue Jul 13 21:46:38 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_config.c, ext/openssl/lib/openssl/config.rb,
	  ext/openssl/lib/openssl.rb: reimplement OpenSSL::Config in Ruby. Now
	  it should work on windows.

	* test/openssl/test_config.rb: added tests for OpenSSL::Config#dup.

Mon Jul 12 22:26:00 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_config.c (ossl_config_copy): wrongly updating the
	  given object with uninitialized CONF data.  now
	  OpenSSL::Config#clone works as expected; cloning the config instead of
	  SEGV or empty definition.

	* test/openssl/test_config.rb: added tests for Config#clone.

Thu Jul  8 13:43:13 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/openssl/test_config.c: added tests for all Config methods.

Wed Jul  7 13:24:24 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (ruby_find_basename): set correct baselen.

Fri Jul  2 23:34:45 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (ruby_find_basename, ruby_find_extname): split from
	  rb_file_s_basename() and rb_file_s_extname().

	* util.c (ruby_add_suffix): support arbitrary length of the suffix
	  to get rid of the potential buffer overflow.
	  reported by tarui.

Sat Jul 10 10:51:29 2010  KOSAKI Motohiro  <kosaki.motohiro@gmail.com>

	* configure.in: fix use_context condition inversion.
	[Bug #2553][ruby-core:31164]. Thanks, Andre Nathan. 

Wed Jun 23 21:36:45 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: avoid getcontext() overhead if possible.
	[ruby-core:27380][Bug #2553]
	Thanks, Joe Damato, Dan Peterson and Patrick Mohr.

Wed Jan 13 06:54:44 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: check for if struct timezone is defined.

	* missing.h (struct timezone): define if not defined.

	* win32/win32.h (struct timezone): defined in the newer w32api.
	  [ruby-core:27515]

Sun Aug 15 19:59:58 2010  Yuki Sonoda (Yugui)  <yugui@yugui.jp>

	* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#set_error):
	  Fix for possible cross-site scripting (CVE-2010-0541). 
	  Found by Apple, reported by Hideki Yamane.
	  Patch by Hirokazu Nishio <nishio.hirokazu AT gmail.com>.

Sat Jul 17 15:19:58 2010  KOSAKI Motohiro  <kosaki.motohiro@gmail.com>

	* configure.in: Change AC_PREREQ from 2.58 to 2.60 because
	  AC_CASE macro require 2.60 or later. Thanks, Mitsuru SHIMAMURA.
	  [Bug #3579] [ruby-dev:41856]

Wed Jun 23 22:22:42 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/optparse/test_summary.rb: fixed superclass so that it run
	  solely.

Wed Jun 23 21:54:17 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* marshal.c, test/ruby/test_marshal.rb: Revert r25230.  This test
	  is troublesome.

Mon Jun 21 18:12:15 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/extconf.rb: check some functions added at OpenSSL 1.0.0.

	* ext/openssl/ossl_engine.c (ossl_engine_s_load): use engines which
	  exists.

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_config.c: defined own IMPLEMENT_LHASH_DOALL_ARG_FN_098
	  macro according to IMPLEMENT_LHASH_DOALL_ARG_FN in OpenSSL 0.9.8m.
	  OpenSSL 1.0.0beta5 has a slightly different definiton so it could
	  be a temporal workaround for 0.9.8 and 1.0.0 dual support.

	* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): follows function
	  definition in OpenSSL 1.0.0beta5. PKCS5_PBKDF2_HMAC is from 1.0.0
	  (0.9.8 only has PKCS5_PBKDF2_HMAC_SHA1)

	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_eq): do not use
	  SSL_SESSION_cmp and implement equality func by ousrself.  See the
	  comment.

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_ssl_session.c
	  (ossl_ssl_session_{get,set}_time{,out}): fixed a bug introduced by
	  backporting. (see [ruby-dev:40573])  use long in according to
	  OpenSSL API. (SSL_SESSION_{get,set}_time{,out})

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_x509name.c: added X509::Name#hash_old as a wrapper
	  for X509_NAME_hash_old in OpenSSL 1.0.0.

	* test/openssl/test_x509name.rb (test_hash): make test pass with
	  OpenSSL 1.0.0.

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/openssl/test_x509*: make tests pass with OpenSSL 1.0.0b5.
	  * PKey::PKey#verify raises an exception when a given PKey does not
	    match with signature.
	  * PKey::DSA#sign accepts SHA1, SHA256 other than DSS1.

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* backport the commit from trunk:
	  Sun Feb 28 11:49:35 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* openssl/ossl.c (OSSL_IMPL_SK2ARY): for OpenSSL 1.0.
	  patched by Jeroen van Meeuwen at [ruby-core:25210]
	  fixed by Nobuyoshi Nakada [ruby-core:25238],
	  Hongli Lai [ruby-core:27417],
	  and Motohiro KOSAKI [ruby-core:28063]

	* ext/openssl/ossl_ssl.c (ossl_ssl_method_tab),
	  (ossl_ssl_cipher_to_ary): constified.

	* ext/openssl/ossl_pkcs7.c (pkcs7_get_certs, pkcs7_get_crls):
	  split pkcs7_get_certs_or_crls.

Mon Jun 21 18:12:15 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/openssl/test_ec.rb: added test_dsa_sign_asn1_FIPS186_3. dgst is
	  truncated with ec_key.group.order.size after openssl 0.9.8m for
	  FIPS 186-3 compliance.

	  WARNING: ruby-openssl aims to wrap an OpenSSL so when you're using
	  openssl 0.9.8l or earlier version, EC.dsa_sign_asn1 raises
	  OpenSSL::PKey::ECError as before and EC.dsa_verify_asn1 just returns
	  false when you pass dgst longer than expected (no truncation
	  performed).

	* ext/openssl/ossl_pkey_ec.c: rdoc typo fixed.

Wed Jun 16 16:01:42 2010  Tanaka Akira  <akr@fsij.org>

	* lib/pathname.rb (Pathname#sub): suppress a warning.
	  [ruby-dev:38488]

Wed Jun 16 15:21:12 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/webrick/utils.rb (TestWEBrick#start_server): add log for
	  test_filehandler.rb

Wed Jun 16 15:21:12 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/net/http.rb (Net::HTTPHeader#{content_range,range_length}):
	  use inclusive range same as the header representation.

Thu Jun 10 14:39:35 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/iconv/test_option.rb: removed particular implementation specific tests.
	  [ruby-dev:40078]

Thu Jun 10 14:22:09 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/webrick/httpstatus.rb (WEBrick::HTTPStatus::Status::initialize):
	  accept 0 or more arguments. [ruby-core:28692]

Thu Jun 10 13:37:35 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_load): initialize orig_func.   [ruby-core:27296]

Tue Jun  8 18:57:48 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (config.status): no need to embbed manifest if not exist.

Tue Jun  8 18:38:36 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* include/ruby/win32.h: include errno.h before defining errnos.

	* include/ruby/win32.h: check definition existance before defining
	  errno macros.

	* win32/win32.c (errmap): define winsock errors mappings.
	  these are VC++10 support, merge from trunk (r27236, r27258).

Tue Jun  8 18:31:02 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* regexp.c (re_compile_pattern): allow zero times match for
	  non-greedy range repeatation. [ruby-core:30613]

Tue Jun  8 18:08:18 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* Makefile.in (fake.rb): double the backslash.

Tue Jun  8 18:08:15 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* configure.in: should replace COMMON_HEADERS if --with-winsock2 is
	  specified.  [ruby-dev:41521]

Tue Jun  8 17:49:18 2010  KOSAKI Motohiro  <kosaki.motohiro@gmail.com>

	* io.c, eval.c, process.c: remove all condition of r26371.
	  now, all platform use the same way. [Bug #3278][ruby-core:30167]

Tue Jun  8 17:45:36 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (rb_iconv_sys_fail): fix number of arguments.
	  a patch by Masaya TARUI <tarui AT prx.jp>.

Tue Jun  8 17:45:36 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (rb_iconv_sys_fail): raise BrokenLibrary if
	  errno is not set.  [ruby-dev:41317]

Tue Jun  8 17:32:37 2010  Tanaka Akira  <akr@fsij.org>

	* pack.c (pack_pack): call rb_quad_pack to preserve RangeError.

Tue Jun  8 17:32:37 2010  Tanaka Akira  <akr@fsij.org>

	* pack.c: backport integer pack/unpack from 1.9 for [ruby-core:21937].

	* configure.in: backport RUBY_DEFINT and fixed size integer checks.

	* ruby.h: include stdint.h if available.

	* bignum.c (rb_big_pack): defined..
	  (rb_big_unpack): defined.

	* intern.h (rb_big_pack): declared.
	  (rb_big_unpack): declared.

Tue Jun  8 16:52:35 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* regex.c (read_special): get rid of overrun.

Tue Jun  8 16:51:48 2010  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb: backported exception handling from trunk.
	  [ruby-core:29745]

Tue Jun  8 16:42:48 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (VpAlloc): ensure buf does not get
	  collected.  based on a patch masaya tarui at [ruby-dev:41213].

Tue Jun  8 16:08:00 2010  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (fetch_internal): do not quote message data item
	  names.  Thanks, Eric Hodel.  [ruby-core:23508]  backported form
	  trunk.

Tue Jun  8 15:45:52 2010  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap (encode_utf7): encode & properly.  Thanks, Kengo
	  Matsuyama.  [ruby-dev:38063]  backported from trunk.

Tue Jun  8 15:43:43 2010  Masaki Suketa <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_val2variant): fix the core dump
	  when converting Array object to VT_ARRAY variant. [ruby-core:28446]
	  [Bug #2836]

Tue Jun  8 15:34:15 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_extname): skip last directory separators.
	  [ruby-core:29627]

Tue Jun  8 15:33:30 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/fileutils.rb (FileUtils::cp_r): dup needed here; options are
	  destroyed otherwise.

Tue Jun  8 15:27:00 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (search_required): expand home relative path first.
	  [ruby-core:29610]

Tue Jun  8 15:23:10 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/timeout.rb (Timeout#timeout): propagate errors to the
	  caller.  [ruby-dev:41010]'

Tue Jun  8 15:15:18 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/net/smtp.rb (Net::SMTP#rcptto_list): fixed typo.
	  [ruby-core:29809]

Tue Jun  8 15:15:18 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/net/smtp.rb (Net::SMTP#rcptto_list): continue when at least
	  one RCPT is accepted.  based on a patch from Kero van Gelder at
	  [ruby-core:26190].

Tue Jun  8 15:14:11 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* LEGAL: separated the section for parse.c.  contributed by Paul
	  Betteridge in [ruby-core:29472].

Tue Jun  8 14:00:33 2010  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* ext/rational/lib/rational.rb: fix [Bug #1397].

Tue Jun  8 13:40:04 2010  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (Date#>>): fixed.  [ruby-core:28011]

Tue Jun  8 12:37:56 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* io.c, eval.c, process.c: add linux to r26371's condition.
	  patched by Motohiro KOSAKI [ruby-core:28151]

Tue Jun  8 12:37:56 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (thread_timer, rb_thread_stop_timer): check the timing of
	  stopping timer.  patch from KOSAKI Motohiro <kosaki.motohiro _AT_
	  jp.fujitsu.com> via IRC.

	* eval.c (rb_thread_start_timer): NetBSD5 seems to be hung when calling
	  pthread_create() from pthread_atfork()'s parent handler.

	* io.c (pipe_open): workaround for NetBSD5. stop timer thread before
	  fork(), and restart it after fork() on parent, and on child if
	  needed.

	* process.c (rb_f_fork, rb_f_system): ditto.

	  these changes are tested by naruse.  fixed [ruby-dev:40074]

Mon Jun  7 19:23:04 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c (numchar_getc): get rid of buffer
	  overflow.  [ruby-dev:40606]

Mon Jun  7 18:57:02 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl/ossl_ssl_session.c
	  (ossl_ssl_session_{get,set}_time{,out}): fixed a bug introduced by
	  backporting. (see [ruby-dev:40573])  use long in according to
	  OpenSSL API. (SSL_SESSION_{get,set}_time{,out})

Tue May 25 08:42:42 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/openssl: backport fixes in 1.9.

	  * r25019 by marcandre
	    * ossl_ocsp.c (ossl_ocspres_to_der): Bug fix in Response#to_def.
	      Patch by Chris Chandler [ruby-core:18411]

	  * r25017 by marcandre
	    * ossl_config.c (ossl_config_add_value_m,
	      ossl_config_set_section): Check if frozen (or untrusted for
	      $SECURE >= 4) [ruby-core:18377]

	  * r22925 by nobu
	    * ext/openssl/openssl_missing.h (i2d_of_void): cast for callbacks.
	      [ruby-core:22860]

	    * ext/openssl/ossl_engine.c (ossl_engine_s_by_id): suppress a
	      warning.

	    * ext/openssl/ossl_ssl.c (ossl_sslctx_flush_sessions): time_t may
	      be larger than long.

	    * ext/openssl/ossl_ssl_session.c (ossl_ssl_session_get_time),
	      (ossl_ssl_session_get_timeout): use TIMET2NUM() to convert
	      time_t.

	  * r22924 by nobu
	    * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): should use
	      OPENSSL_free instead of free.  a patch from Charlie Savage at
	      [ruby-core:22858].

	  * r22918 by akr
	    * ext/openssl: suppress warnings.

	    * ext/openssl/ossl.h (OSSL_Debug): don't use gcc extention for
	      variadic macro.

	  * r22666 by akr
	    * ext/openssl/lib/openssl/buffering.rb: define Buffering module
	      under OpenSSL.  [ruby-dev:37906]

	  * r22440 by nobu
	    * ext/openssl/ossl_ocsp.c (ossl_ocspbres_verify): OCSP_basic_verify
	      returns positive value on success, not non-zero.
	      [ruby-core:21762]

	  * r22378 by akr
	    * ext/openssl: avoid cyclic require.

	    * ext/openssl/lib/openssl/ssl-internal.rb: renamed from ssl.rb

	    * ext/openssl/lib/openssl/x509-internal.rb: renamed from x509.rb.
	      [ruby-dev:38018]

	  * r22101 by nobu
	    * ext/openssl/ossl_cipher.c (add_cipher_name_to_ary): used
	      conditionally.

	  * r21510 by akr
	    * ext/openssl/ossl.c (ossl_raise): abolish a warning.

	  * r21208 by akr
	    * ext/openssl/ossl_digest.c (GetDigestPtr): use StringValueCStr
	      instead of STR2CSTR.

	    * ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize): ditto.
	      (ossl_ec_group_initialize): ditto.

	  * r19420 by mame
	    * ext/openssl/ossl_pkey_ec.c (ossl_ec_key_to_string): comment out
	      fragments of unused code.

	  * r18975 by nobu
	    * ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): fix for
	      initialization of r18168.

	  * r18971 by nobu
	    * ext/openssl/ossl_config.c (Init_ossl_config): removed C99ism.

	  * r18944 by matz
	    * ext/openssl/ossl_config.c (Init_ossl_config): memory leak fixed.
	      a patch <shinichiro.hamaji at gmail.com> in [ruby-dev:35880].

	    * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.

	  * r18917 by nobu
	    * ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): fix for
	      initialization of r18168.

	    * ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): ditto.

	    * ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.

	  * r18283 by nobu
	    * ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): suppress
	      warnings on platforms which int size differs from pointer size.

	  * r18181 by nobu
	    * ext/openssl/openssl_missing.h (d2i_of_void): define for older
	      versions.  [ruby-dev:35637]

	  * r18168 by nobu
	    * ext/openssl: suppress warnings.

Sat May 22 22:31:36 2010  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb: fix [ruby-core:28320] reported by Paul Clegg.
	  (Resolv::DNS::Requester#request): raise ResolvTimeout consistently
	  for timeout.

Sat May 22 22:14:11 2010  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/readline/readline.c (Init_readline): initialize
	  check rl_catch_signals and rl_catch_sigwinch.
	  [ruby-core:28238] [ruby-core:28242]

	* ext/readline/extconf.rb: check rl_catch_signals and
	  rl_catch_sigwinch.

Sat May 22 21:54:58 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* test/net/http/test_connection.rb (TestHTTP::HTTPConnectionTest#test_connection_refused_in_request):
	  Wrong exception to assert.

Sat May 22 21:03:16 2010  Tanaka Akira  <akr@fsij.org>

	* io.c (rb_io_modenum_mode): return "r" for O_RDONLY|O_APPEND.
	  [ruby-dev:40379]

Sat May 22 20:51:39 2010  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/resolv.rb (Resolv::DNS::Config#nameserver_port): 1.8.7
	  specific tweaks

Sat May 22 20:51:09 2010  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb: fix [ruby-core:28144] reported by Hans de Graaff.
	  (Resolv::DNS#make_requester): pass nameserver_port to
	  UnconnectedUDP.new.
	  (Resolv::DNS.bind_random_port): change the is_ipv6 argument to
	  bind_host.
	  (Resolv::DNS::Requester#initialize): change instance variable to
	  store multiple sockets.
	  (Resolv::DNS::Requester#request): pass readable sockets to
	  recv_reply.
	  (Resolv::DNS::Requester#close): close all sockets.
	  (Resolv::DNS::Requester::UnconnectedUDP#initialize): allocate
	  a socket for each address family of name servers.
	  (Resolv::DNS::Requester::UnconnectedUDP#recv_reply): read from the
	  passwd readable socket.
	  (Resolv::DNS::Requester::UnconnectedUDP#sender): use appropriate
	  socket for the target nameserver.
	  (Resolv::DNS::Requester::ConnectedUDP): follow the instance variable
	  change.
	  (Resolv::DNS::Requester::TCP#sender): ditto.
	  (Resolv::DNS::Config#nameserver_port): new method.

Sat May 22 19:46:27 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/net/http.rb (Net::HTTP#request): close @socket only after
	  started.  [ruby-core:28028]

Sat May 22 19:36:38 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_invoke): reverted r25975.  [ruby-dev:39931]
	  [ruby-dev:40059]

	* eval.c (rb_mod_define_method): return original block but not
	  bound block.  [ruby-core:26984]

Thu May 20 16:28:17 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
	  add bytes-unit.  [ruby-dev:40030]

Thu May 20 16:17:37 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/zlib/zlib.c: backport r18029 and r21861 from trunk.
	  * r18029 ext/zlib/zlib.c (rb_deflate_params): flush before
	    deflateParams. [ruby-core:17675] (by mame)
	  * r21861 ext/zlib/zlib.c (zstream_run): desperately guard the
	    variable.  [ruby-core:20576] (by usa)

	* test/zlib/test_zlib.rb: backport deflate tests from trunk.

Thu May 20 15:59:14 2010  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/maker/base.rb, test/rss/test_maker_0.9.rb:
	accept any time format in maker. [ruby-core:26923]

Thu May 20 15:54:08 2010  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (recursive_push): Taint internal hash to prevent
	  unexpected SecurityError; fixes #1864.

Thu May 20 15:39:26 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_fwrite): preserve errno.  [ruby-core:27425]

Tue Apr 20 08:04:37 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (rb_io_s_read): close the IO if an exception is raised on
	  seeking. [ruby-core:27429]

Mon Apr 19 22:43:28 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	 * ruby.h (RB_GC_GUARD_PTR): workaround for gcc optimization.
	   [ruby-core:27402]

Tue Apr 20 06:40:53 2010  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/uri/generic.rb (URI::Generic::eql): Check the class of the
	  compared object. Based on a patch by Peter McLain [ruby-core:27019]

Fri Apr  2 03:27:22 2010  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/net/http.rb (HTTPGenericRequest#send_request_with_body_stream):
	  increased encoding chunk size for POST request with body_stream
	  (1K -> 16K). patched by Brian Candler. #1284.

	* test/net/http/test_post_io.rb: added for the patch. It's good if a
	  patch comes with a test.

Thu Apr  1 05:32:17 2010  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c (rb_str_inspect): wrong result of UTF-8 inspect because of
	  the mistake of calculation.  reported by eban via IRC.

Sun Jan 10 19:00:31 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/webrick/accesslog.rb : Escape needed.

	* lib/webrick/httpstatus.rb : ditto.

	* lib/webrick/httprequest.rb : ditto.

	* lib/webrick/httputils.rb : ditto.

Thu Dec 24 18:04:27 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: default ac_cv_prog_CC to CC.

Thu Dec 24 17:56:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: MINIRUBY is given via make-flag.

Thu Dec 24 17:56:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (EXTMK_ARGS): needs MINIRUBY for cross-compile.
	  [ruby-core:20131]

Thu Dec 24 17:56:32 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* common.mk (EXTMK_ARGS): shouldn't use ``\"'' because cmd.exe eat
	  ''\'' in such quotes.

Thu Dec 24 17:56:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (EXTMK_ARGS): needs MINIRUBY for cross-compile.
	  [ruby-core:20131]

Thu Dec 24 17:56:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb (patchlevel): config.status may not contain
	  PATCHLEVEL even if other version numbers exist.

Thu Dec 24 17:50:35 2009  Yusuke Endoh  <mame@tsg.ne.jp>

	* ext/stringio/stringio.c (strio_init): rewind when reopened.

Thu Dec 24 17:06:13 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (run_final): runs finalizers with the object terminated.

	* gc.c (rb_gc_call_finalizer_at_exit): ObjectSpace::finalizers needs
	  to scan whole object space, although deprecated.

Thu Dec 24 17:06:13 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (chain_finalized_object): deletes finalizers to be invoked from
	  finalizer_table.

	* gc.c (rb_gc_call_finalizer_at_exit): warns when could not invoke
	  finalizers.

Mon Dec 21 16:09:09 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (LD_SHARED1): typo.

Wed Dec 16 20:17:40 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (CreateChild): allocate temporary buffer and use it
	  instead of directly modify the passed string.  [ruby-dev:39635]

Wed Dec 16 19:49:47 2009  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* instruby.rb (with_destdir): revert. [ruby-dev:39885]

Mon Dec 14 13:28:48 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit.rb (Test::Unit.run=, Test::Unit.run?): fixed rdoc.
	  [ruby-core:25034]

Mon Dec 14 13:21:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/open3.rb (Open3#popen3): fixed and improved rdoc.  [ruby-core:25658]

Mon Dec 14 13:09:01 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (LIBPATHFLAG): use numbered specifier if RPATHFLAG
	  is set.  [ruby-talk:322136]

Mon Dec 14 12:53:56 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/bigdecimal.rb: fix comparison operators [ruby-core:26646]

Mon Dec 14 12:40:10 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* object.c (rb_Float): Allow results of to_f to be NaN
	  [ruby-core:26733]

Mon Dec 14 12:35:21 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_invoke): unbound block created by define_method
	  cannot call super.  [ruby-core:26984]

Mon Dec 14 12:06:39 2009  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/digest.c (rb_digest_instance_method_unimpl): Do not
	  call rb_inspect() on an object that does not implement necessary
	  methods; reported by NaHi.

Mon Dec 14 11:47:31 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_method_missing): adjusted format and argument number.

	* eval.c (rb_call): fixed for super in cached method.
	  [ruby-dev:39757]

Mon Dec 14 11:40:35 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (ruby_setenv): get rid of crash in Solaris 8 and 10.
	  [ruby-core:26668]

Mon Dec 14 11:31:58 2009  Takeyuki FUJIOKA  <xibbar@ruby-lang.org>

	* lib/cgi.rb: fix command-line option of
	  non-interactive terminal. [ruby-core:23016]

Mon Dec 14 03:36:20 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* eval.c (method_inspect, method_name, mnew): Bug fix when
	  method created from an alias.
	  Based on a patch by Peter Vanbroekhoven [ruby-core:22040]

Mon Dec 14 02:27:32 2009  Yusuke Endoh  <mame@tsg.ne.jp>

	* hash.c (rb_hash): always return a fixnum value because a return
	  value of rb_hash may be used as a hash value itself and bignums have
	  no unique VALUE.

	* test/ruby/test_hash.rb: add a test for above.

Mon Dec 14 00:42:55 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_inspect): get rid of adding garbage to shor
	  UTF-8 string.  [ruby-dev:39550]

Sun Dec 13 23:54:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (marshal_load): should set taintness.  [ruby-dev:39723]

Sun Dec 13 23:54:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (struct {dump,load}_arg): manage with dfree, instead
	  of using local variable which may be moved by context switch.
	  [ruby-dev:39425]

Wed Nov 25 17:42:33 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_fwrite): adjust stdio file position after direct write on
	  BSDish platforms.   [ruby-core:26300]

Wed Nov 25 17:39:28 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ostruct/test_ostruct.rb (test_frozen): added assertions.

Wed Nov 25 16:43:24 2009  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/monitor.rb (MonitorMixin.mon_release): ensure the scheduled
	  thread to be alive when a thread is releasing a monitor. #2240

Wed Nov 25 16:28:11 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/rexml/element.rb (text=): false should be converted to string.
	  A patch by Teruo Oshida [ruby-dev:38351]

Wed Nov 25 16:18:37 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_clear_cache_for_undef): clear entries for inherited
	  methods.  [ruby-core:26074]

Tue Nov 24 16:15:18 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_create): cannot retry with given block.
	  [ruby-dev:39487]

Tue Nov 24 16:12:33 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (resp_text_code): accepts response codes without
	  text.  backported from trunk.  [ruby-core:24194]

Tue Nov 24 16:09:41 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/ftp.rb (getaddress): rescue exceptions.  [ruby-dev:39451]

Tue Nov 24 15:51:07 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* ext/curses/curses.c: Many functions of module Curses could cause a
	  crash if the ncurses library was not properly initialized.
	  Fix pointed out by Alexander Beisig [ruby-core:22592]
	  Functions fixed: attroff, attron, attrset, bkgd, bkgdset,
	  can_change_color, close_screen, closed, color_content, curs_set,
	  def_prog_mode, delch, deleteln, getmouse, getstr, has_colors,
	  init_color, init_pair, insertln, keyname, mouseinterval, mousemask,
	  pair_content, pair_number, reset_prog_mode, resizeterm, scrl,
	  setscrreg, standend, standout, start_color, timeout, ungetmouse

Fri Nov 20 15:49:59 2009  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6.
	  (Resolv::DNS::ConnectedUDP#initialize): specify is_ipv6 argument of
	  bind_random_port.
	  [ruby-core:25970]

Thu Nov 19 18:03:31 2009  Takeyuki FUJIOKA  <xibbar@ruby-lang.org>

	* lib/cgi.rb (CGI.unescapeHTML): fix for hex values 80-FF,
	  single-byte hex entity encodings from 80-FF are valid HTML.
	  [ruby-core:25702]

Thu Nov 19 15:34:40 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_fptr_finalize): free fptr to avoid memory leaks.
	  fixed: #2009   [ruby-core:25173] [ruby-dev:39410]

Thu Nov 19 15:27:17 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/net/http.rb (transport_request): Handle timeout error by
	  closing socket if exception raised. [ruby-core:20976]

Wed Nov 18 14:14:38 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* ext/openssl/ossl_config.c (ossl_config_add_value_m,
	  ossl_config_set_section): Check if frozen (or untainted for $SECURE >=
	  4) [ruby-core:18377]

Wed Nov 18 14:13:14 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* instruby.rb: win32/win32.h exists in srcdir.
	  reported by arton ( http://www.artonx.org/diary/20090919.html#p01 )

Wed Nov 18 14:13:14 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (subtract): if the parameters are same value, should
	  return zero.

Wed Nov 18 14:13:14 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_select): of course, need to initialize rest.

Wed Nov 18 14:13:14 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_select): wait specified time on select.

Wed Nov 18 14:13:14 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_select): on 1.8, we don't need to poll sockets,
	  because our select is never called from multiple threads.

Tue Nov 17 16:22:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_start_0, rb_thread_start_1): should call star
	  timer after added new thread to thread list.  [ruby-core:25613]

Tue Nov 17 16:22:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_start_timer): start to catch SIGVTALRM together
	  with timer thread.   [ruby-core:25606]

	* eval.c (rb_thread_atfork): stop timer thread.

Tue Nov 17 16:04:02 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/cgi/cookie.rb (value): Keep CGI::Cookie#value in sync with the
	  cookie itself. A patch by Arthur Schreiber [ruby-core:17634]

Tue Nov 17 15:49:00 2009  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>

	* lib/irb/ext/multi-irb.rb: Fix arguments handling for shell commands
	  in irb; a patch by Yusuke Endoh [ruby-dev:35075]

Tue Nov 17 15:32:27 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_binmode): check if closed regardless platforms.
	  [ruby-core:25363]

Tue Nov 17 15:31:09 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (round): added declaration.  [ruby-dev:39222]

Mon Nov 16 19:58:02 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (gc_sweep): makes new room if object space is full of
	  finalized objects and has no free objects.  [ruby-dev:39201]

Mon Nov 16 19:45:27 2009  Tanaka Akira  <akr@fsij.org>

	* util.c: suppress strict-aliasing warning with gcc-4.4.0 -O2 to fix
	  infinite loop by ruby -e "1.402e-45" .

Mon Nov 16 19:28:23 2009  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): revert a part of
	  r23645, which was not a bug fix. [ruby-dev:39474]

Fri Sep 11 11:56:53 2009  Akinori MUSHA  <knu@iDaemons.org>

	* class.c (rb_singleton_class_clone): Qnil must be used for a null
	  class reference when we use NIL_P() to check class reference
	  validity.  The bug was exposed by the spec test of Sequel.

	* eval.c (ruby_init): Use NEW_CREF().

Thu Sep 10 10:53:03 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (rb_sysopen): workaround for MSVCRT's bug.
	  [ruby-core:24838]

Mon Sep  7 19:52:44 2009  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_thread_schedule): need select for WAIT_SELECT, even if
	  already timeout.  [ruby-dev:38971]
	  (WAIT_DONE): defined for mark threads which can be runnable.

Mon Sep  7 19:52:44 2009  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_thread_schedule): refine previous change.

Mon Sep  7 19:52:44 2009  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_thread_schedule): fix condition for making thread
	  runnable.  [ruby-core:23515]

Sun Sep  6 19:47:10 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_exc_raise, rb_exc_fatal): require exception object.
	  [ruby-core:24767]

Sun Sep  6 01:34:03 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_connect): return value was broken when some
	  error occurred.
	  [ruby-core:24234]

Fri Sep  4 10:03:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (argf_eof): go to the next file if called after ARGF.close
	  or ARGF.skip.  a patch from Mike Kasick at [ruby-core:24561].

Sun Aug  9 17:43:44 2009  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb.rb, lib/irb/init.rb, lib/irb/ext/save-history.rb: add
	  IRB::irb_at_exit. no use finalizer saving history. [ruby-dev-38563]

Wed Aug  5 15:29:54 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (rb_io_flush): fsync() after buffer is flushed on win32.
	  backported from trunk.  [ruby-core:20043]


Tue Aug  4 11:00:30 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* re.h (RMATCH_REGS): added for compatibility.

Mon Aug  3 14:46:53 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/complex.rb (Numeric#arg): should return NaN for NaN.
	  [ruby-core:24116]

Thu Jul 30 09:27:44 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (big_lshift, big_rshift): return Bignum always withou
	  normalization.  [ruby-dev:38680]

Wed Jul 29 11:19:47 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (argf_close): always call #close method.  [ruby-core:23853]

	* io.c (argf_skip): should close only when current_file is available.

Sat Jul 25 21:26:18 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* enum.c (first_i): Enumerator#first should consume only what is
	  needed.   a patch from Marc-Andre Lafortune.  [ruby-core:23661]

	* enum.c (take_i): ditto.

	* enum.c (enum_first): call to_int once for an argument.  a patch
	  from Marc-Andre Lafortune.

Fri Jul 24 17:19:40 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (HTTP_STATUS): typo fixed.   [ruby-dev:38538]

Wed Jul 22 23:39:34 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rexml/text.rb (REXML::Text.normalize): call to_s for input.
	  [ruby-talk:337069]

Tue Jul 21 18:21:47 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (SRC_EXT): should be flat.
	  http://twitter.com/_tad_/status/1825862632

Sat Jul 18 00:44:43 2009  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* gc.c (rb_gc_call_finalizer_at_exit): finalizer_table can be NULL.
	  [ruby-core:24395]

Thu Jul 16 09:35:06 2009  Akinori MUSHA  <knu@iDaemons.org>

	* lib/delegate.rb (Delegator#method_missing)
	  (DelegateClass()#method_missing): Properly pass a given block
	  through. [ruby-dev:38390]

Wed Jul 15 11:40:34 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_join): recursive array has no meaning as path
	  name.  [ruby-core:23329]

Tue Jul 14 19:57:28 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (get_ts): use readtime clock.  [ruby-dev:38354]

	* eval.c (rb_thread_stop_timer): clear thread_init while locking.

Tue Jul 14 19:57:28 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_start_timer): guard condition was inverted.
	  [ruby-dev:38319]

Tue Jul 14 19:57:28 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (safe_mutex_lock): pthread_cleanup_push() must not be
	  inside parens.

Mon Jul 13 01:36:54 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_timeval): rounds subsecond toward zero.

Mon Jul 13 01:36:54 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_timeval): check out-of-range.  [ruby-core:23282]
	  [Bug #1396]

Thu Jul  9 17:58:03 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_invoke): shares dmethod scope local variables.
	  a patch from coderrr at [ruby-core:23050]

	* gc.c (obj_free): do not free cloned scope local variables.

Wed Jul  8 19:28:03 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_remove): stops timer thread unless other
	  threads exist.  [ruby-core:18444]

Mon Jul  6 16:01:38 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): checks for interrupt, stack and finalizers too.
	  [ruby-dev:38208], [Bug #1329]

	* eval.c (eval): replaces the message if frozen.

Sun Jul  5 03:50:52 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit.rb: use Kernel.exit to get rid of using
	  IRB::ExtendCommandBundle#exit.  a patch from Dmitry Vazhov by
	  [ruby-core:22986].

Fri Jul  3 09:05:38 2009  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (open_server_inaddr_any): fixed multiple network
	  families problem. a patch from Charl Matthee at [ruby-core:21033].

Wed Jul  1 15:46:30 2009  Tanaka Akira  <akr@fsij.org>

	* lib/pathname.rb (Pathname#sub): set $~ in block.binding.
	  [ruby-dev:38173]

Mon Jun 29 13:18:42 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/fileutils.rb (FileUtils#fu_get_gid): stringify group
	  argument before making regexp match.  [ruby-dev:38155]

Fri Jun 12 16:36:44 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (VpToString): fixed a bug introduced
	  in r23613.  [ruby-talk:338957]

Mon Jun  8 10:58:41 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (rb_thread_schedule): mswin32 doesn't have F_GETFD, so check
	  with another method.

Mon Jun  8 08:15:36 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (VpAlloc): avoid ALLOCA_N() to avoid
	  segmentation fault caused by (insanely) long decimal values.
	  backported from 1.9. CVE-2009-1904
 
	* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_to_i,
	  BigDecimal_to_f, BigDecimal_to_s, BigDecimal_split,
	  BigDecimal_inspect): ditto.

Mon Jun  8 08:15:36 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): returns Inf if
	  exp is bigger than DBL_MANT_DIG.

Wed Jun  3 21:16:30 2009  Tanaka Akira  <akr@fsij.org>

	* file.c: include fcntl.h for O_RDONLY on Solaris.

Wed Jun  3 21:09:56 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (rv_strdup): macro to duplicate nul-terminated string.
	  [ruby-core:22852]

	* util.c (ruby_dtoa): allocates one more byte to get rid of buffer
	  overrun.  a patch from Charlie Savage at [ruby-core:22604].

Wed Jun  3 21:09:56 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (ruby_dtoa): allocates one more byte to get rid of buffer
	  overrun.  a patch from Charlie Savage at [ruby-core:22604].

Wed Jun  3 21:05:44 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (gfDebug): uncommented out.
	  [ruby-core:22600]

Wed Jun  3 20:54:23 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): needs to guard intermediate string objects.
	  based on a patch from Brent Roman <brent AT mbari.org> a
	  [ruby-core:22584].

Tue May 26 21:24:01 2009  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* Makefile.in (update-rubyspec, test-rubyspec): Catch up to
	  rubyspec merge.  A patch by Brian Ford at [ruby-core:21032]

Tue May 26 21:21:49 2009  Akinori MUSHA  <knu@iDaemons.org>

	* lib/soap/mimemessage.rb (MIMEMessage#to_s): Fix a fatal
	  method name typo. [Bug #1173]

Tue May 26 21:16:55 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_extname): fix for spaces before extention.
	  [ruby-dev:38044]

Tue May 26 21:09:21 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (_CrtDbgReportW): prevent from false positive
	  assertions in msvcrtd.  [ruby-core:22116]

Tue May 26 21:02:13 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/ostruct.rb (OpenStruct#new_ostruct_member): checks if frozen.
	  [ruby-talk:328195], [ruby-core:22142]

Tue May 26 21:00:08 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/ostruct.rb (OpenStruct#inspect): fixed the recursion check.
	  Patch by Kornelius Kalnbach.  [ruby-core:20992].

	* test/ostruct/test_ostruct.rb: test for inspect.
	  Patch by Kornelius Kalnbach.  [ruby-core:20992].

Tue May 26 20:50:32 2009  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_thread_schedule): handle EBADF of select as well.
	  [ruby-core:21264]

Wed Apr  8 18:59:52 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (subtruct): check tv_sec.

Thu Apr  2 16:06:17 2009  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* test/rss/test_atom.rb (RSS::TestAtomCore::assert_atom_content_inline_other_base64_to_s):
	  ditto. [ruby-dev:38248]

Thu Apr  2 15:43:46 2009  Kouhei Sutou  <kou@cozmixng.org>

	* test/rss/rss-assertions.rb (RSS::Assertions::assert_atom_content_inline_other_text):
	  newlines are valid for Base64 data. [ruby-dev:38248]

Thu Apr  2 14:17:09 2009  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* test/openssl/test_ssl.rb (OpenSSL#test_client_session):
	  Debian's openssl 0.9.8g-13 failed at assert(ssl.session_reused?),
	  when use default SSLContext. [ruby-dev:36167]
	  backported r19268 from trunk. [ruby-core:22843]

Thu Mar 31 18:18:18 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (mkintpath): new function which converts native path
	  to format acceptable in Makefile.

	* lib/mkmf.rb (configuration): leaves PATH_SEPARATOR unchanged.

	* lib/mkmf.rb (configuration): convers srcdir, topdir and hdrdir.
	  a patch by Alexey Borzenkov <snaury AT gmail.com> at
	  [ruby-core:21448].

Fri Mar 27 19:22:02 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (run_final): frees zombies only.  [ruby-dev:38171]

Fri Mar 27 19:22:02 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (rb_gc_call_finalizer_at_exit): leave Thread objects
	  unfinalized.  [ruby-dev:38168]

Fri Mar 27 19:22:02 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (run_final): calls free function.  [ruby-core:22578]

Mon Mar 23 19:17:06 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/thread/thread.c (rb_queue_pop, rb_queue_push): should not lock
	  mutex if got an exception while waiting, and should ensure unlocked
	  after signaled.  [ruby-dev:37545]

Mon Mar 23 18:26:57 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_value): missed to change at r17874.  [ruby-core:17595]

Mon Mar 23 18:26:57 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_join): new API.

	* ext/thread/thread.c (wait_mutex, lock_mutex): wait until the locking
	  thread exits.  [ruby-dev:34856]

Mon Mar 23 17:41:49 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_load_ok): checks if regular file, except for the
	  platform disallows to open directories, e.g. dosish.
	  [ruby-dev:38097], [Bug #1221]

Mon Mar  9 20:59:24 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* ext/openssl/ossl_ocsp.c (ossl_ocspbres_verify): OCSP_basic_verify
	  returns positive value on success, not non-zero.  [ruby-core:21762]
	  backported r22440 from trunk.

Mon Mar  9 10:02:15 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (match_check): check if MatchData is initialized.
	  [ruby-core:18749]

Mon Mar  9 09:56:34 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/rexml/rexml.rb: incremented Ruby::VERSION.  Thanks, Jeremy
	  Kemper.  [ruby-core:20113]

Mon Mar  9 09:52:53 2009  Tanaka Akira  <akr@fsij.org>

	* io.c (io_getpartial): fflush after read for updating pos in FILE.
	  not portable, I guess.  [ruby-core:21561]

Mon Mar  9 09:04:39 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (define_final): cannot define finalizer for immediate
	  values.  [ruby-core:21500]

	* gc.c (define_final): freezes or hides internal values.

Mon Mar  9 08:54:47 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (IS_BEG): EXPR_CLASS should be treated like EXPR_BEG.
	  [ruby-core:21453]

Wed Feb 25 15:15:52 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* node.h (rb_thread_raised_clear): should not clear flags other than
	  raised flags.  a patch by Tomoyuki Chikanaga <chikanag AT
	  nippon-control-system.co.jp> at [ruby-dev:37794].  [ruby-dev:37776]

Wed Feb 25 15:05:48 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/extconf.rb (gai_strerror): checks if available and if
	  returns const pointer.

	* ext/socket/getaddrinfo.c (gai_strerror): defines only if non
	  available.  [ruby-core:21328]

Wed Feb 25 14:57:18 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (open_dir_handle): extracted from rb_w32_opendir.

	* win32/win32.c (winnt_stat): gets rid of strange behavior of
	  GetFileAttributes().  [ruby-core:21269]

Tue Feb 24 02:44:39 2009  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (PercentScanner): remove PercentScanner. fixed % after
	  %> bug. [ruby-dev:37751] [Bug #997] 

	* test/erb/test_erb.rb: ditto

Tue Feb 24 02:35:29 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (rb_hash_s_create): set nil as the value if assoc length
	  is not enough.  [ruby-core:21249]

Sun Feb 22 22:08:45 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (stack_extend): streamlined rb_thread_restore_context()
	  to ensure O(1) time.  based on a patch by Brent Roman <brent AT
	  mbari.org>.

Sun Feb 22 22:03:40 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (cc_mark): frees the continuation's stack if its thread
	  is dead to avoid recursive gc that segfaults.  [ruby-core:13889]
	  a patch by Brent Roman <brent AT mbari.org>.

	* eval.c (rb_cont_check): checks for valid continuation instance.

	* eval.c (rb_callcc): assigns th->thread before scope_dup() to
	  avoid segfaults if this scope_dup() triggers a gc pass.
	  a patch by Brent Roman <brent AT mbari.org>.

Sun Feb 22 21:43:34 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (ruby_float_step): extracted from num_step().

	* range.c (range_step): uses ruby_float_step() for float range.
	  [ruby-dev:37691]

Sun Feb 22 00:49:36 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): does not use both of makefile.rb and
	  extconf.rb at the same time.

	* lib/mkmf.rb (DLLIB): depends on Makefile.  [ruby-core:21096]

Sun Feb 22 00:19:05 2009  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_thread_schedule): Don't change status of threads which
	  don't run next even if select notify readability/writability.
	  [ruby-core:20446]

Fri Feb 20 20:43:13 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::List#summarize): gives priority
	  to latter switches.  [ruby-dev:36692]

	* lib/optparse.rb (OptionParser#summarize): do not append
	  unnecessary line terminator.

Fri Feb 20 19:35:08 2009  Takeyuki FUJIOKA  <xibbar@ruby-lang.org>

	* lib/cgi/session.rb: ignore session_id options fixed.[Bug #605]

Fri Feb 20 18:06:40 2009  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 20854 from trunk.

	* lib/xmlrpc/server.rb:  Restricting method inspection to show only
	  non-inherited public methods.  [ruby-core:20603]

	* lib/xmlrpc/server.rb:  Fixing method inspection so it doesn't 
	  trigger XMLRPC::FaultException when used.  [ruby-core:20604]

Fri Feb 20 01:41:08 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/sync.rb (Sync_m#sync_try_lock): wrong variable name fixed.
	  a patch from [ruby-core:20561]

	* lib/sync.rb (Sync_m::Err.Fail): turn off Thread.critical before
	  exit.

Thu Feb 19 18:02:10 2009  Yuki Sonoda (Yugui)  <yugui@yugui.jp>

	* pack.c (pack_pack): fixed odd act of 'm*', 'M*', and 'P*'.
	  just ignores '*' in these cases.
	  [ruby-dev:37289]

Thu Feb 19 17:26:11 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* pack.c (pack_pack): fixed length for odd length string.
	  [ruby-dev:37283]

Thu Feb 19 17:13:13 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_yield_0): Qundef means no argument.  [ruby-Bugs-22525]

Wed Feb 18 22:28:00 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_isatty): check whether fd is valid.

Wed Feb 18 22:24:23 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (waitpid): fix bug of checking child slot.

	* win32/win32.c (FindChildSlotByHandle): new.

Wed Feb 18 22:17:04 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_pack): propagate taint status from format string to
	  result string.

Wed Feb 18 22:07:44 2009  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* ext/gdbm/gdbm.c: do not set members of RSTRING(str) directly.
	  [ruby-dev:37182]

	* ext/gdbm/gdbm.c (rb_gdbm_nextkey): fix memory leak.

Tue Feb 17 11:58:58 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (str_independent): no independent string points null_str.
	  [ruby-core:20082]

Mon Feb 16 23:30:24 2009  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/blt.rb, ext/tk/lib/tkextlib/blt/vector.rb: 
	  fix NameError bug.

Mon Feb 16 23:08:22 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_s_alloc, rb_str_replace): use null_str as well as
	  rb_string_value so that extension libraries do not segfault.
	  [ruby-core:19971]

	* string.c (rb_str_replace): reduced unnecessary malloc and copy.

Mon Feb 16 22:45:41 2009  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb: fixed fails occasionally [ruby-dev:37119].
	  thanks, shinichiro.h.

Mon Feb 16 22:36:37 2009  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbConn::alive?): fixed NoMethodError problem
	  from NaHi [ruby-dev:37110].

Sun Feb 15 04:21:42 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/net/ftp.rb (Net::FTP#open_socket): SOCKSsocket is obsolete.
	  a patch from Alan Johnson <alan.wayne.johnson at gmail.com> in 
	  [ruby-core:19982].

Fri Feb 13 19:18:42 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/logger.rb (ProgName): fixed for svn, based on a patch from
	  Nobuhiro IMAI at [ruby-dev:37108].

Sun Feb 15 04:17:40 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_request_line):
	  use non-greedy match for path retrieval to avoid huge recursion
	  for insanely long path.

Fri Feb 13 19:04:54 2009  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* shell/command-processor.rb: undefined method `top_level_test' in
  	  Shell#test. [ruby-list:45634]

Tue Feb 10 20:00:52 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (load_lock): makes circular require deadlock.
	  [ruby-core:19821]

Tue Feb 10 19:40:58 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_feature_p): returns found feature name if loading.
	  [ruby-core:19798]

	* eval.c (search_required): ditto.

Wed Feb 11 23:37:35 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (VpMidRound): Round method bug
	  pointed by Ryan Platte fixed(Patch to the patch from "NATORI
	  Shin").  [ruby-talk:273360]
	  back ported from 1.9. fix [ruby-core:19791]

Mon Feb  9 17:35:38 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_accept): secure fd before accept because if
	  error causes in securing, cannot restore the state of accepted
	  socket.
	  fixed [ruby-core:19728]

Mon Feb  9 13:42:15 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (ifs_open_socket): should retry without proto_buffer
	  if cannot find the suitable protocol. a patch from Heesob Park.
	  fixed [ruby-core:19713]

Mon Feb  9 13:40:21 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/stringio/stringio.c (strio_ungetc): should allow ungetc at
	  the top of the buffer.  ref #701

Thu Feb  5 09:38:48 2009  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c (h_conv): can't guess UTF-8 input in
	  conversion. [ruby-list:45609]

Thu Feb  5 09:03:21 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/rexml/entity.rb (unnormalized): do not call
	  document.record_entity_expansion if document is nil.
	  see <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502535>.
	  Thanks, Naohisa Goto.  backported from trunk.

	* test/rexml/test_document.rb: ditto.

Thu Feb  5 08:55:24 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (rb_ary_join): do not repeat self in a recursive array.
	  [ruby-dev:37019]

Wed Feb  4 14:26:58 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_globs): need taint check.  reported by steve
	  <oksteev at gmail.com>

Tue Feb  3 14:35:26 2009  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/net/pop.rb: check for invalid APOP timestamp. (CVE-2007-1558)
	  [ruby-dev:36631]

	* test/net/pop/test_pop.rb: ditto.

Mon Feb  2 20:03:58 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_mdump, time_mload): preserves GMT status.
	  [ruby-core:19252]

Mon Feb  2 11:34:51 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* variable.c (autoload_delete, autoload_file): should not delete
	  autoload table, since it may be shared with duplicated modules.
	  [ruby-core:19181]

Thu Jan 29 11:54:22 2009  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (today,now): should produce own instances.
	  [ruby-talk:317020]

Wed Jan 28 22:51:55 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_mod_modfunc): method undefined in included module
	  may not have nd_body.  [ruby-core:18738]

Wed Jan 28 20:53:27 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (marshal_dump): fixed for check_dump_arg.

Tue Jan 27 17:30:11 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (marshal_dump): initializes dump_arg before any funcall.
	  [ruby-dev:36648]

Tue Jan 27 15:17:35 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/socket.c (host_str): numeric address should be unsigned.
	  [ruby-core:18971]

Mon Jan 26 11:12:03 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/tmpdir.rb: setup buffer with nul characters instead of spaces.
	  fixed [ruby-dev:36493]

Sun Jan 25 00:07:23 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rexml/formatters/pretty.rb (REXML::Formatters::Pretty#wrap):
	  abandon wrapping if the line contains no space.  [ruby-dev:36045]
	  fix: #342

Sun Jan 25 00:02:23 2009  Yuki Sonoda (Yugui)  <yugui@yugui.jp>

	* lib/matrix.rb (Vector#eql?): typo of the method name as "eqn?".
	  (Vector#eqn?): removed. Defined by mistake.
	  Fixes [ruby-dev:36294]. Reported by weda <weda AT
	  issp.u-tokyo.ac.jp> and an anonymous user.

	* test/matrix/test_matrix.rb: added.

	* test/matrix/test_vector.rb: added.

Fri Jan 23 11:49:45 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* NEWS: added an entry for REXML.

	* lib/rexml/document.rb: fixed typo.

Fri Jan 23 11:49:45 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/rexml/document.rb: limit entity expansion.  Thanks, Luka
	  Treiber, Mitja Kolsek, and Michael Koziarski.  backported from
	  trunk r19033, r19317, r19318.

	* lib/rexml/entity.rb: ditto.

	* test/rexml/test_document.rb: ditto.

Thu Jan 22 15:19:39 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (marshal_load): arg.data is no longer a VALUE but a
	  st_table, and freed in load_ensure.  pointed out by pegacorn.
	  [ruby-dev:37008]

Thu Jan 22 15:19:39 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (rb_mark_set): new function to mark keys.

	* marshal.c (struct dump_arg, struct load_arg): added wrappers to mark
	  data entries.  backport from trunk r13527,r13528,r13961,r16533.
	  [ruby-dev:36082]

Wed Jan 21 11:12:55 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (filetime_to_timeval): new function, split from
	  gettimeofday().

	* win32/win32.c (gettimeofday): use above function.

	* win32/win32.c (filetime_to_unixtime): ditto. [ruby-dev:36135]

Wed Jan 21 11:12:55 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (gettimeofday): tv_usec is usec, not msec.
	  [ruby-dev:36094]

Wed Jan 21 11:12:55 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (gettimeofday): calc tv_sec and tv_usec from system
	  time by myself. [ruby-dev:36084]

Wed Jan 21 11:12:55 2009  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (gettimeofday): shouldn't use mktime(2) because it's
	  buggy about handling summer time.
	  reported by Yoshikawa <yoshixool AT gmail.com> at [ruby-dev:36071]

Tue Jan 20 12:23:38 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/scanf.rb (Scanf::FormatSpecifier#initialize): %i should accept
	  single digit decimal.  [ruby-core:18355]

Mon Jan 19 18:25:28 2009  Tanaka Akira  <akr@fsij.org>

	* configure.in (rb_cv_broken_glibc_ia64_erfc): renamed from
	  rb_broken_glibc_ia64_erfc.
	  [ruby-core:18228]

Sat Jan 17 12:16:10 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* random.c (Init_Random): always initialize seed.

Fri Jan 16 10:59:31 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* class.c (clone_method): should copy cbase in cref as well.
	  [ruby-dev:35116]

	* node.h (NEW_CREF): new NEW_ macro.

	* eval.c (PUSH_CREF): use NEW_CREF().

Thu Jan 15 14:34:32 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (STACK_LEVEL_MAX, ruby_stack_length): returns size_t.
	  [ruby-core:18207]
Wed Jan 14 10:39:56 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* stable/ext/socket/socket.c (NI_MAXHOST, NI_MAXSERV): fixed invalid
	  preprocessor directives.  a patch from Peter Bowen at
	  [ruby-core:18211].

Tue Jan 13 04:40:30 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/ftp.rb (login): raise FTPReplyError if passwd or acct
	  is not supplied.  backported from trunk.  fixed [ruby-core:18058].

Mon Jan 12 00:23:37 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (gc_sweep, obj_free, run_final): defer finalizers of IO and
	  Data.  [ruby-dev:35578]

	* gc.c (rb_gc_call_finalizer_at_exit): self-referencing finalizers
	  cannot be invoked.  [ruby-dev:35681]

Sun Jan 11 11:33:27 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/ftp.rb (chdir): handle 5xx errors correctly.
	  backported from trunk.  fixed [ruby-core:18057].

Fri Jan  9 19:25:25 2009  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (disconnect): do not refer SSL::SSLSocket for
	  environments without OpenSSL.  backported from trunk.
	  fixed [ruby-dev:35755].

Thu Jan  8 13:24:23 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (deferred_nodes, compstmt, arg, fixup_nodes, range_op): fix
	  up fixnum range literal in conditional as automagical line number
	  comparison.  [ruby-core:12124], [ruby-dev:35731]

Wed Jan  7 10:09:46 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (timeofday): use monotonic clock.  based on a patch
	  from zimbatm <zimbatm@oree.ch> in [ruby-core:16627].

Tue Jan  6 09:03:35 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yylex): 8 and 9 in octal integer should cause compile
	  error.  [ruby-dev:35729]

Mon Jan  5 11:14:39 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_schedule): runs deferred finalizers.

	* gc.c (gc_sweep): sets rb_thread_pending to run deferred finalizers.

	* rubysig.h (CHECK_INTS): now checks rb_thread_pending even on
	  platforms where setitimer is not available.  [ruby-core:18045]

Mon Jan  5 11:14:39 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* rubysig.h (CHECK_INTS): gives the chance to perform to deferred
	  finalizers before explicit GC.start or the process termination.
	  [ruby-core:18045]

Sun Jan  4 04:49:01 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_telldir): just returns loc.

	* win32/win32.c (rb_w32_rewinddir): needs to intialize loc.
	  [ruby-core:18041]

Sun Jan  4 04:45:26 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_select): recalc the rest of timeout for each
	  iterations.  [ruby-core:18015]

Fri Jan  2 03:08:47 2009  Kouhei Sutou  <kou@cozmixng.org>

	* test/rss/: use PNG instead of zlib as binary data. [ruby-dev:35666]

Tue Nov 11 01:07:32 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* configure.in: fix SEGV on Mac OS X 10.5.3 with --enable-pthread.
	  a patch from Wataru Kimura in Bug #193 [ruby-core:17333].

Mon Aug 11 09:37:17 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dl/dl.c (rb_str_to_ptr): should propagate taint to dlptr.

	* ext/dl/dl.c (rb_ary_to_ptr): ditto.

	* ext/dl/sym.c (rb_dlsym_call): should check taint of DLPtrData as
	  well.

Fri Aug  8 10:53:52 2008  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb: randomize source port and transaction id.
	  CVE-2008-1447.

	* lib/resolv-replace.rb (UDPSocket#bind): don't resolv host if host is
	  "".

Mon Aug  4 14:49:35 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/net/smtp.rb (Net::SMTP::rcptto): fix a typo. a patch from
	  Masao Takaku <masao at nii.ac.jp>
	  fix [ruby-dev:35489].

Mon Aug  4 14:13:15 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* regex.c (xmalloc, xrealloc, xfree): not to use ruby managed memory.

	* regex.c (DOUBLE_STACK, re_compile_fastmap0, re_adjust_startpos),
	  (re_search, re_match_exec): check if failed to allocate memory.

Mon Aug  4 13:53:42 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big2str0, bigsqr): made interruptible.  [ruby-Bugs-20622]

Mon Aug  4 13:31:41 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): fixed wrong check
	  about 64bit positive value.
Mon Aug  4 13:31:41 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): strict check.
	  fixed [ruby-dev:33683]

Thu Jul 17 21:42:07 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/net/smtp.rb (Net::SMTP::start): revert to avoid RFC2821
	  violation. [ruby-dev:35487]

Thu Jul 17 21:32:49 2008  Tanaka Akira  <akr@fsij.org>

	* string.c (rb_str_format_m): make tmp volatile to avoid possible GC
	  problem.

Thu Jul 17 21:30:55 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#environment): requires shellwords.
	  [ruby-dev:35466]

Thu Jul 17 02:05:10 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): requires
	  webrick/cookie.  [ ruby-Bugs-21139 ]

Thu Jul 17 01:38:31 2008  Yusuke Endoh  <mame@tsg.ne.jp>

	* ext/zlib/zlib.c (rb_gzfile_set_mtime): fix typo.  [ruby-core:17713]

Sun Jul 13 00:08:16 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/ipaddr.rb (IPAddr#initialize): get rid of ArgumentError in
	  IPAddr#to_range.  a patch from okkez <okkez000 AT gmail.com> in
	  [ruby-dev:35091].

Sun Jul 13 00:04:38 2008  Tanaka Akira  <akr@fsij.org>

	* configure.in (erfc): erfc of glibc comes with Debian GNU/Linux Etch
	  on IA64 is broken.  erfc(10000.0) aborts.
	  use missing/erf.c instead.
	  http://sources.redhat.com/ml/libc-hacker/2005-08/msg00008.html

Thu Jul 10 18:50:48 2008  Tanaka Akira  <akr@fsij.org>

	* common.mk (SPEC_GIT_BASE): update RubySpec GIT URL.

Thu Jul 10 18:46:28 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_extname): fix for file name with spaces.
	  [ruby-talk:307404]

Thu Jul 10 18:42:37 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (PercentScanner#scan): fix %% line bug. [ruby-core:17491]

	* test/erb/test_erb.rb (test_percent): ditto.

Thu Jul 10 18:40:22 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/net/ftp.rb (Net::FTP#sendport): use divmod.  [ruby-core:17557]

Thu Jul 10 18:36:53 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* ruby.c: Mac OS X needs origargc times of '\0' in
	  origargv. [ruby-dev:35308]

Thu Jul 10 13:53:08 2008  Tanaka Akira  <akr@fsij.org>

	* include/ruby/ruby.h (POSFIXABLE): use FIXNUM_MAX+1 instead of
	  FIXNUM_MAX to make it possible to convert to double accurately.
	  It assumes FLT_RADIX is 2.
	  fix RubyForge bug #14102.
	  backported from 1.9.

Mon Jul  7 16:21:38 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/net/smtp.rb (Net::SMTP::start): use 'localhost' instead of
	  'localhost.localdomain'.  [ruby-dev:35333]

	* lib/net/smtp.rb (Net::SMTP::SMTP.start): ditto.

Mon Jul  7 15:02:13 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_longjmp): duplicate the thrown exception to set backtrace
	  if it was frozen.  clear all raised flags.

	* eval.c (stack_check): leave clearing flag to rb_longjmp.

	* eval.c (rb_thread_set_raised, rb_thread_reset_raised): use generic
	  flags.

	* eval.c (Init_Proc), gc.c (Init_GC): freeze preallocated special exceptions.

	* gc.c (rb_memerror): use thread raised flag instead of static flag,
	  and raise nomem_error without backtrace if failed to make backtrace.
	  [ruby-dev:34724]

	* gc.c (ruby_xmalloc): increase malloc_increase only if malloc
	  succeeds.  failed malloc size can be huge.  it may increase
	  malloc_limit too big which cause less GC and memory full.
	  (ruby_xrealloc): ditto.

Mon Jul  7 12:23:05 2008  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: avoid creating Ruby object during
	  GC. thanks to arton <artonx AT yahoo.co.jp>. [ruby-dev:35313]

	* ext/win32ole/tests: add test_win32ole_event.rb, remove
	  testOLEEVENT.rb

	* ext/win32ole/tests/testWIN32OLE.rb(test_convert_bignum):
	  fix test.

Mon Jul  7 12:23:05 2008  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* gc.c: add rb_during_gc(). based on a patch from arton <artonx AT
	  yahoo.co.jp> at [ruby-dev:35313].   

	* intern.h: ditto.

Thu Jul  3 20:13:20 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search
	  public methods only.  [ruby-core:17283]

	* object.c (convert_type): ditto.

	* lib/singleton.rb (Singleton#_dump): conversion method should be
	  public.

Wed Jul  2 19:06:43 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension.read_multipart): blanks inside
	  double quotes are allowed.  [ruby-list:45140]

Wed Jul  2 19:03:37 2008  Tanaka Akira  <akr@fsij.org>

	* numeric.c (num_coerce): call rb_Float(x) first.  don't depend on
	  evaluation order of function arguments.

Wed Jul  2 18:57:19 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/syslog/syslog.c (syslog_write): syslog operations should be
	  protected from $SAFE level 4.  a patch from Keita Yamaguchi
	  <keita.yamaguchi at gmail.com>.

	* ext/syslog/syslog.c (mSyslog_close): ditto.

	* ext/syslog/syslog.c (mSyslog_set_mask): ditto.

Wed Jul  2 18:26:20 2008  Tanaka Akira  <akr@fsij.org>

	* math.c (domain_check): fix preprocess condition.

Wed Jul  2 18:22:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/tmpdir.rb (@@systmpdir): prior LOCAL_APPDATA if possible, and
	  should be clean.  based on a patch from arton <artonx AT
	  yahoo.co.jp> at [ruby-dev:35269]

Wed Jul  2 18:16:19 2008  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (date2time_str): fix the overflow in
	  some situation. [ruby-bugs-20793]

Tue Jul  1 15:11:14 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (rb_ary_fill): check if beg is too big.

Mon Jun 30 20:35:32 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (str_buf_cat): check for self concatenation.

Sun Jun 29 21:39:54 2008  Tanaka Akira  <akr@fsij.org>

	* eval.c (rb_obj_respond_to): use RTEST to test the result of
	  respond_to? method.

Sun Jun 29 21:20:17 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* array.c (rb_ary_fill): (compatibility) do not raise
	  ArgumentError on negative length.  This behaviour shall change
	  in a future release.

Sun Jun 29 20:08:11 2008  Tanaka Akira  <akr@fsij.org>

	* time.c (time_timeval): fix rounding negative float.

Sun Jun 29 19:19:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/inlinetest.rb (InlineTest.in_progname): workaround for frozen
	  $0.  [ruby-dev:35261]

	* lib/test/unit/ui/console/testrunner.rb (TestRunner#finished): ditto.

Sun Jun 29 19:19:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ruby.c (set_arg0, ruby_prog_init): freeze $0.  a patch from Keita
	  Yamaguchi <keita.yamaguchi at gmail.com>.

Sun Jun 29 18:33:33 2008  Tanaka Akira  <akr@fsij.org>

	* process.c: include sys/resource.h if HAVE_SYS_RESOURCE_H is defined.
	  pointed by TOYOFUKU Chikanobu.  [ruby-dev:35258]

Sun Jun 29 18:26:01 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_f_trace_var): should not be allowed at safe level 4.  
	  a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.

	* eval.c (rb_call0): wrong condition to check insecure method.
	  a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.

Sun Jun 29 18:22:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (rb_ary_fill): not depend on unspecified behavior at integer
	  overflow.  reported by Vincenzo Iozzo <snagg AT openssl.it>.

Sun Jun 29 18:22:06 2008  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c(ole_invoke): fix memory leak.
	  [ruby-bugs-20792]

Sun Jun 29 18:19:11 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (PUSH_FRAME, PUSH_CLASS): Add volatile to avoid a
	  possible optimization bug on OS X/PPC.  This at least makes
	  build with gcc -O1 and `make test' pass.

Sun Jun 29 17:24:43 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/parsers/parse_rb.rb (RDoc#collect_first_comment): skip
	  magic comment.

Sun Jun 29 17:22:09 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_each, strio_readlines): IO#each and
	  IO#readlines do not affect $_.  [ruby-core:17277]

Sun Jun 29 17:19:59 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_readline, strio_each)
	  (strio_readlines): set lastline.  [ruby-core:17257]

Sun Jun 29 17:15:49 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/ossl.h: include winsock.h if USE_WINSOCK2 is not defined.
	  a patch from arton <artonx at yahoo.co.jp> in [ruby-dev:35078]

Sun Jun 29 17:09:48 2008  wanabe  <s.wanabe@gmail.com>

	* util.c (ruby_strtod): ruby_strtod don't allow a trailing
	  decimal point like "7.". [ruby-dev:34835] [ruby-dev:35009]

Sat Jun 28 19:23:40 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* class.c (clone_method): use rb_copy_node_scope.
	  fixed [ruby-list:45102]
	  fixed [ruby-core:17393]

Sat Jun 28 18:49:50 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* class.c: revert to r15855.

Fri Jun 20 18:25:18 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_buf_append): should infect.

Fri Jun 20 16:33:09 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (rb_ary_store, rb_ary_splice): not depend on unspecified
	  behavior at integer overflow.

	* string.c (str_buf_cat): ditto.

Wed Jun 18 22:24:46 2008  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* array.c (ary_new, rb_ary_initialize, rb_ary_store,
	  rb_ary_aplice, rb_ary_times): integer overflows should be
	  checked. based on patches from Drew Yao <ayao at apple.com>
	  fixed CVE-2008-2726

	* string.c (rb_str_buf_append): fixed unsafe use of alloca,
	  which led memory corruption. based on a patch from Drew Yao
	  <ayao at apple.com> fixed CVE-2008-2726

	* sprintf.c (rb_str_format): backported from trunk.

	* intern.h: ditto.

Tue Jun 17 15:09:46 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): no need to expand root path which has no
	  short file name.  [ruby-dev:35095]

Sun Jun 15 19:27:40 2008  Akinori MUSHA  <knu@iDaemons.org>

	* configure.in: Fix $LOAD_PATH.  Properly expand vendor_ruby
	  directories; submitted by Takahiro Kambe <taca at
	  back-street.net> in [ruby-dev:35099].

Mon Jun  9 17:56:30 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/set.rb (Set#delete_if): Call to_a.
	  (SortedSet#delete_if, TC_SortedSet#test_sortedset): Use super to
	  yield elements in sorted order; [ruby-core:17144] by Arthur
	  Schreiber.
	  (SortedSet#each, SortedSet#each, TC_Set#test_each)
	  (TC_SortedSet#test_sortedset): Return self; [ruby-dev:35002] by
	  Arthur Schreiber.

Mon Jun  9 03:28:05 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/zlib/zlib.c (rb_deflate_initialize, Init_zlib): Fix up
	  initialize_copy; [ruby-list:45016], [ruby-list:45018].

Mon Jun  9 03:26:03 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* NEWS: Mention new constants.

Mon Jun  9 03:24:18 2008  Tanaka Akira  <akr@fsij.org>

	* hash.c (hash_i): make Hash#hash order insensitive.

Mon Jun  9 03:22:43 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (VENDOR_DIR): use LIBDIR instead of PREFIX as well as
	  SITE_DIR.  a patch from Richard Brown <rbrown AT exherbo.org> in
	  [ruby-core:17129].

Mon Jun  9 03:21:20 2008  Tanaka Akira  <akr@fsij.org>

	* gc.c (os_obj_of): assure to not free the scanning heap.

Mon Jun  9 03:20:12 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (rb_open_file, rb_io_s_sysopen): fmode should be unsigned int.
	  fixed [ruby-dev:34979]

Fri Jun  6 21:16:55 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (COMMON_HEADERS): include ws2tcpip.h.

	* ext/socket/addrinfo.h (addrinfo, getaddrinfo, getnameinfo,
	  freehostent, freeaddrinfo): undef before define because these are
	  macros in some versions of Windows SDK.

	* win32/setup.mak: maybe commit miss.

Fri Jun  6 19:34:22 2008  Akinori MUSHA  <knu@iDaemons.org>

	* mkconfig.rb: hide build path from rbconfig.rb.

	* util.c (ruby_strtod, dtoa): initialize more variables for error
	  handling.

	* io.c (rscheck), marshal.c (w_nbyte, w_bytes, w_unique),
	  (path2class, path2module): constified.

	* pack.c (pack_unpack), process.c (rb_syswait): suppress warnings.

	* suppress warnings on cygwin, mingw and mswin.

Fri Jun  6 19:23:53 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): fix for non-existent files and SFN of
	  symlinks.  [ruby-talk:303736]

Fri Jun  6 18:25:43 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/iconv: Tests fixed.

Fri Jun  6 17:04:56 2008  Akinori MUSHA  <knu@iDaemons.org>

	* win32/win32.h: include ws2tcpip.h. fixed [ruby-Bugs-20528]

	* lib/time.rb (Time.xmlschema): don't use float.  fix
	  http://rubyforge.org/tracker/index.php?func=detail&group_id=426&atid=1698&aid=20504

	* object.c (rb_obj_alloc): RDoc updated.  a patch from Gaston
	  Ramos <ramos.gaston at gmail.com> in [ruby-core:17073].

	* lib/rdoc.rb: massive spelling correction patch from Evan Farrar
	  <evanfarrar at gmail.com> in [ruby-doc:1382] applied.

	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize):
	  Add a null check for ssl; submitted by akira yamada
	  in [ruby-dev:34950].

	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Define OP_NO_TICKET if
	  SSL_OP_NO_TICKET is present; submitted by akira yamada
	  in [ruby-dev:34944].

	* test/openssl/test_ssl.rb (OpenSSL#test_server_session): Add a
	  workaround for the case where OpenSSL is configured with
	  --enable-tlsext; submitted by akira yamada in [ruby-dev:34944].

Fri Jun  6 16:58:23 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_iconv): fix for length argument and now
	  allows range.  [ruby-core:17092] [ruby-core:17115]

Wed Jun  4 17:22:30 2008  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Fix typos and move misplaced entries.
	  NEWS: Somehow optflags and warnflags were not actually included
	  in this release.

Tue Jun  3 19:33:22 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c (enumerator_init_copy): Take care of
	  initialize_copy as well as initialize.

	* test/ruby/test_enumerator.rb: Pull in the test suite for
	  enumerator from trunk.

Tue Jun  3 12:51:57 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c (enumerator_allocate, enumerator_ptr): Properly
	  detect if the object is initialized and raise error when
	  appropriate.
	  (enumerator_initialize): Fix a typo in rdoc. [ruby-core:17052]

Tue Jun  3 10:16:40 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/erb.rb (ERB::Compiler::TrimScanner#scan_line): Fix a bug
	  where tokens are not yilelded one by one.
	  (ERB::Compiler::TrimScanner#explicit_trim_line): Fix without-
	  strscan problems. [ruby_core:17028].

	* test/erb/test_erb.rb (TestERBCore#_test_01)
	  (TestERBCore#test_02_safe_04): The expected value should come
	  first for assert_equal().
	  (TestERBCoreWOStrScan): Add test class for without-strscan.

Mon Jun  2 19:47:16 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/delegate.rb (DelegateClass, Delegator#respond_to?):
	  respond_to? must take optional second argument.  This was a
	  latent bug exposed by a recent internal change of marshal.c to
	  call respond_to? with a second argument; submitted by Jeremy
	  Kemper <jeremy at bitsweat.net> in [ruby-core:17045].

Sat May 31 23:53:35 2008  Akinori MUSHA  <knu@iDaemons.org>

	* .: Release as Ruby 1.8.7.

Sat May 31 23:33:34 2008  Akinori MUSHA  <knu@iDaemons.org>

	* README, README.ja: Add a note about default C flags.

Sat May 31 22:11:15 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* version.c (ruby_description, ruby_copyright): backported from
	  1.9. bug#19002, [ruby-dev:34883]

	* error.c (report_bug): uses ruby_description.

Sat May 31 20:56:04 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_delete_if): should return enumerator if no block
	  is given.  [ruby-dev:34901]

Sat May 31 18:28:17 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* suppress warnings with -Wwrite-string.

Sat May 31 15:58:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, configure.in (warnflags): defaulted to -Wall
	  -Wno-parentheses with gcc.  [ruby-dev:34810]

Fri May 30 05:28:18 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* enum.c (count_i, count_iter_i, count_all_i): add prototypes for VC.

Fri May 30 04:32:07 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c (count_i, count_iter_i): Sync with trunk.
	  enum.c (enum_count, count_all_i, Init_Enumerable),
	  array.c (rb_ary_count): Sync with trunk.  If no argument or
	  block is given, count the number of all elements.

Fri May 30 03:12:18 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand):
	  Int should be enough here.

Fri May 30 02:35:00 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand),
	  ext/openssl/ossl_pkey_dh.c (ossl_dh_s_generate)
	  (ossl_dh_initialize),
	  ext/openssl/ossl_pkey_dsa.c (ossl_dsa_s_generate),
	  ext/openssl/ossl_rand.c (ossl_rand_bytes)
	  (ossl_rand_pseudo_bytes, ossl_rand_egd_bytes),
	  ext/openssl/ossl_x509store.c (ossl_x509stctx_set_error): Do not
	  use FIX2INT() without checking the value type.  Use NUM2INT()
	  instead; found by akr in [ruby-dev:34890].

Thu May 29 20:07:45 2008  Akinori MUSHA  <knu@iDaemons.org>

	* configure.in, win32/Makefile.sub, mkconfig.rb, instruby.rb,
	  ruby.c, lib/mkmf.rb, README.EXT, README.EXT.ja: Backport the
	  vendor_ruby directory support.

Thu May 29 17:52:31 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/zlib/extconf.rb: search zlib1, and regard mswin32 later than VC6
	  as WIN32.  [ruby-core:16984]

Wed May 28 17:54:29 2008  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (rb_str_start_with): Remove an unused variable.
	  (rb_str_upto_m): Fix a prototype.

Wed May 28 17:48:28 2008  Akinori MUSHA  <knu@iDaemons.org>

	* range.c (range_step): Fix brokenness when a non-integer numeric
	  value is specified as step. [rubyspec]
	  (range_step): Make use of String#step internally if a string (or
	  string-alike) range is given.

	* string.c (rb_str_upto_m, Init_String): Add an optional second
	  argument to specify if the last value should be included.

Wed May 28 16:53:39 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_slice_bang): Call rb_ary_modify_check() at the
	  beginning. [rubyspec]

Wed May 28 16:12:44 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/webrick/httpservlet/cgihandler.rb (WEBrick::HTTPServlet::CGIHandler#do_GET):
	  Set the HTTP status code to 302 if a Location header field is
	  present and the status code is not valid as a client
	  redirection.  cf. RFC 3875 6.2.3, 6.2.4.

Wed May 28 15:18:16 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/singleton.rb (SingletonClassMethods): _load should be public.

Wed May 28 12:52:41 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search
	  private methods too.  [ruby-dev:34671]

	* object.c (convert_type): ditto.

Tue May 27 23:26:49 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* error.c (rb_bug): description from rb_bug() should include
	  patchlevel.  [ruby-dev:34826]

Tue May 27 20:19:22 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_slice_bang): Return an empty array instead of
	  nil when pos is valid and len is adjusted from a valid value to
	  zero; caught by RubySpec.

Tue May 27 19:45:20 2008  Akinori MUSHA  <knu@iDaemons.org>

	* numeric.c (flo_divmod): Revert the behavior change; do not
	  suppress an exception when div is NaN or Inf. [ruby-dev:34857]

Tue May 27 19:24:40 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c (enum_to_a): Pass arguments through to #each().
	  (enum_sort): Follow the enum_to_a signature change.
	  (enum_reverse_each): Add #reverse_each().

Tue May 27 18:54:02 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/stringio/stringio.c (strio_each_char, Init_stringio): Add
	  StringIO#{each_char,chars}.

Tue May 27 17:59:34 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/stringio/stringio.c (strio_each): Return an enumerator if no
	  block is given.
	  (strio_each_byte): Return an enumerator if no block is given,
	  and return self if one is given as the rdoc says.

	* io.c (rb_io_each_byte): Fix rdoc.  IO#each_byte returns self,
	  not nil.

Tue May 27 16:02:58 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_mod_module_exec, Init_eval): Add
	  Module#{module_exec,class_exec}.

Tue May 27 15:36:37 2008  Akinori MUSHA  <knu@iDaemons.org>

	* io.c (rb_io_each_char, argf_each_char, Init_IO):
	  Add {IO#,ARGF.}{each_char,chars}.

Tue May 27 13:46:52 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/stringio/stringio.c (Init_stringio): Define
	  StringIO#{getbyte,readbyte}.

Tue May 27 13:38:51 2008  Akinori MUSHA  <knu@iDaemons.org>

	* io.c (Init_IO): Define {IO#,ARGF.}{getbyte,readbyte}.

Tue May 27 13:26:15 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/stringio/stringio.c (Init_stringio): Define #bytes and
	  #lines.

Tue May 27 13:20:35 2008  Akinori MUSHA  <knu@iDaemons.org>

	* io.c: (rb_io_lines, rb_io_bytes, Init_IO): Define
	  IO#{lines,bytes} and ARGF.{lines,bytes}.

Tue May 27 12:13:17 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (BUFCHECK): wrong condition. [ruby-core:16921]

	* file.c (file_expand_buf): shouldn't use buflen for length of string.

Mon May 26 18:24:48 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (BUFCHECK): no resize if enough room.

	* file.c (file_expand_path): use BUFCHECK.

Mon May 26 16:46:19 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (ntfs_tail): filename which starts with '.' is valid.

	* file.c (file_expand_path): cygwin symlink support.

Mon May 26 12:16:43 2008  Akinori MUSHA  <knu@iDaemons.org>

	* .: Release as Ruby 1.8.7-preview4.

Mon May 26 12:12:26 2008  Akinori MUSHA  <knu@iDaemons.org>

	* marshal.c (dump_ensure, load_ensure): should return values.

	* eval.c (yield_under, yield_under_i, yield_args_under_i)
	  (specific_eval, rb_obj_instance_exec, Init_eval): Implement
	  Object#instance_exec(), a 1.9 feature.

Mon May 26 11:53:21 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_yield_0, proc_invoke, proc_arity): allow passing a
	  block to a Proc.  [ruby-dev:23533]; by nobu; backported from
	  1.9.  This implementation in current shape is known to be
	  buggy/broken, especially with nested block invocation.  Take
	  this as an experimental feature.

	* parse.y (block_par, block_var): ditto.

Mon May 26 08:00:52 2008  Akinori MUSHA  <knu@iDaemons.org>

	* marshal.c (r_object0, Init_marshal): Fix the garbled s_call
	  definition; fixes [ruby-dev:34843].

Mon May 26 03:16:20 2008  Akinori MUSHA  <knu@iDaemons.org>

	* hash.c (rb_hash_default): Fix rdoc.
	  (rb_hash_each, env_each_value, env_each_pair): Return an
	  enumerator if no block is given.
	  (rb_hash_update): Update rdoc.
	  (envix): Conditionalize the definition itself.
	  (rb_f_getenv, env_fetch, env_keys, env_values, env_values_at)
	  (env_select, env_inspect, env_to_a, env_empty_p, env_has_key)
	  (env_has_value, env_index, env_indexes, env_to_hash, env_shift)
	  (env_update): Require secure level 4.
	  (env_each_value, env_each_i): Delay variable initialization.
	  (env_each_key, env_each_value, env_reject_bang)
	  (env_clear, env_replace): Omit duplicated secure level check.
	  (env_has_value): Do to_str conversion.

Sun May 25 19:48:12 2008  Akinori MUSHA  <knu@iDaemons.org>

	* hash.c (env_delete_if): Return an enumerator if no block is
	  given.
	  (env_each_key): Delay a variable initialization after
	  RETURN_ENUMERATOR().

Sun May 25 05:07:19 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_slice_bang): Be consistent with Array#slice()
	  and String#slice!().  Just return nil when a negative length or
	  out of boundary index is given instead of raising an exception
	  via internal functions.
	  (rb_ary_slice_bang): should not use rb_ary_subseq() which shares
	  internal pointer.  splice modifies the receiver right after
	  subseq.  [ruby-dev:34005]
	  (rb_ary_slice_bang): should adjust length before making
	  sub-array.

	* enumerator.c (Init_Enumerator): Override
	  Enumerable::Enumerator#each_with_index with #with_index.

Sun May 25 03:13:09 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (Init_Thread): Initialize recursive_key.

Sun May 25 02:45:49 2008  Akinori MUSHA  <knu@iDaemons.org>

	* error.c (syserr_eqq): Use en.

Sat May 24 22:32:49 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_cstr_to_dbl): should clear errno before calling
	  strtod(3).  [ruby-dev:34834]

Sat May 24 22:27:44 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (marshal_load): should initialize arg.data used for
	  reentrant check.  [ruby-dev:34837]

Sat May 24 00:34:59 2008  Tanaka Akira  <akr@fsij.org>

	* lib/rational.rb (Rational#to_i): fix rdoc.  Rational(-7,4).to_i
	  should be -1.

Fri May 23 20:22:44 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (reentrant_check): check reentrance via callcc.
	  [ruby-dev:34802]

Fri May 23 16:46:28 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c (proc_call): Remove an unused static function.

Fri May 23 13:46:09 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (cflags): commit miss.

Fri May 23 09:52:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (MINIRUBY), common.mk (RUBYOPT): add purelib.rb.
	  [ruby-core:16642]

	* ext/extmk.rb: load purelib.rb only when not cross compiling.

Fri May 23 08:47:02 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* error.c (syserr_eqq): === should be able to handle delegated
	  objects as well.

Fri May 23 04:22:19 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: fix memory leak.

	* ext/tk/lib/tk.rb: avoid trouble when finalize TclTkIp.

	* ext/tk/lib/tk.rb, ext/tk/lib/tk/*: help to fix troubles when
	  use Ttk widgets on old Tk scripts.

	* ext/tk/sample/*: update and add demo scripts. some of them are
	  introduction about new features of Tcl/Tk8.5.

Fri May 23 03:48:10 2008  Akinori MUSHA  <knu@iDaemons.org>

	* class.c (clone_method): Just use ruby_cref as cref.

Fri May 23 01:03:23 2008  Akinori MUSHA  <knu@iDaemons.org>

	* class.c (rb_singleton_class_clone): Pass Qnil, not 0.

Fri May 23 00:51:48 2008  Akinori MUSHA  <knu@iDaemons.org>

	* class.c (clone_method): Totally revamp the previous fix which
	  was incorrect.
	  (rb_mod_init_copy): Ditto.
	  (singleton_class_clone_int): Ditto.

Fri May 23 00:48:10 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_copy_node_scope), node.h: Rename from copy_node_scope
	  and export.

Thu May 22 21:24:15 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (top_local_setup): fixed memory leak bug based on a
	  patch from Roger Pack <rogerpack2005 at gmail.com> in
	  [ruby-core:16610].

Thu May 22 14:20:54 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (flatten): check if reentered.  [ruby-dev:34798]

Thu May 22 08:28:49 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (flatten): free memo hash table before raising exception.
	  [ruby-dev:34789]

Thu May 22 06:30:10 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* array.c (flatten): fix memory leak.

Thu May 22 05:45:30 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* proc.c (proc_dup): should copy safe_level from src proc
	  properly.  a patch from Keita Yamaguchi
	  <keita.yamaguchi at gmail.com>

Wed May 21 23:31:44 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_get_method_body, rb_alias, rb_eval): should not cache
	  uninitialized value, since search_method doesn't set origin if the
	  method wasn't found.

	* eval.c (search_method, remove_method, error_print, rb_alias)
	  (rb_eval, rb_rescue2, search_required, Init_eval, rb_thread_create),
	  gc.c (rb_source_filename, Init_stack), io.c (rb_io_getline),
	  parse.y (rb_id2name, rb_parser_free): suppress warnings.

Wed May 21 12:34:51 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (rb_hash_delete): rdoc fix based on a patch from Gaston Ramos
	  <ramos.gaston AT gmail.com>.  [ruby-core:16825]

Tue May 20 13:15:46 2008  Akinori MUSHA  <knu@iDaemons.org>

	* file.c (lchmod_internal): Remove a compiler warning.

Mon May 19 18:22:35 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): Fix the type
	  of md; pointed out by Takahiro Kambe <taca at back-street.net>
	  in [ruby-dev:34748].

Mon May 19 14:20:13 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): fixed SEGV on win32 with "% 0e" % 1.0/0.0.

Mon May 19 13:29:58 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* process.c (rb_f_system): set last_status when status == -1 because
	  there is no path to set it on win32. this patch is derived from
	  [ruby-core:16787], submitted by Luis Lavena <luislavena at gmail.com>

Mon May 19 13:01:05 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk ({MSPEC,RUBYSPEC}_GIT_URL): moved from Makefine.in.

	* {win32,bcc32}/Makefile.sub (update-rubyspec): added.

Mon May 19 11:53:45 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/openssl/openssl_missing.c (HMAC_CTX_copy): adopted
	  prototype change in openssl bundled with newer OpenBSD.
	  a patch from Takahiro Kambe <taca at back-street.net> in
	  [ruby-dev:34691].

Mon May 19 06:36:37 2008  Akinori MUSHA  <knu@iDaemons.org>

	* .: Release as Ruby 1.8.7-preview3.

Sun May 18 22:26:51 2008  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpservlet/filehandler.rb: should normalize path
	  name in path_info to prevent script disclosure vulnerability on
	  DOSISH filesystems. (fix: CVE-2008-1891)
	  Note: NTFS/FAT filesystem should not be published by the platforms
	  other than Windows. Pathname interpretation (including short
	  filename) is less than perfect.

	* lib/webrick/httpservlet/abstract.rb
	  (WEBrick::HTTPServlet::AbstracServlet#redirect_to_directory_uri):
	  should escape the value of Location: header.

	* lib/webrick/httpservlet/cgi_runner.rb: accept interpreter
	  command line arguments.

Sat May 17 23:53:57 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): fix for short file name on Cygwin.

Sat May 17 11:29:11 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_extname): first dot is not an extension name.

Sat May 17 10:18:44 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (rb_reg_search): need to free allocated buffer in re_register.

Fri May 16 17:01:44 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (test-rubyspec): added.

Fri May 16 16:22:40 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: sometimes freeze when receive Interrupt signal.

Fri May 16 14:54:56 2008  Tanaka Akira  <akr@fsij.org>

	* Makefile.in (update-rubyspec): move rubyspec to srcdir. 
	  (test-rubyspec): ditto.

Fri May 16 14:25:22 2008  Tanaka Akira  <akr@fsij.org>

	* Makefile.in (test-rubyspec): use RUNRUBY.  suggested by nobu.

Fri May 16 13:01:43 2008  Tanaka Akira  <akr@fsij.org>

	* Makefile.in (update-rubyspec): new target to download rubyspec.
	  (test-rubyspec): new target to run rubyspec.  this doesn't work
	  before install.

Fri May 16 08:15:52 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fix memory (object) leak bug.

	* ext/tk/sample/demos-jp/aniwave.rb, ext/tk/sample/demos-en/aniwave.rb:
	  bug fix.

Thu May 15 17:00:22 2008  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (Init_String): Define #bytesize as an alias for #size
	  for compatibility with 1.9.

Thu May 15 15:33:59 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): support for alternative data stream
	  and ignored trailing garbages of NTFS.

	* file.c (rb_file_s_basename): ditto.

	* file.c (rb_file_s_extname): ditto.

Wed May 14 19:24:59 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_count): Override Enumerable#count for better
	  performance.
	  (rb_ary_nitems): Undo the backport.  Use #count {} instead.

	* enumerator.c (enumerator_iter_i): Remove an unused function.
	  (enumerator_with_index, enumerator_each): Remove unused
	  variables.

Wed May 14 17:15:11 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/tk/tkutil/extronf.rb: check stdndup() because it's not standard
	  function of C.

	* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): use malloc() and
	  strncpy() instead of strndup() if not available.

Wed May 14 09:52:02 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil/tkutil.c: improve handling callback-subst-keys. 
	  Now, support longnam-keys (e.g. '%CTT' on tkdnd-2.0; however, still
	  not support tkdnd-2.0 on tkextlib), and symbols of parameters (e.g. 
	  :widget=>'%W', :keycode=>'%k', '%x'=>:x, '%X'=>:root_x, and so on; 
	  those are attributes of event object). It means that Ruby/Tk accepts
	  not only "widget.bind(ev, '%W', '%k', ...){|w, k, ...| ... }", but 
	  also "widget.bind(ev, :widget, :keycode, ...){|w, k, ...| ... }". 
	  It is potentially incompatible, when user passes symbols to the
	  arguments of the callback block (the block receives the symbols as
	  strings). I think that is very rare case (probably, used by Ruby/Tk
	  experts only). When causes such trouble, please give strings instead
	  of such symbol parameters (e.g. call Symbol#to_s method).

	* ext/tk/lib/tk/event.rb, ext/tk/lib/tk/validation.rb, 
	  ext/tk/lib/tkextlib/blt/treeview.rb, 
	  ext/tk/lib/tkextlib/winico/winico.rb: ditto.

	* ext/tk/tkutil/tkutil.c: strings are available on subst_tables on 
	  TkUtil::CallbackSubst class (it is useful on Ruby 1.9). 

	* ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tkextlib/iwidgets/hierarchy.rb, 
	  ext/tk/lib/tkextlib/iwidgets/spinner.rb, 
	  ext/tk/lib/tkextlib/iwidgets/entryfield.rb, 
	  ext/tk/lib/tkextlib/iwidgets/calendar.rb, 
	  ext/tk/lib/tkextlib/blt/dragdrop.rb, 
	  ext/tk/lib/tkextlib/tkDND/tkdnd.rb, 
	  ext/tk/lib/tkextlib/treectrl/tktreectrl.rb, 
	  ext/tk/lib/tkextlib/tktable/tktable.rb: disable code piece became 
	  unnecessary by reason of the changes of ext/tk/tkutil/tkutil.c.

Tue May 13 15:10:50 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c: Update rdoc.
	  (enumerator_initialize): Discourage the use.
	  (enum_each_slice, enum_each_cons, enumerator_each)
	  (enumerator_with_index): Add a note about a call without a block.

	* NEWS: Intentionally omit enum_slice and enum_cons, which are
	  removed in 1.9.

Tue May 13 07:56:36 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_cat): fixed buffer overrun reported by
	  Christopher Thompson <cthompson at nexopia.com> in [ruby-core:16746]

Mon May 12 13:57:19 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}.  "defined?(a||=1)"
	  should not operate assignment.  [ruby-dev:34645]

Mon May 12 12:59:23 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/wm.rb: Wm#overrideredirect overwrites arguemnt to
	  an invalid value.

	* ext/tk/sample/ttk_wrapper.rb: support "if __FILE__ == $0" idiom.

Mon May 12 12:36:55 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_select): backport from trunk.
	  [ruby-talk:300743]

Mon May 12 12:33:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (RUBYLIB, RUBYOPT): clear.

Mon May 12 10:41:10 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/delegate.rb (SimpleDelegator::dup): removed needless argument.
	  [ruby-list:44910]

	* lib/delegate.rb (clone, dup): keep relationship with the target
	  object.

Sun May 11 23:19:39 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (all_iter_i, any_iter_i): reduced duplicated code.

Sun May 11 17:57:36 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (MINIRUBY): should not include extension library path.

Sun May 11 10:36:10 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* eval.c (method_name, method_owner): New methods; backported
	  from 1.9. (UnboundMethod#name, UnboundMethod#owner)

Sun May 11 02:48:13 2008    <nagai@orca16.orcabay.ddo.jp>

	* ext/tk/lib/tk/pack.rb, ext/tk/lib/tk/grid.rb: fail to do pack/grid 
	  without options.

	* ext/tk/lib/tk.rb: add TkWindow#grid_anchor, grid_column, grid_row.

Sat May 10 18:19:16 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_each_line): RDoc updated.  [ruby-dev:34586]

Sat May 10 13:17:56 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/pack.rb, ext/tk/lib/tk/grid.rb: increase supported
	  parameter patterns of configure method.

Sat May 10 09:16:13 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): backported from 1.9.  a patch from Satoshi
	  Nakagawa <psychs at limechat.net> in [ruby-dev:34625]. 
	  fixed: [ruby-dev:34623]

Fri May  9 23:33:25 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/wm.rb: methods of Tk::Wm_for_General module cannot
	  pass the given block to methods of Tk::Wm module.

	* ext/tk/lib/tk/grid.rb: lack of module-method definitions.

	* ext/tk/lib/tkextlib/tile.rb: lack of autoload definitions.

	* ext/tk/lib/tkextlib/tile/tnotebook.rb: cannot use kanji (not UTF-8) 
	  characters for headings.

	* ext/tk/tcltklib.c: maybe a little more stable about @encoding value 
	  of TclTkIp object.

Wed May  7 08:46:44 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (rb_struct_s_def): to_str should be called only once.
	  [ruby-core:16647]

Wed May  7 00:54:25 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/zlib/zlib.c (gzreader_gets): may cause infinite loop.
	  a patch from Kouya <kouyataifu4 at gmail.com> in
	  [ruby-reference-manual:762].

Sun May  4 09:35:51 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* sample/erb/erb4html.rb (ERB4Html) : add example of ERB#set_eoutvar.
	  ERB4Html is an auto-quote ERB.

Sat May  3 22:52:48 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/tile.rb, ext/tk/lib/tkextlib/tile/style.rb, 
	  ext/tk/sample/ttk_wrapper.rb: improve treating and control themes. 
	  add Tk::Tile.themes and Tk::Tile.set_theme(theme).

Fri May  2 14:52:33 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el: move fontifying code from hook.  a patch from
	  Phil Hagelberg <phil at hagelb.org> in [ruby-core:16636].

Fri May  2 13:47:51 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (match_select): restore previous behavior of MatchData#select.
	  RDoc updated as well, mentioning the plan to remove this method
	  in the future.  [ruby-dev:34556]

Fri May  2 13:04:04 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dbm/dbm.c (Init_dbm): defines DBM::VERSION even when
	  DB_VERSION_STRING is not available.  [ruby-dev:34569]

Thu May  1 23:57:06 2008  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 16257 from trunk.

	* lib/net/telnet.rb:  This patch from Brian Candler adds a FailEOF mode which
	  can be activated to have net/telnet raise EOFError exceptions when the 
	  remote connection is closed.  The default behavior remains unchanged though.

Thu May  1 23:43:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* range.c (range_step): check if step can be converted to an integer.
	  [ruby-dev:34558]

	* range.c (range_step): allow float step bigger than zero but less
	  than one.  [ruby-dev:34557]

Wed Apr 30 20:22:40 2008  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 16241 from trunk.

	* lib/net/telnet.rb:  Fixing a bug where line endings would not be properly
	  escaped when the two character ending was broken up into separate TCP
	  packets.  Issue reported and patched by Brian Candler.

Wed Apr 30 17:47:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* re.c (rb_reg_search): use local variable.  a patch from wanabe
	  <s.wanabe AT gmail.com> in [ruby-dev:34537].  [ruby-dev:34492]

Sat Apr 26 19:40:34 2008  Guy Decoux  <decoux@moulon.inra.fr>

	* class.c (struct clone_method_data): Add cref.
	  (clone_method): Properly handle NODE_BMETHOD and NODE_DMETHOD.
	  (rb_singleton_class_clone, singleton_class_clone_int): Set a
	  proper value to klass and propagate cref. [ruby-core:16238]

	* eval.c (rb_block_dup, rb_method_dup), intern.h: Add duplicator
	  methods for use from class.c#clone_method().

Fri Apr 25 15:46:37 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb, ext/tk/lib/tk/scrollbar.rb, ext/tk/lib/tk/scale.rb:
	  improve unknonw-option check when create a widget. 

	* ext/tk/lib/tkextlib/blt/unix_dnd.rb, ext/tk/lib/tkextlib/blt/ted.rb,
	  ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix on 'cget'.

	* ext/tk/lib/tk/menuspec.rb: option check will fail when 
	  TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__ is true.

	* ext/tk/lib/tk/palette.rb: bug fix.

Fri Apr 25 12:37:54 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (flatten): returns an instance of same class.
	  [ruby-core:16554]

Thu Apr 24 23:47:50 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/net/pop.rb: backported from 1.9. bug#19003

	* ext/openssl/lib/openssl/ssl.rb: set_params; backported from 1.9.
	  bug#19552, [ruby-dev:34402]

	* ext/openssl/ossl_ssl.c: ditto.

	* test/openssl/test_ssl.rb: ditto.

Thu Apr 24 17:06:34 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (THREAD_SAVE_CONTEXT): remove unnecessary
	  FLUSH_REGISTER_WINDOWS before calling setjmp().  [ruby-core:16285]

Thu Apr 24 14:15:11 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dln.c (dln_find_1): prior files with extensions to files sans
	  extensions.  [ruby-core:16517]

Wed Apr 23 15:39:31 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (bind_eval): Add Binding#eval, a shorthand method for
	  eval(str, binding, ..); backported from 1.9.

Wed Apr 23 15:28:52 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_no_create): failed
	  notice moved from comment to assertion message. [ruby-dev:29127]

Wed Apr 23 14:00:05 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/mkmf.rb (create_makefile): Add a missing dependency on the
	  target directory for each .rb file.  This will hopefully fix
	  parallel make (-jN).  Tested on FreeBSD.

Wed Apr 23 11:49:54 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/set.rb (Set#each, SortedSet#each, TC_Set#test_each): Return
	  an enumerator if no block is given.

Wed Apr 23 00:42:49 2008  Tanaka Akira  <akr@fsij.org>

	* eval.c (error_print): show full stack grace except SystemStackError.
	  backport from 1.9.  [ruby-dev:31014]

Wed Apr 23 00:18:45 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* test/ruby/test_symbol.rb (TestSymbol#test_to_proc): Improve
	  tests of Symbol#to_proc.

Tue Apr 22 22:43:05 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_proc_new, YIELD_FUNC_LAMBDA): Add a new nd_state
	  YIELD_FUNC_LAMBDA which avoids automatic `avalue' conversion for
	  arguments.  This fixes a bug where [1,[2,3]].map(&:object_id)
	  fails.

	* intern.h, object.c: Hide rb_proc_new() from intern.h.  It should
	  not be considered an official API function yet.

Tue Apr 22 21:24:32 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_proc_new): Turn the BLOCK_LAMBDA flag on.

	* object.c (sym_to_proc), test/ruby/test_symbol.rb: Add back
	  Symbol#to_proc, now that it passes the tests.

Tue Apr 22 19:35:03 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c (enumerator_initialize): Remove an undocumented
	  feature (passing a block to the constructor) that's broken.
	  This is not what I intended.

Tue Apr 22 17:49:46 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): should protect temporary string from
	  GC.   [ruby-dev:34480]

Tue Apr 22 17:12:05 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* regex.c (re_search): string might be NULL.  [ruby-core:16478]

Tue Apr 22 16:44:00 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* object.c (rb_obj_tap): Correct documentation; pointed out by
	  okkez in [ruby-dev:34472].

Tue Apr 22 10:05:51 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (eaccess): workaround for recent msvcrt's behavior.
	  [ruby-core:16460]

Mon Apr 21 16:06:47 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* enumerator.c (enumerator_init): preserve the method name in ID.

	* enumerator.c (enumerator_each): need not to call rb_to_id().

	* enumerator.c (enumerator_with_index): ditto.

Mon Apr 21 17:19:52 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_f_method_name): New gloval function: __method__;
	  backported from matzruby / 1.9.

	* eval.c (rb_frame_this_func), intern.h: New internal function.

	* intern.h (RETURN_ENUMERATOR): Use rb_frame_this_func() instead
	  of rb_frame_last_func(), to accommodate the behavior to that of
	  1.9.

Mon Apr 21 15:54:48 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/tempfile.rb (Tempfile::_close): check @data before modifying
	  it; backported from 1.9.  [ruby-dev:34094]

	* lib/tempfile.rb (Tempfile::close): clear @data and @tmpname.

Mon Apr 21 10:17:17 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* time.c: should include <errno.h> to refer errno.

Mon Apr 21 10:02:43 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* hash.c (recursive_hash): prototype.

Mon Apr 21 10:00:51 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* time.c (rb_strftime): check errno to detect strftime(3)'s error.
	  this is workaround for recent version of MSVCRT.
	  [ruby-dev:34456]

Sun Apr 20 21:10:04 2008  Akinori MUSHA  <knu@iDaemons.org>

	* .: Release as Ruby 1.8.7-preview2.

Sun Apr 20 21:02:06 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c: Resolve the method every time an enumeration
	  method is run, not once when the enumerator is initialized as it
	  was before, so that method_missing() and method (re)definition
	  afterwards are both in effect; pointed out in: [ruby-core:16441]

Sun Apr 20 17:59:25 2008  Akinori MUSHA  <knu@iDaemons.org>

	* object.c, NEWS, test/ruby/test_symbol.rb: Revert Symbol#to_proc
	  since it does not pass the tests.

Sun Apr 20 14:29:35 2008  Technorama Ltd.  <oss-ruby@technorama.net>

	* ext/openssl/ossl_ssl.c: initialize session class.

Sat Apr 19 20:54:42 2008  akira yamada  <akira@arika.org>

	* lib/uri/ftp.rb, lib/uri/generic.rb, test/uri/test_common.rb,
	  test/uri/test_ftp.rb, test/uri/test_generic.rb: backported from 1.9.
	  [ruby-dev:31318]

Sat Apr 19 20:35:02 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/yaml/baseemitter.rb, lib/yaml/encoding.rb: performance
	  tuning around String#gsub.

	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get
	  documented.

	* lib/yaml/store.rb (YAML::load): modified to support empty
	  database.

	* lib/yaml/store.rb (YAML::Store::marshal_dump_supports_canonical_option?):
	  add a method to support faster PStore.

Sat Apr 19 20:16:52 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/yaml/types.rb: Likewise, pass self to YAML::quick_emit;
	  merged from 1.9.

	* lib/yaml.rb (quick_emit): use combination of object_id and hash to
	  identify repeated object references, since GC will reuse memory of
	  objects during output of YAML. [ruby-Bugs-8548] [ruby-Bugs-3698];
	  merged from 1.9.

Sat Apr 19 20:05:39 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_equal, rb_ary_eql, rb_ary_hash, rb_ary_cmp):
	  Make Array#eql?, #hash, #== and #<=> use rb_exec_recursive() and
	  handle recursive data properly.

	* hash.c (hash_equal, rb_hash_hash): Make Hash#eql?, #hash and #==
	  use rb_exec_recursive() and handle recursive data properly.

Sat Apr 19 19:26:09 2008  Akinori MUSHA  <knu@iDaemons.org>

	* intern.h, eval.c (rb_exec_recursive): New internal function to
	  help perform recursive operation; backported from 1.9.

Sat Apr 19 18:42:04 2008  Akinori MUSHA  <knu@iDaemons.org>

	* intern.h, hash.c (rb_hash_lookup): New internal function to
	  check if a key exists in a hash, ignoring #default; backported
	  from 1.9.

Fri Apr 18 18:56:57 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/syck/rubyext.c (syck_genericresolver_node_import): should
	  not set instance variable "@kind" before initializing it.
	  [ruby-dev:32677]

	* ext/syck/rubyext.c (syck_resolver_initialize,
	  syck_resolver_detect_implicit, syck_emitter_emit): remove unused
	  variables.

Fri Apr 18 18:54:57 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/syck/rubyext.c: Node#value defined twice.

	* lib/yaml/: several method redefinitions causing warnings.

Fri Apr 18 16:36:16 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/rexml/node.rb (REXML::Node::indent): should initialize rv
	  variable.  a patch from Tadayoshi Funaba <tadf AT dotrb.org> in 
	  [ruby-dev:32783].

Fri Apr 18 16:01:37 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/rexml: Merge fixes since 1.8.6 made solely on the ruby_1_8_6
	  branch.

Wed Apr 16 06:11:49 2008  Akinori MUSHA  <knu@iDaemons.org>

	* test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_event):
	  Fix tests to reflect the following changes: r15833, r15759.

Wed Apr 16 05:03:48 2008  Akinori MUSHA  <knu@iDaemons.org>

	* .: Release as Ruby 1.8.7-preview1.

Wed Apr 16 02:09:14 2008  Kouhei Sutou  <kou@cozmixng.org>

	* lib/xmlrpc/client.rb: fix cookie handling. [ruby-dev:34403]

	* test/xmlrpc/test_cookie.rb: add a test for the above fix.

Tue Apr 15 23:48:28 2008  Akinori MUSHA  <knu@iDaemons.org>

	* version.h: Branch off ruby_1_8_7 from ruby_1_8 in preparation
	  for the forthcoming 1.8.7 release.

Tue Apr 15 23:40:39 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ext/syck/rubyext.c (rb_syck_mktime): Avoid buffer overflow.

Tue Apr 15 20:32:03 2008  Tanaka Akira  <akr@fsij.org>

	* re.c (match_inspect): backported from 1.9.

Tue Apr 15 19:03:28 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* eval.c (method_receiver, method_name, method_owner): New
	  methods; backported from 1.9. bug#19007

Tue Apr 15 18:39:14 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/uri.rb, lib/uri/ldaps.rb: added LDAPS
	  scheme; backported from 1.9. bug#19015, [ruby-dev:31896]

Tue Apr 15 17:45:43 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/net/smtp.rb: backported from 1.9. bug#19003

Tue Apr 15 17:06:12 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* test/ruby/test_symbol.rb (TestSymbol#test_to_proc): add tests.

Tue Apr 15 16:58:55 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/menuspec.rb: option check will fail when 
	  TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__ is true.

	* ext/tk/lib/tk/palette.rb: bug fix.

Tue Apr 15 16:47:48 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* signal.c, gc.c: New methods: GC.stress, GC.stress=;
	  backported from 1.9. a patch from Tadashi Saito
	  in [ruby-dev:34394] and bug#19000

Tue Apr 15 12:35:44 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* rubyio.h (rb_io_t): renamed from OpenFile.

	* ruby.h (struct RHash), file.c, gc.c, io.c, ext/dl/dl.c,
	  ext/io/wait/wait.c, ext/pty/pty.c, ext/readline/readline.c,
	  ext/socket/socket.c: ditto.

	* win32/win32.h: removed workaround for OpenFile.

Tue Apr 15 00:15:29 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/text.rb: typo. call a wrong method.

	* ext/tk/lib/tk/itemconfig.rb: ditto.

	* ext/tk/sample/ttk_wrapper.rb: bug fix.

	* ext/tk/sample/tktextio.rb: add binding for 'Ctrl-u' at console mode.

	* ext/tk/lib/tk.rb, ext/tk/lib/tk/itemfont.rb, ext/tk/lib/font.rb: 
	  support __IGNORE_UNKNOWN_CONFIGURE_OPTION__ about font options.

	* ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb, 
	  ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb, 
	  ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: bug fix. 

	* ext/tk/lib/tkextlib/tile/tpaned.rb: improve TPaned#add.

	* ext/tk/lib/tk/timer.rb: add TkTimer#at_end(proc) to register the 
	  procedure which called at end of the timer.

Mon Apr 14 19:54:21 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_flatten, rb_ary_flatten_bang): Take an optional
	  argument that determines the level of recursion to flatten;
	  backported from 1.9.

	* array.c (rb_ary_shuffle_bang, rb_ary_shuffle, rb_ary_choice,
	  rb_ary_cycle, rb_ary_permutation, rb_ary_combination,
	  rb_ary_product, rb_ary_take, rb_ary_take_while, rb_ary_drop,
	  rb_ary_drop_while): New methods: Array#shuffle, #shuffle!,
	  #choice, #cycle, #permutation, #combination, #product, #take,
	  #take_while, #drop, #drop_while; backported from 1.9.

Mon Apr 14 19:52:35 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ruby.h: New macro: RB_GC_GUARD().

Mon Apr 14 19:49:35 2008  Akinori MUSHA  <knu@iDaemons.org>

	* random.c (rb_genrand_int32, rb_genrand_real), intern.h: Export.

	* string.c (rb_str_tmp_new), intern.h: New function.

Mon Apr 14 19:18:55 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* enum.c (inject_i, inject_op_i): prototype.

Mon Apr 14 19:10:47 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c New methods: Enumerable#take, #take_while, #drop and
	  #drop_while; backported from 1.9.

Mon Apr 14 18:50:15 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c: New methods: Enumerable#one?, #none?, #minmax, #min_by,
	  #max_by, #minmax_by and #cycle; backported from 1.9.

	* enum.c (enum_find_index): Add support for find_index(obj);
	  [ruby-dev:34313]; backported from 1.9.

	* enum.c (enum_inject): Add support for Enumerable#inject(:binop);
	  backported from 1.9.

	* enum.c: Alias Enumerable#reject to #inject; backported from 1.9.

Mon Apr 14 18:14:19 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c (enum_find, enum_reject): Return an enumerator if no
	  block is given; backported from 1.9.

	* io.c (rb_io_each_line, rb_io_each_byte, rb_io_s_foreach,
	  argf_each_line, argf_each_byte): Ditto.

	* string.c (str_gsub): Ditto.

Mon Apr 14 18:10:05 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* enum.c (find_index_i, find_index_iter_i): add prototype for VC.

Mon Apr 14 17:55:30 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_collect_bang, rb_ary_select): Return an
	  enumerator if no block is given; backported from 1.9.

	* dir.c (dir_each, dir_foreach): Ditto.

	* enum.c (enum_partition, enum_sort_by): Ditto.

	* gc.c (os_each_obj): Ditto.

	* hash.c (rb_hash_delete_if, rb_hash_reject_bang, rb_hash_select,
	  rb_hash_each_value, rb_hash_each_key, rb_hash_each_pair,
	  env_each_key, env_each_value, env_each, env_each_pair,
	  env_reject_bang, env_delete_if, env_select): Ditto.

	* numeric.c (num_step, int_upto, int_downto, int_dotimes): Ditto.

Mon Apr 14 16:42:53 2008  Akinori MUSHA  <knu@iDaemons.org>

	* ruby.h (rb_block_call_func): Fix prototype.

	* enumerator.c (enumerator_iter_i, enumerator_each_i): Ditto.

Mon Apr 14 15:49:05 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c (enum_count, enum_find_index): New methods:
	  Enumerable#count and #find_index; backported from 1.9.

Mon Apr 14 14:16:08 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* enumerator.c (enumerator_mark, enumerator_iter_i, enumerator_each_i,
	  enumerator_allocate): add prototype.

	* enumerator.c (enumerator_each_i): declare unused two arguments.

Mon Apr 14 13:58:32 2008  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (rb_str_each_char): New methods: String#chars and
	  #each_char; backported from 1.9.

Mon Apr 14 13:42:20 2008  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (rb_str_each_line, rb_str_each_byte): Reflect
	  enumerator integration.  #lines and #bytes are now aliases to
	  #each_line and #each_byte, respectively.

Mon Apr 14 13:19:36 2008  Akinori MUSHA  <knu@iDaemons.org>

	* range.c (range_each, range_step): Return an enumerator if no
	  block is given; backported from 1.9.

	* struct.c (rb_struct_each, rb_struct_each_pair): Ditto.

Mon Apr 14 13:07:59 2008  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (rb_str_partition, rb_str_rpartition,
	  rb_str_start_with, rb_str_end_with): New methods:
	  String#partition, #rpartition, #start_with? and #end_with?;
	  backported from 1.9.  These methods are $KCODE aware unlike
	  #index, #rindex and #include?.

Sun Apr 13 15:55:52 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* object.c (sym_to_proc): new method Symbol#to_proc; backported
	  from 1.9. bug#19012

Fri Apr 11 19:14:30 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* object.c (rb_obj_tap): new method Object#tap; backported from
	  1.9. bug#19008

Fri Apr 11 18:58:09 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* process.c: new method Process.exec; backported from 1.9. bug#19006

Fri Apr 11 12:43:56 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/tile.rb, ext/tk/lib/tkextlib/tile/style.rb, 
	  ext/tk/sample/tkextlib/tile/demo.rb: previous patch is not complete.

Fri Apr 11 10:22:54 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/tile.rb:
	  __define_LoadImages_proc_for_compatibility__! do nothing when the 
	  Tcl command exists.

	* ext/tk/lib/tkextlib/tile/style.rb:
	  __define_wrapper_proc_for_compatibility__! do nothing when the Tcl
	  command exists.

	* ext/tk/sample/tkextlib/tile/demo.rb: don't create 'step' theme if 
	  it already exists.

Fri Apr 11 08:05:12 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): add volatile to avoid potential GC bug.  a
	  patch from Tomoyuki Chikanaga <chikanag at nippon-control-system.co.jp>
	  in [ruby-dev:34311].

Thu Apr 10 20:29:13 2008  Akinori MUSHA  <knu@iDaemons.org>

	* misc/rdebug.el, misc/README: Remove rdebug.el as per request
	  from the maintainer and mention the ruby-debug project at
	  RubyForge in README; bug#19043.

Thu Apr 10 20:08:37 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enum.c (enum_first, enum_group_by): New methods:
	  Enumerable#first and #group_by; backported from 1.9.

Thu Apr 10 19:49:10 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c (rb_eStopIteration), eval.c (rb_f_loop), ruby.h:
	  Add a new exception class StopIteration, which breaks Kernel#loop
	  iteration when raised; backported from 1.9.

	* enumerator.c (enumerator_next, enumerator_rewind): Implement
	  #next and #rewind using the "generator" library.

	* lib/generator.rb: Implement Enumerable::Enumerator#next and
	  #rewind.

Thu Apr 10 19:29:48 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_first, rb_ary_last): Return a shared array when
	  possible.

	* array.c (rb_ary_pop, rb_ary_pop_m, rb_ary_shift, rb_ary_shift_m):
	  Array#pop and Array#shift can take an optional argument
	  specifying the number of elements to remove and return;
	  backported from 1.9.

Thu Apr 10 14:00:44 2008  Tanaka Akira  <akr@fsij.org>

	* lib/resolv.rb (Resolv::DNS#each_address): backport from 1.9 for
	  CNAME.  [ruby-dev:34200]

Thu Apr 10 01:42:25 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* enum.c (iterate_method): add prototype to avoid warning on VC++.

Wed Apr  9 23:12:41 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: SEGV when tcltk-stubs is enabled.

	* ext/tk/tcltklib.c: avoid error on a shared object.

	* ext/tk/extconf.rb: support --with-tcltkversion

	* ext/tk/README.tcltklib: add document about --with-tcltkversion

	* ext/tk/sample/demos-jp/widget, ext/tk/sample/demos-en/widget, 
	  ext/tk/sample/demos-jp/style.rb, ext/tk/sample/demos-en/style.rb, 
	  ext/tk/sample/demos-jp/bind.rb, ext/tk/sample/demos-en/bind.rb: 
	  bug fix.

Wed Apr  9 21:54:45 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_pop): Do not reallocate too often; backported
	  from 1.9.

Wed Apr  9 21:13:05 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,
	  rb_ary_reject, rb_ary_reject_bang): Array#each, #each_index,
	  #reverse_each, #reject, #reject! and #delete_if return an
	  enumerator if no block is given; backported from 1.9.

Wed Apr  9 20:47:16 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_index, rb_ary_index): Array#index and #rindex
	  can take a block instead of an argument; backported from 1.9.

Wed Apr  9 19:58:31 2008  Akinori MUSHA  <knu@iDaemons.org>

	* enumerator.c, inits.c (rb_call_inits), ruby.h, intern.h,
	  ext/enumerator, common.mk (OBJS, enumerator.$(OBJEXT)): Make the
	  enumerator module built-in.

	* enumerator.c: New method: Enumerable::Enumerator#with_index.

	* enum.c (enum_each_with_index): Enumerable#each_with_index now
	  returns an enumerator instead of raising an exception if no
	  block is given.  Enumerable#enum_with_index, formerly defined in
	  the enumerator module, is kept as an alias to each_with_index
	  for backward compatibility.

Wed Apr  9 19:43:51 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_obj_method, rb_proc_call), intern.h: Export.

Tue Apr  8 11:11:28 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (EXEC_TAG): remove unnecessary FLUSH_REGISTER_WINDOWS for
	  better performance on SPARC.  [ruby-core:16159]

Tue Apr  8 10:49:54 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (rb_reg_quote): should always copy the quoting string.
	  [ruby-core:16235]

Mon Apr  7 21:35:08 2008  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_nitems): Backport Array#nitems with a block;
	  suggested by Bertram Scharpf <lists@bertram-scharpf.de> in
	  [ruby-talk:134083].

Sun Apr  6 09:45:00 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (dir_tell): check if closed.  [ruby-core:16223]

Sat Apr  5 10:05:00 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_check_to_integer): backported for range_step.

Fri Apr  4 05:57:11 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/net/pop.rb (Net::POP3::do_finish): clear @n_mails and
	  @n_bytes as well.  [ruby-core:16144]

Fri Apr  4 02:17:06 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* range.c (range_step): should not round step into integer if
	  begin and end are numeric.  [ruby-core:15990]

Tue Apr  1 14:43:38 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: get rid of empty expansion.

	* {bcc,win}32/Makefile (config.h): need to define RUBY_SETJMP, etc.

Tue Apr  1 11:36:19 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: _setjmp is available but _longjmp is not on mingw.

Tue Apr  1 03:20:40 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_SETJMP, RUBY_LONGJMP, RUBY_JMP_BUF): prefers
	  _setjmp over setjmp and sigsetjmp.  [ruby-core:16023]
	  __builtin_setjmp cannot handle a variable.

	* configure.in (--with-setjmp-type): new option to override the
	  default rule in the above.

	* eval_intern.h (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
	  vm_core.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
	  RUBY_JMP_BUF.

Tue Apr  1 01:55:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/resolv.rb (Resolv::Config.default_config_hash): requires
	  win32/resolv to use Win32::Resolv.  [ruby-dev:34138]

Mon Mar 31 14:51:11 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_div): Bignum#div should return integer for
	  floating number operand.

Sun Mar 30 07:00:32 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/tk/tcltklib.c: rb_hash_lookup has not been backported yet.

Sat Mar 29 14:18:41 2008  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/*: full update Ruby/Tk to support Ruby(1.9|1.8) and Tc/Tk8.5.

	* ext/tk/lib/tkextlib/tile.rb: [incompatible] remove TileWidgets' 
	  instate/state/identify method to avoid the conflict with standard
	  widget options. Those methods are renamed to ttk_instate/ttk_state/
	  ttk_identify (tile_instate/tile_state/tile_identify are available 
	  too). Although I don't recommend, if you realy need old methods, 
	  please define "Tk::USE_OBSOLETE_TILE_STATE_METHOD = true" before 
	  "require 'tkextlib/tile'".

	* ext/tk/lib/tkextlib/tile.rb: "Tk::Tile::__Import_Tile_Widgets__!"
	  is obsolete. It outputs warning. To control default widget set, 
	  use "Tk.default_widget_set = :Ttk".

	* ext/tk/lib/tk.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__ method and 
	  __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method are defind 
	  as module methods of TkConfigMethod. It may help users to wrap old 
	  Ruby/Tk scripts (use standard widgets) to force to use Ttk widgets.
	  Ttk widgets don't have some options of standard widgets which are 
	  control the view of widgets. When set ignore-mode true, configure 
	  method tries to ignoure such unknown options with no exception. 
	  Of course, it may raise other troubles on the GUI design. 
	  So, those are a little danger methods. 

	* ext/tk/lib/tk/itemconfig.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__ 
	  method and __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method 
	  are defind as module methods of TkItemConfigMethod as the same 
	  purpose as TkConfigMethod's ones.

	* ext/tk/sample/ttk_wrapper.rb: A new example. This is a tool for 
	  wrapping old Ruby/Tk scripts (which use standard widgets) to use 
	  Ttk (Tile) widgets as default.

	* ext/tk/sample/tkextlib/tile/demo.rb: use ttk_instate/ttk_state 
	  method instead of instate/state method.

	* ext/tk/lib/tk/root, ext/tk/lib/tk/namespace.rb,
	  ext/tk/lib/tk/text.rb, ext/tk/lib/tkextlib/*: some 'instance_eval's  
	  are replaced to "instance_exec(self)".

	* ext/tk/lib/tk/event.rb: bug fix on KEY_TBL and PROC_TBL (?x is not 
	  a character code on Ruby1.9).

	* ext/tk/lib/tk/variable.rb: support new style of operation argument 
	  on Tcl/Tk's 'trace' command for variables. 

	* ext/tk/sample/demos-jp/widget, ext/tk/sample/demos-en/widget: bug fix

	* ext/tk/sammple/demos-jp/textpeer.rb, 
	  ext/tk/sammple/demos-en/textpeer.rb: new widget demo.

	* ext/tk/tcltklib.c: decrase SEGV troubles (probably)

	* ext/tk/lib/tk.rb: remove Thread.critical access if Ruby1.9

	* ext/tk/lib/tk/multi-tk.rb: support Ruby1.9 (probably)

	* ext/tk/lib/tkextlib/tile.rb: add method to define Tcl/Tk command 
	  to make Tcl/Tk theme sources (based on different version of Tile 
	  extension) available. 
	  (Tk::Tile::__define_LoadImages_proc_for_comaptibility__)

	* ext/tk/lib/tk.rb, ext/tk/lib/tk/wm.rb: support dockable frames
	  (Tcl/Tk8.5 feature). 'wm' command can treat many kinds of widgets 
	  as toplevel widgets.

	* ext/tk/lib/tkextlib/tile/style.rb: ditto.
	  (Tk::Tile::Style.__define_wrapper_proc_for_compatibility__)

	* ext/tk/lib/tk/font.rb: add actual_hash and metrics_hash to get 
	  properties as a hash. metrics_hash method returns a boolean value 
	  for 'fixed' option. But metrics method returns numeric value 
	  (0 or 1) for 'fixed' option, because of backward compatibility. 

	* ext/tk/lib/tk/timer.rb: somtimes fail to set callback procedure.

	* ext/tk/lib/tk.rb: add Tk.sleep and Tk.wakeup method. Tk.sleep 
	  doesn't block the eventloop. It will be better to use the method 
	  in event callbacks.

	* ext/tk/sample/tksleep_sample.rb: sample script about Tk.sleep.

Sat Mar 29 04:08:59 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* class.c (clone_method): should copy cref as well.
	  [ruby-core:15833]

Mon Mar 24 20:07:42 2008  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (rb_eval): Call trace hook for if expression after the
	  condition has been evaluated, not before; submitted by Rocky
	  Bernstein in #18722.

Mon Mar 24 19:44:53 2008  Akinori MUSHA  <knu@iDaemons.org>

	* parse.y (yycompile): Always prepare a new array for each file's
	  SCRIPT_LINES__ storage, instead of appending source lines every
	  time a file is re-loaded; submitted by Rocky Bernstein in
	  #18517.

Mon Mar 24 10:25:54 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: sitearch should use target_cpu.  [ruby-core:15986]

Mon Mar 24 01:24:24 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (result): use proc instead of Thread. [ruby-dev:33692]

Fri Mar 21 21:26:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/resolv.rb (Resolv::Hosts): should not use win32/resolv on cygwin.
	  [ruby-dev:29945], [ruby-dev:34095]

	* lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased
	  name too for cygwin.  [ruby-dev:29945]

	* lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path.

Fri Mar 21 21:10:00 2008  Akinori MUSHA  <knu@iDaemons.org>

	* lib/ipaddr.rb: Say that I am the current maintainer.

	* lib/set.rb: Ditto.

	* lib/shellwords.rb: Ditto.

	* ext/syslog/syslog.txt: Ditto.

Fri Mar 21 09:24:28 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb (open_for_install): write block result and rewrite only
	  if changed from existing file.

Wed Mar 19 21:01:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (dir_inspect, dir_path, dir_tell): check for frozen and closed
	  is not needed.  [ruby-dev:32640]

Wed Mar 19 20:25:40 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (Init_Dir): define inspect method.  [ruby-core:15960]

Wed Mar 19 14:59:12 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-style.el (ruby-style-{case,label}-indent): fix for labels
	  inside blocks in switch and function top level.

Wed Mar 19 14:36:40 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_cstr_to_inum): treat successive underscores as
	  nondigit.  [ruby-dev:34089]

Wed Mar 19 00:01:23 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (ERB::Compiler): Make some minor code optimization.

Mon Mar 17 17:11:13 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-mode): should use `run-mode-hooks' instead
	  of calling `run-hooks' directly to run the mode hook.  patch from
	  Chiyuan Zhang <pluskid AT gmail.com> in [ruby-core:15915]

Mon Mar 17 16:41:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: unset GREP_OPTIONS.  [ruby-core:15918]

Fri Mar 14 16:59:23 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_LIB_PREFIX): fix for prefix.

Fri Mar 14 16:35:11 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::Cookie::initialize): performance patch from
	  Makoto Kuwata <kwa@kuwata-lab.com> in [ruby-dev:34048].

Fri Mar 14 15:49:05 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_LIB_PREFIX): use libdir.

Fri Mar 14 10:12:29 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_CHECK_VARTYPE): should not indent preprocessor
	  directives.

Thu Mar 13 00:37:20 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_call0): yields the last executed node line number at
	  return event.  [ruby-core:15855]

Wed Mar 12 02:12:20 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/delegate.rb: check $@ to avoid NoMethodError.

Tue Mar 11 19:48:09 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (fix_coerce): try conversion before type check.
	  [ruby-core:15838]

Tue Mar 11 17:03:23 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/delegate.rb (Delegator#initialize, DelegateClass): skip correct
	  backtrace.  [ruby-dev:34019]

Tue Mar 11 16:43:53 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_cmdvector): terminate shrunken command line.

Tue Mar 11 12:39:03 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (clean-local): removes MINOBJS.

Sat Mar  8 18:50:57 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (isdirsep): backslash is valid path separator on cygwin too.

Fri Mar  7 19:56:10 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: rdoc added.  [ruby-Patches-9762]

Thu Mar  6 15:10:21 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32}/Makefile.sub (RUNRUBY): use $(PROGRAM) instead of
	  ruby$(EXEEXT).
	  suggested by KIMURA Koichi <kimura.koichi at canon.co.jp>.
	  [ruby-dev:34000]

Thu Mar  6 12:15:06 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (opt_block_param): command can start just after block param
	  definition.  [ruby-list:44479]

Thu Mar  6 00:34:11 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb: update RDoc. Thanks Makoto Kuwata [ruby-dev:33702]

Mon Mar  3 23:28:34 2008  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpservlet/filehandler.rb: should normalize path
	  separators in path_info to prevent directory traversal attacks
	  on DOSISH platforms.
	  reported by Digital Security Research Group [DSECRG-08-026].

	* lib/webrick/httpservlet/filehandler.rb: pathnames which have
	  not to be published should be checked case-insensitively.

Mon Mar  3 16:14:24 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (rb_any_hash): shrinks all results in Fixnum range.
	  [ruby-core:15713]

Sat Mar  1 02:35:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (big2str_find_n1): check integer overflow.

Tue Feb 26 16:06:00 2008  Technorama Ltd.  <oss-ruby@technorama.net>

	* ext/openssl/ossl_pkey_{ec,dh,dsa,rsa}.c: Remove useless warnings.

	* ext/openssl/ossl_asn1.c: Simplify code.

	* ext/openssl/ossl_ssl_session.c Fix compiler warnings.
	  Undefine #id if SSL_SESSION_get_id is not supported.

Tue Feb 26 15:43:42 2008  Tanaka Akira  <akr@fsij.org>

	* parse.y (tokadd_escape): refactored.  [ruby-core:15657]

Mon Feb 25 17:30:29 2008  Technorama Ltd.  <oss-ruby@technorama.net>

	* ext/openssl/digest.c ext/openssl/lib/openssl/digest.rb:
	  Commit patch #9280 from Akinori MUSHA.
	  Simplify the OpenSSL::Digest class and make use of the
	  existing Digest framework.
	  Enhance performance.

Mon Feb 25 13:40:03 2008  Tanaka Akira  <akr@fsij.org>

	* process.c (Init_process): share bignum objects for RLIM_INFINITY,
	  RLIM_SAVED_MAX and RLIM_SAVED_CUR if they are equal.

Sun Feb 24 23:29:48 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk, {bcc,win}32/Makefile.sub (clean-local): remove
	  intermediate files.

Sun Feb 24 03:52:58 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (valid_filename): use O_EXCL to get rid of clobbering
	  existing files in race conditions.

Fri Feb 22 19:50:19 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (BIGZEROP): fix for longer Bignum zeros.  [ruby-Bugs-17454]

Fri Feb 22 16:09:53 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_lshift, rb_big_rshift, rb_big_aref): removed excess
	  arguments.

Thu Feb 21 00:01:34 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RPATHFLAG): -R option of HP-UX ld is not for runtime
	  load path.  [ruby-list:44600]

Wed Feb 20 23:55:19 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_map_errno): exported.

Wed Feb 20 13:08:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb (parse_args): added --dir-mode, --script-mode and
	  --cmd-type options.  [ruby-dev:33816]

	* instruby.rb (parse_args): added bin-arch and bin-comm to install
	  type, for compiled files and script files.

	* instruby.rb (parse_args): deal with make style command line macros,
	  and count as long syle options if prefixed with INSTALL_.

	* instruby.rb (makedirs): use $dir_mode.  [ruby-dev:33805]

	* instruby.rb (open_for_install): set file mode, which is now
	  permission mode instead of access mode.

	* instruby.rb (bin-comm): installs scripts with replacing shebang
	  lines.

Tue Feb 19 18:34:32 2008  Tanaka Akira  <akr@fsij.org>

	* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed.  [ruby-dev:33857]

Tue Feb 19 14:27:32 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/readline/readline.c (readline_event): prevent polling.  based on
	  a patch from error errorsson in [ruby-Bugs-17675].

Tue Feb 19 12:08:29 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yycompile): clear ruby_eval_tree_begin if parse failed.

Mon Feb 18 16:23:45 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yycompile): clear ruby_eval_tree_begin too before parse.

Mon Feb 18 10:17:42 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/pty/lib/expect.rb (IO#expect): check if peer is closed.
	  [ruby-Bugs-17940]

Fri Feb 15 20:37:06 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/rational.rb (floor, ceil, truncate, round): do not use
	  definitions of Numeric.

	* lib/rational.rb (to_i): should returns truncated self.

	* lib/complex.rb (numerator): requires
	  Integer#{numerator,denominator}.

	* lib/complex.rb (quo): do not use definition of Numeric.

	* lib/complex.rb (div, divmod, floor, ceil, truncate, round):
	  undef'ed.

Fri Feb 15 15:23:12 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_convert): check upper bound.  a patch from
	  Daniel Luz at [ruby-Bugs-17910].

Fri Feb 15 02:42:25 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (ftruncate): check if available.

	* file.c (rb_file_truncate): check if ftruncate instead of truncate.

Fri Feb 15 02:40:54 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (sigsetmask): check when signal semantics is not POSIX.

	* signal.c (USE_TRAP_MASK): set true if sigprocmask or sigsetmask is
	  available.

Thu Feb 14 17:44:32 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dl/ptr.c (dlmem_each_i): typo fixed.  a patch from IKOMA
	  Yoshiki <ikoma AT mb.i-chubu.ne.jp> in [ruby-dev:33776].

Thu Feb 14 16:02:51 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_utime): inhibits with secure level 2 or higher.

Thu Feb 14 01:43:16 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/timeout.rb (Timeout::timeout): made sensitive to location on the
	  stack.  [ruby-core:15458]

Thu Feb 14 00:49:53 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (INSTRUBY_ARGS): pass mode to install.  [ruby-dev:33766]

	* instruby.rb (parse_args): added --data-mode and --prog-mode options.

Tue Feb 12 11:33:26 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/erb/test_erb.rb(TestERBCore): import from erb-2.0.4.

	* test/erb/hello.erb: ditto

Mon Feb 11 17:25:21 2008  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb, NEWS:
	  0.2.3 -> 0.2.4.

	* lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:
	  fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some
	  elements if description is missed.
	  Reported by Michael Auzenne. Thanks!!!

	* lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:
	  RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.

Mon Feb 11 16:57:00 2008  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* ChangeLog: format-time-string under C locale. [ruby-dev:33261]

Mon Feb 11 16:31:47 2008  URABE Shyouhei  <shyouhei@ice.uec.ac.jp>

	* gc.c (rb_newobj): prohibit call of rb_newobj() during gc.
	  Submitted by Sylvain Joyeux [ruby-core:12099].

	* ext/dl/ptr.c: do not use LONG2NUM() inside dlptr_free().
	  Slightly modified fix bassed on a patch by Sylvain Joyeux
	  [ruby-core:12099] [ ruby-bugs-11859 ] [ ruby-bugs-11882 ]
	  [ ruby-patches-13151 ].

Mon Feb 11 00:22:55 2008  NARUSE, Yui  <naruse@ruby-lang.org>

	* lib/benchmark.rb (Job::Benchmark#item): fix typo.

Sat Feb  9 23:22:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/bigdecimal/extconf.rb: simplified the condition.

Sat Feb  9 17:51:24 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
	  precision.  [ruby-talk:290296]

	* ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant.

	* ext/bigdecimal/extconf.rb: ditto.  [ruby-dev:33658]

Sat Feb  9 00:44:52 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/irb.rb (IRB::Irb::eval_input): rescues Interrupt and other than
	  SystemExit and SignalException.  [ruby-core:15359]

Fri Feb  8 15:09:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (xsystem): expand macros like as make.

Tue Feb  5 11:14:11 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (INSTALL_DIRS, install_dirs): added BINDIR.

	* lib/mkmf.rb (install_files): rejects files matching to
	  $NONINSTALLFILES.

	* lib/mkmf.rb (init_mkmf): defaults $NONINSTALLFILES to backup and
	  temporary filse.

Mon Feb  4 16:44:24 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (darwin): NSIG is not defined if _XOPEN_SOURCE > 500L.
	  [ruby-dev:33584]

Sat Feb  2 20:06:42 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/benchmark.rb (Benchmark::realtime): make Benchmark#realtime
	  a bit faster.  a patch from Alexander Dymo <dymo AT ukrpost.ua> in
	  [ruby-core:15337].

Sat Feb  2 09:53:39 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (darwin): disabled fat-binary support which confuses
	  configure much, since ``universal'' implies hidden cross-compiling.
	  TODO: ruby and libruby.bundle might be possible to bound with `lipo'
	  after builds for each archs.  Anyway, config.h and rbconfig.rb must
	  be separated definitely at least.

Fri Feb  1 21:42:37 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (darwin): _XOPEN_SOURCE is necessary to make ucontext_t
	  consistent with the library implementation of MacOS X 10.5.
	  [ruby-dev:33461]

	* configure.in (darwin): ucontext on PowerPC MacOS X 10.5 is broken.

Thu Jan 31 08:31:19 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (ext/extmk.rb, instruby.rb): inlined $(MAKE) so that can
	  be executed even with -n.

Thu Jan 31 07:00:19 2008  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (bin_for_find): should find a symbol by
	  Symbol class.

	* test/rinda/test_rinda.rb (test_symbol_tuple): ditto.

Wed Jan 30 22:07:58 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb: refined deprecated methods.

Wed Jan 30 22:06:54 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* bignum.c (rb_cstr_to_inum): '0_2' is a valid representation.

Tue Jan 29 22:40:12 2008  Yusuke Endoh  <mame@tsg.ne.jp>

	* range.c (step_i): rb_funcall receives VALUE as an argument.

Tue Jan 29 11:53:05 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: rm largefile.h.

Mon Jan 28 01:21:15 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_open_file): should check NUL in path.
	  <http://www.rubyist.net/~matz/20080125.html#c01>.

	* io.c (rb_io_s_popen): ditto.

	* io.c (rb_io_reopen): ditto.

	* io.c (next_argv): ditto.

	* io.c (rb_io_s_foreach): ditto.

	* io.c (rb_io_s_readlines): ditto.

	* io.c (rb_io_s_read): ditto.

Fri Jan 25 22:33:38 2008  Yusuke Endoh  <mame@tsg.ne.jp>

	* math.c: fix comment.  [ruby-dev:33276]

Fri Jan 25 10:31:58 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* */*.bat: set svn:mime-type to text/batch.

Thu Jan 24 19:36:22 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic::inspect): use Kernel#to_s instead
	  object_id with printf.  [ruby-dev:33347]

Tue Jan 22 11:22:47 2008  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/setup.mak ($(ARCH)): if a macro is appended by $(APPEND),
	  a space will be inserted on the top of the line.

	* win32/Makefile.sub (MKFILES): stop make process if Makefile is
	  updated.

Mon Jan 21 17:34:41 2008  Akinori MUSHA  <knu@iDaemons.org>

	* io.c (rb_io_mode_flags, rb_io_mode_modenum): Ignore encoding
	  options for forward compatibility.

Mon Jan 21 12:50:02 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.

Sat Jan 19 11:21:53 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (sigsetjmp): check if available.

	* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.

Sat Jan 19 11:10:11 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: Remove wrong assumptions about Cygwin.  a patch from
	  Corinna Vinschen in [ruby-Bugs-17018].

Thu Jan 17 21:06:01 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (Date::Infinity#<=>): didn't work.  A patch from
	  Dirkjan Bussink <d.bussink AT gmail.com> [ruby-core:15098].
	  This is a bug obviously.  However it didn't affect the library's
	  functions.

	* lib/date.rb, lib/date/format.rb: some trivial changes.

Tue Jan 15 15:09:28 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/setup.mak: strip out empty lines from CPP output.

Tue Jan 15 03:41:42 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (eval): check if backtrace is empty.  [ruby-core:15040]

Tue Jan 15 01:28:47 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk: simplified dummy objects dependencies.

Mon Jan 14 16:12:58 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/shellwords.rb: scape should be an alias to shellescape.  a
	  patch from Masahiro Kawato <m-kawato AT mwb.biglobe.ne.jp> in
	  [ruby-dev:33060].

Mon Jan 14 09:32:40 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/time.rb: do not reference Time directly from the inside of
	  definitions. [ruby-dev:33059]

Sat Jan 12 18:27:41 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_define_alloc_func, rb_undef_alloc_func): should
	  define/undef on a signleton class.  [ruby-core:09959]

Sat Jan 12 12:04:14 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: tuning for performance.

Fri Jan 11 12:35:56 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: moved broken syscall checks from process.c etc.

	* defines.h (WORDS_BIGENDIAN): honor __BIG_ENDIAN__ than the result of
	  configure.

	* dln.c: use dlopen on Mac OS X 10.3 or later.  backport from trunk.

	* lib/rdoc/options.rb (check_diagram): more precise check, darwin
	  is not Windows but minwg is on it.

Thu Jan 10 10:53:50 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_open_osfhandle): reverted to old definition.
	  [ ruby-Bugs-16948 ]

Tue Jan  8 20:02:08 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win{32,ce}/Makefile.sub: merged.

Sun Jan  6 09:39:02 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: introduced some constants
	  (for internal use).

	* sample/cal.rb: trivial adjustments.

Fri Jan  4 23:08:48 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_arg): use converted object.  [ruby-core:14759]

Fri Jan  4 01:20:21 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32.h: only VC6 needs extern "C++" for math.h.  [ruby-talk:285660]

Thu Jan  3 11:28:58 2008  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (fptr_finalize): clear errno first.  [ruby-talk:284492]

Wed Jan  2 10:18:56 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* sample/time.rb: use Process.times instead of Time.times.

Wed Jan  2 09:18:11 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* sample/goodfriday.rb: examples for date are enough.  retired.

Wed Jan  2 09:06:55 2008  Tadayoshi Funaba  <tadf@dotrb.org>

	* sample/cal.rb: just updated with the newest version.

Mon Dec 31 06:50:38 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* trunk/common.mk: not use -I$(srcdir)/lib with $(MINIRUBY) for cross
	  compiling.

	* configure.in, {win,bcc}32/Makefile.sub (MINIRUBY): -I$(srcdir)/lib
	  moved.

Sun Dec 30 22:48:37 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (_valid_time?): I'm not sure to recommend such an
	  expression.  but anyway it is acceptable now.  [ruby-core:14580]

Fri Dec 28 16:36:33 2007  NARUSE, Yui  <naruse@airemix.com>

       * lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.

Fri Dec 28 13:21:32 2007  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb, test/rss/test_version.rb, NEWS: 0.2.2 -> 0.2.3.

	* lib/rss/parser.rb, test/rss/test_parser.rb: supported "-" in tag name.
	  Reported by Ray Chen. Thanks.

Thu Dec 27 23:56:01 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb: should not use the libraries under the source directory
	  at cross compiling.

Thu Dec 27 11:02:45 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h, string.c (rb_str_set_len): added for upgrading path from
	  1.8 to 1.9. [ruby-dev:32807]

	* string.c (rb_str_lines, rb_str_bytes): ditto.

Thu Dec 27 10:47:32 2007  Technorama Ltd.  <oss-ruby@technorama.net>

	* ext/openssl/ossl_ssl.c: Only show a warning if the default
	  DH callback is actually used.

	* ext/openssl/ossl_rand.c: New method: random_add().

Wed Dec 26 22:27:45 2007  NARUSE, Yui <naruse@ruby-lang.org>

	* lib/resolv.rb (Resolv::DNS::Name.==): fix for other is array of
	  Resolv::DNS::Label::Str.

	* lib/resolv.rb (Resolv::DNS::MessageEncoder#put_label): String#string
	  is not defined, so replace to_s.

	* lib/resolv.rb (Resolv::IPv6#to_name): ip6.int is obsoleted by
	  int.arpa.

Mon Dec 24 16:18:57 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/ri/ri_options.rb:  Fix ri --help listing of gem ri paths.
	  Merge of r14567 and r14569 from trunk.

	* lib/rdoc/ri/ri_paths.rb:  Fix duplication of ri data for multiple
	  gems.  Merge of r14567 from trunk

Mon Dec 24 12:35:03 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win{32,ce}/Makefile.sub (MFLAGS): defaulted to -l.

Mon Dec 24 11:56:31 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* {bcc32,win{32,ce}}/Makefile.sub (SET_MAKE): set MFLAGS which is not
	  set by default, to get rid of chaotic situation of MFLAGS/MAKEFLAGS.

Sat Dec 22 14:49:46 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb: don't freeze nil even if 1.8 will not be aware of
	  the issue. [ruby-dev:32677]

Wed Dec 19 13:57:43 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (TIMEZONE_VOID): check whether timezone requires zero
	  arguments.  [ruby-dev:32631]

Wed Dec 19 12:01:42 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (f_rest_arg): check if duplicated.  [ruby-core:14140]

Wed Dec 19 10:52:29 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_cstr_to_inum): an underscore succeeding after octal
	  prefix is allowed.  [ruby-core:14139]

Mon Dec 17 13:43:15 2007  Tanaka Akira  <akr@fsij.org>

	* gc.c (stack_end_address): use local variable address instead of
	  __builtin_frame_address(0) to avoid SEGV on SunOS 5.11 on x86 with
	  gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802).
	  stack_end_address returned a frame address of garbage_collect
	  since stack_end_address doesn't create its own frame.
	  So a VALUE stored in a callee saved register, %edi, pushed into
	  the stack at the beginning of garbage_collect was not marked.

Mon Dec 17 12:21:25 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in (RUNRUBY): added RUNRUBYOPT.

Fri Dec 14 12:36:35 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined
	  and its type.

	* configure.in (timezone, altzone): check for recent cygwin.

	* missing/strftime.c (strftime): fix for timezone.  [ruby-dev:32536]

	* lib/mkmf.rb (try_var): should fail for functions.

	* ext/readline/extconf.rb: should use have_func for functions instead
	  of have_var.

Tue Dec 11 00:04:05 2007  Akinori MUSHA  <knu@iDaemons.org>

	* array.c (rb_ary_slice_bang): If an invalid negative index (<
	  -size) is given, do not raise an exception but return nil just
	  like slice() does.

	* test/ruby/test_array.rb (TestArray::test_slice,
	  TestArray::test_slice!): Pull in test cases from trunk.

Mon Dec 10 21:47:53 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* transcode.c (str_transcode): allow non-registered encodings.
	  [ruby-dev:32520]

Mon Dec 10 21:00:30 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_slice_bang): should return nil if position out
	  of range.  a patch from Akinori MUSHA <knu AT iDaemons.org>.
	  [ruby-dev:32518]

Mon Dec 10 18:28:06 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/uri/common.rb (URI::REGEXP::PATTERN): typo in REG_NAME
	  regular expression.  a patch from Ueda Satoshi
	  <s-ueda AT livedoor.jp>.  [ruby-dev:32514]

Sun Dec  9 12:39:01 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/cgi.rb (read_multipart): exclude blanks from header values.
	  [ruby-list:44327]

Wed Dec  5 23:38:50 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* range.c (range_each): followed step_i change.

Wed Dec  5 18:08:45 2007  Tanaka Akira  <akr@fsij.org>

	* numeric.c (int_odd_p): new method Integer#odd?.
	  (int_even_p): new method Integer#even?.
	  (int_pred): new method Integer#pred.
	  (fix_odd_p): new method Fixnum#odd?.
	  (fix_even_p): new method Fixnum#even?.

Wed Dec  5 15:15:21 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* range.c (step_i, range_step): support non-fixnum steps.
	  [ruby-talk:282100]

Tue Dec  4 11:23:50 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_cstr_to_inum): trailing spaces may exist at sqeezing
	  preceeding 0s.  [ruby-core:13873]

Sun Dec  2 22:43:45 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (error_print): put newline unless multiple line message ends
	  with a newline.  [ruby-dev:32429]

Sun Dec  2 15:49:20 2007  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb, test/rss/test_version.rb, NEWS: 0.2.1 -> 0.2.2.

	* lib/rss/maker/itunes.rb: fixed new_itunes_category.
	* lib/rss/maker/taxonomy.rb: new_taxo_topic -> new_topic because
	  of consistency.

	* test/rss/test_maker_itunes.rb, test/rss/test_itunes.rb: removed
	  needless UTF-8 characters.

Sun Dec  2 01:12:15 2007  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 14070 from trunk.

	* lib/xmlrpc/server.rb (XMLRPC::Server#server): Improve signal handling so
	  pressing control-c in the controlling terminal or sending SIGTERM stops
	  the XML-RPC server.

Sat Dec  1 15:13:33 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/resolv.rb: documentation update.  backported from 1.9.
	  [ruby-core:13273]

Sat Dec  1 03:30:47 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (newline_node): set line from outermost node before removing
	  NODE_BEGIN.  [ruby-dev:32406]

Fri Nov 30 21:53:28 2007  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb, test/rss/test_version.rb: 0.2.0 -> 0.2.1.

	* lib/rss/content.rb, lib/rss/content/1.0.rb,
	  lib/rss/content/2.0.rb, lib/rss/maker/content.rb,
	  test/rss/rss-testcase.rb, test/rss/test_content.rb,
	  test/rss/test_maker_content.rb: supported content:encoded with RSS
	  2.0.
	  Suggested by Sam Lown. Thanks.

	* NEWS: added the above changes.

Thu Nov 29 16:59:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (stmt): remove unnecessary NODE_BEGIN.  [ruby-core:13814]

Wed Nov 28 14:43:14 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extract_makefile): use dldflags instead of DLDFLAGS to
	  get rid of mixing $LDFLAGS and $ARCH_FLAG.

	* lib/mkmf.rb (configuration): ditto.

	* lib/mkmf.rb (create_makefile): support for extensions which has no
	  shared object.

Wed Nov 28 09:51:42 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big2str0): do not clobber space for sign.

	* sprintf.c (remove_sign_bits): extends sign bit first.

Wed Nov 21 01:04:12 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (nil_plus): remove unused function.  [ruby-core:13737]

Sun Nov 18 14:03:44 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_alias): do not call hook functions until initialization
	  finishes.  [ruby-talk:279538]

Sun Nov 18 09:09:48 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (String#tr_cpp): make preprocessor identifiers.

Sat Nov 17 13:58:11 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_invoke): bug fix. [ruby-talk:279100]

Fri Nov 16 17:41:34 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (Document-class): moved the simplest example to
	  the top.

	* ext/iconv/iconv.c (iconv_s_iconv): Document-method: needs class
	  prefix for class method.  [ruby-core:13542]

	* ext/iconv/iconv.c (iconv_iconv): also instance method needs to be
	  qualified.

Fri Nov 16 11:16:41 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/yaml/rubytypes.rb (String#is_binary_data?): use Integer#fdiv.

Thu Nov 15 19:50:46 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/curses/extconf.rb: check macro if cannot find func.
	  [ruby-list:44224]

Thu Nov 15 12:19:14 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::FileStore::restore): use
	  lockfile for exclusive locks.  a patch from <tommy AT tmtm.org>.
	  [ruby-dev:32296]

Wed Nov 14 01:52:59 2007  Tanaka Akira  <akr@fsij.org>

	* missing/isinf.c (isinf): don't define if the macro is defined.

Wed Nov 14 01:34:42 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (round): fallback definition.

	* numeric.c (flo_divmod, flo_round): use round() always.
	  [ruby-dev:32269]

Tue Nov 13 22:02:23 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: remove Thread.exclusive.

	* lib/drb/extservm.rb: ditto.

Tue Nov 13 16:33:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (flodivmod): work around for infinity.

	* numeric.c (flo_divmod): work around for platforms have no round().
	  [ruby-dev:32247]

Tue Nov 13 13:58:51 2007  Tanaka Akira  <akr@fsij.org>

	* numeric.c (numeric.c): Integer#ord implemented.  [ruby-dev:32206]

Tue Nov 13 02:57:04 2007  URABE Shyouhei  <shyouhei@ice.uec.ac.jp>

	* numeric.c (flo_divmod): round to the nearest integer.
	  [ ruby-Bugs-14540 ]

Mon Nov 12 16:52:29 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): rdoc about srcprefix.  a patch from
	  Daniel Berger <djberg96 AT gmail.com> in [ruby-core:13378].

Mon Nov 12 13:53:06 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-parse-partial): handle stringified
	  symbols properly using ruby-forward-string.

Mon Nov 12 12:38:31 2007  Tanaka Akira  <akr@fsij.org>

	* Makefile.in (lex.c): don't remove lex.c at first.

Fri Nov  9 07:26:04 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* random.c: update MT URL.[ruby-core:13305].

Wed Nov  7 03:32:38 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rexml/encodings/SHIFT-JIS.rb (REXML::Encoding): place -x for
	  nkf conversion.  a patch from <moonwolf AT moonwolf.com>.
	  [ruby-dev:32183]

Mon Nov  5 05:17:04 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Switch::summarize): fix for long form
	  option with very long argument.  a patch from Kobayashi Noritada
	  <nori1 AT dolphin.c.u-tokyo.ac.jp> in [ruby-list:44179].

Mon Nov  5 01:20:33 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (call_args): remove "parenthesize argument(s) for future
	  version" warning.  when I added this warning, I had a plan to
	  reimplement the parser that is simpler than the current one.
	  since we abandoned the plan, warning no longer required.

Fri Nov  2 00:13:51 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_assoc): check and convert inner arrays (assocs)
	  using #to_ary.

	* hash.c (rb_hash_s_create): check and convert argument hash
	  using #to_hash.

	* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of
	  hash conversion.

Thu Nov  1 23:47:43 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbTCPSocket): Improving with multiple network
	  interface.

	* test/drb/drbtest.rb: ditto.

Fri Oct 26 17:14:14 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (fix_pow): returns 1.0 for 0**0.0.

	* numeric.c (fix_pow): returns infinity for 0**-1.  [ruby-dev:32084]

Wed Oct 25 07:18:09 2007  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 13781 from trunk.

	* lib/net/telnet.rb (Net::Telnet#login): Allowing "passphrase" in
	  addition to "password" for Telnet login prompts. [ruby-Bugs-10746]

Wed Oct 25 06:46:21 2007  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 13779 from trunk.

	* lib/net/telnet.rb (Net::Telnet#login): Making the password prompt
	  pattern case insensitive. [ruby-Bugs-10746]

Thu Oct 25 14:19:33 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_tell, rb_io_seek): check errno too.  [ruby-dev:32093]

Wed Oct 25 08:03:53 2007  James Edward Gray II  <jeg2@ruby-lang.org>

	Merged 13767, 13768, 13769, and 13770 from trunk.

	* lib/xmlrpc/parser.rb (XMLRPC::Convert::dateTime): Fixing a bug that
	  caused time zone conversion to fail for some ISO 8601 date formats.
	  [ruby-Bugs-12677]

	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Explicitly start
	  the HTTP connection to support keepalive requests. [ruby-Bugs-9353]

	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Improving the error
	  message for Content-Type check failures. [ruby-core:12163]

	* lib/xmlrpc/utils.rb (XMLRPC::ParseContentType#parse_content_type):
	  Making Content-Type checks case insensitive. [ruby-Bugs-3367]

Sun Oct 21 21:16:43 2007  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss.rb, lib/rss/, test/rss/, sample/rss/: merged from trunk.
	- 0.1.6 -> 2.0.0.
	- fixed image module URI. Thanks to Dmitry Borodaenko.
	- supported Atom.
	- supported ITunes module.
	- supported Slash module.

	* NEWS: added an entry for RSS Parser.

Thu Oct 18 10:57:06 2007  Tanaka Akira  <akr@fsij.org>

	* ruby.h (RCLASS_IV_TBL): defined.
	  (RCLASS_M_TBL): ditto.
	  (RCLASS_SUPER): ditto.
	  (RMODULE_IV_TBL): ditto.
	  (RMODULE_M_TBL): ditto.
	  (RMODULE_SUPER): ditto.

Mon Oct 15 22:08:55 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Merge some of the sub-sections, as the differences were
	  unclear.

Mon Oct 15 21:57:07 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Mention ipaddr enhancements.

	* lib/ipaddr.rb (in_addr, in6_addr, addr_mask): Make some minor
	  code optimization.

	* lib/ipaddr.rb (<=>): Implement IPAddr#<=> and make IPAddr
	  comparable.

	* lib/ipaddr.rb (succ): Implement IPAddr#succ.  You can now create
	  a range between two IPAddr's, which (Range) object is
	  enumerable.

	* lib/ipaddr.rb (to_range): A new method to create a Range object
	  for the (network) address.

	* lib/ipaddr.rb (coerce_other): Support type coercion and make &,
	  |, == and include? accept a string or an integer instead of an
	  IPAddr object as the argument.

	* lib/ipaddr.rb (initialize): Give better error messages.

	* lib/ipaddr.rb: Improve documentation.

Mon Oct 15 21:24:25 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Mention shellwords and tempfile enhancements.

	* NEWS: Move the entry about Tk::X_Scrollable to a better section.

Mon Oct 15 17:28:20 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/lib/openssl/buffering.rb (read, readpartial): revert
	  r12496. handling EOF is a little differnt in ruby 1.8 and ruby 1.9.
	  [ruby-dev:31979]

Mon Oct 15 11:45:12 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (r_bytes0): refined length check.  [ruby-dev:32059]

Mon Oct 15 09:58:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (r_bytes0): check if source has enough data.
	  [ruby-dev:32054]

Mon Oct 15 01:15:09 2007  Tanaka Akira  <akr@fsij.org>

	* ext/socket/socket.c (s_accept_nonblock): make accepted fd
	  nonblocking.  [ruby-talk:274079]

Sun Oct 14 04:08:34 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (AC_SYS_LARGEFILE): keep results also in command
	  options, to vail out of mismatch.  [ruby-list:44114]

	* mkconfig.rb, lib/mkmf.rb (configuration): add DEFS.

Sun Oct 14 03:55:52 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/mkexports.rb: deal with __fastcall name decorations.
	  [ruby-list:44111]

Sat Oct 13 09:02:16 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* {bcc,win}32/mkexports.rb: explicit data.  [ruby-list:44108]

Sat Oct 13 00:35:03 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rexml/source.rb (REXML::SourceFactory::SourceFactory): typo
	  fixed.  [ruby-list:44099]

Fri Oct 12 11:22:15 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (match_values_at): make #select to be alias to #values_at
	  to adapt RDoc description.  [ruby-core:12588]

Thu Oct 11 14:32:46 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32}/Makefile.sub (COMMON_MACROS): workaround for old SDK's
	  bug. [ruby-core:12584]

Wed Oct 10 23:34:45 2007  Tanaka Akira  <akr@fsij.org>

	* lib/securerandom.rb: new file.  [ruby-dev:31928]

	* lib/cgi/session.rb (create_new_id): use securerandom if available.

Tue Oct  9 01:01:55 2007  Tanaka Akira  <akr@fsij.org>

	* re.c (rb_reg_s_union_m): Regexp.union accepts single
	  argument which is an array of patterns.  [ruby-list:44084]

Mon Oct  8 20:06:23 2007  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/net/http.rb, lib/open-uri.rb: remove
	  Net::HTTP#enable_post_connection_check.  [ruby-dev:31960]

	* lib/net/imap.rb: hostname should be verified against server's
	  indentity as persented in the server's certificate. [ruby-dev:31960]

	* ext/openssl/lib/net/telnets.rb, ext/openssl/lib/net/ftptls.rb: ditto.

Sat Oct  6 23:14:54 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_to_i): update RDoc since base can be any value
	  between 2 and 36.  [ruby-talk:272879]

Fri Oct  5 15:44:50 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/shellwords.rb: Add shellescape() and shelljoin().

	* lib/shellwords.rb: Rename shellwords() to shellsplit() and make
	  the former an alias to the latter.

	* lib/shellwords.rb: Add escape(), split(), join() as class
	  methods, which are aliases to their respective long names
	  prefixed with `shell'.

	* lib/shellwords.rb: Add String#shellescape(), String#shellsplit()
	  and Array#shelljoin() for convenience.

Fri Oct  5 15:40:04 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/tempfile.rb (Tempfile::make_tmpname): Allow to specify a
	  suffix for a temporary file name.

	* lib/tempfile.rb (Tempfile::make_tmpname): Make temporary file
	  names less predictable by including a random string.
	  [inspired by: akr]

Tue Oct  2 21:20:14 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (make_cmdvector): adjust escaped successive
	  double-quote handling. (merge from trunk)

Tue Oct  2 20:35:24 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (init_env): initialize HOME and USER environment
	  variables unless set. [ruby-core:12328] (merge from trunk)

	* win32/win32.c (NtInitialize, getlogin): ditto.

	* configure.in, win32/Makefile.sub (LIBS): need to link shell32
	  library for SH* functions on mswin32 and mingw32.

Mon Oct  1 12:50:59 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.
	  [ruby-dev:31911]

Wed Sep 26 23:54:37 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake), lib/mkmf.rb (configuration): top_srcdir
	  should not prefixed with DESTDIR.

Wed Sep 26 08:36:31 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in (ext/extinit.o): use $(OUTFLAG) as well as other
	  objects.  [ruby-Bugs-14228]

Wed Sep 26 05:12:17 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yyerror): limit error message length.  [ruby-dev:31848]

	* regex.c (re_mbc_startpos): separated from re_adjust_startpos.

Tue Sep 25 13:47:38 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (remove_method): should not remove undef place holder.
	  [ruby-dev:31817]

Mon Sep 24 16:52:11 2007  Urabe Shyouhei  <shyouhei@ruby-lang.org>

	* lib/net/http.rb: fix typo.

Sun Sep 23 21:57:25 2007  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/net/http.rb: an SSL verification (the server hostname should
	  be matched with its certificate's commonName) is added.
	  this verification can be skipped by
	  "Net::HTTP#enable_post_connection_check=(false)".
	  suggested by Chris Clark <cclark at isecpartners.com>

	* lib/net/open-uri.rb: use Net::HTTP#enable_post_connection_check to
	  perform SSL post connection check.

	* ext/openssl/lib/openssl/ssl.c
	  (OpenSSL::SSL::SSLSocket#post_connection_check): refine error message.

Sun Sep 23 09:05:05 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (os_obj_of, os_each_obj): hide objects to be finalized.
	  [ruby-dev:31810]

Sun Sep 23 08:58:01 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval_method.ci (rb_attr): should not use alloca for unknowen size
	  input.  [ruby-dev:31816]

	* parse.y (rb_intern_str): prevent str from optimization.

Sun Sep 23 05:42:35 2007  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/rdoc/options.rb (Options::check_diagram): dot -V output
	  changed. [ ruby-Bugs-11978 ], Thanks Florian Frank.

Sat Sep 22 06:02:11 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::List::summarize): use each_line if
	  defined rather than each.  [ruby-Patches-14096]

Sat Sep 22 05:19:49 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_init): separate from strio_initialize
	  to share with strio_reopen properly.  [ruby-Bugs-13919]

Fri Sep 21 15:46:20 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (struct rb_exec_arg): proc should be a VALUE.

	* process.c (rb_f_exec): suppress a warning.

Fri Sep 21 03:05:35 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c, intern.h, ext/thread/thread.c: should not free queue while
	  any live threads are waiting.  [ruby-dev:30653]

Thu Sep 20 17:24:59 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (rb_detach_process): cast for the platforms where size of
	  pointer differs from size of int.

	* process.c (rb_f_exec, rb_f_system): should not exceptions after
	  fork.  [ruby-core:08262]

Fri Sep 14 00:34:25 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/extservm.rb (invoke_service): use Thread.exclusive instead of
	  Thread.critical

Wed Sep 12 23:12:22 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.c (proc_options): -W should be allowed in RUBYOPT
	  environment variable.  [ruby-core:12118]

Mon Sep 10 01:05:25 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* range.c (range_step): fixed integer overflow.  [ruby-dev:31763]

Sun Sep  9 09:14:45 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (_strptime): now also attaches an element
	  which denotes leftover substring if exists.

Sat Sep  8 10:22:20 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (rb_struct_s_members): should raise TypeError instead
	  of call rb_bug().  [ruby-dev:31709]

	* marshal.c (r_object0): no nil check require any more.

Sat Sep  8 09:38:19 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (str[fp]time): now check specifications more
	  strictly.

Fri Sep  7 05:36:19 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb (MockClock): correct synchronous problems
	  of the MultiThreading. [ruby-dev:31692]

Wed Sep  5 22:02:27 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_subseq): need integer overflow check.
	  [ruby-dev:31736]

	* array.c (rb_ary_splice): ditto.  [ruby-dev:31737]

	* array.c (rb_ary_fill): ditto.  [ruby-dev:31738]

	* string.c (rb_str_splice): integer overflow for length.
	  [ruby-dev:31739]

Sun Sep  2 00:48:15 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (_parse): improved parsing of ordinal dates.

	* lib/date/format.rb (_parse): use named character classes in some
	  regular expressions.

Sat Sep  1 08:13:36 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: add WIN32OLE#ole_activex_initialize.

Thu Aug 30 13:13:13 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (try_const, have_const): check for a const is defined.
	  [ruby-core:04422]

Thu Aug 30 13:10:57 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (group_member): check if presents.

	* configure.in (XCFLAGS): add _GNU_SOURCE on linux.

	* file.c (group_member): use system routine if available.

Thu Aug 30 08:24:18 2007  Tanaka Akira  <akr@fsij.org>

	* ruby.h (RHASH_TBL): defined for compatibility to 1.9.
	* (RHASH_ITER_LEV): ditto.
	* (RHASH_IFNONE): ditto.
	* (RHASH_SIZE): ditto.
	* (RHASH_EMPTY_P): ditto.

Wed Aug 29 13:05:59 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* include/ruby/defines.h (flush_register_windows): call "ta 0x03"
	  even on Linux/Sparc.  [ruby-dev:31674]

Tue Aug 28 23:26:12 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
	  reg_get_val, ole_wc2mb): fix the bug. Thanks, arton.
	  [ruby-dev:31576]

Mon Aug 27 19:10:50 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/etc/etc.c (etc_getlogin): update documentation to note
	  security issue.  [ruby-Bugs-11821]

Tue Aug 21 21:09:48 2007  Tanaka Akira  <akr@fsij.org>

	* lib/tmpdir.rb (Dir.mktmpdir): make directory suffix specifiable.

Tue Aug 21 13:57:04 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (st_foreach_func, rb_foreach_func): typedefed.

Mon Aug 20 17:25:33 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (mnew): should preserve noex as safe_level.

	* eval.c (rb_call0): tighten security check condition..

Sat Aug 18 21:32:20 2007  Tanaka Akira  <akr@fsij.org>

	* lib/tmpdir.rb (Dir.mktmpdir): new method.
	  [ruby-dev:31462]

Sat Aug 18 17:44:42 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/tk/tcltklib.c (Init_tcltklib): use rb_set_end_proc().

Sat Aug 18 15:59:52 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (detach_process_watcher): should not pass the pointer
	  to an auto variable to the thread to be created.  pointed and
	  fix by KUBO Takehiro <kubo at jiubao.org>  [ruby-dev:30618]

Sat Aug 18 12:24:30 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep
	  comment lines first.

Thu Aug 16 20:40:50 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (bigtrunc): RBIGNUM(x)->len may be zero.  out of bound
	  access.  [ruby-dev:31404]

Thu Aug 16 16:46:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (aix): enable shared by default.

	* configure.in (aix): for 64bit-mode AIX.  [ruby-dev:31401]
	  + use CC for LDSHARED if non-gcc,
	  + moved -G option from *LDFLAGS to LDSHARED,
	  + set -brtl only in XLDFLAGS.

Thu Aug 16 13:06:08 2007  Tanaka Akira  <akr@fsij.org>

	* bignum.c (big_lshift): make shift offset long type.
	  (big_rshift): ditto.
	  (rb_big_lshift): ditto.
	  (big_rshift): ditto.
	  [ruby-dev:31434]

Thu Aug 16 04:09:19 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (Rinda::TupleSpace#start_keeper): improve
	  keeper thread.

Wed Aug 15 13:50:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (rb_hash_delete_key): delete the entry without calling block.

	* hash.c (rb_hash_shift): should consider iter_lev too.

	* hash.c (delete_if_i): use rb_hash_delete_key() so that the block
	  isn't called twice.  [ruby-core:11556]

Sun Arg 12 03:56:30 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb: fix Rinda::TupleSpace keeper thread bug.
	  the thread is started too early. [ruby-talk:264062]

	* test/rinda/test_rinda.rb: ditto.

Sat Aug 11 07:34:10 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: reverted some wrongly erased "o" options
	  (pointed out by nobu).

Tue Aug  7 14:58:39 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/pty/pty.c (establishShell): handshaking before close slave
	  device.  [ruby-talk:263410]

	* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): constified.

	* ext/pty/pty.c (SlaveName): removed static buffer.

	* ext/pty/expect_sample.rb: support for autologin.

Tue Aug  7 12:45:13 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (ac_cv_func_isinf): set yes also on OpenSolaris.
	  [ruby-Bugs-12859]

Mon Aug  6 17:36:29 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rexml/encodings/{ISO-8859-15,CP-1252}.rb: fixed invalid syntax.

Fri Aug  3 11:05:54 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): save all CONFIG values.

	* ext/extmk.rb (extmake): remove mkmf.log at clean, and extconf.h at
	  distclean, respectively.

	* ext/extmk.rb: remove rdoc at clean, and installed list file at
	  distclean, respectively.

Fri Aug  3 07:09:05 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: more verbose message.  [ruby-Bugs-12766]

	* lib/mkmf.rb (have_type): suppress a warning with -Wall.

	* lib/mkmf.rb (find_type): new method.

Thu Aug  2 13:46:39 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): should not check positional number as
	  width.  [ruby-core:11838]

Mon Jul 30 11:16:40 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_aref): check for Bignum index range.
	  [ruby-dev:31271]

Sat Jul 28 09:35:41 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/digest/lib/digest.rb (Digest::self.const_missing): avoid
	  infinite recursive const_missing call.  [ruby-talk:262193]

Thu Jul 26 13:57:45 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dln.c (load_1, dln_find_1): constified.

	* dln.c (conv_to_posix_path): removed.

	* ruby.c (usage): constified.

	* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): return
	  VALUE instead of a pointer to static buffer.

	* ruby.c (push_include_cygwin): fixed buffer overflow.
	  [ruby-dev:31297]

	* ruby.c (ruby_init_loadpath): not convert built-in paths.

Sun Jul 22 16:07:12 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h (is_ruby_native_thread): removed since declared as an int
	  function in ruby.h already.

Sun Jul 22 14:33:40 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_rename): deleted code to get rid of a bug of
	  old Cygwin.

	* file.c (rb_file_truncate): added prototype of GetLastError()
	  on cygwin.  [ruby-dev:31239]

	* intern.h (is_ruby_native_thread): prototype.

	* missing/strftime.c (strftime): fix printf format and actual
	  arguments.

	* ext/Win32API/Win32API.c (Win32API_initialize): ditto.

	* ext/tk/tcltklib.c (ip_finalize): ditto.

	* ext/dl/ptr.c (rb_dlptr_inspect): ditto.  [ruby-dev:31268]

	* ext/dl/sym.c (rb_dlsym_inspect): ditto.

	* ext/socket/getnameinfo.c: include stdio.h always.

	* ext/win32ole/win32ole.c (ole_hresult2msg, folevariable_name,
	  folevariable_ole_type, folevariable_ole_type_detail,
	  folevariable_value, folemethod_visible): missing return value.

Sat Jul 21 17:48:26 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): make OBJS depend on RUBY_EXTCONF_H
	  only if extconf.h is created.

	* bcc32/{Makefile.sub,configure.bat,setup.mak: configure_args
	  support.

	* bcc32/setup.mak: check runtime version.

	* win32/win32.c (rb_w32_open_osfhandle): prototype has changed
	  in bcc 5.82.

	* {win32,wince,bcc32}/setup.mak (-version-): no RUBY_EXTERN magic.

	* win32/resource.rb: include patchlevel number.

Sat Jul 21 12:06:48 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (init_mkmf): should remove mkmf.log too.

Sat Jul 21 01:53:17 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (Date._parse): completes calendar week based year.

	* lib/date/format.rb (Date._parse): detects year of ordinal date in
	  extended format.

Fri Jul 20 15:22:51 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/openssl/ossl_config.c (ossl_config_set_section): do not
	  initialize aggregations with dynamic values.  [ruby-talk:259306]

Thu Jul 19 19:24:14 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (get_backtrace): check the result more.
	  [ruby-dev:31261] [ruby-bugs-12398]

Thu Jul 19 14:38:45 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_lshift, rb_big_rshift): separated functions
	  to get rid of infinite recursion.  fixed calculation in edge
	  cases.  [ruby-dev:31244]

	* numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.

Wed Jul 18 16:57:41 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_pow): refine overflow check.  [ruby-dev:31242]

Wed Jul 18 08:47:09 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_succ): Time#succ should return a time object in the
	  same timezone mode to the original.  [ruby-talk:260256]

Tue Jul 17 00:50:53 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (fix_pow): integer power calculation: 0**n => 0,
	  1**n => 1, -1**n => 1 (n: even) / -1 (n: odd).

	* test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test
	  suite.  pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf.

Mon Jul 16 23:07:51 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/base64.rb (Base64::b64encode): should not specify /o option
	  for regular expression.  [ruby-dev:31221]

Mon Jul 16 18:29:33 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_rindex_m): accept string-like object convertible
	  with #to_str method, as well as rb_str_index_m.  [ruby-core:11692]

Mon Jul 16 05:45:53 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): more checks for format argument.
	  [ruby-core:11569], [ruby-core:11570], [ruby-core:11571],
	  [ruby-core:11573]

Mon Jul 16 00:26:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_pow): removed invariant variable.  [ruby-dev:31236]

Sun Jul 15 23:59:57 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_neg): SIGNED_VALUE isn't in 1.8.

Sun Jul 15 22:24:49 2007  pegacorn  <subscriber.jp AT gmail.com>

	* ext/digest/digest.c (rb_digest_instance_update,
	  rb_digest_instance_finish, rb_digest_instance_reset,
	  rb_digest_instance_block_length): %s in rb_raise() expects char*.
	  [ruby-dev:31222]

	* ext/openssl/ossl.h: include ossl_pkcs5.h.  [ruby-dev:31231]

	* ext/openssl/ossl_pkcs5.h: new file for PKCS5.  [ruby-dev:31231]

	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): use ossl_raise()
	  instead of rb_raise().  [ruby-dev:31222]

	* ext/sdbm/_sdbm.c: DOSISH platforms need io.h.  [ruby-dev:31232]

	* ext/syck/syck.h: include stdlib.h for malloc() and free().
	  [ruby-dev:31232]

	* ext/syck/syck.h (syck_parser_set_input_type): prototype added.
	  [ruby-dev:31231]

	* win32/win32.c: include mbstring.h for _mbspbrk().  [ruby-dev:31232]

	* win32.h (rb_w32_getcwd): prototype added.  [ruby-dev:31232]

Sun Jul 15 21:07:43 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (bigtrunc): do not empty Bignum.  [ruby-dev:31229]

Sun Jul 15 19:05:28 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_cstr_to_inum): check leading non-digits.
	  [ruby-core:11691]

Sun Jul 15 04:42:20 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (get2comp): do nothing for empty Bignum.  [ruby-dev:31225]

Sat Jul 14 14:04:06 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (sort_by_cmp): check if reentered.  [ruby-dev:24291]

Sat Jul 14 12:44:14 2007  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/openssl/test_pkcs7.rb: reverted the previous patch.  it should
	  be as it was to check interface compatibility.  sorry for bothering
	  with this.

Sat Jul 14 12:16:17 2007  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/openssl/test_pkcs7.rb: follow the library change.  applied a
	  patch from <zn at mbf.nifty.com> [ruby-dev:31214].
	  NOTE: r12496 imports the latest openssl libs from trunk to ruby_1_8
	  though its's not ChangeLog-ed.  maintainer should aware that.

Sat Jul 14 02:51:52 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (fix_pow): 0**2 should not raise floating point
	  exception.  [ruby-dev:31216]

Sat Jul 14 02:25:48 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (int_pow): wrong overflow detection.  [ruby-dev:31213]

	* numeric.c (int_pow): wrong overflow detection.  [ruby-dev:31215]

Fri Jul 13 16:10:00 2007  Tanaka Akira  <akr@fsij.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): use ENV.to_hash to access
	  http_proxy environment variable to avoid case insensitive
	  environment search.

Fri Jul 13 15:02:15 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (CreateChild): enclose command line except for
	  command.com which can not handle quotes.  [ruby-talk:258939]

Fri Jul 13 10:10:46 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (link_command, cc_command, cpp_command): do not expand
	  ::CONFIG which is an alias of MAKEFILE_CONFIG.

Thu Jul 12 17:03:15 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* struct.c (rb_struct_init_copy): disallow changing the size.
	  [ruby-dev:31168]

Wed Jul 11 23:38:14 2007  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* random.c: documentation fix.  srand(0) initializes PRNG with '0',
	  not with random_seed.

Tue Jul 10 14:50:01 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bcc32/{Makefile.sub,setup.mak}: remove surplus slash from srcdir.

Fri Jul  6 15:22:58 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_interrupt): suppress a gcc's officious warning.

Thu Jul  5 16:44:28 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* numeric.c (int_pow): fix previous nubu's commit.

	* test/ruby/test_fixnum.rb: new test.

Thu Jul  5 15:56:06 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (int_pow): even number multiplication never be negative.

Mon Jul  2 14:34:43 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): sign bit extension should not be done
	  if FPLUS flag is specified.  [ruby-list:39224]

Sat Jun 30 16:05:41 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_initialize): should call rb_ary_modify() first.
	  [ruby-core:11562]

Sat Jun 30 00:17:00 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yylex): return non-valid token for an invalid
	  instance/class variable name.  a patch from Yusuke ENDOH
	  <mame AT tsg.ne.jp>.  [ruby-dev:31095]

Fri Jun 29 11:23:09 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (dsym): return non-null NODE even if yyerror().  based on a
	  patch from Yusuke ENDOH <mame AT tsg.ne.jp>.  [ruby-dev:31085]

Tue Jun 26 16:35:21 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (ruby_setreuid, ruby_setregid): rename to get rid of name
	  clash.

	* process.c (proc_exec_v, rb_proc_exec): preserve errno.

Sat Jun 23 00:37:46 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (rb_hash_select): remove unnecessary varargs for
	  rb_hash_select.  a patch from Daniel Berger
	  <Daniel.Berger at qwest.com>.   [ruby-core:11527]

	* hash.c: ditto.

Mon Jun 18 08:47:54 2007  Technorama Ltd.  <oss-ruby@technorama.net>

	* ext/openssl/{extconf.rb,ossl_ssl_session.c}:
	  Fix ruby-Bugs-11513.

	* ext/openssl/ossl_pkey_ec.c
	  New methods EC::Point.[eql,make_affine!,invert!,on_curve?,infinity?]
	  By default output the same key form as the openssl command.

	* ext/openssl/ossl_rand.c
	  New method Random.status?

Mon Jun 18 13:54:36 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occured
	  in at_exit blocks.  [ruby-core:11263]

Mon Jun 18 01:14:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* variable.c (rb_path2class): get rid of dangling pointer caused by
	  optimized out value.

	* variable.c (rb_global_entry, rb_f_untrace_var, rb_alias_variable,
	  rb_generic_ivar_table, generic_ivar_get, generic_ivar_set,
	  generic_ivar_defined, generic_ivar_remove, rb_mark_generic_ivar,
	  rb_free_generic_ivar, rb_copy_generic_ivar,
	  rb_obj_instance_variables): suppress warnings.

Fri Jun 15 22:33:29 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (realclean): separate local and ext.

	* ext/extmk.rb: not remove unrelated directories.

Fri Jun 15 17:01:20 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/dl/lib/dl/win32.rb: seems that dl doesn't accept void argument.
	  fixed [ruby-bugs:PR#5489].

Thu Jun 14 17:09:48 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser): handle more
	  extensions.  [ruby-dev:30972]

Wed Jun 13 06:05:12 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (darwin): prohibit loading extension libraries to
	  miniruby.

Wed Jun 13 05:47:58 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_kill_thread): renamed in order to get rid of conflict
	  with a BeOS system function.  [ruby-core:10830]

Tue Jun 12 14:53:51 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (Logging.quiet, Logging.message): added quiet flag and
	  use it.  [ruby-core:10909]

	* lib/mkmf.rb (find_header): use header names in the message.

Sun Jun 10 13:47:36 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
	  get rid of invoking shell.  [ruby-dev:30942]

Thu Jun  7 19:02:48 2007  Tanaka Akira  <akr@fsij.org>

	* lib/pp.rb: call original "method" method instead of redefined one.

Mon Jun  4 11:11:12 2007  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (ResponseParser#next_token): fixed
	  error message. (backported from HEAD)

	* lib/net/imap.rb (ResponseParser#parse_error): fixed
	  the condition not to refer @token.symbol unexpectedly.
	  Thanks, Dick Monahan. (backported from HEAD)

Thu May 31 17:27:53 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/benchmark.rb (Benchmark::Job::item): avoid modifying the
	  argument unintentionally.  [ruby-talk:253676]

Thu May 31 02:12:32 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (Rinda::TupleBag): create index on tuple bag
	  by first column.

Wed May 30 13:27:40 2007  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/ftp.rb (Net::FTP#transfercmd): skip 2XX
	  responses for some FTP servers. (backported from HEAD)

Wed May 30 05:17:55 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): get rid of SEGV at ZSUPER in a block
	  [ruby-dev:30836]

Wed May 30 04:29:43 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (thread_timer): timer thread should not receive any
	  signals.  submitted by Sylvain Joyeux.  [ruby-core:08546]

Wed May 30 04:18:37 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval_cmd): just return if no exceptions.
	  [ruby-dev:30820]

Tue May 29 11:01:06 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_opendir): store attributes of the second
	  entries or later too.

	* win32/win32.c (rb_w32_opendir, rb_w32_readdir): eliminate magic
	  numbers.

Mon May 28 02:54:05 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (Rinda::TupleBag#delete): use rindex and
	  delete_at instead of delete for little improvement.

Sat May 26 00:05:22 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
	  skip tests for exitstatus and termsig on the platforms where
	  signals not supported.

Wed May 23 06:51:46 2007  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* lib/cgi.rb (CGI#[]): get rid of exceptions being raised.
	  [ruby-dev:30740], Thanks Kentaro KAWAMOTO.

Wed May 23 05:49:49 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb, ext/purelib.rb, lib/mkmf.rb, runruby.rb: clear default
	  load path to get rid of load pre-installed extensions/libraries.
	  [ruby-core:11017]

Sat May 19 10:29:18 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (Date._parse): detects some OFX dates
	  (Of course not fully).

Fri May 18 23:07:33 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_first): call rb_ary_subseq() instead of pushing
	  values by itself.  [ruby-talk:252062]

	* array.c (rb_ary_first): add negative length check.

Fri May 18 17:10:31 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (move_to_next_entry): loc also must move forward.
	  [ruby-talk:251987]

Fri May 18 03:02:40 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/mkexports.rb: preserve prefixed underscores for WINAPI
	  symbols.

	* wince/mkconfig_wce.rb, wince/mkexports.rb: obsolete.

Thu May 17 17:03:11 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-style.el (ruby-style-label-indent): for yacc rules.

Tue May 15 14:54:07 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (init_stdhandle): stderr should be without buffering,
	  but mswin32 use buffering when stderr is not connected to tty.

Mon May 14 13:28:03 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/thread/thread.c (wait_list): supress a warning.

Thu May 10 15:21:51 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_s_conv): rdoc fix.

Thu May 10 10:14:14 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_priority): rdoc fix; the initial value is
	  inherited from the creating thread.  [ruby-core:10607]

Wed May  9 12:28:57 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (Init_Bignum), numeric.c (Init_Numeric): added fdiv as
	  aliases of quo.  [ruby-dev:30771]

Wed May  9 11:55:15 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_quo): now calculate in integer.  [ruby-dev:30753]

Wed May  9 11:51:06 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big_pow): reduce multiplying for even number.

	* bignum.c (rb_big_pow): truncate all zero BDIGITs. [ruby-dev:30733]

	* bignum.c (rb_big_pow): improvement by calculating from MSB and using
	  factorization.  <http://yowaken.dip.jp/tdiary/20070426.html#p01>

	* numeric.c (int_pow): calculate power in Fixnum as possible.
	  [ruby-dev:30726]

Tue May  8 23:42:51 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (Date._parse): revised treatment of
	  hyphened/separatorless dates.

	* lib/date/format.rb: some trivial adjustments.

Tue May  8 20:25:05 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: reverted.

Sat May  5 16:26:33 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/date/format.rb (Format::Bag#method_missing): get rid of
	  modifying orginal argument.  [ruby-core:11090]

Mon Apr 30 01:17:51 2007  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (TupleSpace#create_entry, TupleBag#push,
	  delete): extract method, and rename parameter.

Fri Apr 27 02:00:17 2007  Ryan Davis  <ryand-ruby@zenspider.com>

	* signal.c: Fixed backwards compatibility for 'raise Interrupt'.

	* lib/yaml/tag.rb: Running rdoc over the 1.8.6 tree skips
	  Module. Patch from James Britt

Thu Apr 26 13:54:51 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-style.el: new file.  C/C++ style for ruby source code.

Wed Apr 25 19:49:16 2007  Tanaka Akira  <akr@fsij.org>

	* ext/socket/socket.c (unix_send_io, unix_recv_io): use CMSG_DATA to
	  align file descriptor appropriately.

Tue Apr 24 09:33:57 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (do_stat, do_lstat, do_opendir): should not warn ENOTDIR.
	  [ruby-talk:248288]

Mon Apr 23 22:14:42 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb ($ruby): add extout directory to include path.
	  [ruby-core:11003]

	* lib/mkmf.rb (libpathflag): not to append RPATHFLAG to current
	  directory.

	* lib/mkmf.rb (init_mkmf): add current directory to default
	  library path with highest priority.  [ruby-core:10960]

	* lib/mkmf.rb (LINK_SO): LIBPATH to be placed before DLDFLAGS.

Fri Apr 20 16:05:22 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (LIBPATHFLAG, RPATHFLAG): no needs to be quoted,
	  it is done by libpathflag in mkmf.rb.

Fri Apr 20 12:27:04 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb: fix to override conv proc.

Fri Apr 20 12:17:05 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_cleanup): inversed the order of errinfos.

Thu Apr 19 14:53:32 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/monitor.rb (ConditionVariable#wait, mon_enter, mon_exit_for_cond):
	  ensures Thread.critical to be false.  [ruby-talk:248300]

Wed Apr 18 10:41:21 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (ruby_strtod): exponent is radix 10.  [ruby-talk:248272]

Wed Apr 18 02:30:24 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (LDFLAGS): prepend -L. instead appending it to
	  XLDFLAGS.  [ruby-core:10933]

	* configure.in (Makefile): remove $U for automake from MISSING.
	  [ruby-talk:248171]

Tue Apr 17 16:46:46 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_yield_0): should not clear state on TAG_NEXT when
	  it's invoked from within lambda body.  [ruby-talk:248136]

	* eval.c (proc_invoke): handle TAG_NEXT which would be caused by
	  next in the lambda body as well.

Mon Apr 16 22:56:01 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/pty/expect_sample.rb: avoid symbolic link representation for
	  expect.  a patch from Kazuhiro NISHIYAMA <zn at mbf.nifty.com>.
	  [ruby-dev:30714]

Mon Apr 16 22:51:11 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sample: replace TRUE, FALSE with true, false respectively.
	  a patch from Kazuhiro NISHIYAMA <zn at mbf.nifty.com>.
	  [ruby-dev:30713]

Mon Apr 16 17:08:02 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (make_switch): do not clobber converter if pattern
	  has no convert method.  reported by sheepman in [ruby-dev:30709].

Mon Apr 16 16:49:32 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_seek): consistent behavior with
	  IO#seek.  patch by sheepman in [ruby-dev:30710].

Mon Apr 16 16:34:08 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (parser_yylex): should set command_start after block
	  starting "do"s and braces.  [ruby-core:10916]

Sun Apr 15 09:19:57 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: added some zone names.

	* lib/date/format.rb (_parse): now interprets doted numerical
	  dates as a big endian (except dd.mm.yyyy).

Tue Apr 10 17:37:36 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_fclose, rb_w32_close): need to save errno
	  before calling original fclose()/close().

Mon Apr  9 09:30:44 2007  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (disconnect): call shutdown for
	  SSLSocket. Thanks, Technorama Ltd.

Thu Apr  5 00:42:48 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (rb_notimplement), io.c (pipe_open): removed definite
	  articles and UNIX manual section from messages.  [ruby-dev:30690]

Wed Apr  4 17:09:17 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (pipe_open): refined the message of NotImplementedError.
	  [ruby-dev:30685]

Wed Apr  4 10:18:04 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (pipe_open): raise NotImplementedError for command "-" on
	  platforms where fork(2) is not available.  [ruby-dev:30681]

Tue Apr  3 15:45:41 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (s_recv, s_recvfrom): some systems (such as
	  windows) doesn't set fromlen if the socket is connection-oriented.
	  reported by Bram Whillock in [ruby-core:10512] [ruby-Bugs#9061]

Sat Mar 24 23:40:29 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* node.h (struct rb_thread.locals): explicit as struct.
	  [ruby-core:10585]

	* eval.c, node.h (enum rb_thread_status, struct rb_thread,
	  rb_curr_thread, rb_main_thread): prefixed.  [ruby-core:10586]

	* file.c (chompdirsep): made an unprefixed name static.

	* io.c (io_fread): ditto.

Sat Mar 24 01:54:03 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_cleanup): exit by SystemExit and SignalException in END
	  block.  [ruby-core:10609]

	* test/ruby/test_beginendblock.rb (test_should_propagate_exit_code):
	  test for exit in END block.  [ruby-core:10760]

	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
	  test for signal in END block.

Thu Mar 22 23:13:17 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_provided): check for extension library if SOEXT is
	  explicitly given.  [ruby-dev:30657]

Thu Mar 22 10:29:25 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/ruby/test_bignum.rb (test_to_s): add tests for Bignum#to_s.

Wed Mar 21 17:04:30 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bignum.c (rb_big2str0): round up for the most significant digit.
	  [ruby-core:10686]

Wed Mar 21 07:21:24 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (remove_one): Preserve List invariants;
	  submitted by: MenTaLguY <mental AT rydia.net>
	  in [ruby-core:10598] and [ruby-bugs:PR#9388].

Tue Mar 20 22:54:50 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_extended): erroneous check condition when dump
	  method is defined.  [ruby-core:10646]

Tue Mar 20 15:37:24 2007  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* distruby.rb: Add zip generation.

Tue Mar 20 11:28:41 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/matrix.rb (Matrix::inverse_from): adding partial pivoting to
	  the Gauss-Jordan algorithm, making it stable.  a patch from
	  Peter Vanbroekhoven.  [ruby-core:10641]

Mon Mar 19 11:39:29 2007  Minero Aoki  <aamine@loveruby.net>

	* lib/net/protocol.rb (rbuf_read): extend buffer size for speed.

Sun Mar 18 04:23:52 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Add a note about the new `date' library defining
	  Time#to_date and Time#to_datetime private methods.

	* NEWS: Inform that the old `thread' library is considered to be
	  stable.

	* NEWS: Sort library entries in alphabetical order.

Fri Mar 16 21:48:11 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/dl/dl.c (rb_ary2cary): Fix a bug in type validation;
	  submitted by sheepman <sheepman AT sheepman.sakura.ne.jp>
	  in [ruby-dev:30554].

Fri Mar 16 18:28:06 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/etc/etc.c (etc_getgrgid): Fix a bug in Etc::getgrgid()
	  always returning the (real) group entry of the running process;
	  reported by: UEDA Hiroyuki <ueda AT netforest.ad.jp>
	  in [ruby-dev:30586].

Fri Mar 16 16:33:58 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (unlock_mutex_inner): Make sure that the
	  given mutex is actually owned by the caller; submitted by:
	  Sylvain Joyeux <sylvain.joyeux AT m4x.org> in [ruby-core:10598].

Fri Mar 16 16:21:35 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (wait_condvar, lock_mutex): Fix a problem in
	  ConditionVariable#wait that occurs when two threads that are
	  trying to access the condition variable are also in concurrence
	  for the given mutex; submitted by: Sylvain Joyeux
	  <sylvain.joyeux AT m4x.org> and MenTaLguY <mental AT rydia.net>
	  in [ruby-core:10598].

Fri Mar 16 16:17:27 2007  Akinori MUSHA  <knu@iDaemons.org>

	* test/thread/test_thread.rb: Add a test script for the `thread'
	  library.  This should result in failure as of now with
	  ext/thread; submitted by: Sylvain Joyeux <sylvain.joyeux AT
	  m4x.org> in [ruby-core:10598].

Wed Mar 14 12:30:00 2007  Shigeo Kobayashi  <shigeo@tinyforest.jp>

	* ext/bigdecimal/bigdecimal.c: BigDecimal("-.31") is now
	  treated as ("-0.31") not as ("0.31").

Tue Mar 13 09:25:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (clear-installed-list): separated from install-prereq.

Tue Mar 13 06:38:43 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Reword and improve entries.

Tue Mar 13 06:03:46 2007  Akinori MUSHA  <knu@iDaemons.org>

	* stable version 1.8.6 released from the ruby_1_8_6 branch.

Tue Mar 13 03:24:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* runruby.rb: added --pure (turned on by default) and --debugger
	  options.

Tue Mar 13 02:50:28 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/cgi.rb (CGI::header): IIS >= 5.0 does not need the nph
	  assumption any more; submitted by MIYASAKA Masaru <alkaid AT
	  coral.ocn.ne.jp> in [ruby-dev:30537].

Mon Mar 12 11:07:44 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/openssl/ossl_asn1.c (Init_ossl_asn1): Let rdoc know about
	  externally defined modules; submitted by Technorama
	  Ltd. <oss-ruby AT technorama.net> in [ruby-bugs:PR#4704].

	* ext/openssl/ossl_bn.c (Init_ossl_bn): Ditto.

	* ext/openssl/ossl_cipher.c (Init_ossl_cipher): Ditto.

	* ext/openssl/ossl_digest.c (Init_ossl_digest): Ditto.

	* ext/openssl/ossl_hmac.c (Init_ossl_hmac): Ditto.

	* ext/openssl/ossl_pkey.c (Init_ossl_pkey): Ditto.

	* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): Ditto.

	* ext/openssl/ossl_pkey_dsa.c (Init_ossl_dsa): Ditto.

	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): Ditto.

	* ext/openssl/ossl_rand.c (Init_ossl_rand): Ditto.

	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Ditto.

Mon Mar 12 01:05:17 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/dl/sym.c (rb_dlsym_inspect): Use "0x%x" rather for pointers.
	  This might not be very right but it is commonly used in other
	  parts of the code; submitted by sheepman <sheepman AT
	  sheepman.sakura.ne.jp> in [ruby-dev:30532].

	* ext/dl/ptr.c (rb_dlptr_inspect): Ditto.

Mon Mar 12 00:59:19 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/dl/lib/dl/import.rb (DL::Importable::Internal::import,
	  DL::Importable::Internal::callback): Avoid race condition for an
	  instance variable; submitted by sheepman <sheepman AT
	  sheepman.sakura.ne.jp> in [ruby-dev:30530].

Sun Mar 11 18:57:50 2007  Akinori MUSHA  <knu@iDaemons.org>

	* misc/README: Add a note about ruby-electric.el.

	* misc/ruby-mode.el (ruby-non-block-do-re): Fix
	  ruby-non-block-do-re. [ruby-core:03719]

	* misc/inf-ruby.el: Synchronize the comment section with trunk.

	* misc/README, misc/rdebug.el: Add rdebug.el, Emacs ruby-debug
	  interface based on rubydb3x.el; submitted by Martin Nordholts
	  <enselic AT gmail.com> in [ruby-bugs:PR#9023].

Sun Mar 11 17:45:51 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/dl/mkcallback.rb (mkfunc): Make sure that a callback
	  function is found in the function table before trying to call
	  it; submitted by sheepman <sheepman AT sheepman.sakura.ne.jp>
	  in [ruby-dev:30524].

Sun Mar 11 12:09:37 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (error_handle): no message when exiting by signal.

	* eval.c (ruby_cleanup): re-send signal.  [ruby-dev:30516]

	* eval.c (rb_thread_interrupt): instantiate SignalException.

	* eval.c (rb_thread_signal_raise): now takes signal number instead
	  of signal name.

	* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.

	* signal.c (esignal_init): takes a signal number and an optional
	  signal name.

	* signal.c (interrupt_init): pass SIGINT always.

	* signal.c (ruby_default_signal): invoke system default signal
	  handler.

	* signal.c (rb_signal_exec, trap): handle SIGTERM.  [ruby-dev:30505]

Tue Mar  6 19:08:46 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/md5.rb (MD5::new, MD5::md5): Do not modify
	  Digest::MD5.

	* ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.

Tue Mar  6 18:58:37 2007  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/shell/process-controller.rb: fix thread synchronization
	  problem for [ruby-dev:30477].

Tue Mar  6 18:44:26 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/md5.rb (MD5::new, MD5::md5): Catch up with
	  Digest's API changes; noted by: Kazuhiro Yoshida <moriq AT
	  moriq.com> in [ruby-dev:30500].

	* ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.

Tue Mar  6 18:24:19 2007  Akinori MUSHA  <knu@iDaemons.org>

	* time.c (time_to_s): Back out the format changes; discussed
	  in [ruby-dev:30495].

Tue Mar  6 11:53:25 2007  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/irbtkw.rbw: fails to exit process.

Mon Mar  5 20:14:49 2007  Akinori MUSHA  <knu@iDaemons.org>

	* time.c (time_to_s): Correct the wrong format which did not
	  really conform to RFC 2822; pointed out by: OHARA Shigeki <os at
	  iij.ad.jp> in [ruby-dev:30487].

Sun Mar  4 23:38:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_stat_s_utime): fixed a commit miss for the platforms
	  where utimes() does not exist.

	* lib/fileutils.rb (touch): ditto.

Sun Mar  4 14:46:56 2007  WATANABE Hirofumi  <eban@ruby-lang.org>

	* util.c (push_element): should return a int value.

Sun Mar  4 01:05:57 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/set.rb (Set#^, Set#&): Correct documentation.  Those methods
	  return sets, not arrays; noted by Oliver Frank Wittich <nietz AT
	  mangabrain.de>.

Sat Mar  3 23:01:07 2007  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mv): could not move a directory between
	  different filesystems. [ruby-dev:30411]

Sat Mar  3 22:57:11 2007  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (touch): last commit causes error if :mtime
	  option was not given.

Sat Mar  3 22:37:02 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_utime): allow nil to set the current time.

	* lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate
	  options.  fixed: [ruby-talk:219037]

Sat Mar  3 21:17:35 2007  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c (stack_check): Unset inline to fix build with GCC 3.4.6;
	  submitted by: NISHIMATSU Takeshi <t_nissie AT yahoo.co.jp> in
	  [ruby-list:43218].
	  cf. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24556

Sat Mar  3 19:05:31 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (push_list): Use ALLOC().

	* ext/thread/thread.c (rb_mutex_alloc): Ditto.

	* ext/thread/thread.c (rb_condvar_alloc): Ditto.

Sat Mar  3 18:53:11 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Add a note for String#intern.

Sat Mar  3 16:23:13 2007  Akinori MUSHA  <knu@iDaemons.org>

	* env.h (SCOPE_CLONE): Introduce a new scope flag to prevent a
	  local_tbl region from getting freed many times; submitted by
	  Chikanaga Tomoyuki <chikanag AT nippon-control-system.co.jp> in
	  [ruby-dev:30460].

	* eval.c (proc_invoke): Ditto.

	* gc.c (obj_free): Ditto.

	* parse.y (top_local_setup_gen): Ditto.

Sat Mar  3 16:07:02 2007  Akinori MUSHA  <knu@iDaemons.org>

	* object.c (rb_obj_ivar_set): RDoc updated according to a
	  suggestion from Brian Candler <B.Candler AT pobox.com>.
	  [ruby-core:10469]

Thu Mar  1 21:38:07 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even if
	  empty.  [ruby-dev:30455]

Thu Mar  1 08:55:38 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_feature_p): check loading_tbl if the given ext is
	  empty.  [ruby-dev:30452]

	* eval.c (rb_feature_p): fix possible buffer overrun.

Thu Mar  1 03:30:21 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/digest.c (get_digest_base_metadata): Allow inheriting
	  Digest::Base subclasses, which was unintentionally made
	  impossible while restructuring Digest classes.

Thu Mar  1 02:05:17 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb (patchlevel): read from version.h.

Thu Mar  1 00:09:39 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_provided): return true only for features loaded from
	  .rb files, and not search actual library type.  [ruby-dev:30414]

Wed Feb 28 21:15:00 2007  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (ac_cv_func_fcntl): fcntl support for MinGW.

	* missing/flock.c: workaround for MinGW.

Wed Feb 28 20:51:32 2007  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* pack.c (pack_unpack): properly ignore non-base64 octets such as
	  UTF-8 encoded BOMs; submitted by SOUMA Yutaka <holon@radastery.jp>
	  to fix [ruby-core:10437]

Wed Feb 28 18:59:57 2007  Akinori MUSHA  <knu@iDaemons.org>

	* NEWS: Add NEWS, a document file to keep user visible feature
	  changes between releases.

Wed Feb 28 18:35:50 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/extconf.rb: no need to check unistd.h and sys/time.h.
	  they are already checked at configure.
	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]

Wed Feb 28 18:34:48 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb ($DEFLIBPATH): default library paths ($(topdir), etc)
	  should be the first elements of library paths list.
	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]

Wed Feb 28 18:31:32 2007  Akinori MUSHA  <knu@iDaemons.org>

	* doc/NEWS-1.8.0: Rename NEWS to NEWS-1.8.0.  This is way too old
	  NEWS.

Wed Feb 28 01:22:58 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/{dbm,gdbm}/test_{dbm,gdbm}.rb: shouldn't use host_os. use
	  target_os instead. reported by KOBAYASHI Yasuhiro [ruby-list:43225]

Wed Feb 28 00:08:11 2007  URABE Shyouhei  <shyouhei@ice.uec.ac.jp>

	* mkconfig.rb (RbConfig): add CONFIG['PATCHLEVEL']

	* common.mk: new target dist

	* distruby.rb: new file

Tue Feb 27 22:18:45 2007  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (--enable-auto-image-base): avoid the neccessity to
	  rebase the shared libs as much as possible;
	  submitted by Corinna Vinschen <spam at vinschen.de> in
	  [ruby-talk:240964].

Tue Feb 27 21:36:47 2007  WATANABE Hirofumi  <eban@ruby-lang.org>

	* util.c (__crt0_glob_function): use ruby_glob() instead of rb_globi().

Tue Feb 27 21:33:04 2007  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (ac_cv_func_setrlimit): workaround for djgpp.

Tue Feb 27 19:38:52 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/base64.rb (Base64::b64encode): Fix documentation; submitted
	  by David Symonds <dsymonds@gmail.com> in [ruby-core:10432].

Tue Feb 27 19:36:57 2007  Akinori MUSHA  <knu@iDaemons.org>

	* regex.c (calculate_must_string, slow_search, re_search): Silence
	  warnings regarding char * vs. unsigned char * mismatch;
	  submitted by Lyle Johnson <lyle.johnson@gmail.com>
	  in [ruby-core:10416].

	* ext/bigdecimal/bigdecimal.c (BigDecimal_load): Ditto.

	* ext/digest/sha1/sha1ossl.c (SHA1_Finish): Ditto.

	* ext/digest/rmd160/rmd160ossl.c (RMD160_Finish): Ditto.

	* ext/digest/digest.c (rb_digest_base_finish,
	  rb_digest_base_update): Ditto.

	* ext/nkf/nkf.c (rb_str_resize, rb_nkf_kconv, rb_nkf_guess1,
	  rb_nkf_guess2): Ditto.

Tue Feb 27 03:40:09 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (wait_list_cleanup, rb_mutex_try_lock):
	  Eliminate rb_thread_critical switching where unnecessary;
	  implied by shugo in [ruby-dev:30412].

	* ext/thread/thread.c (set_critical): Merge in
	  thread_exclusive_ensure().

	* ext/thread/thread.c: Consistently use 0 and 1 for
	  rb_thread_critical values.

Mon Feb 26 15:18:23 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c: Use xmalloc()/xfree() instead of
	  malloc()/free(); pointed out by shugo in [ruby-dev:30412].

Sun Feb 25 23:02:55 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):
	  Initialize @workdir properly to silence a warning under -w.
	  Submitted by <tommy at tmtm.org> in [ruby-dev:30400].

Sun Feb 25 02:47:43 2007  Akinori MUSHA  <knu@iDaemons.org>

	* defines.h: Pull the RUBY_MBCHAR_MAXSIZE definition from trunk,
	  which is necessary for dir.c to compile on djgpp and emx.

Sat Feb 24 10:42:01 2007  Minero Aoki  <aamine@loveruby.net>

	* ext/racc/cparse/cparse.c (cparse_params_mark): remove useless
	  rb_gc_mark.  Thanks Tomoyuki Chikanaga. [ruby-dev:30405]

Fri Feb 23 15:10:46 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (set_pioinfo_extra): new function for VC++8 SP1
	  workaround. [ruby-core:10259]

	* win32/win32.c (NtInitialize): call above function.

Fri Feb 23 14:19:40 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* signal.c (sighandler): need to tell to be interrupted to main
	  context when handler is installed.

	* win32/win32.[ch] (rb_win32_interrupted): new function to listen
	  interrupt.

Fri Feb 23 13:02:17 2007  Akinori MUSHA  <knu@iDaemons.org>

	* numeric.c (fix_cmp, fix_equal): Remove FIX2LONG() to optimize.
	  suggested in
	  http://t-a-w.blogspot.com/2007/02/making-ruby-faster.html.
	  [ruby-talk:240223]

Fri Feb 23 12:43:17 2007  James Edward Gray II  <james@grayproductions.net>

	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): Make the
	  Content-Length parameter optional for responses in
	  xmlrpc/client.rb; suggested by Daniel Berger
	  <Daniel.Berger@qwest.com> and approved by the maintainer.

	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): Add DateTime
	  support to xmlrpc; approved by the maintainer.

Mon Feb 19 18:22:52 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in, defines.h, eval.c (rb_feature_p, rb_provided,
	  load_wait, search_required, rb_require_safe), ext/extmk.rb: Fix
	  a bug where a statically linked extension cannot be autoloaded.
	  [ruby-dev:30023] / [ruby-dev:30239]

Mon Feb 19 17:14:28 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (unix_peeraddr): wrong syscall name in error
	  message for #peeraddr. a patch from Sam Roberts
	  <sroberts at uniserve.com>.  [ruby-core:10366]

Sun Feb 18 19:35:21 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: updated based on date2 4.0.3.

Fri Feb 16 11:18:21 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/.document: Apply patch for irb, e2mmap and README by Hugh Sasse
	  <hgs at dmu.ac.uk> from [ruby-core:10135]

	* lib/prettyprint.rb: Suppress RDoc for PrettyPrint test suite.

Thu Feb 15 20:26:30 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/uri/ftp.rb: Revert the previous change pending discussion.

Thu Feb 15 18:08:17 2007  Akinori MUSHA  <knu@iDaemons.org>

	* dir.c (glob_helper): Fix the function declaration.

Thu Feb 15 17:13:32 2007  Akinori MUSHA  <knu@iDaemons.org>

	* version.h: Welcome to the post-1.8.6 world.  Radical changes are
	  inhibited in the ruby_1_8 branch until the 1.8.6 final release
	  goes out of the door.

Thu Feb 15 16:44:14 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/uri/generic.rb (URI::Generic::userinfo): Considering how
	  `scheme://user:@...', `scheme://:password@...' and
	  `scheme://:@...' are parsed, an empty user name or password
	  should be allowed and represented as it is.

Thu Feb 15 11:46:05 2007  KIMURA Koichi  <hogemuta@gmail.com>

	* dir.c, win32/win32.c, win32/dir.h, ruby.h, intern.h: Bring
	  encoding aware globbing support in from trunk.  Dir.[] and
	  Dir.glob() can now take many patterns in an array.  Minor fixes
	  will follow.

Thu Feb 15 11:00:26 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/uri/generic.rb (URI::Generic::userinfo): should support
	  empty password.  [ruby-core:10290]

	* lib/uri/generic.rb (URI::Generic::set_password): password can be
	  cleared by nil.  [ruby-core:10290]

	* lib/uri/common.rb (escape): regard second string argument as a
	  character set properly. [ruby-dev:27692]

	* lib/uri/ftp.rb: Attempt to conform to RFC 1738 with regard to
	  relative/absolute paths.

	* lib/uri: Lovely RDOC patches from mathew (metaATpoboxDOTcom).

Thu Feb 15 10:57:38 2007  Tietew  <tietew@tietew.net>>

	* lib/cgi.rb (CGI::unescapeHTML): invalid decoding for single
	  unescaped ampersand.  a patch from Tietew
	  <tietew+ruby-dev at tietew.net> in [ruby-dev:30292].
	  fixed: [ruby-dev:30289]

Thu Feb 15 10:48:40 2007  MenTaLguY  <mental@rydia.net>

	* ext/thread/thread.c: Handle interrupted waits correctly.
	  [ruby-bugs:PR#8663]

Wed Feb 14 19:22:15 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/digest.rb (Digest::self.const_missing): Drop
	  autoloads for sha2 classes in favor of handling in
	  const_missing(), to work around a problem exposed on OS X.

Tue Feb 13 02:21:12 2007  Sam Roberts  <sroberts@uniserve.com>

	* io.c (rb_f_syscall): Fix buffer overflow with syscall
	  arguments.  [ruby-bugs:PR#8541]

Sun Feb 11 07:46:45 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): Properly parse
	  a quoted-string in a Content-Disposition value.

Sun Feb 11 06:27:54 2007  Akinori MUSHA  <knu@iDaemons.org>

	* configure.in, ext/thread/extconf.rb, lib/thread.rb: Add a
	  configure option `--disable-fastthread', to choose the original,
	  pure ruby version of the "thread" library instead of the new,
	  much faster implementation in ext/thread.

Sun Feb 11 06:22:20 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/Setup: Add thread except for platforms without threads
	  support.

Sun Feb 11 06:15:16 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/lib/thread.rb: Add a replacement of thread.rb that
	  loads this extension.

Sun Feb 11 05:39:47 2007  Akinori MUSHA  <knu@iDaemons.org>

	* lib/thread.rb: Remove an ineffective part of the code.

Sun Feb 11 05:32:54 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c (rb_thread_exclusive): Implement
	  Thread.exclusive.

Sun Feb 11 05:26:51 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread/thread.c: Get rid of use of a dummy function.

Sun Feb 11 01:45:31 2007  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/thread/thread.c (Init_thread): Define missing aliases:
	  Queue#enq and SizedQueue#enq.

Sat Feb 10 09:27:35 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_variant2val): fix compile error
	  on VC++.

Sat Feb 10 07:41:52 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_variant2val): fix the bug when
	  SAFEARRAY pointer is NULL.

Sat Feb 10 00:13:11 2007  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fix typo (TkConfigMethod::__confinfo_cmd,
	  __conv_keyonly_opts).

Fri Feb  9 20:44:53 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread: Make style fixes (mostly de-K&R'ism) to match the
	  rest of the source code.

	* ext/thread: Make USE_MEM_POOLS an extconf option.

Fri Feb  9 20:43:01 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/thread: Import the "fastthread" implementation by MenTaLguY
	  in the original form.  This module is not hooked into the build
	  yet since it needs some style fixes and adjustments.

Fri Feb  9 15:46:09 2007  Akinori MUSHA  <knu@iDaemons.org>

	* ext/bigdecimal: Synchronize with trunk.  Better function
	  prototypes, removal of a useless method `!=', and document
	  updates.

Tue Feb 06 22:06:45 2007  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c}:
	  imported nkf 2007-01-28.
	  * Fixed: can't decode MIME encode JIS string.
	  * Fixed: Fullwitdh-halfwidth conversion.
	  * Support DoCoMo's and Softbank's EMOJI
	  * Support CP932, CP5022x, eucJP-ms UDC
	  * Support UTF-32 encoding
	  * Support beyond BMP
	  [ruby-dev:29700] [ruby-dev:29922] [ruby-dev:30144]

Wed Jan 31 14:52:09 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_iterate): need to PUSH_ITER in proper order.
	  [ruby-core:10125]

	* test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator):
	  add new test.  [ruby-core:10125]

Tue Jan 30 14:58:51 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c (rb_str_sub_bang): calling rb_str_modify() should be just
	  before actually modifying the string.
	  fixed: [ruby-dev:30211] (originally reported by zunda)

Tue Jan 30 12:05:35 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb: autoconf 2.61 support.  [ruby-core:10016]

Sat Jan 27 15:20:11 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (dyna_var_lookup): should not alter dvar->val not to
	  destroy living value.  [ruby-core:10076]

	* parse.y (dyna_init): ditto.

Fri Jan 26 12:03:39 2007  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb (TkConfigMethod#__confinfo_cmd,
	  __conv_keyonly_optkeys): make them private [ruby-dev:30074].

	* ext/tk/lib/tk/txtwin_abst.rb: fix typo [ruby-dev:30073].

	* ext/tk/lib/tk/canvas.rb (TkCanvas#scan_dragto): lack of an argument.

	* ext/tk/lib/tk/canvas.rb: clarify the including module name
	  [ruby-dev:30080].

	* ext/tk/lib/tk/scrollable.rb: change primary name of modules
	  [ruby-dev:30080].

Wed Jan 24 18:05:39 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fix
	  regexp font-lock bug.  [ruby-talk:235758]

Tue Jan 23 11:02:33 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest::read_line):

Tue Jan 23 18:26:12 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): use == instead
	  of ===.  [ruby-dev:30176]

Tue Jan 23 10:48:17 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c: added documentation for Hash about how it uses eql? and
	  hash methods for the keys.  [ruby-core:09995]

Mon Jan 22 14:57:25 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c: fix errors in socket sample code.
	  [ruby-core:09992]

Sat Jan 13 23:54:48 2007  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_free, ole_type_free,
	  olemethod_free, olevariable_free, oleparam_free,
	  ole_event_free): fix memory leak.  [ruby-core:09846]

Fri Jan 12 11:13:55 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly
	  convert uid/gid from VALUE. (backport of r11521)

Wed Jan 10 18:57:57 2007  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c (strscan_do_scan): should set kcode option
	  before match. [ruby-dev:29914]

	* test/strscan/test_stringscanner.rb: test it.

	* re.c: export kcode_set_option and kcode_reset_option (with "rb_"
	  prefix).

	* intern.h: ditto.

Tue Jan  9 17:45:17 2007  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (rb_find_file): should not call fpath_check() with NULL.
	  fixed: [ruby-core:09867]

Tue Jan  9 03:54:38 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_upto): String#upto from empty string makes
	  inifinite loop.  [ruby-core:09864]

Sun Jan  7 12:13:26 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment):
	  Look for class and module comments above rb_define_class and
	  rb_define_module.  Patch by Daniel Berger <djberg96 at gmail.com>

Sun Jan  7 10:32:12 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants):
	  Properly handle escaping of : in comments.
	* test/rdoc/parsers/test_parse_c.rb:
	  Test RDoc::C_Parser#do_classes and Rdoc::C_Parser#find_class_comment.

Sun Jan  7 09:33:02 2007  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: updated based on date2 4.0.1.

Wed Jan  3 11:36:51 2007  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (ruby_dup): start GC on ENOMEM as well.

Mon Jan  1 06:13:11 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/c_parser.rb: Make Rdoc accessible.  Update constant
	  value information.

Mon Jan  1 06:13:11 2007  Eric Hodel  <drbrain@segment7.net>

	* ext/bigdecimal/bigdecimal.c: Update constant comments to provide
	  values for RDoc.

Mon Jan  1 06:05:55 2007  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts):
	  Allow RDoc comment to give friendly value for rb_define_const.  Patch
	  by Daniel Berger <djberg96 at gmail.com>, [ruby-patches-7499].
	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts): Fix
	  whitespace handling in constant comments.

Sun Dec 31 00:31:16 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 4.0.

Thu Dec 14 18:29:13 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/readline/readline.c: NetBSD editline does not have
	  rl_username_completion_function() and rl_completion_matches().
	  a patch from Takahiro Kambe <taca at back-street.net>.
	  [ruby-dev:30008]

Thu Dec 14 18:20:43 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/locale.rb (IRB::Locale::puts): typo fixed.  a patch from
	  NAKAMURA Usaku <usa@ruby-lang.org>.  [ruby-dev:30012]

Mon Dec 11 11:58:36 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/sha2/lib/sha2.rb: Moved one level up from under
	  the superfluous subdirectory digest/.

Mon Dec 11 11:46:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_define_const): typo fixed.

Mon Dec 11 09:36:29 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_aset): index double decode problem.
	  [ruby-core:09695]

Sat Dec  9 21:39:24 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_cleanup): keep the exception till after END blocks.
	  [ruby-core:09675]

Sat Dec  9 11:22:00 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/locale.rb (IRB::Locale::search_file): ues File.exist?
	  instead of File.exists?.  a patch from Yutaka Kanemoto
	  <kinpoco at gmail.com> in [ruby-dev:30000].

Thu Dec  7 09:29:02 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/weakref.rb (WeakRef::__setobj__): should support
	  marshaling.  [ruby-talk:228508]

	* lib/delegate.rb (Delegator::marshal_load): need to call
	  __setobj__.

Wed Dec  6 23:56:14 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, common.mk (NULLCMD): moved for platforms that empty
	  command does not run.  fixed: [ruby-dev:29994]

Wed Dec  6 17:17:26 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (SITE_DIR): fixed to emtpy RUBY_SITE_LIB in config.h on
	  NetBSD.  fixed: [ruby-dev:29358]

Tue Dec  5 00:59:05 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-parse-partial): need to parse "/=" as
	  self assignment operator, not regex.  [ruby-talk:227324]

Mon Dec  4 10:48:03 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h (OFFT2NUM): use LONG2NUM() if sizeof(long) equals to
	  sizeof(off_t).

Mon Dec  4 10:43:46 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (dyna_init_gen): dvar initialization only if dvar is
	  assigned inner block.  [ruby-talk:227402]

Mon Dec  4 08:32:49 2006  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): should quote
	  boundary. JVN#84798830

Sat Dec  2 07:09:04 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ocsp.c: OpenSSL::OCSP::OSCPError should be
	  subclass of OpenSSL::OpenSSLError. [ruby-dev:29980]

Fri Dec  1 17:01:49 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.
	  merge from trunk.

Fri Dec  1 16:31:53 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.
	  [ruby-talk: 227408]

Mon Nov 27 17:18:27 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): need not to truncate string if no
	  width specifier given for %s.  [ruby-dev:29952]

Sun Nov 26 16:36:46 2006  URABE Shyouhei  <shyouhei@ruby-lang.org>

	* version.h: addition of RUBY_PATCHLEVEL.
	* version.c: ditto.

Fri Nov 24 10:17:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (bignorm): avoid segmentation.  a patch from Hiroyuki
	  Ito <ZXB01226@nifty.com>.  [ruby-list:43012]

Thu Nov 23 10:38:40 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_mod_define_method): set implicit visibility only when
	  it's called for the target class (ruby_cbase).

Wed Nov 22 16:00:49 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/extconf.rb: support --with-X11/--without-X11 option.

	* ext/tk/README.tcltklib: add description about --with-X11-* option
	  [ruby-talk:225166] and --with-X11/--without-X11 option.

	* ext/tk/tkutil/extconf.rb: able to be called manually
	  [ruby-talk:225950].

Wed Nov 15 23:22:54 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (test_grpowned, rb_stat_grpowned): should honor
	  supplementary group IDs.  [ruby-core:09546]

Thu Nov  9 03:15:22 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (BEGIN_CALLARGS): ruby_block may be NULL even when
	  ITER_PRE.

Tue Nov  7 18:34:34 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/digest/hmac.rb: Keep this out of the 1.8 tree
	  until we reach a consensus that HMAC should be put under Digest.

Tue Nov  7 18:05:01 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/itemconfig.rb: minor bug fix.

Mon Nov  6 20:11:20 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/0.9.rb (RSS::Rss): removed needless include.

Mon Nov  6 15:41:55 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/itemconfig.rb: ext/tk/lib/tk/itemconfig.rb: bug
	  fix on 'itemconfiginfo' method, and modify to make it easy to
	  override 'itemconfiginfo' method.

	* ext/tk/lib/tkextlib/tile/treeview.rb : support Tile 0.7.8.

	* ext/tk/lib/tkextlib/version.rb : [new] add Tk::Tkextlib_RELEASE_DATE
	  to get the information from scripts.

	* ext/tk/lib/tk.rb: load 'tkextlib/version.rb', and update RELEASE_DATE

	* ext/tk/lib/tkextlib/SUPPORT_STATUS: update.

	* ext/tk/sample/editable_listbox.rb: [new] the listbox with editable
	  items. It's one of the example about usage of Place geometry manager.

	* ext/tk/sample/tktextio.rb: improve the functions of TkTextIO class.
	  Those are required by 'irbtkw.rbw'.

	* ext/tk/sample/irbtkw.rbw: [new] IRB on Ruby/Tk. It doesn't need any
	  real console. IRB works on a text widget without I/O blocking. That
	  is, thread switching on IRB will work properly, even if on Windows.

Sun Nov  5 19:53:49 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb: updated based on date2 3.9.7.

Sat Nov  4 13:13:57 2006  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb: accept NOMODSEQ. [ruby-core:9002]
	  (backported from HEAD)

Fri Nov  3 00:16:37 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (ruby_getnameinfo__aix): AF_INET6 workaround
	  for AIX.  a patch from Yutaka Kanemoto <kinpoco AT gmail.com>.
	  [ruby-dev:29744]

Thu Nov  2 15:43:39 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* parse.y (primary): should set NODE even when compstmt is NULL.
	  merge from trunk. fixed: [ruby-dev:29732]

Thu Nov  2 14:48:30 2006  Akinori MUSHA  <knu@iDaemons.org>

	* lib/set.rb (Set#^): Fix XOR operation against a container that
	  holds duplicate values. [issue: #6444]

Wed Nov  1 02:41:38 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/digest/hmac.rb (Digest::HMAC::update): Minor
	  optimization.

	* ext/digest/digest.c (rb_digest_instance_equal): Allow comparing
	  a digest instance with another of a different class.

Wed Nov  1 01:05:13 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (rb_call0): fixed bug of zsuper with both of opt and rest.
	  fixed: [ruby-list:42928]

	* test/ruby/test_super.rb: add tests to check above bug.

Tue Oct 31 17:03:21 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_dup): duplicate the class of original time.
	  [ruby-core:09357]

	* lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):
	  should respect subclasses.  [ruby-core:09357]

Mon Oct 30 23:40:52 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in (miniruby): add XLDFLAGS.

	* configure.in (aix): use -bE option for miniruby.  [ruby-dev:29698]

	* dir.c (glob_helper): get rid of possible memory leak.

	* win32/win32.c (cmdglob, rb_w32_cmdvector, rb_w32_opendir,
	  rb_w32_get_environ): not to use GC before initialization.

Mon Oct 30 19:29:20 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bignum.c (rb_big2str0): use better approximation.

Mon Oct 30 18:35:33 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big2str0): wrong allocation length.  a patch from
	  U.Nakamura <usa at garbagecollect.jp> [ruby-dev:29710]

Mon Oct 30 12:34:02 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): fix commit miss.  [ruby-dev:29707]

Mon Oct 30 12:20:58 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big2str0): a bug in length adjustment.

Mon Oct 30 11:15:40 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_str_format): should preserve leading zero
	  information for negative %b and %x.  [ruby-talk:221347]

Thu Oct 26 21:05:58 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): should clear error.
	  (fix http://bugs.debian.org/394336)

	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.

Thu Oct 26 15:21:10 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/digest/digest.c (Init_digest): typo.

Wed Oct 25 17:23:28 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest, test/digest/test_digest.rb: Merge from trunk:
	  - Introduce versioning in Digest::Base API, and prefix C
	    constants with RUBY_ and C type names with rb_ to avoid name
	    clash in writing extensions.
	  - Introduce Digest::Class and Digest::Instance for ease of
	    implementing subclasses and add-ons.
	  - Digest::Instance module requires and assumes that any instance
	    be resettable and clonable.  An instance method #new() is
	    added so digest instances work just like digest classes.
	  - The constructor does no longer take an initial string to feed;
	    digest() and hexdigest() now do, instead.  This allows digest
	    classes to take their own hashing parameters.
	  - Make some changes to digest() and hexdigest() class methods,
	    which now take extra arguments, which are passed through to
	    the constructor in an internal call.
	  - Add #digest_length/size/length() and #block_length(),
	  - Add the Digest::SHA2 class to wrap up SHA2 variants: SHA256,
	    SHA384 and SHA512, hoping this module would make a decent
	    example of a digest subclass written in Ruby.
	  - Rip BubbleBabble support out of the base class and have a
	    separate module named digest/bubblebabble.
	  - Remove RD documents in favor of newly written and embedded
	    RDoc documentation.

Wed Oct 25 08:03:23 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: updated based on date2 3.9.6.
	  [ruby-core:09323]

Sun Oct 22 14:48:31 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* signal.c (ruby_signal): don't set SA_RESTART.  a backport from
	  the HEAD.  [ruby-talk:220937]  [ruby-talk:147220]

	* signal.c (Init_signal): avoid duplicated installation of SIGCHLD
	  handler.

Sun Oct 22 16:47:56 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_substr): should be infected with only original
	  string, but not the shared string.  fixed: [ruby-core:09152]

	* string.c (rb_str_new4): keep shared string untainted when orignal
	  string is tainted.  fixed: [ruby-dev:29672]

Sun Oct 22 05:20:34 2006  URABE Shyouhei  <shyouhei@ice.uec.ac.jp>

	* configure.in: alloca is broken; use C_ALLOCA instead.
	  [ruby-dev:29416]

Fri Oct 20 10:47:43 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb: fixed the bug of handling COMMON_MACROS.

Fri Oct 20 08:42:38 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (NULLCMD): dummy command.

	* bcc32/Makefile.sub (post-install-*): Borland make cannot ignore
	  command-less double-colon rules.  [ruby-dev:29676]

Fri Oct 20 00:37:07 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bcc32/Makefile.sub ($(LIBRUBY_SO)): execute pre-link hook.

	* ext/extmk.rb: workaround for Borland make.

Wed Oct 18 23:02:40 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (rb_ary_shift): shorten copy size.  fixed: [ruby-list:42907]

	* signal.c (Init_signal): handle SIGTERM.  fixed: [ruby-list:42895]

	* win32/win32.c (rb_w32_utime): allow NULL to set the current time.
	  [ruby-talk:219248]

Wed Oct 18 00:55:33 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (parser_yylex): use particular enums.  [ruby-core:09221]

Mon Oct 16 08:30:43 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* mkconfig.rb: *OBJS are not needed for extension libraries.

	* {bcc32,wince,win32}/Makefile.sub (config.status): fixed typo,
	  missing comma.

Sun Oct 15 01:03:08 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): append base
	  directory but not prepend.

	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): do not
	  join with dot.  fixed: [ruby-core:09179]

Sat Oct 14 23:39:50 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (singleton): no need to re-create NODE_SELF() again.
	  [ruby-core:09177]

Sat Oct 14 23:25:31 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (parser_warning, parser_warn): some error message may
	  contain format specifiers.  a patch from Akinori MUSHA <knu at
	  iDaemons.org>.  [ruby-dev:29657]

	* ext/bigdecimal/bigdecimal.c (VpException): ditto.

	* ext/dl/handle.c (rb_dlhandle_initialize): ditto.

	* ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto.

Sat Oct 14 08:24:45 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/lib/digest/hmac: Back out the addition of digest/hmac
	  for now because the API is too premature for a stable branch.

Sat Oct 14 00:55:08 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bcc32/Makefile.sub (post-install-ext): no longer needed.

	* bcc32/configure.bat: get rid of a quirk of Borland make, which
	  sets empty macro in command line to "1".

Fri Oct 13 22:50:43 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb: updated based on date2 3.9.5.

Fri Oct 13 22:33:28 2006  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (FileUtils.cp_r): dereference_root=true is
	  default in Ruby 1.8.  This line is wrongly removed in last commit.

Fri Oct 13 18:19:31 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c: Class#inherited RDoc added.  a patch from Daniel
	  Berger <djberg96 at gmail.com>  [ruby-core:08942]

Fri Oct 13 02:30:12 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend
	  base directory to load path.

	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should
	  use the given File-like interface, but not File directly.

	* test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement
	  File-like methods correctly.

Fri Oct 13 01:48:42 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/date.rb (Date::self.complete_hash): need to check if g is
	  nil before dereference.  [ruby-core:09116]

Fri Oct 13 00:34:26 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_mod_cvar_defined): wrong id check.  a patch from
	  Mauricio Fernandez <mfp at acm.org>.  [ruby-core:09158]

	* object.c (rb_mod_cvar_get): typo fixed.  [ruby-core:09168]

	* object.c (rb_mod_cvar_set): ditto.

Wed Oct 11 22:21:41 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest: Merge from trunk; metadata location changed,
	  Digest::Base#reset() added, Digest::Base#equal() changed, and
	  digest/hmac added with some modifications made for ruby 1.8.

Tue Oct 10 17:24:12 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/Makefile.sub (config.status): shouldn't use
	  copy command instead of install. use -run install.

Tue Oct 10 16:49:16 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest/digest.c (hexdigest_str_new, bubblebabble_str_new):
	  Perform StringValue() checks properly.

	* ext/digest/digest.c: Use RSTRING_{PTR,LEN} macros.

Tue Oct 10 13:49:53 2006  Akinori MUSHA  <knu@iDaemons.org>

	* ext/digest: Merge from trunk; apply all changes since the
	  initial import, except for the removal of compatibility stub
	  libraries (md5.rb and sha1.rb).

Mon Oct  9 23:46:29 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/parsedate.rb: documentation patch from Konrad Meyer
	  <konrad.meyer@gmail.com>.  [ruby-doc:1238]

	* lib/open3.rb, lib/ping.rb: ditto.

Mon Oct  9 22:56:12 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rexml/encoding.rb (REXML::Encoding::check_encoding): spaces
	  are allowed around equal sign.  [ruby-core:09032]

	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser): ditto.

Sat Oct  7 23:53:08 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_scan): small documentation fix.
	  [ruby-core:09007]

Sat Oct  7 23:44:33 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_rshift): a bug in right shift of negative
	  bignums.  [ruby-core:09020]

Sat Oct  7 00:27:58 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* class.c (rb_include_module): remove unnecessary check.
	  [ruby-talk:218402]

Fri Oct  6 04:30:30 2006  Akinori MUSHA  <knu@iDaemons.org>

	* sample/openssl/c_rehash.rb: Use digest/md5 instead of obsolete md5.

Wed Oct  4 18:47:25 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/*: bugfix and update
	  (see ext/tk/ChangeLog.tkextlib).

Wed Oct  4 17:25:14 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call): check protected visibility based on real self,
	  not ruby_frame->self.  [ruby-talk:217822]

Wed Oct  4 08:52:30 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/optparse/test_getopts.rb: changed the class name of test case
	  to get rid of conflict with test_optparse.rb.

Tue Oct  3 23:32:27 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/testcase.rb (Test::Unit::TestCase.suite): test name
	  must be string.  fixed: [ruby-core:08978]

Mon Oct  2 23:47:55 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::COLLECTORS):
	  base directory should be lower precedence.  fixed: [ruby-dev:29622]

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): typo.

	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
	  load expanded path.  fixed: [ruby-dev:29621]

Mon Oct  2 15:49:19 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* instruby.rb: batfile should be CRLF'ed.

Mon Oct  2 01:24:26 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (test-all): separate directory where running test cases
	  from source tree.

	* lib/test/unit/autorunner.rb (options): added --basedir, --workdir
	  and --load-path options.

	* lib/test/unit/collector/dir.rb (recursive_collect, collect_file):
	  base directory support.

Sun Oct  1 23:56:52 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, common.mk, ext/extmk.rb, win{32,ce}/Makefile.in: keep
	  LIBRUBY_SO unless need to be removed.

Sun Oct  1 23:12:19 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#make_switch): pass arguments directly.

Sat Sep 30 15:12:25 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.4.

Fri Sep 29 12:11:04 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* jcode.rb (succ!): call original succ! if $KCODE == 'n'.
	  fixed: [ruby-talk:216845]

Fri Sep 29 11:43:40 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (try_func): revert fallback checking undeclared function.
	  fixed: [ruby-core:08949]

Fri Sep 29 09:56:56 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: extout is needed for also clean.
	  fixed: [ruby-core:08944]

	* lib/optparse.rb (OptionParser::Switch#conv_arg): unsplat by
	  Proc#call if no conversion is given.

Thu Sep 28 23:59:31 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* node.h (struct thread): declare win32_exception_list on cygwin and
	  win32 regardless if it is implemented.  Provisional fix for
	  [ruby-core:08917].

Thu Sep 28 20:53:16 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/tmpdir.rb: use return value of getdir.call for length.

Wed Sep 27 01:04:49 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (try_func): check function pointer first and macro next.

	* lib/mkmf.rb (have_type): simplified with typedef and sizeof.

Tue Sep 26 23:57:03 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#getopts): use strings as key.
	  fixed: [ruby-dev:29614]

Tue Sep 26 15:31:26 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {win32,wince}/Makefile.sub (CPP): check predefined value.

Tue Sep 26 07:55:16 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_shift): should not move memory region if array
	  body is shared.  a patch from Kent Sibilev <ksruby at gmail.com>.
	  [ruby-core:08922]

Mon Sep 25 22:26:26 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_path_end): skip root directory.  fixed: [ruby-core:08913]

	* lib/mkmf.rb (init_mkmf): set default $LDFLAGS.  Patch by Michal
	  Suchanek <hramrach at centrum.cz>.  [ruby-talk:216256]

Mon Sep 25 08:14:43 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_shift): should clear shifting top element.
	  [ruby-talk:216055]

	* array.c (rb_ary_shift): avoid creating shared object if array
	  size is small.

Mon Sep 25 08:11:35 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* random.c (rb_f_rand): RDoc typo fix.  a patch from Frederick
	  Cheung <fred at 82ask.com>.  [ruby-talk:216047]

Sun Sep 24 22:28:20 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* runruby.rb: extension library scripts moved into common directory.

Sun Sep 24 14:59:50 2006  Tanaka Akira  <akr@fsij.org>

	* node.h (struct thread): ia64 support is broken by sandbox patch.

Sun Sep 24 12:11:16 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.3.

Sat Sep 23 23:24:57 2006  why the lucky stiff  <why@ruby-lang.org>

	* eval.c (rb_thread_save_context, rb_thread_restore_context):
	  sandbox hook to save and restore sandbox state.

	* eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.

	* eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag
	  to circumvent ensure, in order to prevent endless loops.
	  [ruby-core:08768]

	* eval.c (rb_thread_kill): fix Thread#kill docs, which returns
	  the thread object in all cases.

	* node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along
	  with the thread flags.  used by the sandbox extension.

	* ruby.h: extern rb_eThreadError, so sandbox can swap it.

Sat Sep 23 21:34:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): CGI content
	  may be empty.  a patch from Jamis Buck <jamis at 37signals.com>.

Sat Sep 23 08:35:53 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rdoc/ri/ri_options.rb: prevent NameError.  [ruby-dev:29597]

Sat Sep 23 01:04:20 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.2.

Fri Sep 22 02:06:26 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* .cvsignore: ignore timestamp files and installed list file.

Fri Sep 22 01:36:34 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb: include FileUtils unconditionally.

Thu Sep 21 22:56:20 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (no-install): not install rdoc actually.

	* common.mk (install-doc, no-install-doc): use instruby.rb.

	* instruby.rb: rdoc installation.

	* ext/extmk.rb: expand ruby executable names.

Thu Sep 21 13:55:07 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/etc/etc.c (etc_getpwuid): uid integer should be wraped in
	  uid_t value.  [ruby-core:08897]

	* ext/etc/etc.c (etc_getpwuid): uid_t may be bigger than plain
	  'int' type.

Wed Sep 20 23:17:41 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (pre-install-doc): create data directory before install.

	* lib/mkmf.rb (dir_re): fixed typo.

	* lib/mkmf.rb (install_dirs): remove extra slash.

Wed Sep 20 09:53:38 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/Makefile.sub (INSTALLED_LIST): need to define
	  this macro to install.

Wed Sep 20 09:43:10 2006  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb: allow extra spaces in responses.
	  Thanks, Tom Soderlund. (backported from HEAD)

Wed Sep 20 09:25:39 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/gdbm/gdbm.c: add RDoc documentation. a patch from Peter
	  Adolphs <futzilogik at users dot sourceforge dot net>.
	  [ruby-doc:1223]

Tue Sep 19 01:28:00 2006  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb: backport from HEAD (rev 1.71).

	* lib/fileutils.rb (FileUtils.cp_r): new option
	  :remove_destination.

Tue Sep 19 00:42:15 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_obj_ivar_defined, rb_mod_cvar_defined): new methods,
	  Kernel#instance_variable_defined? and Module#class_variable_defined?.
	  [ruby-dev:29587]

	* lib/date/format.rb (Date::Bag#method_missing): use new method,
	  instance_variable_defined? to check if an instance variable is
	  defined.  fixed: [ruby-dev:29554]
	  -- This didn't fix anything.

Sun Sep 17 23:44:58 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/rdoc.rb (RDoc::RDoc#document): scan only files modified
	  after the previous generation.

Sun Sep 17 17:42:13 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (install-doc): reverted.

	* instruby.rb: stores file name list without destdir prefix.

	* lib/rdoc/generators/ri_generator.rb: do not chdir twice.

Sat Sep 16 23:14:29 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/pty/pty.c (establishShell): remove remaining unused line.

Sat Sep 16 16:40:44 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, common.in, instruby.rb, ext/extmk.rb, lib/mkmf.rb:
	  use instruby.rb to install extensions instead of ext/extmk.rb.

	* instruby.rb: store installed list into the file.

	* ext/dbm/extconf.rb: allow multiple candidates for dbm-type.

	* ext/io/wait/extconf.rb: suspicious checking_for.

	* ext/pty/pty.c (establishShell): parent pid is not used.

	* ext/pty/pty.c (freeDevice): not used.

	* ext/pty/pty.c (get_device_once): removed garbage right brace.

	* lib/mkmf.rb (checking_for): improved the messages.

Thu Sep 14 16:11:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_intern): raise SecurityError only when $SAFE
	  level is greater than zero.  [ruby-core:08862]

	* parse.y (rb_interned_p): new function to check if a string is
	  already interned.

	* object.c (str_to_id): use rb_str_intern().

Wed Sep 13 18:43:05 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* README.EXT: English adjustment.  [ruby-core:08851] and
	  [ruby-core:08852]

Wed Sep 13 18:25:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-parse-partial): better here-doc support.
	  a patch from Marshall T. Vandegrift <llasram at gmail.com>.
	  [ruby-core:08804]

Wed Sep 13 16:43:36 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_intern): prohibit interning tainted string.

Wed Sep 13 01:14:21 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#getopts): works with pre-registered
	  options.  [ruby-core:08826]

Sun Sep 10 20:27:13 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.1.

Tue Jan 10 09:18:03 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (stack_extend): fixed prototype.

	* eval.c (rb_require_safe): prevent extension from loading twice.
	  fixed: [ruby-dev:29523]

Sat Sep  9 23:50:38 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_mul0): bignum multiplication without
	  normalization.

	* bignum.c (rb_big_pow): use rb_big_mul0().  [ruby-dev:29547]

Sat Sep  9 14:08:38 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/test/unit/testcase.rb (Test::Unit::TestCase#run): Rescue
	  Exception in Test::Unit::TestCase#run.  [ruby-core:08783]

Sat Sep  9 04:55:59 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/pstore.rb: open all in binary mode, and get rid of the quirk of
	  msvcrt.  fixed: [ruby-dev:29518]

Sat Sep  9 04:54:42 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, win32/Makefile.sub (MINIRUBY): append MINIRUBYOPT.

	* mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress
	  warnings with $VERBOSE.

	* ext/extmk.rb: Proc#call does not pass the block in 1.8.

	* win32/resource.rb: add more info.

Fri Sep  8 10:03:59 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookies): new
	  method to parse multiple cookies per Set-Cookie header.
	  Thanks to Aaron Patterson <aaron_patterson at speakeasy.net>.
	  [ruby-core:08802]

Fri Sep  8 08:59:30 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/Makefile.sub, win32/configure.bat win32/setup.mak: program
	  name transform.

Fri Sep  8 01:33:08 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h (RSTRING_PTR): add migration macro.

	* ruby.h (RARRAY_PTR): ditto.

Thu Sep  7 23:27:05 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (path_check_0, fpath_check): disable path check on cygwin.
	  [ruby-talk:213074]

Wed Sep 06 12:05:19 2006  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): fix regexp for euc-jp
	  [ruby-dev:29344]

	* ext/nkf/lib/kconv.rb (Kconv::toeuc): remove -m0 [ruby-dev:29505]

Tue Sep  5 06:47:22 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_to_s): variable declaration after an execution
	  statement.

Tue Sep  5 05:56:51 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* numeric.c (flo_hash): improve collision.  fixed: [ruby-dev:29352]

Tue Sep  5 05:49:41 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (path_check_0): check if sticky bit is set on parent
	  directories for executable path.  fixed: [ruby-dev:29415]

Tue Sep  5 05:03:46 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (fix_plus): addition in Fixnum will never overflow
	  long.  a patch from Ondrej Bilka <neleai at seznam.cz>.
	  [ruby-core:08794]

	* numeric.c (fix_minus): ditto.

	* bignum.c (rb_big_pow): eagerly truncate resulting bignum.
	  [ruby-core:08794]

Mon Sep  4 23:15:34 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_to_s): make it conform to RFC2822 date format.
	  [ruby-dev:29467]

Mon Sep  4 21:43:57 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/dbm/extconf.rb: create makefile according to the result of check
	  for dbm header.  fixed: [ruby-dev:29445]

Mon Sep  4 21:42:35 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.

Mon Sep  4 21:14:20 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_strftime): include nul character.  fixed: [ruby-dev:29422]

Mon Sep  4 16:29:33 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::out): specify -m0 -x option for nkf.
	  [ruby-dev:29284]

Mon Sep  4 16:13:23 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (pipe_open): command name should not contain null bytes.
	  [ruby-dev:29421]

	* process.c (proc_spawn): ditto.

	* process.c (proc_spawn_n): ditto.

	* process.c (rb_f_system): ditto.

Sun Sep  3 15:32:44 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: get rid of nil.to_s.

Sun Sep  3 06:24:38 2006  Tanaka Akira  <akr@fsij.org>

	* ext/socket/socket.c (ruby_connect): sockerrlen should be socklen_t.

Sun Sep  3 04:40:42 2006  Tanaka Akira  <akr@fsij.org>

	* ext/socket/extconf.rb: check arpa/inet.h for ntohs.

	* ext/socket/socket.c: include arpa/inet.h if available.

Sun Sep  3 02:34:55 2006  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/unix.rb (DRbUNIXSocket#close): don't get path if client mode.
	  [ruby-dev:29417]

Sun Sep  3 01:45:17 2006  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/acl.rb (ACLEntry#initialize): examine whether '*' is
	  included before IPAddr.new. [ruby-dev:29406]

Sat Sep  2 13:23:01 2006  Tanaka Akira  <akr@fsij.org>

	* common.mk (ia64.o): use the compiler driver to assemble ia64.s
	  to use appropriate ABI.

Sat Sep  2 03:36:22 2006  Tanaka Akira  <akr@fsij.org>

	* common.mk, configure.in, defines.h, eval.c, gc.c, main.c,
	  numeric.c, ruby.h, ia64.s: backport IA64 HP-UX support.

Fri Sep  1 13:52:57 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/font.rb: TkFont#current_configinfo() doesn't work
	  on Tcl/Tk8.x.

Thu Aug 31 12:46:55 2006  why the lucky stiff  <why@ruby-lang.org>

	* eval.c (ruby_init): rename top_cref to ruby_top_cref and export,
	  along with ruby_cref, for use by the sandbox. [ruby-core:08762]

	* node.h: ditto.

Tue Aug 29 19:10:10 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (rb_hash_s_create): fixed memory leak, based on the patch
	  by Kent Sibilev <ksruby at gmail.com>.  fixed: [ruby-talk:211233]

Mon Aug 28 11:36:02 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_rb.rb: Fix typo.  Submitted by
	  <calamitas at gmail.com>.  [ruby-core:08724]

Mon Aug 28 07:53:44 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/ri/ri_formatter.rb: Don't unescape HTML in HtmlFormatter.
	  Submitted by Kent Sibilev <ksruby at gmail.com>.  [ruby-core:08392].

Mon Aug 28 07:25:45 2006  Eric Hodel  <drbrain@segment7.net>

	* file.c (File#size?): Fix documentation submitted by Rick Ohnemus.
	  ruby-Bugs-5529.  [ruby-core:08725]

Sat Aug 26 08:07:13 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: updated based on date2 3.8.2.

Fri Aug 25 22:32:04 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rexml/source.rb (REXML::IOSource#initialize): encoding have to
	  be set with the accessor.  fixed: [ruby-list:42737]

Fri Aug 25 17:15:17 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.5 released.

Fri Aug 25 17:02:06 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_sweep): typo fixed.

Tue Aug 22 18:47:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_method):
	  rdoc documents C module methods as instance methods. a patch in
	  [ruby-core:08536].

Sat Aug 19 14:15:02 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (config.status): include winsock2.h instead of
	  winsock.h when --with-winsock2 is specified.
	  fixed: [ruby-dev:29296]

Sat Aug 19 11:28:08 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_rename): use errno if set properly.
	  fixed: [ruby-dev:29293]

Sat Aug 19 11:09:23 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (then): remove semicolon warning.  [ruby-dev:29299]

Thu Aug 17 19:15:16 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_stat_[rRwWxX]): check for super user.
	  fixed: [ruby-core:08616]

Thu Aug 17 14:47:06 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: added rdoc by Daniel Berger.  [ruby-core:08177]

Thu Aug 17 00:39:05 2006  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/ring.rb (do_reply): Fix for RingServer fails to find a
	  TupleSpace when TupleSpace resides in the same ruby process with
	  RingServer. a patch from Kent Sibilev. [ruby-core:08453]

Wed Aug 16 11:45:36 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (proc_setuid, proc_setgid, proc_seteuid, proc_setegid):
	  get rid of bogus implementations on Mac OS X.

Tue Aug 15 19:10:18 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment): Fix
	  broken class-level documentation.

Wed Aug 16 11:09:26 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ruby.c (set_arg0): fill argv other than the first with an empty
	  string instead of NULL.

Wed Aug 16 11:08:00 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.h: removed an excess macro.  fixed: [ruby-dev:29258]

Tue Aug  8 23:49:06 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/extend-command.rb (IRB::ExtendCommandBundle): pacify
	  RDoc.  a patch from Eric Hodel <drbrain at segment7.net>.
	  [ruby-core:08522]

Tue Aug  8 11:32:54 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* Makefile.in, common.mk, configure.in: fix for platforms without
	  rm. patches from Yutaka kanemoto <kinpoco at gmail.com>.
	  [ruby-dev:29215]

Mon Aug  7 17:56:59 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c, ext/digest/rmd160/rmd160ossl.c,
	  ext/digest/sha1/sha1ossl.c, ext/readline/readline.c: move
	  incluion of config.h to pacify AIX.  a patch from Yutaka
	  Kanemoto <kinpoco at gmail.com>.  [ruby-dev:29197]

Mon Aug  7 15:55:08 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/syck/syck.c (syck_move_tokens): should avoid negative
	  memmove.  [ruby-list:42625]

Mon Aug  7 14:37:48 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in, common.mk: AIX link issue.  a patch from Yutaka
	  Kanemoto <kinpoco at gmail.com>.  [ruby-dev:29190]

	* ext/socket/socket.c: AIX socket support.  [ruby-dev:29190]

Mon Aug  7 12:05:28 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dln.c, eval.c, gc.c, regex.c, ruby.h: shut up AIX alloca
	  warning.  a patch from Yutaka Kanemoto <kinpoco at gmail.com>.
	  [ruby-dev:29191]

Sun Aug  6 20:40:41 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (str[fp]time): %[EO]U didn't denote %U.

Sat Aug  5 17:07:43 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (top_local_setup): local_vars[-1] should point
	  ruby_scope itself to protect local_tbl from garbage collection.
	  [ruby-dev:29049]

Sat Aug  5 13:54:03 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb (str[fp]time): "%\n" means "\n".

Fri Aug  4 15:21:00 2006  Eric Hodel  <drbrain@segment7.net>

	* lib: Merge RDoc and .document from HEAD.
	* lib/drb/ssl.rb: Close socket on SSLError [ruby-core:7197]

Fri Aug  4 19:13:41 2006  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb/{init.rb,ruby-lex.rb,slex.rb}: can't input '\c' for
	  [ruby-core: 7122].

Fri Aug  4 14:02:14 2006  James Edward Gray II  <james@grayproductions.net>

	* lib/date/format.rb (__strptime, strftime): allow multi-line patterns
	  in Date#strftime the same as Time#strftime accepts.
	  fixed: [ruby-core:08466]

Fri Aug  4 13:56:51 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* pack.c (pack_pack): check argument overrun for 'P'.  based on a
	  patch by rucila <rucila at yahoo.cojp>.  fixed: [ruby-dev:29182]

Tue Aug  1 17:44:03 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (init_stdhandle): assign standard file handles.

Tue Aug  1 12:24:58 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (Init_Binding): fix old commit miss.

Mon Jul 31 17:08:20 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (exit_handler): new function; release winsock and
	  environment work area.

	* win32/win32.c (NTInitialize): setup exit_handler.

	* win32/win32.c (StartSockets): use exit_handler.

	* win32/win32.c (rb_w32_getenv): use GetEnvironmentStrings() instead
	  of GetEnvironmentVariable(), because the latter cannot distinguish
	  wheather a null environment variable exists or not.
	  fixed: [ruby-talk:205123]

Mon Jul 31 16:15:13 2006  Tanaka Akira  <akr@fsij.org>

	* test/ruby/test_process.rb (TestProcess#test_rlimit_nofile):
	  setrlimit may fail with EINVAL.
	  reported by MIYAMUKO Katsuyuki.  [ruby-dev:29174]

Mon Jul 31 13:38:22 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httprequest.rb (WEBrick::HTTPReuqest#parse_uri): improve
	  for the value of IPv6 address in the Host: header field.

Mon Jul 31 09:22:12 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h: use ifdef (or defined) for macro constants that may or
	  may not be defined to shut up gcc's -Wundef warnings.
	  [ruby-core:08447]

Sun Jul 30 23:26:22 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_call0): trace call/return of method defined from block.
	  fixed: [ruby-core:08329]

	* eval.c (rb_trap_eval): make the current thread runnable to deal with
	  exceptions which occurred within the trap.  fixed: [ruby-dev:27729]

	* lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.
	  fixed: [ruby-talk:204896]

Sat Jul 29 06:12:06 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: freeze ip_name for security reason.

Sat Jul 29 01:23:52 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/logger.rb: improves the amount of documentation that Rdoc
	  picks up when processing logger.rb by moving the require
	  statement back before the comment block.  a patch from Hugh
	  Sasse <hgs at dmu.ac.uk>.  [ruby-core:08422]

Thu Jul 27 22:21:52 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (time_to_s): fixed format mismatch.

Thu Jul 27 21:19:54 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* math.c (domain_check): a new function to check domain error
	  explicitly for systems that return NaN like FreeBSD.
	  [ruby-core:07019]

	* math.c (math_acos, math_asin, math_acosh, math_atanh, math_log,
	  math_log10, math_sqrt): use domain_check().

	* math.c (math_sqrt): fix documentation flaw.

Thu Jul 27 18:12:12 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* time.c: need to declare time_utc_offset.

Thu Jul 27 17:01:01 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_close): always calls "close" method of the receiver.
	  [ruby-core:6911] [ruby-core:8112]

Thu Jul 27 16:49:01 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_to_s): use +0900 style timezone string for local time.
	  [ruby-dev:29143]

Thu Jul 27 16:41:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/openssl/ossl.h: move <ruby.h> inclusion point to shut up
	  Solaris compiler.  [ruby-core:08114]

Wed Jul 26 22:20:59 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: add support for as and ASFLAGS.  [ruby-dev:29138]

Wed Jul 26 22:13:45 2006  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: sync with HEAD (rev 1.132).

	* lib/net/http.rb (Net::HTTP#post, request_post, request): should
	  set Content-Type: x-www-form-urlencoded by default.

	* lib/net/http.rb (Net::HTTPHeader#content_type): should return
	  nil when there's no Content-Type.

	* lib/net/http.rb (Net::HTTPHeader#sub_type): should return nil
	  when there's no sub Content-Type (e.g. "Content-Type: text").

	* lib/net/http.rb (Net::HTTPHeader#type_params): wrongly failed
	  when there's no Content-Type.

Wed Jul 26 18:35:38 2006  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c: sync with HEAD (rev 1.25).

	* ext/strscan/strscan.c (strscan_do_scan):
	  StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361]

Wed Jul 26 18:14:19 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/pty/pty.c (getDevice): retry once after GC on failure.
	  [ruby-core:08282]

Wed Jul 26 17:28:16 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): prepend ".." to %u for negative bignum,
	  but not "-".  fixed: [ruby-core:08167]

Wed Jul 26 16:39:07 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_scan): add string modification check.
	  [ruby-core:7216]

Wed Jul 26 16:06:03 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): check
	  multipart boundary end.  a patch from Fujioka <fuj at rabbix.jp>
	  [ruby-dev:28470]

Wed Jul 26 01:02:59 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: suppress warnings by automake 1.8 or later.

Tue Jul 25 00:30:06 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/prettyprint.rb: RD to RDoc conversion by Hugh Sasse.

Tue Jul 25 14:49:51 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb (configuration): typo.

Tue Jul 25 13:14:32 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (rb_proc_times): rename hz to hertz to avoid name
	  crash on AIX.  [ruby-dev:29126]

Mon Jul 24 22:03:40 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (backtrace): skip frames successive on node and method name.

Mon Jul 24 17:55:55 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (rb_f_system): add security check.  [ruby-talk:202947]

	* process.c (rb_f_system): move signal right before fork to avoid
	  signal handler intervention.

Mon Jul 24 15:51:52 2006  Tanaka Akira  <akr@fsij.org>

	* ext/readline/readline.c (readline_readline): rl_deprep_term_function
	  may be NULL with libedit.  reported by Ryan Davis.  [ruby-dev:29070]

Mon Jul 24 15:19:55 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): revert last change.  [ruby-dev:29112]
	  [ruby-core:08374]

Sun Jul 23 22:59:49 2006  Tanaka Akira  <akr@fsij.org>

	* test/socket/test_unix.rb: disabled on cygwin.
	  reported by Kouhei Yanagita.  [ruby-dev:29080]

Fri Jul 21 21:21:08 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_call0): include funcalled methods in caller list.
	  fixed: [ruby-core:08290]

Fri Jul 21 12:11:00 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb, lib/mkmf.rb (with_destdir): remove drive letter before
	  prepending destdir on DOSISH.

Thu Jul 20 15:07:14 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h: export classes/modules to implement sandbox.
	  [ruby-core:08283]

Thu Jul 20 00:06:29 2006  Keiju Ishitsuka  <keiju@ishitsuka.com>

	* lib/irb/completion.rb: support for completion of numeric
	  number. [ruby-dev: 29038]

Wed Jul 19 23:53:05 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/parser.rb, lib/rss/utils.rb: added documents.

Tue Jul 18 22:10:13 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (rb_f_system): block SIGCHLD during the process
	  execution, like glibc system(3) does.  [ruby-talk:202361]

Tue Jul 18 23:12:14 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (open_ifs_socket): should not use plain malloc.

	* win32/win32.c (rb_w32_opendir): should not use plain realloc.

Tue Jul 18 18:05:49 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* test/ruby/test_float.rb (TestFloat::test_strtod): update test to
	  conform strtod change.

Tue Jul 18 15:49:42 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_unpack): propagate association array to copied
	  string.  [ruby-core:08223]

	* pack.c (pack_unpack): return referenced string itself if it has
	  same length as specified.  a patch from <nobu at ruby-lang.org>
	  in [ruby-core:08225].

	* pack.c (pack_pack): taint 'p' packed strings.

Tue Jul 18 14:03:02 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/webrick/httpserver.rb (WEBrick::HTTPServer::unmount): remove
	  inpect argument from sprintf.  [ruby-dev:29039]

Tue Jul 18 10:53:37 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_cstr_to_dbl): limit out-of-range message.

	* util.c (ruby_strtod): return end pointer even if ERANGE occurred.
	  fixed: [ruby-dev:29041]

Mon Jul 18 00:43:05 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (ruby_strtod): stop at dot not followed by digits.
	  fixed: [ruby-dev:29035]

Tue Jul 18 00:01:27 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: remove LIBRUBY_SO if static linked extensions exist.

Mon Jul 17 23:30:46 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (rb_cv_msvcrt): defaulted to msvcrt.  Workaround for a
	  bug of cygwin 1.5.20.

Mon Jul 17 13:43:05 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (define_swapx): should not use plain malloc.

Mon Jul 17 12:58:41 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: should use ac_cv_lib_dl_dlopen=no on MinGW.

Sat Jul 15 23:50:12 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_require_safe): wait for another thread requiring the same
	  feature.  fixed: [ruby-core:08229]

Sat Jul 15 01:27:13 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (has_magic): glob names contain alphabets to enable case fold
	  search also for directories.  fixed: [ruby-talk:201917]

Sat Jul 15 01:09:22 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* st.c (malloc): use xmalloc/xcalloc instead of plain
	  malloc/calloc, to detect memory allocation failure.  see
	  <http://www.nongnu.org/failmalloc/>.

	* gc.c (rb_memerror): should not raise empty nomem_error.

Fri Jul 14 13:08:13 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add methods for new features of latest Tcl/Tk8.5.

	* ext/tk/lib/tk/namespace.rb: ditto.

Fri Jul 14 02:30:12 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/monitor.rb: document patch from Hugh Sasse <hgs at dmu.ac.uk>.
	  [ruby-core:08205]

Fri Jul 14 01:09:46 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (then): error in warning action.

Fri Jul 14 00:10:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_pop): may cause realloc oscillation.  a patch
	  from MORITA Naoyuki <mlgetter at kidou.sakura.ne.jp>.
	  [ruby-dev:29028]

Thu Jul 13 22:23:56 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/composite.rb: improve handling of the classname on the
	  option database for the widget class which includes TkComposite.

Thu Jul 13 20:32:19 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/parser.rb: updated documents by a patch from
	  Hugh Sasse <hgs at dmu.ac.uk>. [ruby-core:8194]

Wed Jul 12 13:54:09 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (then): we'd like to reserve colon here for the future.
	  warning added.

Tue Jul 11 20:58:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h: export rb_cMethod.  [ruby-talk:201259]

Tue Jul 11 19:13:33 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: remove restriction on the class of
	  pseudo-toplevel.

Tue Jul 11 18:00:57 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: security fix.

Tue Jul 11 17:33:39 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c (rb_str_dump): need to extend len for \b.

Mon Jul 10 22:00:00 2006  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c: Allows '_' to appear within
	  digits.  [ruby-dev:28872]

	* ext/bigdecimal/lib/bigdecimal/util.rb: Bug in to_r reported by
	  [ruby-list:42533] fixed.

Mon Jul 10 19:22:19 2006  Tanaka Akira  <akr@fsij.org>

	* gc.c (gc_sweep): expand heap earlier.
	  reported by MORITA Naoyuki.  [ruby-dev:28960]

Mon Jul 10 18:59:34 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/font.rb: sorry. mistaken to patch.

Mon Jul 10 18:46:52 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: make SEGV risk lower at exit.

	* ext/tk/lib/tk.rb: ditto.

	* ext/tk/lib/multi-tk.rb: fail to call function-style methods on slave
	  interpreters. The strategy (MultiTkIp_PseudoToplevel_Evaluable) to
	  fix the problem is a little tricky. You may have to take care of
	  conflicting with it.

	* ext/tk/lib/tk.rb: a little change for the pseudo-toplevel strategy.

	* ext/tk/lib/tk/font.rb: ditto.

	* ext/tk/lib/tk/msgcat.rb: ditto.

	* ext/tk/lib/tkextlib/itk/incr_tk.rb: ditto.

	* ext/tk/sample/demos-en/widget: fail to call function-style methods
	  on sample scripts. To fix it, a strategy which similar to the way
	  on MultiTiIp is used. Please take care when re-write and re-run a
	  demo script on the Widget-Demo code viewer.

	* ext/tk/sample/demos-jp/widget: ditto.

Mon Jul 10 13:58:40 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* signal.c (ruby_nativethread_signal, posix_nativethread_signal,
	  sigsend_to_ruby_thread, install_nativethread_sighandler):
	  nativethread-support on signal handler. RE-backport from 1.9.

	* ruby.h (HAVE_NATIVETHREAD_KILL): ditto.

	* eval.c (ruby_native_thread_kill): ditto.

Mon Jul 10 10:54:14 2006  Ryan Davis  <ryand@zenspider.com>

	* lib/rdoc/parsers/parse_f95.rb: massive overhaul from Yasuhiro
	  Morikawa including new file suffixes, function support, public
	  variables and constants, derived-types, defined operators and
	  assignments, namelists, and subroutine and function
	  arguments. Truly massive.

	* lib/rdoc/diagram.rb: diagrams are now cached.

	* lib/irb/completion.rb: fixed a crasher when completing against
	  an unnamed class/module.

	* lib/rdoc/parsers/parse_c.rb: private comment (--/++) support in
	  C-file rdoc.

	* lib/debug.rb: minor clarification in help.

	* lib/pp.rb: minor clarification on exception.

Mon Jul 10 09:29:12 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_clear_cache_for_undef): clear entries for included
	  module.  fixed: [ruby-core:08180]

Mon Jul 10 01:48:38 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* st.h (st_data_t): use pointer sized integer for st_data_t.
	  [ruby-dev:28988]

Sun Jul  9 18:06:47 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (try_constant): fix for value 1 at cross compiling.

	* lib/mkmf.rb (create_makefile): prevent substitution of macro
	  definition.  fixed: http://www.yotabanana.com/lab/20060624.html#p02

Sun Jul  9 00:54:34 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (next_jump): deal with destination of next.
	  fixed: [ruby-core:08169]

Fri Jul  7 00:38:49 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (rb_hash_default): should not call default procedure if
	  no key is given.  [ruby-list:42541]

Fri Jul  7 00:29:10 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_mload): a patch from Daniel Berger
	  <Daniel.Berger at qwest.com>.  [ruby-core:08128]

Thu Jul  6 22:21:57 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
	  HZ and CLK_TCK.  fixed: [ruby-talk:200293]

Thu Jul  6 22:17:21 2006  Minero Aoki  <aamine@loveruby.net>

	* ext/racc/cparse/cparse.c: sync with original code, rev 1.8.

	* ext/racc/cparse/cparse.c: should mark CparseParams objects.

	* lib/racc/parser.rb: sync with original code, rev 1.8.

	* lib/racc/parser.rb: update coding style.

Mon Jul  3 19:04:38 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu
	  widget embeddable (pack, grid, and so on) like as a general widget.
	  However, an embeddable menu may require to be definied some event
	  bindings for general use.

	* ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and
	  Tk.callback_continue don't work on MultiTkIp.

	* ext/tk/lib/multi-tk.rb: ditto.

	* ext/tk/lib/tk.rb: lack of Tk.callback_return.

	* ext/tk/lib/tk/menu.rb: improve creating clone menus.

Mon Jul  3 14:42:06 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/etc/extconf.rb (PW_UID2VAL, PW_GID2VAL): defaulted to conversion
	  from int, and sys/types.h needs to be included before grp.h.
	  fixed: [ruby-dev:28938]

Mon Jul  3 01:14:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_inspect): encode \b (\010) for escape.
	  [ruby-dev:28927]

	* string.c (rb_str_dump): ditto.

Sun Jul  2 19:17:56 2006  Minero Aoki  <aamine@loveruby.net>

	* ext/racc/cparse/cparse.c: sync with original code (rev 1.7).

	* ext/racc/cparse/cparse.c: use rb_catch instead of rb_iterate.
	  Giving a block to a Ruby-level method by rb_iterate is obsolete on
	  Ruby 1.9.  Note that current cparse.c still includes one
	  rb_iterate call on Ruby 1.8, but it is not a problem (at least
	  just now).

Sat Jul  1 15:15:49 2006  Tanaka Akira  <akr@m17n.org>

	* test/socket/test_nonblock.rb: add timeout to send/receive
	  an empty UDP packet.
	  [ruby-dev:28820]

Fri Jun 30 23:46:23 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: should test isinf for Solaris with GCC compiler.
	  a patch from <ville.mattila at stonesoft.com>.  [ruby-core:07791]

	* configure.in: -shared patch from Andrew Morrow
	  <andrew.c.morrow at gmail.com>.  [ruby-core:08100]

Thu Jun 29 18:58:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c (BigDecimal_version): fix patch
	  failure.

Thu Jun 29 18:00:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c: add RDoc document.  a patch from
	  mathew <meta at pobox.com>.   [ruby-core:07050]

Wed Jun 28 15:47:14 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/optparse.rb: RDoc patch from Robin Stocker <robin@nibor.org>
	  [ruby-core:08087]

Wed Jun 28 19:04:34 2006  Tanaka Akira  <akr@m17n.org>

	* test/socket/test_unix.rb: test_seqpacket_pair removed.
	  [ruby-dev:28846]

Tue Jun 27 23:03:49 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c: RDoc update for =~ method.  a patch from Alex Young
	  <alex at blackkettle.org>.  [ruby-core:08068]

Tue Jun 27 22:47:18 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: forgot to update TCLTKLIB_RELEASE_DATE.

	* ext/tk/lib/tk.rb (tk_tcl2ruby): [bug fix] sometimes fail to convert
	  a tcl string to a ruby object if the tcl string includes "\n".

Tue Jun 27 16:04:05 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* win32/win32.h: define isascii on MinGW for msvcrt compatibility.

	* configure.in: set ac_cv_header_sys_time_h=no on MinGW
	  for msvcrt compatibility.

Tue Jun 27 11:36:02 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/etc/etc.c (setup_passwd, setup_group): allow bignum uid, gid and
	  so on.  [ruby-talk:199102]

Mon Jun 26 13:37:27 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc: Merge from HEAD.
	  Add options to limit the ri search path.

Tue Jun 27 00:54:08 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* util.c (powersOf10): constified.

Mon Jun 26 18:37:44 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c (ip_delete): fix SEGV when a slave-ip is
	  deleted on callback.

Mon Jun 26 10:47:42 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (pipe_open): avoid closing uninitialized file descriptors.
	  a patch from <tommy at tmtm.org> [ruby-dev:28600]

Mon Jun 26 09:56:22 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.[ch] (rb_w32_send, rb_w32_sendto): constified.

Sun Jun 25 23:02:12 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, mkconfig.rb: catch-up for latest autoconf.

Sat Jun 24 06:35:00 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* signal.c: revert last change.

	* ruby.h: ditto.

	* eval.c: ditto.

Thu Jun 22 11:52:02 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/net/http.rb (Net::HTTPResponse): duplicated error 501;
	  HTTPInternalServerError should be error 500.  [ruby-core:08037]

Thu Jun 22 05:15:58 2006  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c (sock_s_socketpair): try GC only once.
	  [ruby-dev:28778]

Wed Jun 21 21:28:32 2006  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (jd_to_commercial): now works fine even if in
	  mathn-ized context.

Wed Jun 21 17:32:31 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* signal.c (ruby_nativethread_signal, posix_nativethread_signal,
	  sigsend_to_ruby_thread, install_nativethread_sighandler):
	  nativethread-support on signal handler (backport from 1.9).

	* ruby.h (HAVE_NATIVETHREAD_KILL): ditto.

	* eval.c (ruby_native_thread_kill): ditto.

Wed Jun 21 08:39:54 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): merge Date
	  and Time processing.  [ruby-core:08033]

Wed Jun 21 01:40:25 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (yylex, reswords): modifier token is no longer returned in
	  fname state.  [ruby-dev:28775]

Wed Jun 21 01:12:46 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: RSS::Element.def_corresponded_attr_writer
	  supported date type.

Tue Jun 20 22:08:36 2006  Kouhei Sutou  <kou@cozmixng.org>

	* test/rss/test_parser.rb: split parser tests into ...
	* test/rss/test_parser_1.0.rb: ... RSS 1.0 parsing tests and ...
	* test/rss/test_parser_2.0.rb: ... RSS 2.0 parsing tests.

Tue Jun 20 21:19:06 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: provided default RSS::Element#children.

	* lib/rss/0.9.rb: used default RSS::Element#children.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.

Tue Jun 20 21:04:33 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: provided default RSS::Element#_tags.

	* lib/rss/0.9.rb: used default RSS::Element#_tags.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.

Tue Jun 20 20:47:07 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: hide RSS::Element.install_model.
	  (RSS::Element.install_have_child_element,
	   RSS::Element.install_have_children_element,
	   RSS::Element.install_text_element,
	   RSS::Element.install_date_element): call
	  RSS::Element.install_model internally.

	* lib/rss/0.9.rb: followed new API.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/content.rb: ditto.
	* lib/rss/dublincore.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/syndication.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

Tue Jun 20 20:18:05 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: add check for OBJ_NAME_do_all_sorted.

	* ext/openssl/ossl_cipher.c (ossl_s_ciphers): new method
	  OpenSSL::Cipher.ciphers. it returns all the cipher names.

	* ext/openssl/lib/openssl/cipher.rb:
	  - add constants AES128, AES192, AES256. [ruby-dev:28610]
	  - reimplement without eval()

	* ext/openssl/lib/openssl/digest.rb: reimplement without eval().

	* test/openssl/test_cipher.rb, test_digest: fix about reimplemented
	  features.

	* sample/openssl/cipher.rb: rewrite all.

Sat Jun 19 11:21:46 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/test/unit/assertions.rb: Merge RDoc from HEAD.

Tue Jun 20 01:06:57 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb:
	  - cleanup validation mechanism. Now, #XXX_validation is
	    needless.
	  - changed internal variable name RSS::Element::MODEL to
	    RSS::Element::MODELS.
	  - RSS::Element.install_model requires uri.

	* lib/rss/0.9.rb: followed new validation API.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/content.rb: ditto.
	* lib/rss/dublincore.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/syndication.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

Mon Jun 19 23:40:59 2006  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/lib/kconv.rb: remove default -m0 and fix document.

	* ext/nkf/nkf-8/{nkf.c, config.h, utf8tbl.c, utf8tbl.h}:
	  imported nkf 2.0.7.

Mon Jun 19 22:31:59 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb:
	  - provided default #to_s as RSS::Element#to_s.
	  - removed RSS::Element#other_element.
	  - RSS::Element#tag requires attributes as Hash instead of Array.

	* lib/rss/0.9.rb: removed #to_s to use RSS::Element#to_s.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

	* lib/rss/2.0.rb: removed #other_element.

Mon Jun 19 22:09:16 2006  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c(ole_invoke): support some kind of
	  method of word. [ruby-Bugs#3237]

	* ext/win32ole/tests/test_word.rb: ditto.

	* ext/win32ole/tests/testall.rb: ditto.

Mon Jun 19 00:02:17 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: automatically detected attributes.

	* lib/rss/0.9.rb: removed #_attrs.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

	* lib/rss/parser.rb: followed new internal API.

Mon Jun 19 00:00:17 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: fix bug: initialize improper tables.

Sun Jun 18 22:36:13 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: RSS::Element#initialize accepts initial
	  attributes.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/dublincore.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

	* lib/rss/utils.rb: added Utils.element_initialize_arguments? to
	  detect backward compatibility initial arguments.

	* lib/rss/parser.rb: user initial attributes to initialize
	  RSS::Element.

Sun Jun 18 18:24:42 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/converter.rb: use NKF for Uconv fallback.

Sun Jun 18 18:22:04 2006  Kouhei Sutou  <kou@cozmixng.org>

	* test/rss/test_image.rb: shared name space configuration.

Sun Jun 18 18:13:25 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: improved ignore_unknown_element
	  handling. RSS::NotExpectedTagError provides tag URI.
	* lib/rss/parser.rb: ditto.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/content.rb: ditto.
	* lib/rss/dublincore.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/syndication.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

	* test/rss/rss-assertions.rb: checked URI of not expected tag too.
	* test/rss/test_parser.rb: ditto.

Sun Jun 18 18:08:36 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: changed empty namespace URI representation to ""
	  from nil.
	* lib/rss/parser.rb: ditto.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.

Sun Jun 18 18:03:50 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/parser.rb: removed a guard for requiring open-uri.

Sun Jun 18 18:01:26 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: fixed typo: except -> expect
	* lib/rss/parser.rb: ditto.
	* test/rss/rss-assertions.rb: ditto.
	* test/rss/test_parser.rb: ditto.

Sun Jun 18 17:52:39 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: RSS::Element#calc_indent became to be deprecated.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/taxonomy.rb: ditto.
	* lib/rss/trackback.rb: ditto.

	* test/rss/test_1.0.rb: removed RSS::Element.indent_size tests.
	* test/rss/test_2.0.rb: ditto.

Sun Jun 18 00:49:11 2006  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c (bsock_recv_nonblock): new method
	  BasicSocket#recv_nonblock.
	  (udp_recvfrom_nonblock): renamed from ip_recvfrom_nonblock.
	  IPSocket#recvfrom_nonblock is moved to UDPSocket#recvfrom_nonblock.
	  (unix_recvfrom_nonblock): removed.
	  UNIXSocket#recvfrom_nonblock is removed.

Sat Jun 17 22:17:17 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/mathn.rb (Integer::prime_division): raise ZeroDivisionError
	  on zeros.  [ruby-dev:28739]

Sat Jun 17 14:53:32 2006  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb: backport from 1.9.
	  (Kernel#Pathname): new method.

Sat Jun 17 10:30:41 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (Hash#merge, Enumerable#sort_by): removed.

	* lib/rss/rss.rb (RSS::RootElementMixin#to_xml): added.
	  [ruby-talk:197284]

	  We can convert RSS version easily like the following:
	    rss10 = RSS::Parser.parse(File.read("1.0.rdf"))
	    File.open("2.0.rss", "w") {|f| f.print(rss10.to_xml("2.0"))}

	* test/rss/test_1.0.rb: added #to_xml test.
	* test/rss/test_2.0.rb: ditto.

	* test/rss/rss-testcase.rb: added some helper methods that
	  generates sample RSS 2.0.

	* sample/rss/convert.rb: added a sample script to convert RSS format.

Sat Jun 17 10:23:22 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (Kernel#funcall): removed.
	* lib/rss/parser.rb (Kernel.URI): removed.

	* lib/rss/maker/: supported
	    xxx.new_yyy do |yyy|
	      yyy.zzz = zzz
	      ...
	    end
	  style and this style became the style of the recommendation.

	  Old style
	    yyy = xxx.new_yyy
	    yyy.zzz = zzz
	    ...
	  is supported too but this style isn't recommended.
	  [ruby-talk:197284]

	* test/rss/test_*maker*.rb: used new recommended style.

Sat Jun 17 09:03:47 2006  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss, test/rss: backported from trunk. (2005-11-16 - now)

	* lib/rss/rss.rb (RSS::VERSION): 0.1.5 -> 0.1.6.
	* test/rss/test_version.rb (RSS::TestVersion#test_version): ditto.

	* lib/rss/trackback.rb: added TrackBack prefix.
	* lib/rss/maker/trackback.rb: ditto.

	* lib/rss/rss.rb : removed needless argument 'prefix'.
	* lib/rss/parser.rb: ditto.

	* lib/rss/1.0.rb: added rdf:Bag.

	* lib/rss/taxonomy.rb: implemented taxonomy module.
	* test/rss/test_taxonomy.rb: added tests for taxonomy support.

	* lib/rss/1.0.rb: added convenience method 'resources'.
	* lib/rss/taxonomy.rb: ditto.
	* test/rss/rss-assertions.rb: added test for 'resources'.
	* test/rss/test_taxonomy.rb: ditto.

	* lib/rss/rss.rb: fixed a indentation bug.
	* lib/rss/taxonomy.rb: fixed <taxo:topic> #to_s bug.
	* test/rss/test_taxonomy.rb: added a #to_s test.

	* lib/rss/maker/taxonomy.rb: implemented taxonomy module for RSS
	  Maker.
	* lib/rss/taxonomy.rb: supported RSS Maker.
	* lib/rss/maker.rb: added taxonomy module support.

	* lib/rss/rss.rb: adjusted to other element API.
	* lib/rss/1.0.rb: adjusted to other element API but backward
	  compatibility is reserved.
	* lib/rss/0.9.rb: ditto.

	* test/rss/test_maker_taxo.rb: added test case for taxonomy module
	  for RSS Maker.
	* test/rss/test_setup_maker_1.0.rb: added tests for taxo:topic.

	* test/rss/test_setup_maker_1.0.rb: added backward compatibility
	  test.
	* test/rss/test_setup_maker_0.9.rb: ditto.
	* test/rss/test_setup_maker_2.0.rb: ditto.

	* test/rss/rss-testcase.rb: added convenience method for setting
	  up taxo:topic.
	* test/rss/rss-assertions.rb: added assertion for taxo:topic.

	* sample/rss/blend.rb: followed new API.

	* lib/rss/taxonomy.rb: changed class or module prefix to
	  Taxonomy from Taxo.
	* lib/rss/maker/taxonomy.rb: ditto.

	* test/rss/test_taxonomy.rb: use #reject directory.

	* lib/rss/: use #__send__ instead of #send.
	* test/rss/: ditto.

	* lib/rss/parser.rb: added entity handling type predicate.
	* lib/rss/rexmlparser.rb: ditto.
	* lib/rss/xmlparser.rb: ditto.
	* lib/rss/xmlscanner.rb: ditto.

	* lib/rss/xmlscanner.rb: more robust entity handling.

	* test/rss/test_parser.rb: added an entity handling test.

	* test/rss/test_2.0.rb: added RSS 2.0 tests.
	* test/rss/rss-assertions.rb: extended XML stylesheet assertion.
	* lib/rss/0.9.rb: added initialize method.
	* test/rss/test_1.0.rb: cleanup.

	* lib/rss/image.rb: added Image prefix.
	* lib/rss/maker/image.rb: ditto.

	* lib/rss/rss.rb: improved type conversion.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/image.rb: ditto.
	* lib/rss/syndication.rb: ditto.

	* test/rss/test_2.0.rb: added type conversion tests.
	* test/rss/test_accessor.rb: ditto.
	* test/rss/test_to_s.rb: ditto.
	* test/rss/test_syndication.rb: ditto.
	* test/rss/test_setup_maker_2.0.rb: ditto.
	* test/rss/test_setup_maker_1.0.rb: ditto.
	* test/rss/test_setup_maker_0.9.rb: ditto.
	* test/rss/test_maker_sy.rb: ditto.
	* test/rss/test_maker_image.rb: ditto.
	* test/rss/test_maker_2.0.rb: ditto.
	* test/rss/test_maker_0.9.rb: ditto.
	* test/rss/test_image.rb: ditto.

	* test/rss/test_maker_1.0.rb: use assert instead of assert_equal.

	* test/rss/rss-assertions.rb: improved type conversion assertions.

	* lib/rss/rss.rb: added backward compatibility codes.
	* lib/rss/parser.rb: ditto.
	* test/rss/test_parser.rb: ditto.
	* test/rss/test_2.0.rb: ditto.

Sat Jun 17 02:01:00 2006  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed
	  string.

Sat Jun 17 00:23:58 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (reswords): kDO_BLOCK was missing.  fixed: [ruby-core:7995]

Sat Jun 17 00:02:15 2006  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_propertyput): support
	  PROPERTYPUTREF. [ruby-talk:183042]

	* ext/win32ole/tests/test_propertyputref.rb: ditto.

Thu Jun 15 23:02:47 2006  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (fole_methods): The return value
	  of WIN32OLE#ole_methods should include PROPERTYPUTREF methods.

	* ext/win32ole/win32ole.c (fole_put_methods): The return value
	  of WIN32OLE#ole_put_methods should include PROPERTYPUTREF methods.

	* ext/win32ole/tests/test_ole_methods.rb: ditto.

	* ext/win32ole/tests/testall.rb : ditto.

Wed Jun 14 18:23:28 2006  Eric Hodel  <drbrain@segment7.net>

	* enum.c (enum_any): Documentation typo.

Wed Jun 14 15:01:09 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser#warn): Don't print
	  warnings when -q is set.

Wed Jun 14 23:03:53 2006  Tanaka Akira  <akr@m17n.org>

	* configure.in: check sizeof(rlim_t).
	  check setrlimit.

	* process.c (proc_getrlimit): new method Process.getrlimit.
	  (proc_setrlimit): new method Process.setrlimit.

	* ruby.h (NUM2ULL): new macro.

Mon Jun 12 22:25:09 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): adjust precision length to prevent
	  splitting multi-byte characters.  [ruby-list:42389]

Sun Jun 11 23:20:07 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Arguable#getopts): pass self to the
	  parser.

Sun Jun 11 10:00:57 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.h (write): not need to define on bcc.

Sun Jun 11 08:30:33 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#getopts): new methods.

Sat Jun 10 18:02:40 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/bigdecimal/lib/bigdecimal/newton.rb (Newton::nlsolve): typo
	  fixed: raize -> raise.  [ruby-talk:196608]

Thu Jun  8 14:19:17 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.[ch] (rb_w32_read, rb_w32_write): new functions.
	  use recv() and send() when fd is socket. fixed: [ruby-dev:28694]

Wed Jun  7 16:22:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/tempfile.rb (Tempfile::make_tmpname): put dot between
	  basename and pid.  [ruby-talk:196272]

Wed Jun  7 14:53:04 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (errmap): add some winsock errors.

Wed Jun  7 11:34:38 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* configure.in: add new configure option `--with-winsock2' for mingw.

	* win32/Makefile.sub (config.h): define USE_WINSOCK2 in config.h
	  instead of in CPPFLAGS.

	* ext/socket/extconf.rb: determine whether to use winsock2 or not
	  by using with_config.

Wed Jun  7 10:45:10 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/{configure.bat, setup.mak, Makefile.sub, win32.h}: add
	  new configure option `--with-winsock2'.

	* win32/win32.c (StartSockets): ditto.

	* ext/socket/extconf.rb: ditto.

	* win32/win32.c (open_ifs_socket): new function.

	* win32/win32.c (StartSockets, rb_w32_socket): use open_ifs_socket()
	  instead of socket().
	  ifs socket support is backported from trunk.

Wed Jun  7 09:14:44 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): binding for the return event hook should have
	  consistent scope.  [ruby-core:07928]

	* eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from
	  event_hooks.	no guarantee for arbitrary hook deletion.
	  [ruby-dev:28632]

Mon Jun  5 18:12:12 2006  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): reject
	  non-AF_INET/AF_INET6 sockaddr.
	  (sock_s_unpack_sockaddr_un): reject non-AF_UNIX sockaddr.
	  [ruby-dev:28691]

Sun Jun  4 20:40:19 2006  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c: fix sockaddr_un handling.
	  [ruby-dev:28677]

Fri Jun  2 22:08:17 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/forwardable.rb: RDoc typo fix from Jan Svitok
	  <jan.svitok at gmail.com>.  [ruby-core:07943]

Fri Jun  2 19:02:09 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: use create_header.

	* ext/openssl/ossl.h, ext/openssl/openssl_missing.h:
	  include RUBY_EXTCONF_H.

Fri Jun  2 17:16:52 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (CLEANINGS): remove extconf.h by distclean if created.

Fri Jun  2 00:11:19 2006  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c (s_recvfrom): alen may be zero with UNIXSocket
	  too.  (tested on NetBSD 3.0)
	  (s_recvfrom_nonblock): extracted from sock_recvfrom_nonblock.
	  (sock_recvfrom_nonblock): use s_recvfrom_nonblock.
	  (ip_recvfrom_nonblock): new method: IPSocket#recvfrom_nonblock
	  (unix_recvfrom_nonblock): new method: UNIXSocket#recvfrom_nonblock
	  (s_accept_nonblock): extracted from sock_accept_nonblock.
	  (sock_accept_nonblock): use s_accept_nonblock.
	  (tcp_accept_nonblock): new method: TCPServer#accept_nonblock
	  (unix_accept_nonblock): new method: UNIXServer#accept_nonblock

Thu Jun  1 19:12:37 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (rb_w32_cmdvector): backslashes inside single-quotes
	  no longer has special meanings.  fixed: [ruby-list:42311]

Thu Jun  1 16:14:41 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_getcwd): runtime's getcwd() will not success
	  if the length of the cwd is longer than MAX_PATH.
	  fixed [ruby-list:42335]

Thu Jun  1 11:29:14 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_getcwd): set errno if not set.
	  fixed [ruby-list:42346]

Sat May 27 11:29:46 2006  nobuyoshi nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): remove extinit files if no statically linked
	  extensions.

Fri May 26 09:05:11 2006  nobuyoshi nakada  <nobu@ruby-lang.org>

	* ruby.h, lib/mkmf.rb (create_header): clear command line options for
	  macros moved to extconf.h.

	* ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and
	  EXTSTATIC permanent.

	* ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.

	* {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added
	  $(INCFLAGS).

	* lib/mkmf.rb (configuration): add $defs unless extconf.h was created.

Thu May 25 01:52:07 2006  nobuyoshi nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (pkg_config): particular config commands support.

	* ext/extmk.rb: deal with $static set in extconf.rb.

	* mkconfig.rb: merge multiple entries to an entry with multiple lines.

	* lib/mkmf.rb: allow a series of commands to link.

	* win32/Makefile.sub: embed manifests.

	* win32/setup.mak: suffix OS name by runtime version.

Wed May 24 23:52:11 2006  nobuyoshi nakada  <nobu@ruby-lang.org>

	* configure.in (ac_install_sh): ignore dummy install-sh.
	  [ruby-talk:193876]

Wed May 24 03:10:48 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/ssl.rb
	  (OpenSSL::SSL::SocketForwarder#setsockopt,getsockopt): typo fixed.

Mon May 22 17:54:12 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (sock_recvfrom_nonblock): use rb_read_pending
	  instead of rb_io_read_pending.
	  [ruby-dev:28663]

Mon May 22 17:30:04 2006  Tanaka Akira  <akr@m17n.org>

	* rubyio.h (rb_io_set_nonblock): declared.

	* io.c (rb_io_set_nonblock): new function.
	  (io_getpartial): nonblocking read support.
	  (io_read_nonblock): new method: IO#read_nonblock.
	  (io_write_nonblock): new method: IO#write_nonblock.

	* ext/socket/socket.c
	  (sock_connect_nonblock): new method: Socket#connect_nonblock.
	  (sock_accept_nonblock): new method: Socket#accept_nonblock.
	  (sock_recvfrom_nonblock): new method: Socket#recvfrom_nonblock.

	  [ruby-core:7917]

Mon May 22 15:57:39 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (umethod_bind): should not update original class.
	  [ruby-dev:28636]

Mon May 22 13:38:57 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (ev_const_get): should support constant access from
	  within instance_eval().  [ruby-dev:28327]

Thu May 18 17:51:32 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_timeval): should round for usec floating
	  number.  [ruby-core:07896]

	* time.c (time_add): ditto.

Thu May 18 17:11:45 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::out): support utf-8.  a patch from Fujioka
	  <fuj at rabbix.jp>.  [ruby-dev:28649]

Thu May 18 00:42:12 2006  nobuyoshi nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb, lib/mkmf.rb: use BUILD_FILE_SEPARATOR in Makefiles.

Wed May 17 17:55:26 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (sys_warning): should not call a vararg function
	  rb_sys_warning() indirectly.  [ruby-core:07886]

Wed May 17 08:17:15 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): try to reduce errors using powersOf10
	  table.  [ruby-dev:28644]

Tue May 16 15:34:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (rb_reg_initialize): should not allow modifying literal
	  regexps.  frozen check moved from rb_reg_initialize_m as well.

Tue May 16 09:20:16 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (rb_reg_initialize): should not modify untainted objects in
	  safe levels higher than 3.

	* re.c (rb_memcmp): type change from char* to const void*.

	* dir.c (dir_close): should not close untainted dir stream.

	* dir.c (GetDIR): add tainted/frozen check for each dir operation.

Mon May 15 17:42:39 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):
	  typo fixed.  a patch from Florian Gross <florg at florg.net>.

Sat May 13 16:14:05 2006  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb (PP.mcall): new method.
	  (Struct#pretty_print): call Kernel#class and Struct#members even if
	  overridden.
	  (Struct#pretty_print_cycle): ditto.
	  [ruby-core:7865]

Thu May 11 19:57:00 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): differ addition to minimize error.
	  [ruby-dev:28619]

Fri Aug 11 15:39:25 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get
	  documented.

Thu May 11 18:10:43 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): should not raise ERANGE when the input
	  string does not have any digits.  [ruby-dev:28629]

Sun May  7 03:09:51 2006  Stephan Maka  <stephan@spaceboyz.net>

	* lib/resolv.rb (Resolv::DNS::Requester::ConnectedUDP#initialize):
	  Use AF_INET6 for nameservers containing colons.

Sat May  6 00:38:42 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* signal.c (trap): sig should be less then NSIG.  Coverity found
	  this bug.  a patch from Kevin Tew <tewk at tewk.com>.
	  [ruby-core:07823]

Thu May  4 02:24:16 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/syck/emitter.c (syck_scan_scalar): avoid accessing
	  uninitialized array element.  a patch from Pat Eyler
	  <rubypate at gmail.com>.  [ruby-core:07809]

	* array.c (rb_ary_fill): initialize local variables first.  a
	  patch from Pat Eyler <rubypate at gmail.com>.  [ruby-core:07810]

	* ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free
	  type_tag.  a patch from Pat Eyler <rubypate at gmail.com>.
	  [ruby-core:07808]

Wed May  3 02:12:07 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (make_hostent_internal): accept ai_family
	  check from Sam Roberts <sroberts at uniserve.com>.
	  [ruby-core:07691]

Mon May  1 12:23:19 2006    <sinara@blade.nagaokaut.ac.jp>

	* numeric.c (num_div): use floor rather than rb_Integer().
	  [ruby-dev:28589]

	* numeric.c (flo_divmod): the first element of Float#divmod should
	  be an integer. [ruby-dev:28589]

	* test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.

Sat Apr 29 22:42:08 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1_decode0): should initialize
	  flag. [ruby-core:07785]

Fri Apr 28 10:53:16 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): should not cut off 18 digits for no
	  reason.  [ruby-core:07796]

	* util.c (ruby_strtod): fixed wrong conversion.

Thu Apr 27 01:38:10 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_fill): internalize local variable "beg" to
	  pacify Coverity.  [ruby-core:07770]

Wed Apr 26 16:59:24 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_unpack): now supports CRLF newlines.  a patch from
	  <tommy at tmtm.org>.  [ruby-dev:28601]

Tue Apr 25 18:00:05 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c (delete_slaves): maybe increment the reference
	  count of a NULL Tcl_Obj [ruby-core:07759].

Tue Apr 25 07:55:31 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/jcode.rb (String::tr_s): should have translated non
	  squeezing character sequence (i.e. a character) as well.  thanks
	  to Hiroshi Ichikawa <gimite at gimite.ddo.jp> [ruby-list:42090]

Tue Apr 25 00:08:24 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* regex.c (re_compile_pattern): should check if c is not a
	  multibyte character.  a patch from KIMURA Koichi
	  <kimura.koichi at canon.co.jp>.  [ruby-dev:28598]

Fri Apr 21 15:19:13 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c (lib_eventloop_ensure): refer freed pointer
	  [ruby-core:07744] and memory leak.

Fri Apr 21 12:14:52 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c: document update patch from Sam Roberts
	  <sroberts at uniserve.com>.  [ruby-core:07701]

Wed Apr 19 13:55:27 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (arg): too much NEW_LIST()

	* eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.

Wed Apr 19 11:57:04 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.
	  [ruby-dev:28585]

	* parse.y (list_concat): revert last change.

	* parse.y (arg): use NODE_ARGSCAT for placeholder.

Wed Apr 19 11:13:17 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
	  mathew <meta at pobox.com>.  [ruby-core:07738]

Wed Apr 19 10:13:27 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_const_set): raise error when no target klass is
	  supplied.  [ruby-dev:28582]

Wed Apr 19 09:49:36 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (list_concat): should not modify nodes other than
	  NODE_ARRAY.  [ruby-dev:28583]

Tue Apr 18 17:40:37 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: add a binding to a container for a slave IP.

	* ext/tk/lib/tk.rb: update RELEASE_DATE.

	* ext/tk/tcltklib.c: forget to reset a Tcl interpreter.

	* ext/tk/stubs.c: fix potential bugs about handling rb_argv0.

Tue Apr 18 00:11:21 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c: block_unique should be 1, not frame_unique.
	  [ruby-dev:28577]

Fri Aug 11 15:39:25 2006  Eric Hodel  <drbrain@segment7.net>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_body): Make RDoc
	  ignore C function prototypes.  Patch by Tilman Sauerbeck
	  <tilman at code-monkey.de>.  [ruby-core:8574]
	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get
	  documented.

Mon Apr 10 01:03:10 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* prec.c (prec_prec_f): documentation patch from
	  <gerardo.santana at gmail.com>.  [ruby-core:07689]

Sat Apr  8 02:34:34 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_pow): second operand may be too big even if
	  it's a Fixnum.  [ruby-talk:187984]

Sat Apr  8 02:12:38 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* README.EXT: update symbol description.  [ruby-talk:188104]

Thu Apr  6 23:28:47 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* COPYING: explicitly note GPLv2.  [ruby-talk:187922]

Thu Apr  6 11:18:37 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/panedwindow.rb: lack of arguments. [ruby-core:7681]

Thu Apr  6 01:04:47 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tcltklib.c: fix SEGV when embedding to an application.
	  [ruby-core:7600]

	* ext/tk/tcltklib.c: fix SEGV at exit. [ruby-talk:186489]

	* ext/tk/tkutil/tkutil.c: follow to changing specification of
	  instance_eval on ruby-1.9.x.

	* ext/tk/lib/tk.rb: ditto.

	* ext/tk/lib/multi-tk.rb: ditto.

	* ext/tk/lib/tk.rb: remove warning about redefinition of methods.

	* ext/tk/lib/tk/variable.rb: remove warning about unseting Tcl
	  variables.

Wed Mar 29 20:54:44 2006  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (fole_getproperty): WIN32OLE#[] should accept
	  multi arguments.

	* ext/win32ole/tests/testWIN32OLE.rb (test_setproperty_bracket): ditto.

Wed Mar 29 10:07:44 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c (nkf_each_char_to_hex, encode_fallback_subchar,
	  e2w_conv): support C90 compiler.

Wed Mar 29 06:48:40 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (backtrace): reports aliased method names in a generated
	  backtrace.  a patch from "U.Nakamura" <usa at garbagecollect.jp>.
	  [ruby-dev:28471]

Mon Mar 27 22:19:09 2006  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/{nkf.c, utf8tbl.c, config.h}: imported nkf 2.0.6.
	  * Add --ic / --oc option and mapping tables.
	  * Add fallback option.
	  * Add --no-best-fit-chars option.
	  * Fix some bugs.

	* ext/nkf/nkf.c (nkf_split_options): added for parse option string.

	* ext/nkf/lib/kconv.rb (Kconv.to*): add -m0.
	  Note that Kconv.to* still imply -X.

Mon Mar 27 03:17:21 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): insecure calling should be checked for non
	  NODE_SCOPE method invocations too.

	* eval.c (rb_alias): should preserve the current safe level as
	  well as method definition.

Fri Mar 24 23:14:30 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (yield_under_i): pass self again for instance_eval().
	  [ruby-dev:28466]

Fri Mar 24 17:20:03 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (rb_f_sleep): remove description about SIGALRM which
	  is not valid on the current implementation.  [ruby-dev:28464]

Thu Mar 23 10:47:03 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (method_missing): should support argument splat in
	  super.  [ruby-talk:185438]

Mon Mar 20 12:05:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: Solaris SunPro compiler -rapth patch from
	  <kuwa at labs.fujitsu.com>.  [ruby-dev:28443]

Mon Mar 20 09:40:23 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: remove enable_rpath=no for Solaris.
	  [ruby-dev:28440]

Fri Mar 17 19:08:49 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: fix typo.
	  [ruby-core:07571]

Wed Mar 15 16:54:21 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): support libraries without *.so.

Wed Mar 15 16:35:43 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: should use
	  "rb_str_new(0, 0)" to make empty string.

Sat Mar 11 14:24:06 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::wrap): removed
	  space before argument parenthesis.  [ruby-talk:183630]

	* ruby.1: a clarification patch from David Lutterkort
	  <dlutter at redhat.com>.  [ruby-core:7508]

Sat Mar  4 15:26:40 2006  Tanaka Akira  <akr@m17n.org>

	* gc.c (id2ref): fix symbol test.

Sat Mar  4 01:08:07 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems
	  directories.  a patch from Eric Hodel <drbrain at segment7.net>.
	  [ruby-core:07423]

Thu Mar  2 19:44:18 2006  Tanaka Akira  <akr@m17n.org>

	* gc.c: align VALUE with sizeof(RVALUE) globally.
	  (is_pointer_to_heap): check alignment out of loop.
	  (id2ref): avoid collision between symbols and objects.
	  (rb_obj_id): ditto.  moved from object.c.
	  [ruby-talk:178364] [ruby-core:7305]

Thu Mar  2 18:58:18 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_thread_fd_writable): should not re-schedule output
	  from KILLED thread (must be error printing).

Thu Mar  2 17:57:49 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* gc.c: commited magic for reducing RVALUE size on windows. (24->20byte)
	  [ruby-core:7474]

Thu Mar  2 12:59:14 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (filetime_to_unixtime): should set tm_isdst to -1.
	  stat() didn't treat daylight saving time property on WinNT.
	  [ruby-talk:182100]

Thu Mar  2 08:02:42 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (add_heap): heap_slots may overflow.  a patch from Stefan
	  Weil <weil at mail.berlios.de>.

Wed Mar  1 00:24:31 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/rdoc/parsers/parse_rb.rb (read_escape): could not handle /\^/.
	  merged Mr. Ishizuka's lib/irb/ruby-lex.rb 's patch rev 1.29.
	  [ruby-talk:181631] [ruby-dev:28404]

Tue Feb 28 09:32:17 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/drb/extservm.rb (invoke_service_command): cannot invoke command
	  if command name is quoted on mswin32. [ruby-dev:28400]

Mon Feb 27 00:19:16 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.h (SYM2ID): should not cast to signed long.
	  [ruby-core:07414]

Fri Feb 24 20:07:23 2006  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/drb/drbtest.rb (add_service_command): quote pathnames in the
	  server's command line for space contained directory names.
	  Thanks, arton. [ruby-dev:28386]

Fri Feb 24 12:11:08 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* instruby.rb: install *.exe.manifest and *.dll.manifest if exist.
	  It's for VC++8.

Fri Feb 24 11:33:52 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub (HAVE_HYPOT): bcc32 has hypot().

Fri Feb 24 11:19:58 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* time.c (time_new_internal): add prototype to tell the compiler
	  arugments types.

	* win32/win32.c (NtInitialize): need to set a handler for VC++8.

Fri Feb 24 08:19:16 2006  NARUSE, Yui  <naruse@ruby-lang.org>

	* test.rb: Removed.  Obsolete by test/nkf.

	* ext/.document: enabled documents in nkf and kconv

	* ext/nkf/nkf.c ext/nkf/lib/kconv.rb: Add rdoc.

Thu Feb 23 22:39:59 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal
	  memory manager cannot handle large memory block properly.
	  ex: 10000.times { "" << "." * 529671; GC.start } # crash
	  [ruby-dev:28230]

Thu Feb 23 13:20:28 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360]

Tue Feb 21 02:18:46 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* configure.in (mingw): have link.  [ruby-list:41838]

	* win32/Makefile.sub (config.h): ditto.

Tue Feb 21 02:07:39 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (f_arglist): should set command_start = Qtrue for
	  command body.  [ruby-talk:180648]

Mon Feb 20 17:37:26 2006  Tanaka Akira  <akr@m17n.org>

	* mkconfig.rb: alias RbConfig for Config.

Mon Feb 20 12:27:53 2006  Kent Sibilev  <ksruby@gmail.com>

	* lib/rational.rb (Integer::gcd): small typo fix.
	  [ruby-core:07395]

Mon Feb 20 01:05:27 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rational.rb (Integer::gcd): replaced by gcd4 in
	  [ruby-core:07390].  [ruby-core:07377]

Mon Feb 20 00:57:02 2006  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.h (OSSL_Debug): should not use __func__.
	  [ruby-dev:28339]

Sun Feb 19 04:46:29 2006  Guy Decoux  <ts@moulon.inra.fr>

	* eval.c: initial value for block_unique must be 1.
	  [ruby-talk:180420]

Sat Feb 18 23:58:26 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/tracer.rb (Tracer::Tracer.add_filter): turn on tracer mode
	  only when caller() level size is one.  [ruby-core:07389]

	* lib/rdoc/parsers/parse_rb.rb: need not to require "tracer".
	  [ruby-core:07389]

	* sample/rtags.rb: ditto.

Sat Feb 18 12:18:26 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/fileutils.rb (FileUtils::fu_world_writable): make it
	  private.  [ruby-core:07383]

Sat Feb 18 00:22:39 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/tracer.rb: merged a minor clarification patch from Daniel
	  Berger <Daniel.Berger at qwest.com>.  [ruby-core:07376]

Fri Feb 17 11:18:42 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* util.c (ruby_strtod): Float("1e") should fail. [ruby-core:7330]

	* pack.c (EXTEND32): unpack("l") did not work where sizeof(long) != 4.
	  [ruby-talk:180024]

	* pack.c (pack_unpack): fixed integer overflow on template "w".
	  [ruby-talk:180126]

Fri Feb 17 09:39:29 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_thread_wait_for): sleep should always sleep for
	  specified amount of time.  [ruby-talk:180067]

Thu Feb 16 01:10:48 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (backtrace): frame->orig_func may not be initialized.
	  [ruby-core:07367]

Wed Feb 15 16:52:52 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): NODE_OP_ASGN1 should allow splat in its
	  argument list.  [ruby-core:07366]

	* parse.y (arg): avoid unnecessary extra argument.
	  [ruby-core:07366]

	* eval.c (rb_eval): honor visibility on OP_ASGN1 and
	  OP_ASGN2. [ruby-core:07366]

Wed Feb 15 10:09:51 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (yield_under_i): should not pass self as an argument to
	  the block for instance_eval.  [ruby-core:07364]

Wed Feb 15 09:20:35 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_obj_instance_eval): should be no singleton classes for
	  true, false, and nil.  [ruby-dev:28186]

Tue Feb 14 18:48:33 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (DMETHOD_P): accessing wrong frame.  [ruby-dev:28181]

	* eval.c (proc_invoke): preserve FRAME_DMETH flag.

Tue Feb 14 15:13:51 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/zlib/zlib.c: supress warning on test/zlib. [ruby-dev:28323]

Tue Feb 14 14:01:17 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* time.c (search_time_t): support non 32bit time_t environments.

	* win32/Makefile.sub (config.h): VC++8 has ``long long'' type.

	* win32/Makefile.sub (config.h): VC++8's time_t is 64bit value.

	* win32/win32.c (rb_w32_utime): drop read-only attribute before
	  changing file time.

	  all changes are backported from CVS HEAD.

Tue Feb 14 11:21:38 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (argf_forward): should not use frame->argv.
	  [ruby-core:07358]

Mon Feb 13 18:08:12 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): argument update propagation.  [ruby-dev:28044]

	* env.h: remove argv member from struct FRAME.

Mon Feb 13 13:27:00 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): should push class from binding if supplied.
	  [ruby-core:07347]

Mon Feb 13 00:04:00 2006  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (ERB::Compiler): add instance variable @insert_cmd to
	  change <%='s behavior. (backported 1.15 - 1.16)

Sat Feb 11 02:04:11 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): no need to push ruby_class.  [ruby-dev:28176]

Sat Feb 11 01:57:44 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_autoload): check if ruby_cbase is nil (during
	  instance_eval for objects cannot have singleton classes,
	  e.g. fixnums and symbols).  [ruby-dev:28178]

Tue Feb  7 23:03:24 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/zlib/zlib.c: should not access ruby objects in finalizer.
	  [ruby-dev:28286]

Mon Feb  6 16:02:51 2006  WATANABE Hirofumi  <eban@ruby-lang.org>

	* file.c (rb_thread_flock): ERROR_NOT_LOCKED is not an error on Cygwin.
	  In such situation, flock() should return 0.

Mon Feb  6 00:41:08 2006  Tanaka Akira  <akr@m17n.org>

	* ruby.h (RSTRUCT_LEN, RSTRUCT_PTR): defined for source level
	  compatibility with ruby 1.9.

Sun Feb  5 21:05:34 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* numeric.c (fix_to_s): removed workaround for radix 2. Historically,
	  rb_fix2str could only handle radix 8, 10, 16. (Rev1.37) But for now,
	  it can handle radix 2..36. [ruby-Bugs#3438] [ruby-core:7300]

Sun Feb  5 18:55:08 2006  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: imported from trunk, rev 1.129

	* lib/net/http.rb (add_field, get_fields): keep 1.8.2 backward
	  compatibility.

	* lib/net/https.rb: imported from trunk, rev 1.3.

	* lib/net/https.rb: #use_ssl? definition moved from net/http.rb.

Sun Feb  5 14:22:15 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/pstore.rb: should return default value if name is not found.
	  [ruby-core:7304]

	* lib/pstore.rb: should raise PStore::Error if not in transaction.

Sat Feb  4 22:51:43 2006  Tanaka Akira  <akr@m17n.org>

	* eval.c: apply the FreeBSD getcontext/setcontext workaround
	  only before FreeBSD 7-CURRENT.

Sat Feb  4 21:19:23 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (LK_ERR): ERROR_NOT_LOCKED is not an error.
	  In such situation, flock() should return 0.

Sat Feb  4 15:56:37 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* numeric.c (fix_to_s): (2**32).to_s(2) fails with exception where
	  sizeof(int) == 4 < sizeof(long). [ruby-core:7300]

Fri Feb  3 15:06:50 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/syck.c (syck_move_tokens): should reset p->cursor or etc
	  even if skip == 0. This causes buffer overrun.
	  (ex: YAML.load('--- "..' + '\x82\xA0' * 511 + '"'))

Thu Feb  2 23:51:18 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/emitter.c (syck_emitter_write): should not set '\0' on
	  emitter's marker. if marker points to the end of buffer, this causes
	  buffer overrun. (ex: YAML.dump("." * 12288))

Thu Feb  2 16:01:24 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): need not to protect $SAFE value.
	  [ruby-core:07177]

Thu Feb  2 14:45:53 2006  Ville Mattila  <ville.mattila@stonesoft.com>

	* configure.in: The isinf is not regognized by autoconf
	  library guesser on solaris 10. [ruby-core:7138]

Wed Feb  1 22:01:47 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)
	  where they are supported. modifing environ variable seems to
	  segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]

	* ruby.c (set_arg0): if use setenv(3), environ space cannot be used
	  for altering argv[0].

Tue Jan 31 14:46:28 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (rb_struct_select): update RDoc description.
	  [ruby-core:7254]

Tue Jan 31 11:58:51 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: add MultiTkIp#eval and bg_eval.

	* ext/tk/lib/tk/namespace.rb: TkNamespace#eval was enbugged at the
	  last commit. Now it will return a proper object.

Tue Jan 31 00:10:26 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.
	  ex: ruby -ryaml -e 'YAML.load("!map:B {}")' [ruby-core:7217]

Sat Jan 28 07:56:57 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/rdoc/usage.rb: support "a:0:33" style caller[-1]. In this case
	  file name is "a:0". I don't know this really happens though...
	  [ruby-Bugs:3344]

Wed Jan 25 22:29:04 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use
	  system routine if provided.  fixed: [ruby-core:07195]

Sun Jan 22 23:27:13 2006  Go Noguchi  <gonoguti@yahoo.co.jp>

	* lib/test/unit/autorunner.rb (process_args): ignore arguments after
	  '--' so that test scripts can handle them.  fixed: [ruby-dev:28258]

Sun Jan 22 22:09:52 2006  Tanaka Akira  <akr@m17n.org>

	* eval.c (POST_GETCONTEXT): define separately from PRE_GETCONTEXT on
	  IA64 to avoid reusing variable address.

Sun Jan 22 20:03:35 2006  Tanaka Akira  <akr@m17n.org>

	* eval.c (ruby_setjmp): define PRE_GETCONTEXT and POST_GETCONTEXT
	  instead of FUNCTION_CALL_MAY_RETURN_TWICE.
	  define PRE_GETCONTEXT to clear carry flag for workaround of
	  FreeBSD/i386 getcontext/setcontext bug.
	  [ruby-dev:28263]

Sat Jan 21 00:36:47 2006  Tanaka Akira  <akr@m17n.org>

	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): use only on SPARC and IA64
	  before gcc 4.0.3.
	  [ruby-dev:28247]

Thu Jan 19 22:21:23 2006  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mv): should remove file after copying.
	  [ruby-dev:28223]

Wed Jan 18 23:37:06 2006  Tanaka Akira  <akr@m17n.org>

	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): don't clobber %l7 of SPARC
	  if enable-shared.
	  (ruby_setjmp): call FUNCTION_CALL_MAY_RETURN_TWICE after getcontext
	  too.
	  reported by Pav Lucistnik and Marius Strobl.
	  http://lists.freebsd.org/pipermail/freebsd-sparc64/2006-January/003739.html

Tue Jan 17 11:32:46 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/setup.mak (MAKE): workaround for nmake 8.

Tue Jan 17 11:10:21 2006  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/{Makefile.sub,setup.mak}: invoke .bat via shell. workaround
	  for nmake 8.

Mon Jan 16 10:26:23 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/emitter.c (syck_emit_seq, syck_emit_map, syck_emit_item):
	  should output complex key mark even if map's key is empty seq/map.
	  [ruby-core:7129]

Sat Jan 14 05:37:06 2006  Tanaka Akira  <akr@m17n.org>

	* io.c (READ_DATA_PENDING, READ_DATA_PENDING_COUNT): defined
	  for DragonFly BSD 1.4.0.

Sat Jan 14 03:43:24 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* file.c (rb_file_s_chmod): avoid warning where sizeof(int) !=
	  sizeof(void*).

Fri Jan 13 19:14:56 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/rdoc/diagram.rb:
	    - properly quote bare element attributes
	    - terminates dangling elements (e.g. <img>, <br>, <link>, etc)
	    - converts "CVS" to the more HTML-friendly acronym element
	    - adds missing type attributes to style elements

	  based on Paul Duncan's patch <pabs@pablotron.org> [ruby-core:7028]

	* lib/rdoc/generators/html_generator.rb: ditto.
	* lib/rdoc/generators/template/html/hefss.rb: ditto.
	* lib/rdoc/generators/template/html/html.rb: ditto.
	* lib/rdoc/generators/template/html/kilmer.rb: ditto.

Thu Jan 12 11:53:08 2006  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkballoonhelp.rb: [bug fix] couldn't add to a widget
	  which is constructed with TkComposite module.
	  [new feature] support 'command' option which is called just before
	  popping up the balloon help.

Wed Jan 11 15:00:00 2006  Ville Mattila  <mulperi@iki.fi>

	* io.c (READ_PENDING*): Support solaris 64-bit environments.
	  Solaris defines a opaque FILE struct when compiling 64 bit
	  binaries. This means that we dont have access to _ptr etc.
	  members anymore. The solution by Steven Lumos is to define
	  FILE64 that has needed members available. I've modified
	  the origanal patch a bit so that it compiles both with gcc
	  and now free sun studio 11 compiler and both amd64 and sparc.
	  NOTE! We have to 64 bit solaris FILE structure time to time
	  otherwise we'll get breakage.
	  [ruby-core:7106]

Tue Jan 10 19:42:33 2006  Tanaka Akira  <akr@m17n.org>

	* gc.c (garbage_collect): mark ruby_current_node.
	  if an exception is raised in a finalizer called written in C by
	  rb_gc_call_finalizer_at_exit, ruby_set_current_source may use
	  collected ruby_current_node and mark_source_filename may corrupt
	  memory.

Tue Jan 10 13:30:34 2006  akira yamada  <akira@ruby-lang.org>

	* ext/syck/rubyext.c (syck_resolver_transfer): should be able to load
	  !ruby/object:Bignum syntax 1.8.3 dumped. [ruby-core:6159]

Tue Jan 10 12:47:41 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/yaml/rubytypes.rb (Fixnum): Bignum could not be loaded in
	  ruby 1.8.3/1.8.4. [ruby-core:6115]

	* lib/yaml/rubytypes.rb (Numeric): Subclass of Numeric could not
	  be dumped properly. [ruby-core:7047]

Tue Jan 10 12:00:48 2006  Aaron Schrab  <aaron @nospam@ schrab.com>

	* lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted
	  Symbols broken. [ruby-Bugs:2535]

Mon Jan  9 19:54:35 2006  arton  <artonx@yahoo.co.jp>

	* ext/zlib/extconf.rb: zlib compiled DLL version 1.2.3 distributed by
	  http://www.zlib.net/ has zdll.lib. [ruby-dev:28209]

Mon Jan  9 14:17:12 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/Makefile.sub (OPTFLAGS): I have experienced trouble on y- flag,
	  (VisualC++6) so use -O2b2xg- if  $(MSC_VER) < 1400. [ruby-core:7040]

Mon Jan  9 14:17:12 2006  Kero van Gelder  <rubyforge @nospam@ kero.tmfweb.nl>

	* lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075]

Sat Jan  7 15:40:07 2006  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (singleton): get rid of segfault on syntax error.
	  fixed: [ruby-core:07070]

Fri Jan  6 10:16:20 2006  Steven Lumos  <steven@lumos.us>

	* io.c (READ_DATA_PENDING): defined for 64bit Solaris on SPARC.
	  [ruby-core:7057]
	  (READ_DATA_PENDING_COUNT): ditto.
	  (READ_DATA_PENDING_PTR): ditto.

Sun Jan  1 17:07:59 2006  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_seekdir): should not segfault even if passed
	  the location which rb_w32_telldir didn't return. [ruby-core:7035]
	  (I think HEAD implementation is better. but binary compatibility)

	* test/ruby/test_dir.rb: added.

Sat Dec 31 22:57:00 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_save_context): should not recycle scope object used
	  in a thread.  fixed: [ruby-dev:28177]

Fri Dec 30 18:22:42 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (garbage_collect): mark objects refered from aborting threads.
	  [ruby-dev:28190]

	* win32/Makefile.sub: VC++8 support.

Fri Dec 30 14:24:53 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* dir.c (glob_helper): do not use TRUE for djgpp.

Fri Dec 30 04:54:40 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (eaccess): workaround for VC++8 runtime.

	* win32/win32.c (ioinfo): VC++8 support.

Thu Dec 29 23:59:37 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_gc_mark_threads): leave unmarked threads which won't wake
	  up alone, and mark threads in the loading table.  [ruby-dev:28154]

	* eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked
	  threads.  [ruby-dev:28172]

Thu Dec 29 17:02:07 2005  Tanaka Akira  <akr@m17n.org>

	* test/ruby/envutil.rb (EnvUtil.rubybin): search "ruby" instead of
	  "miniruby".  [ruby-dev:28140]

Tue Dec 27 16:59:52 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* test/drb/drbtest.rb (DRbService::self.ext_service): increase
	  timeout limit.  a patch from Kazuhiro NISHIYAMA
	  <zn at mbf.nifty.com>. [ruby-dev:28132]

Tue Dec 27 08:29:18 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket#post_connection_chech):
	  treat wildcard character in commonName. [ruby-dev:28121]

Mon Dec 26 22:32:47 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval), gc.c (gc_mark_children), node.h (NEW_ALIAS,
	  NEW_VALIAS), parse.y (fitem): allow dynamic symbols to
	  NODE_UNDEF and NODE_ALIAS.
	  backported from trunk.  fixed: [ruby-dev:28105]

Mon Dec 26 08:50:36 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (ev_const_get): fixed a bug in constant reference during
	  instance_eval.  [yarv-dev:707]

	* eval.c (ev_const_defined): ditto.

	* lib/yaml.rb (YAML::add_domain_type): typo fixed.  a patch from
	  Joel VanderWerf <vjoel at path.berkeley.edu>.
	  [ruby-talk:165285] [ruby-core:6995]

Sat Dec 24 18:58:14 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.4 released.

Fri Dec 23 10:30:23 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/digest/sha2/sha2.c (ULL): support AIX C.  a patch from
	  Kailden <kailden at gmail.com>.  [ruby-core:06984]

Wed Dec 21 16:53:06 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* file.c (w32_io_info): should return handle because FileIndex is
	  valid only while file is open. [ruby-dev:28088]

Wed Dec 21 14:53:26 2005  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (test_kernel_open): use File.identical?.
	  [ruby-talk:171804]

Tue Dec 20 22:41:17 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (eval_under_i): evaluate source in caller's frame.
	  [ruby-dev:28076]

	* eval.c (rb_call_super): use original method name on exception.
	  [ruby-dev:28078]

Tue Dec 20 13:11:59 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/rubyext.c: fixed GC problem (backported HEAD 1.55 - 1.62)
	  [ruby-dev:27839]

	* ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is
	  NULL or not before S_FREE.

	* st.c: uses malloc instead of xmalloc to avoid GC. syck uses st_insert
	  in gram.c to insert node from rb_syck_bad_anchor_handler into
	  SyckParser's hash table. if GC occurs in st_insert, it's not under
	  SyckParser's mark system yet. so RString can be released wrongly.
	  [ruby-dev:28057]

Tue Dec 20 12:53:23 2005  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility
	  with previous Ruby versions, documents are no longer headless.

Tue Dec 20 01:46:48 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_f_backquote): fix a GC problem on
	  IA64 with gcc 4.0.3 20051216 (prerelease) -O3.

Mon Dec 19 23:32:39 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (rb_symname_p): fixed wrong validation.  [ruby-dev:28047]

Sat Dec 17 03:57:01 2005  Tanaka Akira  <akr@m17n.org>

	* bignum.c (rb_big_rshift): fix a GC problem on
	  IA64 with gcc 4.0.3 20051216 (prerelease).

Sat Dec 17 03:30:23 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (bmcall): fix a GC problem by tail call on
	  IA64 with gcc 4.0.3 20051216 (prerelease).

Fri Dec 16 00:54:06 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* signal.c (Init_signal): revert C++ style comment.
	  [ruby-dev:28041]

Thu Dec 15 12:35:14 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/tmpdir.rb: merged RDoc patch from Eric Hodel <drbrain at
	  segment7.net>.  [ruby-core:06894]

Thu Dec 15 01:33:31 2005  Tanaka Akira  <akr@m17n.org>

	* ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on
	  x86_64 with gcc 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)

Wed Dec 14 12:11:46 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* test/gdbm/test_gdbm.rb: specify pid for the argument of
	  Process.wait.  workaround for Cygwin.

Wed Dec 14 12:01:26 2005  Tanaka Akira  <akr@m17n.org>

	* marshal.c (r_object0): fix a GC problem for reading a bignum on
	  IA64 with gcc 3.3.5 (Debian 1:3.3.5-13).

Tue Dec 13 12:23:47 2005  Tanaka Akira  <akr@m17n.org>

	* re.c (rb_reg_regcomp): fix a GC problem on x86_64 with
	  gcc 3.3.5 (Debian 1:3.3.5-13).

Tue Dec 13 01:44:16 2005  Tanaka Akira  <akr@m17n.org>

	* array.c (rb_ary_diff): fix a GC problem on IA64 with
	  gcc 3.3.5 (Debian 1:3.3.5-13).
	  When rb_ary_push is called, there was no register which contains
	  `hash' but `&RHASH(hash)->tbl' instead.

Tue Dec 13 00:08:09 2005  Tanaka Akira  <akr@m17n.org>

	* sprintf.c (rb_str_format): fix a GC problem.
	  [ruby-dev:28001]

Mon Dec 12 15:54:56 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* test/openssl/test_ssl.rb (test_parallel): call GC.start to close
	  unused files. [ruby-dev:27981]

Mon Dec 12 00:33:56 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/digest/digest.c (rb_digest_base_s_digest): add volatile to
	  protect temporary context object.  [ruby-dev:27979]

	* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
	  be called before actual variable initialization.
	  [ruby-dev:27986]

Fri Dec  9 23:31:02 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rexml/encoding.rb (encoding=): give priority to particular
	  conversion to iconv.  [ruby-core:06520]

Thu Dec  8 02:07:19 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (umethod_bind): adjust invoking class for module method.
	  [ruby-dev:27964]

Thu Dec  8 00:40:52 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (call_trace_func): klass parameter should be a
	  class/module that defines calling method.  [ruby-talk:169307]

Wed Dec  7 17:10:27 2005  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* sprintf.c (rb_f_sprintf): [ruby-dev:27967]

Wed Dec  7 15:31:35 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_str_format): integer overflow check added.

	* sprintf.c (GETASTER): ditto.

Wed Dec  7 01:02:04 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/README.macosx-aqua: [new document] tips to avoid the known
	  bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X.

	* ext/tk/tcltklib.c: fix bug on switching threads and waiting on the
	  deleted interpreter on vwait and tkwait command.

	* ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk
	  interpreter.

	* ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument.

	* ext/tk/sample/demos-en/image3.rb: ditto.

	* ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X.

	* ext/tk/sample/demos-jp/menu8x.rb: ditto.

	* ext/tk/sample/demos-en/menu.rb: ditto.

Tue Dec  6 16:37:57 2005  Yuya Nishida  <yuya@j96.org>

	* eval.c (exec_under): avoid accessing ruby_frame->prev.
	  [ruby-dev:27948]

Thu Dec  1 00:50:33 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_funcall2): allow to call protected methods.
	  fixed: [ruby-dev:27890]

Wed Nov 30 23:52:17 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (NEWHEAP, ADD2HEAP): set count after pointer was set.
	  fixed: [ruby-dev:27896]

Wed Nov 30 13:43:07 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-expr-beg): support $! at the end of
	  expression.   [ruby-dev:27868]

Mon Nov 28 18:55:43 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (init_inetsock_internal): remove setting
	  SO_REUSEADDR option on server socket on Cygwin.
	  fixed: [ruby-core:6765] ([ ruby-Bugs-2872 ])

Mon Nov 28 13:08:54 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_strerror): remove all CR and LF. (avoid broken
	  error message on bccwin32 + winsock)

Mon Nov 28 09:21:49 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/mkmf.rb (create_makefile): should not change sodir with
	  dir.gsub!. (bccwin32 failed to install third party exntesions)
	  [ruby-dev:27834]

Sun Nov 27 00:56:13 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/wsdl/xmlSchema/complexContent.rb: missing
	  ComplexContent#elementformdefault method.

Sat Nov 26 19:57:45 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* dln.c (conv_to_posix_path): should initialize posix.

Thu Nov 24 21:05:58 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* configure.in (AC_CHECK_FUNCS): need to check link().
	  fixed: [ruby-dev:27814]

Thu Nov 24 01:22:25 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* file.c (w32_io_info): CreateFile failed on Win9x if file was already
	  opened. (FILE_SHARE_READ was needed, but actually I don't understand
	  the flags of CreateFile well...)

Wed Nov 23 20:59:01 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get
	  [Tk8.5 feature].

	* ext/tk/lib/tk/text.rb: supports new indices modifires on a Text
	  widget [Tk8.5 feature].

	* ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.

	* ext/tk/lib/tk/autoload.rb: ditto.

	* ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5
	  feature].

Wed Nov 23 18:55:31 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* file.c (w32_io_info): should not call GetFileInformationByHandle
	  for pipe.

	* file.c (w32_io_info): checks return value from rb_w32_get_osfhandle.

	* file.c (w32_io_info): now can identify directory on WinNT.

Wed Nov 23 03:40:49 2005  Guy Decoux  <ts@moulon.inra.fr>

	* re.c (KR_REHASH): should cast to unsigned for 64bit CPU.
	  [ruby-core:06721]

Wed Nov 23 11:01:33 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* intern.h, file.c: failed to compile on windows.

Wed Nov 23 07:26:44 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.

	* ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use
	  OPENSSL_malloc to allocate X509V3_CTX.

	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use
	  X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which
	  values are placed in separate section).

	* test/openssl/test_x509ext.rb: new file.

Wed Nov 23 01:22:57 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (test_identical): test if two files are identical.

	* file.c (rb_f_test): support DOSISH systems where st_ino is not
	  reliable.  fixed: [ruby-core:06672]

	* win32.h, win32.c (rb_w32_osid): check the running platform.

Tue Nov 22 23:52:06 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb: match incomplete (in current enconding) multibyte
	  string.  http://inamode6.tokuhirom.dnsalias.org/show/1551

Tue Nov 22 18:36:11 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (winnt_stat): set mapped errno instead of ENOENT.

Tue Nov 22 14:46:57 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (rb_file_s_basename): skip slashes just after UNC top slashes.

	* test/ruby/test_path.rb (test_dirname, test_basename): follow new
	  spec. and add new tests.

Tue Nov 22 13:18:32 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_stat): Dir.chdir('//server/shared');
	  p Dir.glob('*') should work on WinNT. (implemented our own
	  stat(2) on WinNT) [ruby-list:41552] [ruby-dev:27711]

Tue Nov 22 02:31:53 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/tile.rb: bug fix (Tk::Tile::USE_TTK_NAMESPACE
	  is not defined).

Tue Nov 22 01:45:21 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_basename): DOSISH_UNC is defined on cygwin but
	  DOSISH is not.  fixed: [ruby-dev:27797]

Mon Nov 21 22:50:48 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_path_skip_prefix, rb_file_s_basename): UNC without path
	  should not be splitted.  fixed: [ruby-dev:27776] [ruby-dev:27786]

	* parse.y (dsym): prohibit empty symbol literal by interpolation.
	  fixed: [ruby-talk:166529]

Mon Nov 21 16:03:48 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/setup.mk: findstr doesn't exist on win9x.
	  fixed: [ruby-dev:27756]

Sun Nov 20 22:34:06 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (rb_symname_p): [ not followed by ] is not valid symbol.
	  fixed: [ruby-talk:166520]

Sat Nov 19 19:57:54 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/fileutils.rb (FileUtils::ln): ln documentation fix.
	  [ruby-core:06661]

Sat Nov 19 07:34:32 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/font.rb: remove dependency on Ruby's version (1.8
	  or 1.9).

	* ext/tk/lib/tkextlib/ICONS/icons.rb: ditto.

	* ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.

Fri Nov 18 17:57:08 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (rb_file_s_dirname): should use skipprefix for UNC path.
	  pointed out by nobu ([ruby-dev:27744]). fixed: [ruby-core:5076]

Fri Nov 18 17:35:09 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: add restriction to access the entried
	  command table and manipulate other IPs (for reason of security).
	  Now, a IP object can be controlled by only its master IP or the
	  default IP.

	* ext/tk/lib/remote-tk.rb: add restriction to manipulate.

	* ext/tk/tcltklib.c (ip_is_slave_of_p): add TclTkIp#slave_of?(ip)
	  to check manipulability.

	* ext/tk/lib/tk.rb: bug fix on handling of Tcl's namespaces.

	* ext/tk/lib/tk/namespace.rb: ditto.

Fri Nov 18 17:26:06 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (rb_file_s_dirname): added checks for some patterns with drive
	  letter. fixed: [ruby-dev:27738]

	* test/ruby/test_path.rb (test_dirname): added tests for above
	  patterns.

Fri Nov 18 12:18:02 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.h (S_IFIFO): r,w = IO.pipe; r.stat.pipe? now
	  returns true on VisualC++6.

Wed Nov 16 23:24:17 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (static-ruby): overridable.

	* ext/extmk.rb (parse_args): force to link extensions statically only
	  if static is given for extstatic.

	* ext/extmk.rb (RUBY, RUBYW): overridable.

Tue Nov 15 23:46:35 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/find.rb (Find::find): should not ignore symbolic links to
	  non-existing files.  [ruby-talk:165866]

Tue Nov 15 16:23:26 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* array.c (rb_ary_fill): previous commit disabled this usage:

	    a = [0,1,2,3,4,5,6,7,8,9]
	    a.fill {|i| a[i] * 10} #=> [nil, nil, ...., nil]

	  previous commit has the advantage of early garbage collection, but
	  potensially this would break some script. so I reverted behavior.

Tue Nov 15 16:04:10 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* array.c (rb_ary_fill): tail elements were vanished when the middle
	  part of array was filled. (ie: [0,1,2,3,4].fill(-1,2,1) => [0,1,-1])

	* test/ruby/test_array.rb (test_fill): added.

Tue Nov 15 14:39:16 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_fill): should adjust array length correctly when
	  an array is expanded in the fill process.  [ruby-core:06625]

Mon Nov 14 23:49:57 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_readlink): ERANGE will occur only on GPFS.
	  [ruby-dev:27699]

Mon Nov 14 17:36:22 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_first): RDoc update from Daniel Berger
	  <djberg96@yahoo.com>.  [ruby-core:06577].

Fri Nov 11 10:31:44 2005  Zach Dennis  <zdennis@mktec.com>

	* ext/socket/socket.c: Socket Documentation. [ruby-core:6552]

Fri Nov 11 08:20:56 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in (OUTFLAG): keep trailing spaces.  [ruby-dev:27666]

	* mkconfig.rb: substitution refereces added.

Fri Nov 11 07:44:18 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* configure.in: undef HAVE_LINK on BeOS. (link(2) always returns
	  EINVAL, and this causes error in test/fileutils.)

	* file.c: overwride chown(2) and fchown(2) on BeOS. (these functions
	  should not change user/group id if -1 is passed as corresponding
	  argument, and this causes error in test/fileutils too)
	  [ruby-dev:27672]

	* file.c (rb_file_s_link): checks HAVE_LINK.

Tue Nov  8 15:32:27 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/drb/ssl.rb (DRb::SSLConfig#accept): fixed typo.
	  [ruby-dev:27560] [ruby-core:4627]

Mon Nov  7 13:43:51 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/stubs.c (_nativethread_consistency_check): use simpler
	  (low cost) way to check whether the Tcl interpreter was compiled
	  with threads enabled of not.

	* ext/tk/tcltklib.c: reduce warnings.

	* ext/tk/tkutil/tkutil.c: ditto.

Mon Nov  7 00:06:58 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/yaml.rb: removed :nodoc: to generate Kernel doc. [ruby-core:6324]

Sun Nov  6 23:39:13 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (Iconv::BrokenLibrary): exception when detected a
	  bug of underlying library.

Sun Nov  6 21:46:59 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tk/stubs.c (ruby_tcl_create_ip_and_stubs_init): should touch
	  interpreter after initialization is done. [ruby-dev:27638]

Sun Nov  6 20:13:27 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_readlink): readlink(2) on AIX fails with ERANGE if
	  buffer size is less than required.  fixed: [ruby-dev:27634]

Wed Nov  2 20:25:28 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/extconf.rb: ext/tk/extconf.rb: change the check parameter
	  for Win32.

Wed Nov  2 20:14:53 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib: merge into ext/tk and remove.

Wed Nov  2 19:03:06 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_rbUpdateObjCmd,
	  ip_rb_threadUpdateObjCmd): passed improper flags to DoOneEvent().

	* ext/tk/tkutil.c: use rb_obj_respond_to() instead of rb_respond_to().

Tue Nov  1 14:20:11 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call_super): should call method_missing if super is
	  called from Kernel method.

	* eval.c (exec_under): frame during eval should preserve external
	  information.

Tue Nov  1 10:50:17 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: should check ERR_peek_last_error().
	  [ruby-dev:27597]

	* ext/openssl/ossl.c (ossl_raise): ditto.

Mon Oct 31 17:34:46 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: use proper option for Sun linker. A patch from
	  Shinya Kuwamura <kuwa at labs.fujitsu.com>.  [ruby-dev:27603]

Mon Oct 31 11:27:22 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb (test_s_open_error):
	  skip on Win32/DOS platforms.

Mon Oct 31 05:49:23 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must
	  not be empty. [ruby-talk:161220]

	* test/openssl/test_cipher.rb: add test for Cipher#update("").

Mon Oct 31 05:37:20 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpservlet/cgihandler.rb
	  (WEBrick::HTTPServlet::CGIHandler#do_GET): the value of Set-Cookie:
	  header field should be splited into each cookie.  [ruby-Bugs:2199]

	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookie): new method
	  to parse the value of Set-Cookie: header field.

	* test/webrick/test_cookie.rb, test/webrick/test_cgi.rb,
	  test/webrick/webrick.cgi: add some test for cookie.

Mon Oct 31 03:19:36 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/readline/readline.c (readline_readline): type check.
	  [ruby-core:6089]

	* numeric.c (fix_rshift): RDoc fix.  [ruby-core:6351]

	* util.h (strtod): add #undef for platforms defines strtod()
	  macro.   [ruby-dev:27563]

Mon Oct 31 02:35:59 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/ruby/test_float.rb (test_precision): test by assert_in_delta.
	  [ruby-dev:27575]

Sat Oct 29 01:58:25 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/etc/etc.c: document update from mathew <meta@pobox.com>.
	  [ruby-core:06473]

	* ext/fcntl/fcntl.c: ditto.

Thu Oct 27 16:45:31 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (scan_once): wrong condition to use mbclen2().
	  [ruby-dev:27535]

Wed Oct 26 09:27:27 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/implicit.c (syck_type_id_to_uri): should return
	  newly allocated memory. otherwise, type_id will be freed
	  twice. [ruby-dev:27384] [ruby-core:6385]

Wed Oct 26 09:04:51 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ruby.h (Qfalse, Qtrue, Qnil, Qundef): make sure these immediate
	  values have VALUE type. there is an environment where sizeof(VALUE)
	  != sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS
	  and received by 64bit integer (VALUE), upper bits may have garbage value.
	  [ruby-dev:27513]

Wed Oct 26 01:58:19 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_EXTERN): macro to export symbols in shared
	  library.  [ruby-core:05528]

	* defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to
	  configuration pass.

	* ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.

Tue Oct 25 15:32:00 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/rational.rb: applied documentation patch from Gavin Sinclair
	  <gsinclair@gmail.com>.  [ruby-core:06364]

	* lib/irb.rb (IRB::Irb::eval_input): handle prompts with newlines
	  in irb auto-indentation mode.  [ruby-core:06358]

Tue Oct 25 02:12:08 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::LABEL_LIST_RE):
	  reduce redundant backtrack.  [ruby-talk:161771]

Tue Oct 25 00:27:35 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/*: RDoc documentation from Eric Hodel
	  <drbrain@segment7.net> added.

Mon Oct 24 21:14:29 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in, io.c: use sys/syscall.h if syscall.h is not available.
	  [ruby-core:06247]

Mon Oct 24 20:49:45 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/Win32API/lib/win32/resolv.rb (get_info): support multiple DNS.
	  fixed: [ruby-list:40058], [ruby-dev:27479]

Mon Oct 24 07:57:56 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/tk/lib/tk/canvas.rb (TkCanvasItemConfig::__item_val2ruby_optkeys):
	  typo fixed.  [ruby-talk:162187]

	* ext/tk/lib/tk/menu.rb (TkMenuEntryConfig::__item_val2ruby_optkeys):
	  ditto.  [ruby-core:06359]

Sun Oct 23 21:50:15 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/enumerator/enumerator.c: applied documentation patch from
	  James Edward Gray II <james@grayproductions.net>.
	  [ruby-core:06348]

Sun Oct 23 07:11:11 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/extconf.rb: improve messages [ruby-core:06325].

	* ext/tk/lib/tk.rb, ext/tk/lib/tk/canvas.rb, ext/tk/lib/tk/entry.rb,
	  ext/tk/lib/tk/frame.rb, ext/tk/lib/tk/image.rb,
	  ext/tk/lib/tk/itemconfig.rb, ext/tk/lib/tk/labelframe.rb,
	  ext/tk/lib/tk/listbox.rb, ext/tk/lib/tk/menu.rb,
	  ext/tk/lib/tk/radiobutton.rb, ext/tk/lib/tk/scale.rb,
	  ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tk/text.rb,
	  ext/tk/lib/tk/toplevel.rb: improve conversion of option values.

	* ext/tk/lib/tkextlib/*: ditto.

	* ext/tk/lib/tkextlib/*: update to support ActiveTcl8.4.11.2.

	* ext/tk/lib/tkextlib/trofs/*: support Trofs 0.4.3.

	* ext/tk/lib/tkextlib/tile/*: support Tile 0.7.2.

	* ext/tk/lib/tkextlib/vu/*: support vu 2.3.0.

	* ext/tk/lib/tkextlib/tcllib/*: support Tcllib 1.8 (Tklib 0.3).

Sat Oct 22 23:54:07 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb, lib/mkmf.rb (with_config): support --with-extension
	  options.  [ruby-dev:27449]

Sat Oct 22 13:26:57 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check
	  if valid as a symbol name more strictly.  [ruby-dev:27478]

	* test/ruby/test_symbol.rb: tests for [ruby-core:03573].

	* time.c (rb_strftime): removed meaningless volatile modifiers, and
	  concatenate successive nul characters at once.  [ruby-dev:27472]

Fri Oct 21 19:21:56 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* rubysig.h (CHECK_INTS): fixed typo. (I believe bit-or is improper)

Fri Oct 21 17:49:32 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bin/erb (ERB::Main::run): typo fixed.  [ruby-core:06337]

Fri Oct 21 15:27:17 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bignum.c (bignew_1): convertion from `int' to `char' discards
	  upper bits, (ie. (char)0xff00 -> 0) so it's better to test if
	  nonzero and set 0 or 1 instead of simply casting ... as a flag usage.
	  (but I believe this won't cause actual bug in current implementation)
	  [ruby-dev:27055]

	* time.c: should use LONG_LONG instead of `long long'.

Thu Oct 20 09:37:15 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/mkmf.rb (create_makefile): Borland make seems not to allow
	  empty dependency list. If this change is not good, please correct
	  it.

Thu Oct 20 07:55:09 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): get rid of a restriction
	  of Borland make.  fixed: [ruby-dev:27460]

Thu Oct 20 00:13:18 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* rubysig.h (CHECK_INTS): fix typo.

Wed Oct 19 23:58:03 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): do not create unnecessary empty
	  directories.  fixed: [ruby-dev:27451]

Wed Oct 19 19:26:15 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (rb_gc_mark_parser): get rid of segfault with old yacc.
	  fixed: [ruby-dev:27439]

Wed Oct 19 08:28:32 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_join): elements may contain null pointer strings.
	  report and fixed by Lloyd Zusman (hippoman): [ruby-core:06326]

Wed Oct 19 02:34:33 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c, gc.c, time.c: made internal symbols static.  [ruby-dev:27435]

Wed Oct 19 01:27:07 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* regex.c (re_compile_pattern): numeric literal inside character class
	  disabled succeeding backtrack.  fixed: [ruby-list:41328]

Mon Oct 17 21:18:50 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (parser_heap): byacc never free parser stack.
	  fixed: [ruby-dev:27428]

Mon Oct 17 16:04:47 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* file.c (chmod_internal, lchmod_internal): fixed type of 2nd argument.

Sun Oct 16 22:16:51 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: omit non-existing directories.

Sun Oct 16 14:30:05 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb (Rinda::Tuple#initialize): check remote hash
	  tuple. fixed: [ruby-list:41227]

	* test/rinda/test_rinda.rb: test it.

Sun Oct 16 03:38:07 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* rubysig.h (CHECK_INTS): prevent signal handler to run during
	  critical section.  [ruby-core:04039]

	* eval.c (load_wait): need not to call rb_thread_schedule()
	  explicitly.  [ruby-core:04039]

	* eval.c (rb_thread_schedule): clear rb_thread_critical.
	  [ruby-core:04039]

Sat Oct 15 19:56:38 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* bin/erb: typo fixed, again. thanks, Doug Kearns.

Fri Oct 14 22:08:26 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (ioctl): should set errno.

Fri Oct 14 16:57:32 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/config.rb (Config::FileHandler): :UserDir should be nil.
	  It is harmful to permit the access to ~/public_html by default.
	  suggested by Hiroyuki Iwatsuki.

Thu Oct 13 23:29:51 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (HEAPCNT): bison allocates indivisible size.
	  fixed: [ruby-core:06261]

	* io.c, pack.c, ext/syck/rubyext.c, ext/syck/syck.h, missing/isinf.c:
	  get rid of warnings.  fixed: [ruby-core:06247]

Wed Oct 12 12:52:57 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.c (Init_openssl): should call
	  OpenSSL_add_ssl_algorithms().

Wed Oct 12 11:08:54 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* file.c (rb_f_test): typo in RDoc comments.

Tue Oct 11 21:41:58 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_obj_respond_to): check if obj responds to the given
	  method with the given visibility.  [ruby-dev:27408]

	* eval.c (rb_respond_to): conform to Object#respond_to?.  [ruby-dev:27411]

Tue Oct 11 00:01:21 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* st.c (st_free_table): do not call free() but xfree().
	  [ruby-core:06205]

Sat Oct  8 20:04:40 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (Init_Binding): add Binding#dup method.  [yarv-dev:666]

	* parse.y (rb_parser_malloc, rb_parser_free): manage parser stack on
	  heap.  [ruby-list:41199]

	* ext/iconv/charset_alias.rb: parse config.charset_alias file directly.

Fri Oct  7 09:54:00 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may
	  not be parsed correctly.  A patch from August Z. Flatby
	  (augustzf) in [ruby-Patches-2595].  [ruby-core:06183]

Thu Oct  6 20:12:16 2005  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c (strscan_free): remove useless code.
	  [ruby-dev:26368] [ruby-dev:27389]
	  (backported from trunk, rev 1.22)

Wed Oct  5 04:42:38 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/xmlrpc/server.rb (XMLRPC::Server#initialize): should mount the
	  servlet on "/".

Wed Oct  5 03:59:09 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/xmlrpc/server.rb (XMLRPC::Server#serve): delete wrong call
	  of "join".

Mon Oct  3 00:04:00 2005  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* pack.c (EXTEND16): [ruby-dev:27383]

Thu Sep 29 10:26:18 2005  Tanaka Akira  <akr@m17n.org>

	* ext/dl/dl.c (rb_io_to_ptr): abolish sizeof(FILE).
	  [ruby-dev:27317]

Thu Sep 29 07:22:05 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* evalc. (rb_f_send): underscores need to be escaped.
	  fixed by Doug Kearns.  [ruby-core:06053]

Thu Sep 29 00:57:35 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ev_const_get), variable.c (rb_const_get_0): retry only when
	  autoload succeeded.

	* variable.c (rb_autoload_load): now return true if autoload
	  succeeded.  fixed: [ruby-dev:27331]

Wed Sep 28 23:42:15 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (apply2files): add prototype.

	* file.c (rb_stat_inspect): constified.

	* class.c (rb_mod_init_copy, rb_class_init_copy), file.c (rb_stat_init_copy),
	  numeric.c (num_init_copy), object.c (rb_obj_init_copy, Init_Object),
	  re.c (match_init_copy, rb_reg_init_copy), time.c (time_init_copy):
	  undocumented.

Wed Sep 28 23:09:23 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb: document update from James Edward Gray II
	  <james@grayproductions.net>.  [ruby-core:06027]

Wed Sep 28 15:14:19 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI#start): req.query_string should
	  refer the value of QUERY_STRING. [ruby-list:41186]

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#query_string=):
	  add new method.

Wed Sep 28 10:45:44 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: cannot compile with Tcl/Tk8.0.x
	  [ruby-dev:27335].

Wed Sep 28 08:12:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (read_buffered_data): check if reached EOF.  fixed: [ruby-dev:27334]

Wed Sep 28 07:56:52 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.
	  [ruby-dev:27237], [ruby-core:05854]

	* lib/yaml/tag.rb (Module#yaml_as): suppress warnings.

	* lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.

Wed Sep 28 03:23:35 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* rubysig.h: fixed build problem with --enable-pthread on platforms
	  which don't have setitimer().

Mon Sep 26 22:32:13 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (set_trace_func): add rb_secure(4) to prevent adding
	  tracing function.

Sun Sep 25 12:05:10 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* bin/erb: typo fixed.

Sun Sep 25 01:46:43 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-calculate-indent): arrange deep-indent
	  closing parenthesis at same column as the opening.

Sun Sep 25 00:42:11 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately.
	  fixed: [ruby-list:41168]

	* misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent
	  level for continuous line inside parentheses.
	  http://nabeken.tdiary.net/20050915.html#p02

Sun Sep 25 00:18:11 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (unknown_node): show more information.  [ruby-dev:26196]

Sat Sep 24 08:56:01 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (cd): no longer accept :noop option, related
	  code is useless (backported from trunk, rev 1.67).
	  [ruby-core:05858] [ruby-Bugs:2494]

Sat Sep 24 08:38:07 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb: fix visibility of FileUtils::NoWrite, Verbose,
	  DryRun (backported from trunk, rev 1.66). [ruby-core:05954]

	* test/fileutils/test_nowrite.rb: test it.

	* test/fileutils/test_dryrun.rb: new file.

	* test/fileutils/test_verbose.rb: new file.

Sat Sep 24 02:40:20 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb: document update from James Edward Gray II
	  <james@grayproductions.net>.  [ruby-core:05942]

Thu Sep 22 23:36:24 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (find_executable0): default path if environment is not
	  set.  [ruby-dev:27281]

Thu Sep 22 16:33:12 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* test/readline/test_readline.rb (TestReadline::replace_stdio):
	  merged the patch of [ruby-dev:25232] instead of [ruby-dev:25223].

Wed Sep 21 23:30:44 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (configuration): generalized nmake dependent code.

Wed Sep 21 09:07:55 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.3 released.

Wed Sep 21 08:52:25 2005  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/token.c: correctly compute identation of a block
	  scalar's parent node. [ruby-talk:150620]

Wed Sep 21 08:20:24 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* README.EXT, README.EXT.ja: add new features.

Wed Sep 21 07:43:58 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (default_argv, Arguable#options): defaults strings
	  to be parsed to Arguable instance.

Wed Sep 21 02:44:09 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (path_check_0): disallow sticky world writable directory
	  in PATH (and $LOAD_PATH).  [ruby-dev:27226]

	* file.c (fpath_check): typo fixed.

Tue Sep 20 22:29:49 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/wsdl/simpletype/rpc/test_rpc.rb, test/wsdl/ref/test_ref.rb,
	  test/wsdl/any/test_any.rb test/soap/wsdlDriver/test_calc.rb:
	  suppress deliberate warnings with $VERBOSE = nil.

Tue Sep 20 21:26:23 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag
	  is not available.  fixed: [ruby-dev:27187]

Tue Sep 20 18:23:04 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (thread_mark): mark th->last_status.  [ruby-dev:27179]

Tue Sep 20 18:20:33 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/yaml.rb: require 'yaml/constants'.  [ruby-core:5776]

Tue Sep 20 17:48:34 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): add charset
	  information to content-type header.[ruby-core:5127]

	* lib/xmlrpc/server.rb (CGIServer::serve): ditto.

	* lib/xmlrpc/server.rb (ModRubyServer::serve): ditto.

	* lib/xmlrpc/server.rb (WEBrickServlet::service): ditto.

Tue Sep 20 17:34:46 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/webrick/test_cgi.rb: set ENV["PATH"] to CGIEnvPath on
	  windows. bcc32's runtime is not installed into system directory,
	  so it cannot be found without this setting. [ruby-dev:27166]

Tue Sep 20 17:10:38 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* test/dbm/test_dbm.rb (TestDBM::test_s_open_error): remove
	  test_s_open_error test to detect duplicate open.
	  [ruby-dev:27202]

Tue Sep 20 17:08:31 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* io.c: PIPE_BUF is not defined on BeOS. use _POSIX_PIPE_BUF instead.
	  [ruby-dev:27185]

Tue Sep 20 16:53:53 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* test/readline/test_readline.rb (TestReadline::replace_stdio):
	  BSD seek support from [ruby-dev:25223].  fixed: [ruby-dev:27150]

Tue Sep 20 15:39:40 2005  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from
	  appearing alone or at the end of plain scalars. [ruby-core:5826]

	* ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes
	  as complex keys.

	* lib/syck.h: version 0.60.

	* lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during
	  key searches.

	* ext/syck/rubyext.c: loading of binary-typed nodes.  prevent
	  emission of plain strings that look like symbols, but which aren't.

Tue Sep 20 05:50:22 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/xmlrpc/test_webrick_server.rb (setup_http_server):
	  should not include 'webrick/https' unless 'use_ssl' because
	  it fails where openssl is not installed.

Tue Sep 20 00:34:07 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_close): call rb_io_close() directly if io is a T_FILE
	  object.  [ruby-dev:27156]

Mon Sep 19 19:09:08 2005  Minero Aoki  <aamine@loveruby.net>

	* file.c (rb_file_chown): should accept nil. [ruby-dev:27171]
	  (backport from trunk, rev 1.208)

Mon Sep 19 18:35:13 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dl/dl.c (rb_io_to_ptr): fix DragonFlyBSD support.
	  [ruby-dev:27151]

Mon Sep 19 14:17:04 2005  Minero Aoki  <aamine@loveruby.net>

	* ext/syck/emitter.c (syck_emit): passing an int* value to the
	  long* parameter causes unaligned access on LP64 systems.
	  [ruby-dev:27161]

Mon Sep 19 13:44:03 2005  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: avoid core dump with WIN32OLE_EVENT.
	  [ruby-dev:27133]

Mon Sep 19 10:36:06 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (cp_r): default is :dereference_root=>true for
	  backward compatibility. [ruby-dev:27145]

	* test/fileutils/test_fileutils.rb (test_cp_r): test it.

Mon Sep 19 09:57:39 2005  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: backported from trunk (1.36).
	  (again) [ruby-dev:27145]

Mon Sep 19 07:45:37 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkey.h, ossl_pkey_rsa.c, ossl_pkey_dsa.c:
	  an instance variable "private" is added to OpenSSL::PKey class.
	  this ivar is a flag that shows whether there is a private key
	  in the instance.

	* ext/openssl/ossl_engine.c: (ossl_engine_load_privkey): set private
	  key flag.

Mon Sep 19 06:41:32 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb: backported from trunk (rev 1.65):

	* lib/fileutils.rb (rm_r): new option :secure.

	* lib/fileutils.rb (rm_rf): new option :secure.

	* lib/fileutils.rb: new method #remove_entry_secure.

	* lib/fileutils.rb (cd): remove option :noop.

	* lib/fileutils.rb (cp_r): new option :dereference_root.

	* lib/fileutils.rb (cp_r): new option :dereference_root.

	* lib/fileutils.rb: new method #remove_entry.

	* lib/fileutils.rb: new method #chmod_R.

	* lib/fileutils.rb: new method #chown.

	* lib/fileutils.rb: new method #chown_R.

	* lib/fileutils.rb: new method .commands.

	* lib/fileutils.rb: new method .options.

	* lib/fileutils.rb: new method .have_option?.

	* lib/fileutils.rb: new method .options_of.

	* lib/fileutils.rb: new method .collect_method.

	* lib/fileutils.rb: use module_function instead of single extend.

	* test/fileutils/test_fileutils.rb: backported from trunk (1.36).

Mon Sep 19 03:17:48 2005  Tanaka Akira  <akr@m17n.org>

	* file.c (rb_thread_flock): wrap the flock system call by
	  TRAP_BEG/TRAP_END to enable signals.  [ruby-dev:27122]

	* ext/socket/socket.c (bsock_send): wrap the sendto and send system
	  call by TRAP_BEG/TRAP_END to enable signals when writing to a socket
	  which is full.  [ruby-dev:27132]

	* io.c (rb_io_syswrite): wrap the write system call by
	  TRAP_BEG/TRAP_END to enable signals when writing to a pipe which is
	  full.  [ruby-dev:27134]

Mon Sep 19 03:02:08 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to
	  enable signals when writing to a pipe which is full.

Sun Sep 18 02:10:47 2005  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml/rubytypes.rb: remove comments that are bungling up
	  the rdoc and ri output.  output symbols as plain scalars.

	* ext/syck/rubyext.c (syck_emitter_reset): emit headless
	  documents always.

	* ext/syck/emitter.c (syck_scan_scalar): quote scalars with any
	  kind of surrounding line space, tabs or spaces alike.

	* ext/syck/token.c: accept tabs as whitespace, not for indentation,
	  but strip from plain scalars.

	* test/yaml/test_yaml.rb: remove outdated tests.

Sat Sep 17 23:25:04 2005  sheepman  <sheepman@sheepman.sakura.ne.jp>

	* lib/mathn.rb (Rational::inspect): should preserve original
	  operand.  [ruby-core:05806]

Sat Sep 17 23:20:27 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::Cookie): should handle multiple values for a
	  cookie name.  [ruby-talk:156140]

Sat Sep 17 10:42:13 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string
	  should call Kernel.eval on caller's safe-level instead of slave's
	  safe-level (Of course, the given script should be evaluated on
	  slave's safe-level).

Sat Sep 17 09:45:26 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_substr): should propagate taintness even for
	  empty strings.  [ruby-dev:27121]

	* string.c (rb_str_aref): should infect result if range argument
	  is tainted.  [ruby-dev:27121]

Sat Sep 17 08:35:39 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed
	  strange RSS::Maker::Item#max_size behavior.
	  Thanks to Kazuhiko <kazuhiko@fdiary.net>.

	* test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto.

Fri Sep 16 23:09:20 2005  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_search_event_at): bug fix
	  in ext/win32ole/sample/ienavi.rb.

	* ext/win32ole/win32ole/tests/testOLEEVENT.rb: ditto.

Fri Sep 16 22:41:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_s_extname): empty string for path name ending with a
	  period.  fixed: [ruby-core:05651]

	* file.c (rb_file_join): smarter behavior at edge cases.
	  fixed: [ruby-core:05706]

Fri Sep 16 18:34:01 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/syck/node.c (syck_replace_str): was using return from the
	  void function.  a patch from MIYAMUKO Katsuyuki
	  <miyamuko at mtb.biglobe.ne.jp>.  [ruby-dev:27111]

Fri Sep 16 14:48:48 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: fix typo on MultiTkIp#bg_eval_string

Fri Sep 16 12:02:12 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/syck/rubyext.c (syck_resolver_transfer): remove C++ style
	  comment (//).  [ruby-core:05793]

Fri Sep 16 00:14:14 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/logger/test_logger.rb: unintentionally overwritten changes by
	  Usa.  reverted.

Fri Sep 16 00:06:18 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#initialize): should set
	  $stdout.binmode.

Thu Sep 15 23:25:21 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.5.

	  #nnn is a ticket number at http://dev.ctor.org/soap4r

	  * SOAP

	    * allow to configure an envelope namespace of SOAP request. (#124)
	   	TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope'
	  	@client.options["soap.envelope.requestnamespace"] =
		  TemporaryNamespace
	 	@client.options["soap.envelope.responsenamespace"] =
		  TemporaryNamespace
		@client.do_proc(...)

	    * let SOAP request XML indent space configuable.  see
	      "soap.envelope.no_indent" option. (#130)

	    * let external CES configuable.
	      ex. client["soap.mapping.external_ces"] = 'SJIS'.  $KCODE is used
	      by default. (#133)
		external CES ::= CES used in Ruby object of client and server
		internal CES ::= CES used in SOAP/OM

	    * add iso-8859-1 external CES support. (#106)

	    * fixed illegal 'qualified' handling of elements.  it caused
	      ASP.NET inteoperability problem. (#144)

	    * added 'soap.envelope.use_numeric_character_reference' (boolean)
	      option to let query XML use numeric character reference in XML,
	      not plain UTF-8 character.  !GoogleSearch server seems to not
	      allow plain UTF-8 character since 2005-08-15 update. (#147)

	    * SOAP::Header::SimpleHeader (de)serialization throws an exception
	      on !SimpleHeader.on_(in|out)bound when header is a String.  so we
	      could not use a simple single element headerItem.  fixed.  thanks
	      to emil. (#129)

	    * out parameter of rpc operation did not work.  (#132)

	    * follow HTTP redirect only if using http-access2.  (#125) (#145)

	    * add a workaround for importing an WSDL whose path begins with
	      drive letter.  (#115)

	  * WSDL

	    * SOAP Data which is defined as a simpletype was not mapped
	      correctly to Ruby obj when using wsdl2ruby.rb generated classdef
	      file. (#123)

	    * rpc/literal support. (#118)

	    * re-implemented local element qualify/unqualify control.  handles
	      elementFormDefault and form in WSDL.  (#119)

	    * Array of an element which has simpleType causes a crash. (#128)

	    * prarmeterOrder may not contain return part so it can be shorter
	      than parts size.  Thanks to Hugh.  (#139)

	  * Samples

	    * added !BasicAuth client sample. (#117)

	    * added Base64 client/server sample.

	    * added Flickr SOAP interface client sample. (#122)

	    * added !SalesForce client sample. (#135)

	    * updated Thawte CA certificate for !GoogleAdWords sample.

	    * updated a client script with the newer version made by Johan.
	      thanks!

	    * shortened long file names. (#120)

	    * fixed typo in authheader sample. (#129)

	    * updated deprecated method usage.  (#138)

Thu Sep 15 23:02:57 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.h (rb_w32_stat): added prototype.

Thu Sep 15 22:35:55 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/ruby/test_signal.rb (test_exit_action): skip the test using
	  fork on fork-less platforms.

Thu Sep 15 11:39:18 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/dialog.rb: If a dialog does not show up yet,
	  TkDialogObj#name raises an exception. [ruby-talk:156109]

Thu Sep 15 01:39:19 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (Rinda::TemplateEntry::initialize): pull
	  up method. Tabs converted to spaces.

Thu Sep 15 00:18:24 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/net/telnet.rb (Net::Telnet::waitfor): replace sysread with
	  readpartial.  [ruby-talk:127641]

Wed Sep 14 22:40:26 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (ruby_glob): glob function not using ruby exception system.

Wed Sep 14 01:26:03 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/net/https.rb: backported from trunk, rev 1.3.
	  [ruby-dev:25673] (again), [ruby-dev:26617] (again),
	  [ruby-dev:27062]

	* ext/openssl/lib/net/https.rb: removed.

	* ext/openssl/lib/net/protocols.rb: removed.

	* lib/net/http.rb: #use_ssl?, #use_ssl are moved from net/https.

Tue Sep 13 22:09:40 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb (Logger): added formatter accessor to logger for
	  dictating the way in which the logger should format the messages it
	  displays.  Thanks to Nicholas Seckar (cf. [ruby-talk:153391]) and
	  Daniel Berger.

	* lib/logger.rb (Logger): added VERSION constant.

	* lib/logger.rb: removed document for LogDevice. It is an
	  implementation detail and is not a public interface.

	* test/logger/test_logger.rb: added tests.

Tue Sep 13 21:47:17 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (BEGIN_CALLARGS): pop halfly pushed status.
	  fixed: [ruby-dev:26881]

Tue Sep 13 16:26:45 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: backported from trunk, rev 1.128.
	  [ruby-dev:25673] [ruby-dev:26617]

	* lib/net/protocol.rb: backported from trunk, rev 1.78.

	* lib/net/protocol.rb: new method #old_open to support net/smtp
	  and net/pop.

	* lib/net/smtp.rb: use #old_open.

	* lib/net/pop.rb: ditto.

Tue Sep 13 12:33:05 2005  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml.rb: reworking YAML::Stream to use the new
	  emitter.

	* lib/yaml/stream.rb: ditto.

	* lib/yaml/rubytypes.rb: added Object#yaml_new.

	* lib/yaml/tag.rb: the tag_subclasses? method now
	  shows up in the class.  allow taguri to be set using an accessor.
	  continue support of Object#to_yaml_type.

	* ext/syck/rubyext.c: new emitter code.  yaml_new and yaml_initialize
	  get called, should they be present.  consolidated all the diaspora of internal
	  node types into the family below YAML::Syck::Node -- Map,
	  Seq, Scalar -- all of whom are SyckNode structs pointing to
	  Ruby data.  moved Object#yaml_new into the node_import and made it the
	  default behavior.  the target_class is always called wih yaml_new, prepended
	  a parameter, which is the klass.  loaded nodes through GenericResolver show their style.
	  new Resolver#tagurize converts type ids to taguris.

	* ext/syck/implicit.re: were 'y' and 'n' seriously omitted??

	* ext/syck/emitter.c: renovated emitter, walks the tree in advance.
	  consolidated redundant block_styles struct into
	  the scalar_style struct.  (this means loaded nodes can now
	  be sent back to emitter and preserve at least its very basic
	  formatting.)

	* ext/syck/gram.c: headless documents of any kind allowed.

	* ext/syck/node.c: new syck_replace_str methods and syck_empty_*
	  methods for rewriting node contents, while keeping the ID
	  and other setup info.  added syck_seq_assign.

	* ext/syck/syck.h: reflect block_styles and new node functions.

Mon Sep 12 20:53:06 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* test/openssl/test_pkcs7.rb (test_enveloped): skip this test
	  to avoid a bug of PKCS7_enctypt() (only if ext/openssl is
	  compiled with OpenSSL-0.9.7d or earlier versions).
	  http://www.mail-archive.com/openssl-dev@openssl.org/msg17376.html

Mon Sep 12 14:03:33 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* test/dbm/test_dbm.rb: remove locking test, which may not be
	  supported on some platforms.  [ruby-dev:27030]

Mon Sep 12 10:45:58 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dl/dl.c (rb_io_to_ptr): merged a patch for DragonFly BSD
	  from Takahiro Kambe <taca at back-street.net>.  [ruby-dev:27023]

Sun Sep 11 22:05:51 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* bin/erb (ERB::Main#run): set ERB#filename so that it is used
	  when reporting syntax/runtime errors. Tabs converted to spaces.

Sat Sep 10 10:17:03 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_engine.c (ossl_engine_s_by_id):
	  OpenSSL::Engine.by_id calls given block before calling
	  ENGINE_init (block parameter is the return value of this method
	  itself).  this functionality is useful to load dynamic shared
	  engines. the following code is a sample of loading a key using
	  OpenSC PKCS #11 module.

		require "openssl"
		pkcs11 = OpenSSL::Engine.by_id("dynamic"){|e|
		  e.ctrl_cmd("SO_PATH", "/usr/lib/opensc/engine_pkcs11.so")
		  e.ctrl_cmd("LIST_ADD", "1")
		  e.ctrl_cmd("LOAD")
		}
		pkcs11.ctrl_cmd("PIN", "secret")
		key = pkcs11.load_private_key

	* ext/openssl/ossl_engine.c (ossl_engine_ctrl_cmd): new method
	  OpenSSL::Engine#ctrl_cmd. it wraps ENGINE_ctrl_cmd_string.

	* ext/openssl/ossl_engine.c (ossl_engine_get_cmds): new method
	  OpenSSL::Engine#cmds. it returms engine command definitions.

Sat Sep 10 10:09:47 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (asn1str_to_str): new function.

	* ext/openssl/ossl_pkcs7.c: new class OpenSSL::PKCS7::RecipientInfo.
	  this class wraps PKCS7_RECIP_INFO struct.

	* ext/openssl/ossl_pkcs7.c: OpenSSL::PKCS7::Signer is renamed to
	  OpenSSL::PKCS7::SignerInfo. ("Signer" remains as an alias of
	  SignerInfo.)

	* test/openssl/test_pkcs7.rb: new file.

Sat Sep 10 10:05:51 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): assume that
	  the argument is a DER string if Base64 decoding failed.

	* ext/openssl/ossl_ns_pki.c (ossl_spki_to_der): new method.

	* test/openssl/test_ns_spki.rb: add new file.

Sat Sep 10 09:56:24 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/digest.rb: added SHA224, SHA256, SHA384 and SHA512.
	  these features are enabled if this library is compiled with
	  OpenSSL 0.9.8 or later.

	* test/openssl/test_digest.rb: add test for new digests.

Sat Sep 10 09:51:30 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.c (ossl_raise): should use ERR_peek_last_error
	  to get last error on the current thread. And should report
	  errors on the stack while OpenSSL.debug is true.

	* ext/openssl/ossl.c (ossl_get_errors): new method for debugging
	  this library.

	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): fix error message.

	* ext/openssl/ossl_x509req.c (ossl_x509req_set_attributes): get rid
	  of unused variable.

	* ext/openssl/ossl_x509store.c (ossl_x509store_initialize): should
	  set @time to avoid warning.

	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths,
	  X509_STORE_add_cert, X509_STORE_add_crl): should raise error if
	  wrapped functions failed.

	* test/openssl/test_x509store.rb: add test for errors.

Fri Sep  9 22:13:19 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): prohibit calling tainted method (>2) when
	  $SAFE == 0.

Fri Sep  9 16:45:25 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_times): make empty strings to keep taintness,
	  and a little improvement.  [ruby-dev:26900]

	* ext/iconv/iconv.c (iconv_try), ext/iconv/extconf.rb: get rid of meta
	  characters in command line option.  fixed: [ruby-talk:155369]

Thu Sep  8 14:58:11 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* merged a patch from Takahiro Kambe <taca at back-street.net> to
	  support DragonFly BSD.  [ruby-dev:26984]

Wed Sep  7 12:55:08 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb: abolish mod === tempfile to avoid a problem
	  [ruby-dev:26967].

Wed Sep  7 10:45:15 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_switch): convert all exceptions to
	  SystemExit.  fixed: [ruby-core:05724]

	* eval.c (rb_thread_terminated): show backtrace before propagate
	  exceptions to main thread.

Wed Sep  7 08:35:04 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load
	  extension libraries.

	* bignum.c (bignew_1, bigadd): K&R style argument actually can't be
	  defined as char.

	* missing/vsnprintf.c: ANSI compiler supports const keyword.

	* ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h
	  but no 64bit integer.

	* lib/mkmf.rb (what_type?): guesstimate type.

	* ext/etc/etc.c (setup_passwd), ext/etc/extconf.rb: pw_age might be
	  char*.  fixed: [ruby-core:05470]

Wed Sep  7 08:32:47 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_mod_cvar_get, rb_mod_cvar_set): document fix from
	  sheepman <sheepman@sheepman.sakura.ne.jp>; a bug in visibility
	  description.  [ruby-dev:26965]

	* sprintf.c (rb_f_sprintf): warn "too many argument" on verbose
	  mode (-v/-w); backported from 1.9.  [ruby-dev:26963]

Mon Sep  5 17:03:07 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/ostruct.rb: a patch from Florian Gross <florgro at gmail.com>
	  merged to allow recursive inspect (and to_s) for OpenStruct.
	  [ruby-core:05532]

Mon Sep  5 07:01:12 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/openssl/lib/openssl/buffering.rb (Buffering#do_write):
	  should clear data from the buffer which already been output.

Fri Sep  2 23:51:54 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib: do not use __send__ to access private methods.  [ruby-dev:26935]

Fri Sep  2 03:29:00 2005  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb/init.rb: make IRB -I option that is same befavior for ruby.
	  [ruby-dev:26872], [ruby-dev: 26920]

	* lib/irb/locale.rb: support to print help message when OS locale is
	  ja_JP.utf-8. [ruby-dev:26872]

Thu Sep  1 17:11:25 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): wrong condition for $SAFE restoration.

Thu Sep  1 14:12:45 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't
	  work (gives wrong order of arguments).

	* ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace
	  to support '-namespace' option of 'interp invokehidden' command
	  on Tcl8.5.

Wed Aug 31 14:43:15 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (OPTFLAGS): default global optimization to
	  disabled for all VC++ versions.  fixed: [ruby-dev:26897]

Wed Aug 31 11:35:43 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/gdbm/test_gdbm.rb (teardown): should remove GDBM temporary
	  file.

Wed Aug 31 10:30:56 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* process.c (proc_detach, proc_setmaxgroups): missing argument type
	  declaration. (I recommend ANSI-style function)

Tue Aug 30 23:20:19 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_rescue2): initialization miss.  fixed: [ruby-dev:26917]

	* lib/mkmf.rb (xsystem, xpopen): no longer expand by Config.

	* lib/mkmf.rb (link_command, cc_command, cpp_command): expand
	  variables at once, and quote hdrdir.  fixed: [ruby-core:05680]

	* lib/mkmf.rb (libpathflag): quote paths.

Tue Aug 30 19:34:27 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/digest/md5/md5ossl.h, ext/digest/rmd160/rmd160ossl.h,
	  ext/digest/sha1/sha1ossl.h: include <stddef.h> to avoid
	  error in compilation with OpenSSL-0.9.8. [ruby-list:41068]

Mon Aug 29 19:54:21 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/rdoc/usage.rb: improper exceptions. [ruby-dev:26870]

	* lib/rdoc/usage.rb: support the case when non-ruby code exists before
	  shebang. (this is needed when ri.bat is executed on windows)

Mon Aug 29 17:48:17 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (method_arity): should return proper arity value.
	  [ruby-dev:26390]

Mon Aug 29 01:19:57 2005  Tanaka Akira  <akr@m17n.org>

	* lib/time.rb (Time.parse): extract fractional seconds using
	  Date._parse.  [ruby-talk:153859]

Sat Aug 27 20:20:01 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/curses/curses.c ({curses,window}_clrtoeol): added. suggested
	  by Reyn Vlietstra.

	* ext/curses/curses.c: chtype in curses is not `char', rahter `long'.
	  [ruby-Bugs:2298]

	* ext/curses/view.rb: String =~ String is deprecated.

Wed Aug 24 10:53:28 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/logger/test_logger.rb (test_shifting_size): should close log
	  device before unlink, since some platform cannot unlink opened
	  file.

Sun Aug 21 00:13:27 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/wsdl/xmlSchema/importer.rb (WSDL::XMLSchema::Importer#fetch): add
	  a workaround for importing an WSDL whose path begins with drive
	  letter.  [ruby-dev:26242]

Sat Aug 20 22:37:13 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb (write, shift_log?, shift_log): file shifting race
	  condition bug fixed.  [ruby-dev:26764]

	* test/logger/test_logger.rb: tests.

Fri Aug 19 18:13:39 2005  Tanaka Akira  <akr@m17n.org>

	* lib/time.rb (Time.apply_offset): fix a problem with last day of
	  month.  reported by Lucas Nussbaum.  [ruby-talk:152866]

Thu Aug 18 12:46:28 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub (COMMON_HEADERS): reverted 1.42.2.24.
	  I misunderstood, bccwin32 on ruby_1_8 uses winsock2 originally.
	  [ruby-dev:26806]

	* win32/win32.h: include winsock2.h instead of winsock.h. (bcc32)

Wed Aug 17 23:58:05 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_to_integer): argument constified.

	* eval.c (terminate_process): take String message.

	* eval.c (rb_thread_switch): propagate the exception caused thread
	  termination directly.  fixed: [ruby-core:05552]

Wed Aug 17 00:05:46 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_add_method): preserve safe level in the environment
	  where a method is defined .

	* eval.c (rb_call0): restore preserved safe level in the method
	  execution.

Mon Aug 15 00:38:51 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.
	  [ruby-dev:26800]

	* range.c (range_check, range_init): reduce useless exceptions.

Sat Aug 13 18:51:26 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_block_pass): distinguish current block from others.
	  fixed: [ruby-dev:26274]

	* ext/stringio/stringio.c (strio_set_string): disallow nil.
	  http://www.rubyist.net/~nobu/t/20050811.html#c05

Thu Aug 11 23:29:03 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c: keep holding string after closed.

Thu Aug 11 13:01:48 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss: fixed sort bug. [ruby-list:41018]

	* lib/rss/1.0.rb (RSS::RDF::Channel#setup_maker_attributes):
	  removed self.

	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#<=>): use #date
	  instead of @date.
	  (RSS::Maker::Base::self.def_array_element): added #size.

	* lib/rss/maker/1.0.rb
	  (RSS::Maker::RSS10::Channel#to_rss,
	   RSS::Maker::RSS10::Items::Item#to_rss): cleared dc_dates set
	  upped by using #date.

	* lib/rss/maker/dublincore.rb
	  (RSS::Maker::ChannelBase, RSS::Maker::ItemsBase::ItemBase):
	  fixed opposite alias.

	* test/rss/test_setup_maker_1.0.rb
	  (RSS::TestSetupMaker10::test_setup_maker_items_sort): added some
	  tests for RSS::Maker::ItemsBase#do_sort.

Wed Aug 10 10:29:40 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fix bug on handling __ruby2val_optkeys().

	* ext/tk/lib/tk/itemconfig.rb: fix bug on handling
	  __item_ruby2val_optkeys().

	* ext/tk/lib/tk/canvas.rb: didn't check __item_ruby2val_optkeys().

	* ext/tk/lib/tkextlib/blt/component.rb: ditto.

Tue Aug  9 15:12:04 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: remove dangerous 'rb_jump_tag's.

	* ext/tk/lib/tk.rb: add __val2ruby_optkeys and __ruby2val_optkeys to
	  help to convert option values between ruby and tcl.

	* ext/tk/lib/tk/itemconfig.rb: add __item_val2ruby_optkeys and
	  __item_ruby2val_optkeys to help to convert option values between
	    ruby and tcl.

	* ext/tk/lib/tk/radiobutton.rb: use __ruby2val_optkeys for 'variable'
	  option (for the reason of backward compatibility).

	* ext/tk/lib/tk/composite.rb: clarify the arguments of super().

	* ext/tk/lib/tk/spinbox.rb: ditto.

	* ext/tk/lib/tk/text.rb: ditto.

	* ext/tk/lib/tk/validation.rb: ditto.

	* ext/tk/lib/tkextlib/*: support to treat tkvariable-type
	  configure options.

Tue Aug  9 20:30:19 2005  Tadashi Saito  <shiba@mail2.accsnet.ne.jp>

	* bignum.c (rb_big_coerce): allow bignum x bignum coercing.
	  [ruby-dev:26778]

Mon Aug  8 20:43:02 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_method.rb: added.  [ruby-dev:26761]

Sun Aug  7 23:50:14 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_super.rb: added from HEAD. [ruby-dev:26743]

Sun Aug  7 01:31:15 2005  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (WIN32OLE_EVENT#on_event): should set
	  only one event handler.

	* ext/win32ole/tests/testOLEEVENT.rb: ditto.

	* ext/win32ole/tests/testOLEPARAM.rb: remove re-defined
	  test_ole_type_detail method.

Sat Aug  6 12:35:24 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/{tk.rb,tk/itemconfig.rb}: configure creates
	  TkVariable if key name is 'variable' or 'textvariable'
	  by default. [ruby-dev:26749]

	* ext/tk/lib/tk/{label,radiobutton}.rb: removed its own
	  {variable,textvariable} function.

	* ext/tk/lib/tk/variable.rb: retains backward conpatibility.

Fri Aug  5 12:50:32 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c: fixed memory leak when tk_funcall raised
	  exception. (copies argv into heap in tk_funcall instead of
	  caller)

Fri Aug  5 12:42:57 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): need to convert path separetor
	  before invoking install command.

Fri Aug  5 00:27:04 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c: refactoring - extract ruby string <->
	  tcl object conversion as get_str_from_obj and get_obj_from_str.

Fri Aug  5 00:19:33 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* extmk.rb (extmake): needs to be wrapped in an Array.

Thu Aug  4 18:38:36 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.

	* ext/tcltklib/tcltklib.c: add nativethread consistency check.

	* ext/tcltklib/stubs.c: ditto.

	* ext/tk/lib/tk.rb: forgot to define TclTkIp.encoding and encoding=
	  when Tcl is 7.6 or 8.0.

	* ext/tk/lib/tk/wm.rb: support to make some methods as options of
	  root or toplevel widget. [ruby-talk:150336]

	* ext/tk/lib/tk/root.rb: ditto.

	* ext/tk/lib/tk/toplevel.rb: ditto.

	* ext/tk/lib/tkextlib/SUPPRT_STATUS: update RELEASE_DATE

Thu Aug  4 08:03:39 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): should not modify $mflags for each
	  extentions.

Thu Aug  4 00:25:48 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk, Makefile.in, {bcc32,win32,wince}/Makefile.sub: integrated
	  macro definitions.

	* bcc32/Makefile.sub: LIBRUBY_SO should use DLDOBJS, not EXTOBJS.

	* {win32,wince}/Makefile.sub: separate config.h for compiler versions.

Wed Aug  3 21:59:16 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/variable.rb: TkVariable#trace didn't work on
	  TkVariable retrived from TkVariable.new_hash.ref. [ruby-dev:26721]

Wed Aug  3 08:22:13 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (ruby_connect): revert [ruby-talk:111654]
	  changes at 2004-09-07.  [ruby-dev:26656]

Tue Aug  2 10:20:54 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c: use Tcl_[GS]etVar2Ex instead of
	  Tcl_Obj[GS]etVar2. (avoid Tcl_NewStringObj on supported platforms)

	* ext/tcltklib/tcltklib.c: use ip_{get,set,unset}_variable2_core from
	  ip_{get,set,unset}_variable.

	* ext/tcltklib/tcltklib.c: replaced Tcl_Panic with rb_bug.

Tue Aug  2 01:41:28 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/ping.rb (Ping.pingecho): should rescue StandardError.
	  [ruby-dev:26677]

Mon Aug  1 19:09:41 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c: refactoring - replaced rb_ivar_defined &
	  rb_ivar_get with single rb_attr_get call.

Mon Aug  1 18:45:07 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (Tcl_GetStringResult): refactoring - define
	  alternative macro on Tcl7.x or earlier.

Mon Aug  1 13:57:35 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (deleted_ip): refactoring - interpreter
	  deletion check. [ruby-dev:26664]

Mon Aug  1 01:17:40 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (check_insecure_method): use private_methods and
	  protected_methods instead of respond_to? to check method visibility.
	  [ruby-dev:26616]

	* test/drb/drbtest.rb: ditto.

	* test/drb/ut_drb.rb: ditto.

Mon Aug  1 00:07:32 2005  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb/context.rb: fix `irb --readline` option. [ruby-list:40955]

Fri Jul 29 09:59:38 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_yield_0): push yielded node instead of yielding.
	  fixed: [yarv-dev:549]

Thu Jul 28 18:09:55 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/stubs.c: When --enable-tcltk-stubs, the initialize
	  routine creates a Tcl/Tk interpreter and deletes it. However,
	  init cost of Tk's MainWindow is not so small. And that makes it
	  impossible to use libraries written with Tcl functions only on
	  an environment without a graphical display. This changes support
	  delaying initalization of Tk_Stubs until the script needs Tk.

	* ext/tcltklib/stubs.h: New file. Define prototypes and return
	  codes of functions on stubs.c.

	* ext/tcltklib/tcltklib.c: Support delaying initalization of
	  Tk_Stubs until the script needs Tk.

	* ext/tcltklib/tcltklib.c: Show friendly error messages for errors
	  on initialization.

	* ext/tcltklib/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is
	  exiting and $DEBUG is true. (Not fix. If you know the reason of
	  why, please fix it.)

	* ext/tk/tkutil.c (ary2list, ary2list2): bug fix on handling of
	  encoding.

	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string
	  don't work propery.

	* ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk.
	* ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the
	  object for an element of a Tcl's array variable.

Wed Jul 27 23:23:54 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (obj_free): make message format consistent with one from
	  gc_mark().  [ruby-talk:149668]

Wed Jul 27 22:11:37 2005  Kouhei Sutou  <kou@cozmixng.org>

	* sample/rss/tdiary_plugin: removed. because the plugin
	  is imported in the tDiary plugin packages.

Wed Jul 27 10:59:02 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_each): rewinddir(3) before iteration.
	  [ruby-talk:149628]

Tue Jul 26 12:57:49 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/openssl_missin.c: include <openssl/engine.h> before
	  <openssl/x509_vfy.h> to avoid compilation error of mswin32.
	  suggested by NAKAMURA Usaku.

Mon Jul 25 21:30:46 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* {bcc32,win32,wince}/Makefile.sub: moved CPPFLAGS only for ruby
	  source to XCFLAGS.

Mon Jul 25 13:45:18 2005  NAJIMA Hiroki  <najima@mickey.ai.kyutech.ac.jp>

	* io.c: check HAVE_SYS_IOCTL_H before including the header.
	  [ruby-dev:26610]

Mon Jul 25 14:10:02 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: fix en-bugged part in the last commit.

Sat Jul 23 16:49:04 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should check
	  OPENSSL_NO_STATIC_ENGINE.

Fri Jul 22 21:06:08 2005  Tadashi Saito  <shiba@mail2.accsnet.ne.jp>

	* bignum.c (rb_big_eq): reduce isnan().  [ruby-dev:26600]

	* numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le): ditto.

Fri Jul 22 15:02:39 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: moved copyright description to lib/rss.rb.

	* lib/rss.rb: added for convenience.

	* sample/rss/re_read.rb: added #to_s sample.

	* sample/rss/blend.rb: use 'require "rss"' instead of
	  'require "rss/*"'.
	* sample/rss/list_description.rb: ditto.
	* sample/rss/rss_recent.rb: ditto.
	* sample/rss/tdiary-plugin/rss-recent.rb: ditto.

	* sample/rss/tdiary-plugin/rss-recent.rb: 0.0.6 -> 0.0.7.

Fri Jul 22 14:37:43 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/parser.rb (RSS::Parser#initialize): accept HTTP/FTP
	  URI and local file path too.

	* test/rss/test_parser.rb (RSS::TestParser#test_parse): test
	  for the above.

Fri Jul 22 07:01:42 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c (tk_conv_args): forget to revert thread_critical
	  and gc_disable when raise ArgumentError.

	* ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.

	* ext/tcltklib/tcltklib.c: add TclTkIp#has_mainwindow? method.

	* ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.

	* ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.

	* ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.

	* ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.

	* ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to
	  avoid access from external.

	* ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'
	  mainloop.

	* ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP
	  with $SAFE==4.

	* ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work
	  properly.

	* ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and
	  cb_error(exc) to log errors at callbacks on safe slave IPs.

	* ext/tk/lib/multi-tk.rb: fail to get an available slave IP object
	  when call Tk.mainloop in the block which is given to new_* method,
	    because cannot finish initialize while the root widget is alive.

	* ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop
	  runs on the IP.

Wed Jul 20 19:20:37 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (S_ISREG): need to define S_ISREG before it is used first.

Wed Jul 20 18:40:50 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* io.c (wsplit_p): patch for the environment where
	  fcntl(F_GETFL, O_NONBLOCK) is not supported. in that case,
	  set FMODE_WSPLIT without fcntl check. [ruby-dev:26566]

Wed Jul 20 18:07:11 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_io_ctl): update FMODE_WSPLIT_INITIALIZED and FMODE_WSPLIT
	  by F_SETFL.

Wed Jul 20 10:04:51 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_class_path): need to adjust snprintf() len for
	  teminating NUL.  [ruby-dev:26581]

Wed Jul 20 04:01:55 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/socket/socket.c: sorry, BeOS also uses HAVE_CLOSESOCKET,
	  so reverted.

	* ext/socket/extconf.rb: should not define HAVE_CLOSESOCKET
	  on windows.

Wed Jul 20 03:16:43 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/socket/socket.c: should not undef close() on win32.
	  it's defined to rb_w32_close(), otherwise handle leaks.
	  [ruby-Bugs-2131]

Wed Jul 20 00:48:16 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* error.c (syserr_initialize): don't use str before StringValue()
	  check.  [ruby-dev:26579]

Tue Jul 19 22:47:29 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* error.c (syserr_initialize): add 1 byte for snprintf() size for
	  NUL at the end.  [ruby-dev:26574]

Tue Jul 19 16:39:46 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_inspect): replace sprintf() with "%s" format all
	  over the place by snprintf() to avoid integer overflow.

Tue Jul 19 14:08:22 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c: rbtk_eventloop_depth is used as int.

	* ext/tcltklib/tcltklib.c: rbtk_pending_exception is tested with
	  NIL_P, so should assign Qnil instead of 0 (Qfalse).

	* ext/tcltklib/tcltklib.c (ip_invoke_real): fixed memory leak when
	  ip is deleted.

Tue Jul 19 13:19:46 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/variable.rb: For symmetry, add TkVariable#string. It
	  returns a string even if the default value type of the TkVariable
	  object is not "string".

Mon Jul 18 21:40:20 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* eval.c (rb_call0): make the pointer to NODE volatile
	  instead of NODE itself.

Mon Jul 18 14:32:21 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (rb_call0): make body volatile to avoid optimization problem.
	  [ruby-dev:26195]

Mon Jul 18 12:23:27 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/io/wait/wait.c: wrong backport from trunk.  fixed: [ruby-dev:26562]

Mon Jul 18 09:36:25 2005  Tanaka Akira  <akr@m17n.org>

	* rubyio.h (FMODE_WSPLIT, FMODE_WSPLIT_INITIALIZED): new constant.

	* io.c (wsplit_p): new function.
	  (io_fwrite): split writing data by PIPE_BUF if wsplit_p is true in
	  multi-threaded mode.
	  [ruby-dev:26540]

Sun Jul 17 13:46:54 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/io/wait/extconf.rb, ext/io/wait/wait.c: Win32 platforms support.

Fri Jul 15 23:59:03 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/parsers/parse_c.rb (handle_class_module): handle a
	  module enclosed in a built-in module.  fixed: [ruby-talk:148239]

	* lib/rdoc/parsers/parse_c.rb (find_body): allow macros as methods.

	* lib/rdoc/parsers/parse_c.rb (find_call_seq): allow :nodoc: modifier
	  in C.  [ruby-core:04572]

Fri Jul 15 18:00:01 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub (COMMON_HEADERS): ruby_1_8 is using winsock.h.
	  failed to compile ext/socket on bcc5.6.4. [ruby-dev:26193]

Fri Jul 15 07:58:56 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/server.rb (WEBrick::GenericServer#accept_client):
	  sockets should be non-blocking mode. [ruby-dev:26405]

	* lib/webrick/utils.rb (WEBrick::Utils.set_non_blocking): new method.

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_chunked):
	  should call sock.read repeatedly until the preferred size data
	  is obtained.

Thu Jul 14 18:27:16 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_strerror): should return correct message
	  for ENAMETOOLONG and ENOTEMPTY. (bcc32) [ruby-dev:26533]

	* win32/win32.c (rb_w32_strerror): stripped CR LF on the tail.
	  (bcc32) [ruby-dev:26533]

Thu Jul 14 00:45:42 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* LEGAL (ext/nkf/nkf-utf8): updated from nkf1.7 to nkf-utf8.

Wed Jul 13 19:37:47 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_mkdir): should set EEXIST (not EACCES)
	  if file or directory already exists. (bcc32) [ruby-dev:26508]

	* win32/win32.c (rb_w32_rmdir): should set ENOTDIR (not EINVAL)
	  if it is not directory. (bcc32, win32)

	* win32/win32.c (rb_w32_rmdir, rb_w32_unlink): restore
	  FILE_ATTRIBUTE_READONLY flag on function failure.

Wed Jul 13 12:40:00 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: TclTkLib.do_one_event doesn't work.

	* ext/tk/lib/tk.rb: Tk.thread_update is available.

Tue Jul 12 23:32:11 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: keep curdir unexpanded.

Mon Jul 11 08:31:29 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* regex.c (read_special): fix parsing backslashes following \c in
	  regexp.  fixed: [ruby-dev:26500]

Mon Jul 11 02:53:00 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
	  mistook in merging the patch of [ruby-dev:26235] at
	  revision 1.4.2.6.

Sun Jul 10 23:58:04 2005  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#unlink): try Dir.unlink first to
	  avoid unlink a directory by root.
	  cf. [ruby-dev:26237]

Sun Jul 11 05:18:17 2005  Michael Neumann  <mneumann@ruby-lang.org>

	* lib/xmlrpc/server.rb (XMLRPC::Server): Switch from GServer over to
	  WEBrick. This makes file lib/xmlrpc/httpserver.rb obsolete (at least it is
		no further used by the XML-RPC library).

Sun Jul 10 12:47:01 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/debug.rb (debug_command): added a deficient format specifier.
	  fixed: [ruby-core:05419]

Sat Jul  9 21:28:46 2005  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (ole_method_dispid): convert dispid
	  in Ruby and C by INT2NUM and NUM2INT.

	* ext/win32ole/win32ole.c (ole_invoke2): ditto.

	* ext/win32ole/test/testWIN32OLE.rb: ditto.

	* ext/win32ole/test/testOLEMETHOD.rb: ditto.

Fri Jul  8 15:45:04 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (RSS::VERSION): 0.1.4 -> 0.1.5.

	* test/rss/test_version.rb (RSS::TestVersion#test_version):
	  ditto.

	* lib/rss/0.9.rb (RSS::Rss::Channel::Item::Category):
	  domain attribute of <category> is optional. Thanks to
	  Chris Lee <clee@kde.org>.

	* test/rss/test_parser.rb (RSS::TestParser#test_category20):
	  adjusted test case.

Tue Jul  5 23:44:06 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb: expand source library path.

Tue Jul  5 23:27:14 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* array.c (sort_2): get rid of yet another bcc's bug.
	  fixed: [ruby-core:05152]

	* eval.c (rb_thread_save_context): must not switch contexts during
	  re-allocating stack.  fixed: [ruby-core:05219]

Tue Jul  5 15:15:10 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c: fix typo.

Tue Jul  5 14:51:35 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: bug fix on treating Unicode strings.

	* ext/tcltklib/tcltklib.c: add methods to treat encoding mode.

	* ext/tcltklib/MANUAL.eng: add description of TclTkLib#encoding,
	  encoding_system, and so on.

	* ext/tcltklib/MANUAL.euc: ditto.

	* ext/tk/tkutil.c: fail to create a Tcl's list string from an
	  array including multiple kind of encoded strings.

	* ext/tk/lib/tk.rb: ditto.

	* ext/tk/lib/multi-tk.rb: 2nd arg of _{to|from}UTF8 is omissible.

	* ext/tk/lib/remote-tk.rb: ditto.

	* ext/tk/lib/tk.rb: override TclTkLib#encoding and encoding= to
	  use TkCore::INTERP.encoding and encoding=.

	* ext/tk/lib/tk.rb: when "require 'tk'" and $KCODE=='NONE', check
	  DEFAULT_TK_ENCODING to decide Ruby/Tk's system encoding mode.

	* ext/tk/lib/tk/encodedstr.rb: check both of Tk.encoding and
	  Tk.encoding_system. Tk.encoding has higher priority.

	* ext/tk/lib/tk/optiondb.rb: ditto.

	* ext/tk/lib/tk/spinbox.rb: ditto.

	* ext/tk/lib/tk/validation.rb: ditto.

	* ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist
	  should be UTF-8 strings.

Mon Jul  4 14:35:52 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sample/svr.rb: service can be stopped by ill-behaved client; use
	  tsvr.rb instead.

Mon Jul  4 13:25:21 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* missing/erf.c: original erf.c by prof. Okumura is confirmed to
	  be public domain.  reverted BSD implementation.

Mon Jul  4 11:15:37 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/{dbm,gdbm,sdbm}/test_{dbm,gdbm,sdbm}.rb: skip some tests
	  which using fork on fork-less platforms.

Sun Jul  3 23:26:30 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/wsdl/document/test_rpc.rb: compare formatted time string of
	  Time objects instead of comparing Time objects itself to avoid
	  unintended conflict of usec part.  [ruby-dev:26220]

Sat Jul  2 22:41:04 2005  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c (unix_send_io, unix_recv_io): support x86-64 and
	  IA64.

Sat Jul  2 17:06:23 2005  Tanaka Akira  <akr@m17n.org>

	* defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.
	  (flush_register_windows): declare flush_register_windows.

	* eval.c (flush_register_windows): new function.

Fri Jul  1 17:48:52 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (get2comp): revert all prior changes, and calculate
	  proper 2's complement for negative numbers.  backported from
	  HEAD.

Fri Jul  1 15:50:12 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* missing/erf.c: need to include some headers for some platforms.

	* win32/win32.h (copysign, scalb): define for compatibility with
	  other platforms. [ruby-dev:26430]

Fri Jul  1 15:37:42 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* missing/crypt.c: modified to make it compilable on platforms
	  other than BSD.  [ruby-dev:26430]

	* missing/erf.c: ditto.  code from <exp.c> merged.

Fri Jul  1 12:44:56 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI.open_http): refine post_connection_check
	  call.

Fri Jul  1 11:34:08 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* missing/crypt.c: replaced with 4.4BSD version.

	* missing/erf.c: ditto.

	* missing/vsnprintf.c: removed the third provision from the old
	  BSD license.  [ruby-core:05177]

Fri Jul  1 01:45:21 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (enum_min, enum_max): must not return Qundef.
	  fixed: [ruby-core:05299]

Fri Jul  1 00:18:40 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb (Delegator::respond_to): respond_to? must check
	  destination object.  [ruby-talk:146894]

Thu Jun 30 19:00:21 2005  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb/ruby-lex.rb (RubyLex::identify_number): alternative implements
	  for [ruby-dev:26410]. And support a numeric form of 0d99999.

Thu Jun 30 17:28:10 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/ruby-lex.rb (RubyLex::identify_number): should not treat
	  plain zero as an octal number.  [ruby-dev:26410]

Thu Jun 30 15:13:16 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): pre-evaluate argument for unambiguous
	  evaluation order.  [ruby-dev:26383]

Thu Jun 30 09:53:56 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb (Delegator::method_missing): forward unknown
	  method to the destination.  suggested by
	  <christophe.poucet@gmail.com>.  [ruby-talk:146776]

Tue Jun 28 21:59:29 2005  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* dir.c, eval.c, hash.c, process.c, ruby.c: avoid warning "unused
	  variable" [ruby-dev:26387]

Sat Jun 25 17:15:23 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_query): should
	  discard if key=val pair is empty. patch from Gary Wright.

Sat Jun 25 23:30:51 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (detach_process_watcher): terminate process watcher
	  thread right after rb_waitpid() succeed.  [ruby-talk:146430]

Sat Jun 25 15:49:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (enum_min, enum_max): do not ignore nil as the first element.

Sat Jun 25 14:40:17 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/sdbm/init.c (fsdbm_select): SDBM#select had returned the array
	  which contained each elements twice. [ruby-dev:26358]

Fri Jun 25 05:06:47 2005  Michael Neumann  <mneumann@ruby-lang.org>

	* lib/xmlrpc/*, test/xmlrpc/*: backported changes from HEAD into 1.8

Fri Jun 24 17:00:00 2005  Shigeo Kobayashi  <shigeo@tinyforest.jp>

	* ext/bigdecimal/bigdecimal.c: patch from "NATORI Shin"
	  (u-tokyo.ac.jp) applied to fix rounding bug.

Fri Jun 24 13:06:45 2005  akira yamada  <akira@ruby-lang.org>

	* lib/uri/common.rb, lib/uri/generic.rb: fixed typo in documents and
	  replaced some existent domain name with "example.com".

Fri Jun 24 12:23:19 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.

	* ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate
	  accept TkEvent::Event object as context argument.

	* ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and
	  valid_for_generate to get field parameters of event_generate.

Thu Jun 23 23:55:59 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* runruby.rb: should load built rbconfig.rb.

Thu Jun 23 16:53:15 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/canvastag.rb: TkcGroup.new cannot include given items.
	  TkcGroup#exclude calls wrong method.
	  Add alias TkcGroup#add [ruby-talk:146049].

	* ext/tk/lib/tk/canvas.rb: TkCanvas#dtag and some subcommands of
	  TkCanvas#addtag fail to treat a TkcTag argument.

	* ext/tk/lib/tk/event.rb: add TkEvent::Event#generate to help to send
	  current event to other widgets.

Mon Jun 20 18:44:04 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): DUMMY_SETJMP is replaced
	  because setjmp is not enough to fix getcontext and SPARC register
	  window problem.

Mon Jun 20 16:48:36 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?

	* ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?

	* ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?

	* test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb
	  (teardown): close all db objects before deleting data files.

	* win32/win32.{ch} (unlink): hook runtime function to change
	  file attribute before unlinking.
	  fixed: [ruby-dev:26360]

Mon Jun 20 02:15:35 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (define_final): document fix: finalizers never get called
	  before target object is destroyed.

Mon Jun 20 01:26:49 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/openssl_missing.c, ext/openssl/ossl.h,
	  ext/openssl/ossl_asn1.c, ext/openssl/ossl_bio.c,
	  ext/openssl/ossl_pkcs12.h, ext/openssl/ossl_x509req.c: avoid
	  compiler warnings. suggested by Michal Rokos.

Sun Jun 19 14:09:07 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (run_final): reduce unnecessary object allocation during
	  finalization.

	* gc.c (rb_gc_call_finalizer_at_exit): deferred finalizers list should
	  be cleared before calling them.  fixed: [ruby-talk:145790]

Fri Jun 17 13:01:40 2005  Tanaka Akira  <akr@m17n.org>

	* lib/time.rb (Time.parse): fix previous leap seconds support.
	  (Time.rfc2822): ditto.
	  (Time.xmlschema): ditto.

Thu Jun 16 15:06:55 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (ip_rb_threadVwaitCommand): Tcl_Release
	  was missing.

Thu Jun 16 13:34:48 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add Tk.getMultiple{Open|Save}File() which return
	  an Array of selected files.

Thu Jun 16 12:53:24 2005  Tanaka Akira  <akr@m17n.org>

	* lib/time.rb (Time.parse): "Fri Jan  1 08:59:60 +0900 1999" was
	  parsed as "Fri Jan 01 09:00:00 JST 1999" even on an environment
	  which supports leap seconds.
	  (Time.rfc2822): ditto.
	  (Time.xmlschema): ditto.

Thu Jun 16 08:29:22 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/dl/sym.c (rb_dlsym_call): needs FREE_ARGS before return.
	  fixed memory leak. [ruby-Bugs-2034]

Wed Jun 15 18:26:39 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: support "tk inactive" sub-command [for Tcl/Tk8.5a3]

	* ext/tk/lib/tk/namespace.rb: support "namespace path" sub-command and
	  'namespace ensemble' sub-command [for Tcl/Tk8.5a3]

Tue Jun 14 02:02:43 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c: add TkUtil::CallbackSubst.subst_arg(m, ...) &
	  _define_attribute_aliases(hash) to get substitution-argument from
	  attributes (e.g. subst_arg(:x,:y,:num,:button) --> "%x %y %b %b ").

	* ext/tk/lib/tk/event.rb: use _define_attribute_aliases().

Mon Jun 13 13:01:05 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* hash.c (ruby_setenv): fixed SEGV. [ruby-dev:26186]

Mon Jun 13 01:54:20 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* signal.c (sigexit): call rb_thread_signal_exit() instead of
	  rb_exit().  [ruby-dev:26347]

	* eval.c (rb_thread_signal_exit): a new function to exit on main
	  thread.

	* eval.c (rb_thread_switch): exit status should be retrieved from
	  ruby_errinfo.

	* eval.c (rb_f_exit): ensure exit(0) should call
	  exit(EXIT_SUCCESS).

Mon Jun 13 01:20:02 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (rb_gc_mark_threads): curr_thread may not be part of the
	  thread list.  [ruby-dev:26312]

Fri Jun 10 23:35:34 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* missing/mkdir.c: remove. [ruby-core:05177]

Fri Jun 10 22:54:26 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* missing.h: fd_set stuffs need sys/types.h.  fixed: [ruby-core:05179]

Thu Jun  9 23:58:12 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/Win32API/Win32API.c (Win32API_Call): disable global
	  optimization. fixed: [ruby-core:05143]

Thu Jun  9 23:35:22 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (enum_inject): default the result value to Qundef to use
	  first element as initial value if not given.

Thu Jun  9 19:55:41 2005  Tanaka Akira  <akr@m17n.org>

	* eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.
	  (ruby_setjmp): new macro to call setjmp, getcontext, etc.
	  (ruby_setjmp): call setjmp before getcontext to avoid IA64 register
	  stack problem.
	  [ruby-talk:144939]

	* gc.c (Init_stack): remove IA64_MAGIC_STACK_LIMIT.

Thu Jun  9 11:55:34 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb (SimpleDelegator::__setobj__): need check for
	  recursive delegation.  [ruby-core:04940]

Wed Jun  8 18:47:10 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.

Wed Jun  8 11:11:34 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (get2comp): calculate proper 2's complement for
	  negative numbers.  a bug in normalizing negative numbers
	  reported from Honda Hiroki <hhonda@ipflex.com>.

Wed Jun  8 08:33:10 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (enum_min_by, enum_max_by): return nil if no iteration.
	  fixed: [ruby-dev:26245]

	* eval.c (rb_need_block): ensure a block is given.

	* eval.c (backtrace): skip successive frames sharing same node.

Wed Jun  8 00:15:08 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (ruby_getaddrinfo__aix): merged a patch from
	  KUBO Takehiro <kubo at jiubao.org> to support AIX.  [ruby-list:40832]

Wed Jun  8 00:09:01 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/yaml/rubytypes.rb (Array::to_yaml): merged a patch from
	  Tilman Sauerbeck <tilman at code-monkey.de>.  [ruby-core:05055]

	* lib/yaml/rubytypes.rb (Hash::to_yaml): ditto.

Wed Jun  8 00:00:01 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/curses/curses.c (curses_insertln): merged a patch from
	  TAKAHASHI Tamotsu <ttakah at lapis.plala.or.jp>.  [ruby-ext:02305]

Tue Jun  7 19:34:15 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/init.rb (IRB::IRB.rc_file_generators): more flexible
	  IRB.rc_file_generators.  [ruby-core:05163]

Tue Jun  7 18:39:31 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/thread.rb: RDoc documentation from Eric Hodel
	  <drbrain at segment7.net> added.  [ruby-core:05148]

Tue Jun  7 18:30:04 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): add .SUFFIXES from depend file.
	  fixed: [ruby-dev:26294]

Tue Jun  7 17:39:54 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_mod_cvar_get): Module#class_variable_get(): back
	  ported from CVS HEAD.  [ruby-talk:144741]

	* object.c (rb_mod_cvar_set): Module#class_variable_set().
	  [ruby-talk:144741]

Tue Jun  7 16:32:53 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): raise exception on debug mode (-d),
	  not verbose mode (-v/-w).  [ruby-core:05123]

Tue Jun  7 10:30:49 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: slave-ip fails to call procedures
	  delegated by master-ip.

Sun Jun  5 23:00:35 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/console.rb: create console when required

	* ext/tk/sample/tkextlib/tile/demo.rb: fix TypeError & create Console

Sat Jun  4 14:55:18 2005  Tanaka Akira  <akr@m17n.org>

	* test/dbm/test_dbm.rb: merged from ext/dbm/testdbm.rb.

	* test/gdbm/test_gdbm.rb: merged from ext/gdbm/testgdbm.rb.

	* test/sdbm/test_sdbm.rb: renamed from ext/sdbm/testsdbm.rb with
	  modification to use test/unit.

Fri Jun  3 14:06:12 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: fix typo.

Wed Jun  1 11:32:42 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: can use single quote character in DESTDIR.
	  [ruby-dev:26205]

Mon May 30 23:48:29 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/macpkg.rb: add PACKAGE_NAME information of Tcl/Tk
	  Extension.

	* ext/tk/lib/tk/msgcat.rb: ditto.

	* ext/tk/lib/tk/winpkg.rb: ditto.

	* ext/tk/lib/tkextlib/*: ditto.

Sat May 28 16:40:15 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* test/openssl/test_x509store.rb: add test for expired CRL
	  and refine some assertions.

Sat May 28 05:15:51 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509store.c (ossl_x509stctx_set_time): should
	  not set internal flag directry.

Sat May 28 02:00:11 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
	  ENV["REQUEST_URI"] is better to get correct Request-URI
	  than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"].  [ruby-dev:26235]

Fri May 27 16:32:04 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/mkmf.rb: use the semicolon as the path separator
	  in the environment of MSYS.  fixed: [ruby-dev:26232]

Thu May 26 06:08:11 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add shortcut-methods of tk_call + tk_split_list

Wed May 25 22:52:42 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/irb/input-method.rb: do not use Readline::HISTORY.pop.
	  (backported from HEAD)

Wed May 25 21:55:40 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* ext/readline/readline.c: supported libedit. (backported from HEAD)

	* ext/readline/extconf.rb: ditto.

	* test/readline/test_readline.rb: ditto.

Wed May 25 20:06:27 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: TkComm#tk_split_*list fail to split a kind of SJIS
	  strings. To avoid the trouble, add arguments to control converting
	  encoding, and do split on a UTF8 string.

	* ext/tk/lib/multi-tk.rb: modify to attend encoding.

	* ext/tk/lib/remote-tk.rb: ditto.

	* ext/tk/lib/tk/itemconfig.rb: ditto.

	* ext/tk/lib/tk/listbox.rb: ditto.

	* ext/tk/lib/tk/namespace.rb: ditto.

	* ext/tk/lib/tk/panedwindow.rb: ditto.

	* ext/tk/lib/tk/text.rb: ditto.

	* ext/tk/lib/tk/textmark.rb: ditto.

	* ext/tk/lib/tk/texttag.rb: ditto.

	* ext/tk/lib/tk/variable.rb: ditto.

	* ext/tk/lib/tk/winfo.rb: ditto.

	* ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb: ditto.

	* ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: ditto.

	* ext/tk/lib/tk.rb: add TkWindow#lower_window/raise_window and
	  Tk#lower_window/raise_window by reason of method-name conflict

	* ext/tk/lib/tk/canvas.rb: bug fix on TkCanvas#delete when given
	  non-TkcItem arguments.

	* ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb: ditto.

Wed May 25 12:59:48 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI::Meta::RE_QUOTED_STRING): a content of
	  quoted-string should be zero or more characters.

Tue May 24 23:42:16 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (fix_pow): support Fixnum ** Float case directly
	  without coercing.  [ruby-talk:142697] [ruby-talk:143054]

Tue May 24 16:57:24 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ruby.c (require_libraries): caused SEGV when continuation jumped
	  in to the required library code.

Tue May 24 11:56:25 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/getopts.rb: should warn only if verbose mode.
	  fixed: [ruby-dev:26201]

Tue May 24 06:45:31 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): string
	  literals to be matched non-greedy.

Tue May 24 00:34:32 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/calc: method name 'set' was able to crash with a class Set.
	  [ruby-dev:26210]

	* test/wsdl/document/test_rpc.rb: dateTime comparison failed under
	  TZ=right/Asia/Tokyo (with leap second.) [ruby-dev:26208]

Mon May 23 16:24:05 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/extconf.rb: Framework support on MacOS X Tiger.

	* ext/tcltklib/README.1st: add description of Framework support options.

Mon May 23 12:21:37 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (make_regexp): should not return junk address during
	  compile time.  [ruby-dev:26206]

Sun May 22 21:54:06 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.

	  == SOAP client and server ==

	  === for both client side and server side ===

	  * improved document/literal service support.
	    style(rpc,document)/use(encoding, literal) combination are all
	    supported.  for the detail about combination, see
	    test/soap/test_style.rb.

	  * let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to
	    WSDL as well as obj2soap.  closes #70.

	  * let SOAP::Mapping::Object handle XML attribute for doc/lit service.
	    you can set/get XML attribute via accessor methods which as a name
	    'xmlattr_' prefixed (<foo name="bar"/> -> Foo#xmlattr_name).

	  === client side ===

	  * WSDLDriver capitalized name operation bug fixed.  from
	    1.5.3-ruby1.8.2, operation which has capitalized name (such as
	    KeywordSearchRequest in AWS) is defined as a method having
	    uncapitalized name. (converted with GenSupport.safemethodname
	    to handle operation name 'foo-bar').  it introduced serious
	    incompatibility; in the past, it was defined as a capitalized.
	    define capitalized method as well under that circumstance.

	  * added new factory interface 'WSDLDriverFactory#create_rpc_driver'
	    to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver
	    are merged).  'WSDLDriverFactory#create_driver' still creates
	    WSDLDriver for compatibility but it warns that the method is
	    deprecated.  please use create_rpc_driver instead of create_driver.

	  * allow to use an URI object as an endpoint_url even with net/http,
	    not http-access2.

	  === server side ===

	  * added mod_ruby support to SOAP::CGIStub.  rename a CGI script
	    server.cgi to server.rb and let mod_ruby's RubyHandler handles the
	    script.  CGIStub detects if it's running under mod_ruby environment
	    or not.

	  * added fcgi support to SOAP::CGIStub.  see the sample at
	    sample/soap/calc/server.fcgi.  (almost same as server.cgi but has
	    fcgi handler at the bottom.)

	  * allow to return a SOAPFault object to respond customized SOAP fault.

	  * added the interface 'generate_explicit_type' for server side
	    (CGIStub, HTTPServer).  call 'self.generate_explicit_type = true'
	    if you want to return simplified XML even if it's rpc/encoded
	    service.

	  == WSDL ==

	  === WSDL definition ===

	  * improved XML Schema support such as extension, restriction,
	    simpleType, complexType + simpleContent, ref, length, import,
	    include.

	  * reduced "unknown element/attribute" warnings (warn only 1 time for
	    each QName).

	  * importing XSD file at schemaLocation with xsd:import.

	  === code generation from WSDL ===

	  * generator crashed when there's '-' in defined element/attribute
	    name.

	  * added ApacheMap WSDL definition.

	* sample/{soap,wsdl}: removed.

Sun May 22 19:11:35 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#intialize):
	  should initialize session id context. [ruby-core:4663]

	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): add session id support.

Sat May 21 10:24:21 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: tds files were not deleted when DESTDIR
	  included '\' path delimiter. [ruby-dev:26193]

Thu May 19 19:04:29 2005  speakillof  <speakillof@yahoo.co.jp>

	* lib/rexml/encodings/SHIFT-JIS.rb: encoding and decoding were
	  swapped. [ruby-core:4772]

Wed May 18 23:42:25 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (exc_exception): reverted to call Exception#initialize
	  directly.  fixed: [ruby-dev:26177]

Wed May 18 23:39:09 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (glob_helper): get rid of using String.  [ruby-dev:26180]

	* dir.c (push_braces): should skip balanced braces.

	* eval.c (ruby_options), win32/win32.c (NtInitialize): move argument
	  intialization back.  [ruby-dev:26180]

Tue May 17 15:31:31 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should
	  break the loop if the socket reached to EOF. [ruby-talk:142285]

Tue May 17 11:52:18 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (unixtime_to_filetime): use localtime() instead of
	  gmtime() when using FileLocalTimeToFileTime().

Mon May 16 22:28:43 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.h, {bcc32,win32,wince}/Makefile.sub: moved rb_[ugp]id_t
	  to get rid of redefinition warnings on mingw.

	* class.c (rb_class_init_copy): singleton class is disallowed to copy,
	  from its definition.  fixed: [ruby-talk:142749]

Mon May 16 08:52:29 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.{h,c}: define rb_[pgu]id_t.

Mon May 16 00:21:02 2005  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#unlink): use SystemCallError instead of
	  Errno::EISDIR because EISDIR is not portable.
	  [ruby-core:5001]

Sun May 15 22:11:33 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbObject#method_missing): use raise(exception).
	  [ruby-dev:26164]

Sun May 15 18:56:35 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in, ruby.h: define rb_[pgu]id_t macros instead of typedefs
	  to get rid of types which might not be defined yet.  [ruby-dev:26165]

Sun May 15 14:35:46 2005  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#unlink): unlink a symlink to a directory
	  was failed.  [ruby-core:4992]

Sun May 15 09:57:30 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/win32.c (unixtime_to_filetime): deal with DST.
	  [ruby-talk:141817]

Sat May 14 23:59:11 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (exc_exception, {exit,name_err,syserr}_initialize): call
	  Execption#initialize.  fixed: [ruby-talk:142593]

Sat May 14 23:57:26 2005  Erik Huelsmann  <ehuels@gmail.com>

	* configure.in: Check for the availability of pid_t, gid_t and uid_t and
	  remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]

	* defines.h: Remove pid_t typedef.

	* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
	 the available system types.

	* process.c: Change instances of pid_t and gid_t to their rb_*
	 counterparts.

	* ext/pty/pty.c: Change pid_t to rb_pid_t.

	* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.

	* win32/Makefile.sub: Remove #define for {g,u}id_t.

	* win32/win32.c: Change pid_t to rb_pid_t.

	* wince/Makefile.sub: Remove #define for {g,u}id_t.

	* wince/sys/types.h: Remove definitions of {p,g,u}id_t.

Fri May 13 23:44:22 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: keep srcdir unexpanded.

	* lib/mkmf.rb (create_makefile): quote topdir and hdrdir if necessary.
	  fixed: [ruby-core:04932]

	* lib/mkmf.rb (configuration), {bcc32,win32,wince}/Makefile.sub: make
	  also INSTALL_PROG and INSTALL_DATA system dependent.
	  fixed: [ruby-core:04931]

Fri May 13 17:54:39 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* variable.c (generic_ivar_get): rb_attr_get should not warn.
	  [ruby-dev:26010]

Fri May 13 12:28:43 2005  Daniel Berger  <djberge@qwest.com>

	* array.c (rb_ary_select): can remove argc check. [ruby-core:4911]

	* test/ruby/test_array.rb: add test for find_all.

Fri May 13 11:29:00 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (unknown_node): add volatile directive to prototype.

Thu May 12 17:08:48 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
	  (swallow, rb_io_each_byte, rb_io_getc): revert previous change.

	* io.c (rb_io_eof, io_fread, appendline, swallow, rb_io_each_byte)
	  (rb_io_getc, rb_getc): call clearerr before getc to avoid
	  stdio incompatibility.

Thu May 12 16:52:20 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/rdoc/parsers/parse_c.rb: more readability for mixing
	  progress "c..." and warning message.

Thu May 12 16:31:00 2005  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c: follow nkf 2.0.5

Thu May 12 16:15:01 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
	  (swallow, rb_io_each_byte, rb_io_getc): don't rely EOF flag.
	  [ruby-talk:141527]

Thu May 12 15:56:20 2005  Tilman Sauerbeck  <tilman@code-monkey.de>

	* lib/rdoc/parsers/parse_c.rb: show parsing progress for C files.
	  [ruby-core:4341]

Thu May 12 13:47:56 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/drb/test_drb{ssl,unix}.rb: can test drb
	  before install. (backported from HEAD) [ruby-dev:26146]

Thu May 12 09:53:57 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* version.c (ruby_show_version): flush for non-tty stdout.

Thu May 12 09:07:07 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/ruby/envutil.rb, test/drb/drbtest.rb: can test drb
	  before install. (backported from HEAD) [ruby-Bugs-1672]

Thu May 12 01:23:55 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval), parse.y (arg): reduce fixnum range literal at
	  parser.  fixed: [ruby-dev:26113]

	* eval.c (unknown_node): ignore broken NODE to get rid of accessing
	  possibly inaccessible address.  fixed: [ruby-dev:26122]
	  should emit more useful information like [ruby-dev:26126], though.

Wed May 11 16:20:01 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb: new methods WEBrick::CGI#[], WEBrick::CGI#logger
	  and WEBrick::CGI#config. (backported from HEAD)

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape_path): should
	  not use String#split("/"). (backported from HEAD)

Wed May 11 15:58:39 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (break_jump): break should not cross functions.
	  [ruby-list:40818]

Wed May 11 10:39:37 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/tempfile.rb (Tempfile#unlink): fixed typo.

Wed May 11 01:03:36 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (TMP_ALLOC): use macro NEW_NODE() to get rid of warnings on
	  platforms which have no alloca().  fixed: [ruby-talk:141301]

Sun May  8 23:17:47 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb: fix typo.

Sun May  8 16:52:56 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/profiler.rb: fixed "undefined method `[]' for nil:NilClass"
	  [ruby-core:4775] [ruby-talk:140401] [ruby-dev:26118]

Sat May  7 22:58:00 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (have_var): no libs argument is given.

Sun May  1 09:58:11 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ruby.c (process_sflag): replace '-' in variable names with '_'.
	  [ruby-dev:26107]

	* ruby.c (set_arg0): use also environment variable space for setting
	  $0.  [ruby-core:04774]

Wed Apr 27 23:42:22 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/Makefile.sub (OPTFLAGS): default global optimization to
	  disabled only for VC++6.

Tue Apr 26 22:58:00 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_invoke_core): call Tcl's "::unknown"
	  command when can't get information of target command.

Mon Apr 25 01:18:43 2005  Tanaka Akira  <akr@m17n.org>

	* regex.c: declare rb_warn to have variadic argument.  [ruby-core:4751]

Sat Apr 23 19:45:59 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (ip_RubyExitCommand): exit with status code
	  via TclTkIp#_eval didn't work. [ruby-talk:139390]

Fri Apr 22 16:41:50 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (ip_set_exc_message): fixed memory leak.

	* ext/tcltklib/tcltklib.c: eTkCallbackReturn was not initialized.

Thu Apr 21 00:07:50 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): support platforms have file separator
	  other than /.

	* {bcc32,win32,wince}/Makefile.sub (BUILD_FILE_SEPARATOR): separator
	  of building platform.

	* {bcc32,win32,wince}/Makefile.sub (CP, INSTALL): use COPY command.

Wed Apr 20 23:22:39 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in, common.mk: miniruby depens on MINIOBJS.

	* dmydln.c (dln_load): dummy function to raise LoadError.

	* cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby
	  can't load extensions on Windows.

Wed Apr 20 23:01:35 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* win32/ifchange.bat: delete testing files.

Wed Apr 20 07:27:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* {bcc32,win32,wince}/configure.bat, {bcc32,win32,wince}/setup.mak:
	  add extout option.

	* bcc32/setup.mak: make configuration variables overridable.

Wed Apr 20 04:15:27 2005  Keiju Ishitsuka  <keiju@ruby-lang.org>

	* lib/irb.rb lib/irb/* doc/irb: IRB 0.9.5

Tue Apr 19 23:37:09 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/ftools.rb (File.safe_unlink): do not modify a symlinked file.

Tue Apr 19 00:06:20 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: expand path for ext/**/extconf.rb.

Mon Apr 18 11:25:14 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/zlib/zlib.c (zstream_run): fixed SEGV. [ruby-core:4712]

Sun Apr 17 23:57:49 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake, parse_args): do not expand destdir.

	* ext/extmk.rb (relative_from): treat mere drive letter as an absolute
	  path.

Sat Apr 16 17:01:16 2005  Kouhei Sutou  <kou@cozmixng.org>

	* sample/rss/tdiary_plugin/rss-recent.rb (rss_recent_cache_rss):
	  use the first date information of items as site date information
	  if channel doesn't have date information.

Sat Apr 16 15:27:03 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (RUBY_PROG_INSTALL): not add -p option to INSTALL.
	  files need timestamps to be kept are only ar-archive on a few
	  platforms, and be installed by instruby.rb but not INSTALL.
	  fixed: [ruby-core:04721]

	* mkconfig.rb: purge autoconf value variables.

Sat Apr 16 10:36:01 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: quick hack... prepend DESTDIR.
	  still have restriction on DESTDIR ("", "/", "e:")

Sat Apr 16 03:59:42 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: check for OPENSSL_cleanse.

	* ext/openssl/openssl_missing.h: ditto.

Thu Apr 14 19:18:30 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (remove_file): ignore exceptions caused by
	  chmod.

	* lib/fileutils.rb (remove_dir): try to get rights to rmdir.
	  [ruby-Bugs:1502] (2 items backportted from HEAD, rev 1.53-54)

Thu Apr 14 16:57:40 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bcc32/Makefile.sub: failed to remove debug information files.
	  fixed: [ruby-dev:26034]

Wed Apr 13 23:40:21 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (RSS::VERSION): 0.1.3 -> 0.1.4.

	* lib/rss/rss.rb (RSS::Element#converter): fixed converter
	  transmission bug.

Wed Apr 13 21:20:35 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (mingw32): extract msvcr*.dll from objdump result.

Wed Apr 13 20:24:30 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (mingw32): use actual runtime DLL name as ruby DLL
	  name and default load path.

	* win32/Makefile.sub, win32/setup.mak: ditto.

Tue Apr 12 15:33:09 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_finalize): better modification than the
	  previous commit [ruby-dev:26029].

Tue Apr 12 12:38:06 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_finalize): fix SEGV when Tcl_GlobalEval()
	  modifies the argument string to eval.

Tue Apr 12 02:21:55 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_finalize): add existence check of
	  Tcl commands before calling Tcl_GlobalEval().

Mon Apr 11 23:47:21 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: [druby-ja:123] fix: When reference of my object is
	  loaded, the object is tainted.

	* test/drb/test_drb.rb: ditto.

Mon Apr 11 22:18:23 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* dir.c, file.c (lstat): avoid warnings for mingw.

Mon Apr 11 20:11:06 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_finalize): adhoc patch to avoid SEGV
	  when exit on Tcl/Tk8.3.x.

Mon Apr 11 15:26:25 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb (configuration): shouldn't output hdrdir twice.

Mon Apr 11 12:09:05 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* {bcc32,win32,wince}/Makefile.sub: ri data was not installed
	  into correct path. [ruby-dev:26011]

	* bcc32/Makefile.sub: defaulted install-nodoc. [ruby-dev:26011]

Sun Apr 10 10:12:42 2005  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c(ole_invoke): retry after converting Qnil
	  to VT_EMPTY.

	* ext/win32ole/win32ole/tests/testWIN32OLE.rb: correct error
	  message string "Unknown" => "unknown".

Sat Apr  9 18:20:31 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/image.rb: support to create TkImage object without
	  creating a new image object on Tk.

	* ext/tk/lib/tk/menu.rb: use TkCommandNames on create_self()

	* ext/tk/lib/tk/root.rb: TkRoot.to_eval() returns '.'.

	* ext/tk/lib/tk/text.rb: add methods to create a TkText::IndexString
	  from (x, y) coords.

	* ext/tk/lib/tkextlib/tile/: add demo and update support status.

Sat Apr  9 14:42:29 2005  Kouhei Sutou  <kou@cozmixng.org>

	* sample/rss/tdiary_plugin/rss-recent.rb: supported configuration
	  via Web browser.

Sat Apr  9 11:59:57 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss: backoported from HEAD.

	* lib/rss: refactored.
	  - gave a name to 'x'.
	  - undef_method -> remove_method for avoiding a warning in ruby 1.6.

	* lib/rss/parser.rb: @@setter -> @@setters.

	* lib/rss/parser.rb
	  (RSS::BaseListener.register_uri)
	  (RSS::BaseListener.uri_registered?)
	  (RSS::BaseListener.install_get_text_element):
	  swapped the first argument and the second argument.

	* lib/rss/taxonomy.rb: swapped the first argument and the second
	  argument for RSS::BaseListener.install_get_text_element.
	* lib/rss/image.rb: ditto.
	* lib/rss/syndication.rb: ditto.
	* lib/rss/dublincore.rb: ditto.
	* lib/rss/parser.rb: ditto.
	* lib/rss/1.0.rb: ditto.
	* lib/rss/2.0.rb: ditto.
	* lib/rss/0.9.rb: ditto.
	* lib/rss/content.rb: ditto.

	* lib/rss/parser.rb
	  (RSS::BaseListener.install_setter)
	  (RSS::BaseListener.register_uri): changed fallback way.

	* lib/rss/parser.rb: added class name registry for complex model
	  elements. (ex. have childlen elements, have some attributes and
	  a child element and so on.)

	* lib/rss/dublincore.rb: supported multiple Dublin Core items.
	* lib/rss/maker/dublincore.rb: ditto.

	* lib/rss/maker/image.rb: supproted new Dublin Core API.

	* lib/rss/maker/base.rb: added default current_element implementation.

	* lib/rss/trackback.rb (RSS::TrackBackUtils.new_with_value_if_need):
	  moved to RSS::Utils.

	* lib/rss/utils.rb (RSS::Utils.new_with_value_if_need):
	  moved from RSS::TrackBackUtils.

	* lib/rss/maker/image.rb: fixed invalid argument of
	  add_need_initialize_variable bug.
	* lib/rss/maker/trackback.rb: ditto.

	* lib/rss/rss.rb (Hash#merge): added for ruby 1.6.

	* lib/rss/rss.rb (RSS::BaseModel.date_writer): changed to accept nil
	  for date value.

	* test/test_dublincore.rb: added tests for plural accessor and
	  multiple Dublin Core items.

	* test/test_setup_maker_1.0.rb: fixed swapped actual and expected
	  values.

	* test/rss/rss-assertions.rb (assert_multiple_dublin_core): added
	  an assertion for testing multiple Dublin Core items.

	* test/rss/test_maker_dc.rb (test_rss10_multiple): added a test
	  for making multiple Dublin Core items.

	* test/rss/test_maker_dc.rb (test_date): added a test for #date=
	  and #dc_date=.

	* sample/rss/tdiary_plugin/rss-recent.rb:
	  new option: @options['rss-recent.use-image-link']:
	  use image as link instread of text if available.

	* sample/rss/tdiary_plugin/rss-recent.rb (RSS_RECENT_VERSION):
	  0.0.5 -> 0.0.6.

Fri Apr  8 20:17:48 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): hdrdir needs to be defined also in
	  Config::CONFIG.

	* lib/mkmf.rb (configuration, create_makefile): get rid of recursive
	  macro reference.

Fri Apr  8 18:26:56 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c: add callbacks to OpenSSL::SSL::SSLContexts.
	  - SSLContext#client_cert_cb=(aProc). it is called when a client
	    certificate is requested by a server and no certificate was not
	    set for the SSLContext. it must return an Array which includes
	    OpenSSL::X509::Certificate and OpenSSL::PKey::RSA/DSA objects.
	  - SSLContext#tmp_dh_callback=(aProc). it is called in key
	    exchange with DH algorithm. it must return an OpenSSL::PKey::DH
	    object.

	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): ignore the
	  argument if it's nil.

	* ext/openssl/ossl_pkey.c
	  (GetPrivPKeyPtr, ossl_pkey_sign): should call rb_funcall first.
	  (DupPrivPKeyPtr): new function.

	* ext/openssl/ossl_pkey_dh.c: add default DH parameters.

	* ext/openssl/ossl_pkey.h: ditto.

Fri Apr  8 01:55:20 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/demos-{en,jp}/goldberg.rb: reduced window size.
	  [ruby-dev:25992]

Thu Apr  7 23:58:40 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): keep directory names in Makefile as macros.

	* lib/mkmf.rb (configuration, create_makefile): ditto.

	* lib/mkmf.rb (CXX_EXT): separate C++ extensions.

Thu Apr  7 17:43:25 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* eval.c (rb_call0): "return" event hook should be always executed
	  if event_hooks is set.  fixed: [ruby-core:04662]
	  (backported from HEAD)

Mon Apr  4 23:17:52 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb (TkComm#array2tk_list): accept enc-mode argument to
	  decide whether convert encoding of each element or not.

	* ext/tk/lib/tk/variable.rb (TkVariable#value=): fail to convert the
	  encoding of array elements when assign an array to an TkVariable
	  object.

Mon Apr  4 10:26:48 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tk/lib/tk/dialog.rb: fixed typo.

Sun Apr  3 17:16:33 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.{h,c} (rb_w32_fdopen): avoid warning on bcc32.
	  (backported from HEAD)

Sat Apr  2 23:38:54 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (CP, INSTALL): get rid of less portable options.

	* lib/mkmf.rb (configuration, create_makefile): correct configuration
	  variable.

	* {bcc32,win32,wince}/{Makefile.sub,setup.mak}: leave prefix empty in
	  config.status for backward compatibility.  fixed: [ruby-core:04649]

	* lib/mkmf.rb (create_makefile): ensure library directories get made
	  before copying libraries there.

Sat Apr  2 16:59:46 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: forgot to update RELEASE_DATE

	* ext/tk/lib/tk/variable.rb: fix namespace trouble when autoloading

	* ext/tk/lib/tk/palette.rb: define Tcl variable 'tkPalette' as global

	* ext/tk/lib/tk/dialog.rb: use array2tk_list method when calling
	  Tk.ip_eval.

	* ext/tk/lib/tk/autoload.rb: add autoload entry 'TkDialogObj' and
	  'TkWarningObj'

Sat Apr  2 02:19:11 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb (TkWindow.initialize): accept 'without_creating'
	  option without 'widgetname' option to allow creating a widget object
	  which is used as an argument of Tcl/Tk's widget allocation commands.

	* ext/tk/lib/tk/image.rb (TkImage.initialize): accept 'imagename'
	  option to create a image object by the given name.

Thu Mar 31 22:23:51 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (SRC_EXT): exclude just case different suffixes on case
	  insensitive file system platforms.

	* README.EXT, README.EXT.ja (Appendix C): utility functions.

Thu Mar 31 14:15:44 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should return
	  value. [ruby-dev:25971]

Thu Mar 31 08:25:50 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* common.mk (RUBYOPT): clear for the environment RubyGems installed.

	* common.mk (clean-local): keep $(PREP) files till distclean.

	* common.mk (check): do all tests.

Thu Mar 31 06:00:20 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should not raise
	  error even if the specified engine could not be loaded. (Dynamic
	  engines don't have fixed name to load.)

Thu Mar 31 00:18:27 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/ifchange.bat, win32/rm.bat: backported from HEAD.

Wed Mar 30 23:44:50 2005  Nobuyoshi Nakada  <nobu.nokada@softhome.net>

	* Makefile.in, */Makefile.sub, */configure.bat,
	  cygwin/GNUmakefile.in, common.mk, configure.in, ext/extmk.rb,
	  lib/mkmf.rb, instruby.rb, runruby.rb: backport extout.
	  [ruby-dev:25963]

Wed Mar 30 17:41:48 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: add TclTkIp#_create_console() method to
	  create a Tcl/Tk's console window.

	* ext/tk/lib/multi-tk.rb: support TclTkIp#_create_console() method.

	* ext/tk/lib/remote-tk.rb: ditto.

	* ext/tk/lib/tk/console.rb: ditto.

	* ext/tk/lib/tk.rb: update RELEASE_DATE

	* ext/tk/sample/demo-*/check2.rb: use 'return' in the Proc object.

	* ext/tk/sample/tkextlib/**: ditto.

Tue Mar 29 22:11:56 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb: use DRbObject.new_with instead of reinit.
	  [ruby-dev:25961]

Mon Mar 28 23:40:40 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: move method DRbObject#reinit to DRbObject.new_with.
	  extract method DRbObject.prepare_backtrace. add DRb.regist_server,
	  remove_server, fetch_server. change server in thread variable if
	  in-proc server. [druby-ja:113]

	* lib/drb/gw.rb: ditto.

Mon Mar 28 20:43:34 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/syck/rubyext.c: get rid of warnings caused by a bug of VC.

Mon Mar 28 08:39:49 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_create): Iconv::Failure requires 3
	  arguments.  (pointed out by NaHi)

Sat Mar 26 22:51:33 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb (_callback_entry_class?): add for checking whether
	  a class is available for a callback entry.

	* ext/tk/lib/tk.rb (after_cancel): add Tk.after_cancel(afterID) method.

	* ext/tk/lib/tk.rb (array2tk_list): change from private module method
	  of TkComm to public module method.

	* ext/tk/lib/tk.rb (cget): add check that slot argument is not
	  empty string.

	* ext/tk/lib/tk.rb (configinfo): ditto.

	* ext/tk/lib/tk/itemconfig.rb (itemcget): add check that slot argument
	  is not empty string.

	* ext/tk/lib/tk/itemconfig.rb (itemconfiginfo): ditto.

	* ext/tk/lib/tk/entry.rb: add TkEntry#icursor and icursor= (alias of
	  cursor and cursor= method).

	* ext/tk/lib/tk/font.rb: improve font treatment when the font name is
	  empty string.

	* ext/tk/lib/tk/variable.rb: add :variable, :window and :procedure
	  type.

	* ext/tk/lib/tk/variable.rb: improve treatment of array-type
	  tkvariable.

	* ext/tk/lib/tkextlib/blt.rb: add commands for zooming.

	* ext/tk/lib/tkextlib/blt/*: bug fix.

	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and add methods
	  to call TreeCtrl commands for bindings.

	* ext/tk/sample/tkextlib/blt/*: new sample scripts.

	* ext/tk/sample/tkextlib/treectrl/*: ditto.

Fri Mar 25 10:53:16 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (WIN32_LEAN_AND_MEAN): removed because a lot of
	  troubles.  [ruby-list:40721]

Thu Mar 24 23:10:44 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (macro_defined?): try to compile for an old compiler
	  which doesn't bail out at #error directive.  [ruby-dev:25818]

	* lib/mkmf.rb (check_sizeof): refine logging messages.

Thu Mar 24 03:57:48 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/utils.rb (WEBrick::Utils.create_listeners):
	  - should raise ArgumentError if no port is specified.
	  - even if the specified port is 0, all TCPServers should be
	  initialized with the port given to the first one.

	* lib/webrick/server.rb (WEBrick::GenericServer#initialize): if :Port
	  parameter is 0, it should be updated with the port number which
	  actually listened.

Wed Mar 23 00:35:10 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* test/ruby/test_settracefunc.rb (test_event): added tests for
	  "class" and "end" and "raise".

Tue Mar 22 22:40:18 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* eval.c (rb_call0): check event_hooks instead of trace_func.

Tue Mar 22 17:30:44 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* eval.c (rb_add_event_hook): new function to add a hook function for
	  interpreter events. (backported form HEAD)

Sun Mar 20 22:51:19 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (mkmf_failed): check if Makefile is created without
	  create_makefile.

Sat Mar 19 23:48:10 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-expr-beg): returned true always.
	  fixed: [ruby-list:40683]

Sat Mar 19 00:41:02 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/font.rb: add some TkFont class methods to get font
	  information without creating a TkFont object.

	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and define some
	  classes for components of Tk::TreeCtrl

Thu Mar 17 17:42:13 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (make_struct): allow non local-id field
	  names. [ruby-core:04575]

	* struct.c (inspect_struct): ditto.

Wed Mar 16 23:36:02 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* eval.c (rb_call0): call_cfunc() should be protected.

	* test/ruby/test_settracefunc.rb: added test for c-return.

Wed Mar 16 22:20:25 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* object.c (str_to_id): fixed typo.

Wed Mar 16 18:08:32 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): reorganize "return" event post.

Tue Mar 15 23:49:19 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (Init_iconv): InvalidEncoding also should include
	  Iconv::Failure.

Tue Mar 15 16:38:11 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c (ary2list): give wrong arguments to hash2kv()

Mon Mar 14 19:39:33 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb (TkTimer): forgot to clear @return_value
	  when restarting

	* ext/tk/lib/tk/sample/cd_timer.rb: new sample of TkRTTimer

Mon Mar 14 12:21:03 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb (TkRTTimer): forgot to reset the callback
	  time. So, 'continue' do all callbacks between 'stop' and 'continue'.

Mon Mar 14 08:14:56 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (str_to_id): warn for NUL containing strings.

Mon Mar 14 00:13:49 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb (TkRTTimer): correct calculation of offset
	  value. get a little better accuracy.

	* ext/tk/sample/demos-en/widget: use a binding with no local variables
	  when eval a sample script.

	* ext/tk/sample/demos-en/bind.rb: ditto.

	* ext/tk/sample/demos-en/tcolor: ditto.

	* ext/tk/sample/demos-jp/widget: ditto.

	* ext/tk/sample/demos-jp/bind.rb: ditto.

	* ext/tk/sample/demos-jp/tcolor: ditto.

Sun Mar 13 10:04:17 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb: remove test_gc. [ruby-dev:25871]

Thu Mar 10 19:12:06 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (lib_eventloop_ensure): mis-delete a timer
	  handler when exit from a recursive called eventloop

	* ext/tk/lib/tk/timer.rb: new TkRTTimer class, which can works for a
	  realtime operation

	* ext/tk/sample/tkrttimer.rb: sample of TkRTTimer class

	* ext/tk/lib/tk/textmark.rb: move  TkTextMark#+ and TkTextMark#- to
	  TkText::IndexModMethods

	* ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and
	  add them to TkText::IndexModMethods module

	* ext/tk/sample/tktextio.rb: add test part of "seek by text index
	  modifiers"

Thu Mar 10 08:10:11 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (make_regexp): need to free internal regexp structure when
	  compilation fails.  [ruby-talk:133228]

Wed Mar  9 20:25:58 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_write): call
	  rb_sys_fail if errno isn't 0. [ruby-dev:25831]

	* ext/openssl/lib/openssl/cipher.rb: fix typo. [ruby-dev:24285]

Wed Mar  9 15:46:35 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/server.rb (WEBrick::GenericServer#start): should
	  restore @token if accept failure. suggested by Dominique Brezinski.
	  [ruby-core:04518]

Wed Mar  9 13:37:57 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tktextio.rb: fix bug of handling 'end' position.
	  support initial text, overwrite setting and pos_gravity control.

Tue Mar  8 18:16:55 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tktextio.rb: New sample script. TkTextIO class in this
	  sample supports to use a text widget as if it is a I/O stream (such
	  like as StringIO class).

Tue Mar  8 13:54:40 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c: workaround for some of 4.4BSD-Lite derived OSs.

Tue Mar  8 12:36:17 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c: document from Sam Roberts
	  <sroberts@uniserve.com> for getsockopt and setsockopt is merged.
	  [ruby-doc:824]

Tue Mar  8 01:27:00 2005  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.66
	  fixed: [ruby-dev:25828]

Mon Mar  7 21:35:02 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* sample/webrick/httpsd.rb: fix typo in comment. suggested by
	  Kazuhiko Shiozaki.

Mon Mar  7 14:55:43 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (block_pass): should not push unique number if a block is
	  not an orphan.  [ruby-dev:25808]

Wed Feb 16 02:55:21 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_read,
	  ossl_ssl_write):
	  - need to set errno on Win32 platform.
	  - should call rb_sys_fail instead of rasing SSLError if
	    SSL_ERROR_SYSCALL occured.
	  - should wait for that the underlying IO become readable or
	    writable if the error was SSL_ERROR_WANT_READ or
	    SSL_ERROR_WANT_WRITE. [ruby-dev:25795]

	* ext/openssl/lib/openssl/buffering.rb
	  (Buffering#initialize): should set @eof and @rbuffer.
	  (Buffering#fill_rbuff): should rescue Errno::EAGAIN.
	  (Buffering#consume_rbuf): pointless eof flag resetting is deleted.
	  (Buffering#read): should return an empty string if the specified
	  size is zero.
	  (Buffering#readpartial): new method.
	  (Buffering#readline): fix typo.
	  (Buffering#getc): return the first character of string correctly.
	  (Buffering#each): fix typo.  suggested by Brian Ollenberger.
	  (Buffering#readchar): fix typo.
	  (Buffering#eof?): should read again it the input buffer is empty.
	  (Buffering#do_write): should rescue Errno::EAGAIN.
	  (Buffering#puts): use "\n" as the output field separator.

	* ext/openssl/lib/openssl/ssl.rb: set non-blocking flag to the
	  underlying IO.

	* ext/openssl/extconf.rb: get rid of GNUmakefile generation.

	* text/openssl/test_pair.rb: test for IO like methods.

	* test/ruby/ut_eof.rb: test about empty file.

Mon Mar  7 10:22:06 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/un.rb: should use OptionParser. (backported form HEAD)

Mon Mar  7 09:18:42 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_cmp_m): should not return false but nil.
	  fixed: [ruby-dev:25811]

Mon Mar  7 01:22:14 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c: remove the some codes which depend on the
	  difference between Ruby1.8 and 1.9, because st.c on Ruby1.9
	  was changed.

Mon Mar  7 00:01:04 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fail to call TclTkLib.mainloop when $SAFE==4

Sun Mar  6 16:41:33 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: HTTPHeader holds its header fields as an array
	  (backport from CVS HEAD rev 1.112-1.123). [ruby-list:40629]

	* test/net/http/test_httpheader.rb: new file.

Sun Mar  6 11:47:10 2005  Sam Roberts  <sroberts@uniserve.com>

	* lib/pp.rb: rdoced.  [ruby-core:4490]

Sun Mar  6 11:36:37 2005  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb (File::Stat#pretty_print): Etc.getpwuid and Etc.getgrgid
	  may return nil.  [ruby-talk:129826]
	  reported by Daniel Berger.

Sat Mar  5 18:06:21 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (fnmatch): removed unnecessary code. (ruby_1_8 didn't have
	  String#clear, so [ruby-dev:24749] didn't affect it)

	* win32/win32.c (NtInitialize): ditto. (by numeric.c 1.101.2.14)

Sat Mar  5 16:29:26 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: freeze callback-entry objects

	* ext/tk/lib/tkextlib/tile.rb: support tile-0.6

Fri Mar  4 19:39:28 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#do_includes): replace
	  also locally defined modules.

	* ext/iconv/iconv.c: backport Iconv::InvalidEncoding from CVS HEAD.

	* ext/strscan/strscan.c: moved misplaced rdoc.

Fri Mar  4 15:58:12 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi-lib.rb: add deprecation warning. [ruby-dev:25499]
	  getopts.rb, parsearg.rb, importenv.rb as well.

Fri Mar  4 11:17:06 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_rbUpdateCommand): get rid of
	  warnings with Tcl/Tk 8.3 or former (backport from CVS_HEAD).

	* ext/tcltklib/tcltklib.c (ip_rb_threadUpdateCommand): ditto.

Fri Mar  4 10:15:30 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/set.rb (SortedSet::setup): a hack to shut up warning.
	  [ruby-talk:132866]

Fri Mar  4 07:07:00 2005  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.63

Thu Mar  3 23:49:00 2005  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.62

Thu Mar  3 11:49:51 2005  Kouhei Sutou  <kou@cozmixng.org>

	* sample/rss/tdiary_plugin/rss-recent.rb: added site information.

Wed Mar  2 19:53:07 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (parse_args): add DESTDIR only when not directed
	  already.  fixed: [ruby-dev:25781]

Wed Mar  2 17:14:18 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (lib_eventloop_core): fix typo

Wed Mar  2 16:00:02 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: enforce thread-check and exception-handling
	  to avoid SEGV trouble.
	  [KNOWN BUG] When supports pthread and running multiple Tk
	  interpreters, an interrupt signal causes SEGV frequently. That
	  may be a trouble of Ruby's signal handler.

	* ext/tk/tkutil/tkutil.c; fix a bug on converting a SJIS string array
	  to a Tcl's list string.

	* ext/tk/tcltklib.c: wrap Tcl's original "namespace" command to
	  protect from namespace crash.

	* ext/tk/lib/multi-tk.rb: enforce exception-handling.

	* ext/tk/lib/multi-tk.rb: catch IRB_EXIT to work on irb.

	* ext/tk/lib/tk.rb: ditto.

	* ext/tk/tcltklib.c: add TclTkLib.mainloop_thread?

	* ext/tk/lib/multi-tk.rb: (bug fix) callback returns a value.

	* ext/tk/lib/tk/canvas.rb (delete): bug fix when multiple arguments.

	* ext/tk/lib/clock.rb: fix 'no method error'.

	* ext/tk/lib/clock.rb (self.clicks): accept a Symbol argument.

	* ext/tk/lib/variable.rb: be able to set default_value_type; :numeric,
	  :bool, :string, :symbol, :list, :numlist or nil (default; same to
	  :string). If set a type, TkVariable#value returns a value of the
	  type.

	* ext/tk/lib/tkextlib/tclx/tclx.rb: add Tk::TclX.signal to warn the
	  risk of using TclX extension's 'signal' command.

	* ext/tk/sample/irbtk.rb: irb with Ruby/Tk.

	* ext/tk/sample/demos-*/anilabel.rb: bug fix on 'show code'

	* ext/tk/sample/demos-*/aniwave.rb: new Ruby/Tk animation demo.

	* ext/tk/sample/demos-*/pendulum.rb: ditto.

	* ext/tk/sample/demos-*/goldberg.rb: ditto.

	* ext/tk/sample/demos-*/widget: add entries of animation demos.

Tue Mar  1 00:47:43 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb: backport from CVS_HEAD. use
	  MockClock.sleep instead of Kernel.sleep [ruby-dev:25387]

Tue Mar  1 00:34:24 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb (Rinda::TupleSpace): improved keeper thread.

	* test/rinda/test_rinda.rb: ditto.

Mon Feb 28 11:42:23 2005  Ian Macdonald  <ian@caliban.org>

	* exception error messages updated.  [ruby-core:04497]

Mon Feb 28 09:03:09 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (Init_socket): add bunch of Socket
	  constants.  Patch from Sam Roberts <sroberts@uniserve.com>.
	  [ruby-core:04409]

Wed Feb 23 15:04:32 2005  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (split_userinfo): should split ":pass" into ""
	  and "pass".  [ruby-dev:25667]

Wed Feb 23 08:00:18 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_s_create): no need for negative argc check.
	  [ruby-core:04463]

	* array.c (rb_ary_unshift_m): ditto.

Wed Feb 23 01:57:46 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (initialize): handle certs correctly. Thanks,
	  NABEYA Kenichi. (backported from CVS HEAD)

Tue Feb 22 07:25:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (parser_yylex): identfier after dot must not be a variable.

Mon Feb 21 10:04:49 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/Makefile.sub (config.h): add fcntl.

	* win32/win32.[ch] (fcntl): ditto.

	* win32/win32.c (rb_w32_connect): support nonblocking mode.

	* ext/socket/socket.c (wait_connectable, ruby_connect): support
	  nonblocking connect on various platforms.
	  all changes are backported from CVS HEAD. [ruby-core:3154],
	  [ruby-core:4364].

Sun Feb 20 00:48:48 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::FTP#buffer_open): access mechanism
	  re-implemented according to RFC 1738.
	  reported by Guillaume Marcais.  [ruby-talk:131650]

Sat Feb 19 18:11:47 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbObject#respond_to?): take two arguments.
	  [ruby-dev:25722]

	* test/drb/drbtest.rb: ditto.

Sat Feb 19 13:52:02 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb: call OpenSSL::SSL::SSLSocket#post_connection_check
	  after connection is made.

Sat Feb 19 01:32:03 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/bigdecimal/lib/bigdecimal/newton.rb: resolved LoadError.
	  [ruby-dev:25685]

	* ext/bigdecimal/sample/linear.rb: ditto.

	* ext/bigdecimal/sample/nlsolve.rb: ditto.

	* ext/bigdecimal/lib/bigdecimal/nlsolve.rb: removed because this file
	  is sample script and same file exists in ext/bigdecimal/sample.

Fri Feb 18 17:14:00 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass
	  of StandardError class, not Exception class.  [ruby-core:04429]

Thu Feb 17 20:11:18 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/drb/drb.rb (DRbServer.default_safe_level): fix typo.

Thu Feb 17 20:11:18 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/digest/test_digest.rb: separate test case for each algorithms.
	  [ruby-dev:25412]

Thu Feb 17 11:54:00 2005  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/collector.rb (collect_file): now deletes paths added
	  to $LOAD_PATH instead of restoring it verbatim.

	* lib/test/unit/autorunner.rb (AutoRunner.run): fixed so that
	  'ruby -rtest/unit -rtest1 -rtest2 -e0' will use the objectspace
	  collector again. Also tried to simplify the calling convention.

	* test/runner.rb: adjusted for new AutoRunner semantics.

	* lib/test/unit.rb: ditto.

Thu Feb 17 04:21:47 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.
	  fixed: [ruby-core:04444]

Thu Feb 17 00:09:45 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/drb/ignore_test_drb.rb: move TestDRbReusePort to new file
	  [ruby-dev:25238]

	* test/drb/test_drb.rb: add method DRbService.ext_service, move
	  TestDRbReusePort to new file [ruby-dev:25238]

	* test/drb/test_drb.rb: ditto.

	* test/drb/test_drbssl.rb: ditto.

	* test/drb/test_drbunix.rb: ditto.

	* test/drb/ut_drb.rb: reduce sleep.

Thu Feb 17 00:02:27 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (is_defined): NODE_IASGN is an assignment.

Wed Feb 16 23:34:30 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: add lazy stop_service. ([druby-ja:109])

	* lib/drb/extserv.rb: ditto.

Wed Feb 16 17:07:57 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c: Follow the change of st.c (st_foreach)
	  [ruby-list:40623].
	  Sometimes mis-convert from a Ruby's Array of SJIS Strings, which
	  includes some kind of SJIS characters, to a Tcl's UTF8 list string.

Mon Feb 14 23:58:17 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/parser.rb (RSS::ListenerMixin::tag_end):
	  fixed invalid namespace handling bug.

Mon Feb 14 13:12:38 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/ssl.rb
	 (OpenSSL::SSL::SSLSocket#post_connection_check): new method.

Mon Feb 14 00:40:49 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (InvokeMethod.perform): pass DRb info to sub thread.

	* test/drb/test_drb.rb (test_01_safe1_safe4_eval): fix test case.

Sun Feb 13 23:13:46 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/dublincore.rb (RSS::DublicCoreModel#date{,=}): added
	  convenient methods.

	* lib/rss/0.9.rb (RSS::Rss::Channel#date{,=}): ditto.

	* lib/rss/2.0.rb (RSS::Rss::Channel::Item#date{,=}): ditto.

	* test/rss/: added tests for the convenient methods.

Sun Feb 13 22:43:03 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbServer): add default_safe_level, safe_level,
	  config[:safe_level] ([druby-ja:120])

	* test/drb/test_drb.rb, ut_eval.rb, ut_safe1.rb: ditto.

Sun Feb 13 16:56:52 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI.start): should set reason-phrase
	  to the value of status header field. ([ruby-dev:40617])

Sun Feb 13 00:52:33 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/erb.rb (ERB::Util.h, u): make it module_function.

Sat Feb 12 17:29:19 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI.open_loop): send authentication only for
	  the URI directly specified.

Sat Feb 12 15:07:23 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* random.c (rand_init): suppress warning.

Sat Feb 12 13:54:03 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb: support https if the platform provides CA
	  certificates.

Sat Feb 12 06:18:28 2005  URABE Shyouhei  <shyouhei@ice.uec.ac.jp>

	* ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check.
	  [ruby-dev:25675]

Fri Feb 11 17:40:42 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths):
	  new method OpenSSL::X509::Store#set_default_paths.

Fri Feb 11 11:33:53 2005  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::HTTP#proxy_open): new option supported:
	  :http_basic_authentication.
	  suggested by Kent Sibilev.  [ruby-core:4392]

Fri Feb 11 06:30:07 2005  George Ogata  <g_ogata@optushome.com.au>

	* misc/ruby-mode.el: ignore parenthesis inside heredoc.
	  [ruby-core:04415]

Fri Feb 11 04:54:13 2005  Tilman Sauerbeck  <tilman@code-monkey.de>

	* lib/rdoc/generators/html_generator.rb: [ruby-core:04412]

	* lib/rdoc/generators/ri_generator.rb: ditto.

Thu Feb 10 11:14:17 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub (COMMON_HEADERS): shouldn't include winsock2.h.

	* ext/socket/extconf.rb (sockaddr_storage): remove workaround for
	  mswin32.

Thu Feb 10 10:29:16 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/curses/curses.c: don't need to check HAVE_WCOLOR_SET excluding
	  window_color_set().

Thu Feb 10 00:47:25 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (make_struct): fixed: [ruby-core:04402]

Wed Feb  9 08:07:08 2005  Paul Duncan  <pabs@pablotron.org>

	* ext/curses/curses.c (window_color_set): [ruby-core:04393]

Tue Feb  8 23:51:47 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: reject :instance_eval, :class_eval, :module_eval
	  [druby-ja:117]

Tue Feb  8 13:06:12 2005  Sam Roberts  <sroberts@uniserve.com>

	* ext/socket/socket.c (Init_socket): SO_REUSEPORT added.
	  [ruby-talk:130092]

Tue Feb  8 09:30:01 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::Cookie): [ruby-talk:130040]

Tue Feb  8 00:19:02 2005  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Name#subdomain_of?): new method.
	  (Resolv::DNS::Name#inspect): ditto.
	  Suggested by Sam Roberts.  [ruby-talk:129086]

Mon Feb  7 10:06:30 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c: [ruby-doc:818]

Mon Feb  7 01:56:20 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* instruby.rb, rubytest.rb (srcdir): no longer embed srcdir into
	  rbconfig.rb. (backported from CVS HEAD)

	* ext/socket/extconf.rb (sockaddr_storage): winsock2.h have the
	  definition of struct sockaddr_storage, but socket.c doesn't
	  include it because this version of ruby still has binary level
	  compatibility with winsock1.

	* lib/mkmf.rb (create_makefile): should support header files in
	  depend file.

Mon Feb  7 01:21:50 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/extconf.rb: check if getaddrinfo() works fine only when
	  wide-getaddrinfo option is not given.  fixed: [ruby-dev:25422]

	* lib/mkmf.rb ($extmk): check if under ext directory.

	* lib/mkmf.rb (Logging.postpone): allow recursive operation.

	* lib/mkmf.rb (try_constant): make sure if really a constant, reduce
	  the number of times of compile.

	* lib/mkmf.rb (have_macro, have_var, byte_order): new functions.

	* lib/mkmf.rb (find_library): allow directory list with separators.

	* lib/mkmf.rb (arg_config): manage provided configuration options.

	* lib/mkmf.rb (dir_config): accept arrays of directory names as
	  default values.

	* mkconfig.rb: no longer embed srcdir and compile_dir into
	  rbconfig.rb.

	* lib/mkmf.rb (create_makefile): fix unbalanced parens.

Sun Feb  6 19:23:01 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (stack_extend): add prototype because VC++8 doesn't
	  accept __declspec(noinline) with K&R style function definitions.
	  (backported from CVS HEAD)

Sun Feb  6 14:14:26 2005  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (new_with_hash): changed messages of exception.

	* lib/date/format.rb (str[fp]time): undocumented conversion
	  specifications %[1-3] are now deprecated.

Sun Feb  6 12:20:11 2005  Akinori MUSHA  <knu@iDaemons.org>

	* bignum.c (rb_big2ulong_pack): One too many arguments are passed
	  to big2ulong().

	* re.c (rb_reg_init_copy, rb_reg_initialize_m): One too many
	  arguments are passed to rb_reg_initialize().

Sun Feb  6 03:24:20 2005  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Resource::TXT): multiple strings was not
	  handled.
	  (Resolv::DNS::Resource::TXT#strings): new method to return all
	  strings.
	  (Resolv::DNS::Message::MessageEncoder#put_string_list): new method.
	  (Resolv::DNS::Message::MessageDecoder#get_string_list): ditto.
	  based on [ruby-talk:129732] by Sam Roberts.

Fri Feb  4 00:30:45 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss: supported Image module.
	  http://web.resource.org/rss/1.0/modules/image/

Thu Feb  3 23:42:36 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_close, strio_close_read, strio_close_write):
	  should return nil instead of self as well as IO.  [ruby-dev:25623]

	* ext/stringio/stringio.c (strio_extend, strio_putc): fill with zero
	  extended portion.  [ruby-dev:25626]

Wed Feb  2 23:52:53 2005  sheepman  <sheepman@tcn.zaq.ne.jp>

	* ext/stringio/stringio.c (strio_truncate): should MEMZERO an extended
	  part.  [ruby-dev:25618]

Wed Feb  2 21:56:01 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (RSS::Element#convert): added.

	* lib/rss/rss.rb: convert -> need_convert.

	* lib/rss/1.0.rb: ditto.

	* lib/rss/0.9.rb: ditto.

	* lib/rss/2.0.rb: ditto.

	* lib/rss/trackback.rb: ditto.

Tue Feb  1 22:48:48 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRb::DRbObject#respond_to?): check marshal_dump and
	  _dump.

Tue Feb  1 00:20:23 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (aix): fix linker flags on AIX.  [ruby-talk:125460]

Mon Jan 31 13:33:21 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: add invalid namespace check

	* ext/tk/lib/multi-tk.rb: add invalid_namespace? method

	* ext/tk/lib/remote-tk.rb: ditto

Mon Jan 31 10:29:18 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]

Sat Jan 29 09:42:12 2005  Sam Roberts  <sroberts@uniserve.com>

	* lib/resolv.rb (Resolv::DNS::Resource::IN::SRV): Added RFC2782 SRV
	  resource record for specifying location of services.

Fri Jan 28 17:16:55 2005  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf):
	  parse options line for ndots option.
	  (Resolv::Hosts#lazy_initialize): return self.
	  (Resolv::DNS#lazy_initialize): ditto.
	  (Resolv::DNS::Config#lazy_initialize): ditto.
	  Suggested by Sam Roberts.

Thu Jan 27 13:18:03 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* st.c (st_foreach): report success/failure by return value.
	  [ruby-Bugs-1396]

Thu Jan 27 00:15:29 2005  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb (setup): support BSD-style
	  directory group inheritance. (backport from HEAD, rev 1.32)

	* test/fileutils/fileasserts.rb (assert_same_entry): show entry
	  difference. (backport from HEAD, rev 1.4)

Wed Jan 26 23:09:11 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/net/protocol.rb (WriteAdapter#puts): should append \n, not
	  prepend. [ruby-talk:128302] (backport from HEAD, rev 1.75)

Wed Jan 26 10:51:50 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (flock_winnt, flock_win95): unlock file even if
	  LOCK_NB is specified. (backported from CVS HEAD)

Tue Jan 25 17:11:51 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ruby.c (proc_options): correct -T option in RUBYOPT. (backported
	  from CVS HEAD)

Tue Jan 25 14:05:52 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix SEGV bug; trouble on canceling remained
	  after scripts [ruby-dev:25479]: NULL current namespace when deleting
	    Tk interpreter [ruby-talk:126225]

	* ext/tcltklib/extconf.rb: bug fix; TCL_ENABLE_THREAD flag is inverted
	  [ruby-talk:126360]

	* ext/tcltklib/extconf.rb: add yet another native-thread check

	* ext/tk/tkutil.c: fix SEGV bug; NULL string pointer when finalize
	  Ruby interpreter

	* ext/tk/lib/multi-tk.rb: avoid warning for deleted safeTk ip frame

	* ext/tk/lib/tk/bindtag.rb: bug fix; new method of named bindtag
	  doesn't return the created object [ruby-dev:25479]

	* ext/tk/lib/tk/menu.rb: bug on treating arguments [ruby-dev:25479]

	* ext/tk/lib/tk.rb: bug fix; cannot accept a callback ID string for
	  a command argument [ruby-dev:25479]

	* ext/tk/lib/multi-tk.rb: ditto

	* ext/tk/lib/tk/*.rb: ditto

	* ext/tk/lib/tkextlib/*.rb: ditto

	* ext/tk/sample/demos-jp/anilabel.rb: new demo script

	* ext/tk/sample/demos-en/anilabel.rb: ditto

	* ext/tk/sample/tkHTML/ss.rb: local variable scope bug fix
	  [ruby-dev:25479]

Mon Jan 24 15:44:25 2005  Tilman Sauerbeck  <tilman@code-monkey.de>

	* lib/rdoc/parsers/parse_c.rb: allow whitespace after function names.
	  [ruby-core:4296]

	* lib/rdoc/parsers/parse_simple.rb: adds support for private comments
	  in the "simple" parser. [ruby-core:4301]

Mon Jan 24 15:44:25 2005  Charles Mills  <cmills@freeshell.org>

	* lib/rdoc/parsers/parse_c.rb: adds support for constants
	  (rb_define_const), accessors (rb_define_attr), and makes a
	  couple fixes. [ruby-core:4307]

Mon Jan 24 15:44:25 2005  Florian Gro  <florgro@gmail.com>

	* lib/rdoc/parsers/parse_rb.rb: Logic for def Builtin.method() end
	  [ruby-core:4302]

Mon Jan 24 15:44:25 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* document updates - [ruby-core:04296], [ruby-core:04301],
	  [ruby-core:04302], [ruby-core:04307]

Sun Jan 23 12:41:16 2005  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/wsdlDriver.rb: from 1.5.3-ruby1.8.2, operation which has
	  capitalized name (such as KeywordSearchRequest in AWS) is defined as
	  a method having uncapitalized name. (converted with
	  GenSupport.safemethodname to handle operation name 'foo-bar').  it
	  introduced serious incompatibility; in the past, it was defined as a
	  capitalized.

	  define capitalized method as well under that circumstance.

Sun Jan 23 05:24:42 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_to_der): should call
	  GetOCSPReq at first.

Sat Jan 22 23:09:47 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/ssl.rb (accept): rescue SSLError. [druby-ja:110]

Sat Jan 22 22:35:03 2005  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/unix.rb: fail if UNIXFileOwner is set. [druby-ja:111]

Fri Jan 21 23:58:42 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/stringio/stringio.c (strio_set_pos): clear EOF flag.
	  [ruby-talk:127511]

Fri Jan 21 20:07:02 2005  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Config.resolv): don't raise ResolvError.
	  reported by Sam Roberts.  [ruby-talk:127133]

Fri Jan 21 16:58:10 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (rb_push_glob): should work for NUL delimited patterns.

Fri Jan 21 13:58:37 2005  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (u8tou16): fixed typo. fixed: [ruby-list:40546]
	  (backported from CVS HEAD)

Fri Jan 21 09:30:16 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* rubyio.h (rb_eof_error): should mark as NORETURN. (backported
	  from CVS HEAD)

Fri Jan 21 00:31:36 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/syck/rubyext.c (syck_parser_bufsize_set): avoid VC++ warning
	  "local variable 'size' used without having been initialized".

Thu Jan 20 19:03:24 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/extmk.rb (extmake): shouldn't set $extflags on mswin32.

	* win32/Makefile.sub (LIBRUBY_SO): should use $DLDOBJS instead of
	  $EXTOBJS.
	  fixed: [ruby-core:04290] (backported from CVS HEAD)

Thu Jan 20 11:42:02 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_new4): should propagate taintedness.

	* struct.c (rb_struct_set): use original method name, not callee
	  name, to retrieve member slot.  [ruby-core:04268]

	* time.c (time_strftime): protect from format modification from GC
	  finalizers.

Wed Jan 19 18:06:40 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/ipaddr.rb (to_s, test_to_s): too many colons with some cases.
	  (backported from CVS HEAD)

Wed Jan 19 01:16:30 2005  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf): ignore
	  domain and search directive without an argument.
	  reported by Sam Roberts.  [ruby-talk:126781]

Tue Jan 18 15:03:05 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/ssl.rb (WEBrick::Config::SSL): the default value
	  of :SSLEnable is false.

	* lib/webrick/server.rb (WEBrick::Daemon.start): prepared stdio
	  don't allow changing its mode.

	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):
	  should delete trailing LF from the result of pack("m*").

	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):
	  - should delete trailing LF from the result of pack("m*").
	  - clear Request-Line not to send the response by HTTPServer#run.

	* lib/webrick/httputils (WEBrick::HTTPUtils.parse_qvalues):
	  refine regexp (and change the name of a local variable).

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils#escape_path): add
	  new method to escape URI path component.

	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line): should
	  escape SCRIPT_NAME and PATH_INFO before being parsed as a URI.

	* test/webrick/*, sample/webrick/httpproxy.rb: add new file.

Mon Jan 17 23:33:46 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (aix): fix typo.  [ruby-talk:126401]

Mon Jan 17 07:08:51 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/readline/readline.c: suppress warnings.

	* lib/irb/extend-command.rb (IRB::ContextExtender.def_extend_command):
	  ditto.

	* lib/irb/ext/history.rb (IRB::Context::set_last_value): ditto.

	* lib/irb/ext/history.rb (IRB::Context::eval_history): ditto.

	* lib/irb/locale.rb (IRB::Locale::real_load): ditto.

	* lib/irb/slex.rb (SLex::Node::create_subnode): remove garbage.

Mon Jan 17 00:09:42 2005  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/uri/common.rb (PORT): typo fix. fixed: [ruby-core:04256]

Sat Jan 15 14:57:22 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ruby.c (proc_options): ignore trailing CRs at the end of short
	  options as well as long options.  fixed: [ruby-core:04232]

Sat Jan 15 13:35:16 2005  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb (RSS::VERSION): 0.1.2 -> 0.1.3.

	* lib/rss/rss.rb: accept inheritance. [ruby-talk:126104]

Thu Jan 13 04:48:53 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (io_fread): don't warn nonblocking behavior by default.

Wed Jan 12 00:36:29 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_class_superclass): superclass of singleton class also
	  should be a singleton class.  fixed: [ruby-list:40519]

Tue Jan 11 09:44:40 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* numeric.c (Init_Numeric): turn off floating point exceptions
	  on bcc32. "1e300".to_f had crashed by overflow.

Tue Jan 11 03:10:10 2005  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (copy_entry): could not copy symbolic link.
	  [ruby-talk:125733]

	* lib/fileutils.rb (copy_stream): use read/write instead of
	  sysread/syswrite.

Mon Jan 10 23:08:15 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* variable.c (rb_autoload): hide internal data from ruby level.
	  fixed: [ruby-dev:25435], [ruby-list:40498]

Mon Jan 10 01:22:55 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (rb_data_object_alloc): klass may be NULL.
	  [ruby-list:40498]

Sun Jan  9 03:12:58 2005  Tanaka Akira  <akr@m17n.org>

	* io.c (io_fread): warn nonblocking behavior.
	  (io_readpartial): new method IO#readpartial.

Sat Jan  8 04:38:47 2005  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml.rb: Kernel#y requires an argument.

Fri Jan  7 21:12:29 2005  TAMURA Takashi  <sheepman@tcn.zaq.ne.jp>

	* random.c (rand_init): use ALLOC_N instead of ALLOCA_N
	  [ruby-dev:25426]

Fri Jan  7 18:03:35 2005  Tanaka Akira  <akr@m17n.org>

	* gc.c (mark_locations_array): avoid core dump with -O3.
	  [ruby-dev:25424]

Thu Jan  6 20:31:07 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/zlib/zlib.c (zstream_end): should return value. (backported
	  from CVS HEAD)

Thu Jan  6 19:55:13 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.c (rb_w32_close): didn't close socket handle.
	  [ruby-dev:25414]

	* win32/win32.c (rb_w32_open_osfhandle): bcc32's _open_osfhandle
	  never set EMFILE.

Thu Jan  6 17:14:31 2005  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* random.c (random_seed): O_NONBLOCK isn't defined on some
	  platforms. [ruby-dev:25417]

Thu Jan  6 13:45:35 2005  Tanaka Akira  <akr@m17n.org>

	* lib/time.rb: recognize +00:00 and GMT as a localtime.

Thu Jan  6 07:58:28 2005  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/usage.rb (RDoc::RDoc.usage_no_exit): Allow for colons
	  in path names on DOS machines. (thanks to Johan Nilsson)

Wed Jan  5 20:16:32 2005  Tanaka Akira  <akr@m17n.org>

	* random.c (limited_big_rand): didn't work if SIZEOF_BDIGITS == 2.
	  [ruby-dev:25408]

	* random.c (random_seed): refined.

Wed Jan  5 12:49:39 2005  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_initialize): Thread objects cannot be initialized
	  again.  fixed: [ruby-core:04067]

Wed Jan  5 10:48:16 2005  NAKAMURA Usaku  <usa@ruby-lang.org>

	* dir.c (dir_s_mkdir): win32 special processing doesn't need any
	  longer. (backported from CVS HEAD)

	* win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible
	  interface. (backported from CVS HEAD)

	* win32/win32.[ch] (rb_w32_rmdir): new function. (backported from CVS
	  HEAD)

Wed Jan  5 02:30:11 2005  Tanaka Akira  <akr@m17n.org>

	* random.c (init_by_array): imported from mt19937ar-cok.tgz.
	  (genrand_int32): ditto.
	  (genrand_real): replaced with genrand_res53 in mt19937ar-cok.
	  (rand_init): support bignum for longer seed.
	  (random_seed): generate longer seed.
	  (make_mask): new function.
	  (limited_rand): ditto.
	  (limited_big_rand): ditto.
	  (rb_f_rand): call limited_rand and limited_big_rand.
	  [ruby-dev:25403]

Tue Jan  4 23:25:29 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_rand): should return positive random number.
	  [ruby-dev:25401]

Tue Jan  4 11:15:29 2005  TAMURA Takashi  <sheepman@tcn.zaq.ne.jp>

	* bignum.c (rb_big_rand): do not use rb_big_modulo to generate
	  random bignums.  [ruby-dev:25396]

Mon Jan  3 14:01:54 2005  Tanaka Akira  <akr@m17n.org>

	* random.c (random_seed): don't use /dev/urandom if it is not
	  character device.

Mon Jan  3 11:37:42 2005  Tanaka Akira  <akr@m17n.org>

	* random.c (random_seed): use /dev/urandom if available.
	  [ruby-dev:25392]

Mon Jan  3 07:46:42 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpauth/htpasswd.rb (WEBrick::Htpasswd#reload):
	  raise NotImplementedError if password is encrypted by digest
	  algorithms. This patch is contributed by sheepman. [ruby-list:40467]

	* lib/webrick/httpauth/digestauth.rb
	  (WEBrick::HTTPAuth::DigestAuth#_authenticate): fix digest calculation.
	  This patch is contributed by sheepman. [ruby-list:40482]

	* lib/webrick/{httpauth.rb,httpauth/basicauth.rb,httpproxy.rb}: use
	  pack/unpack-template char "m" instead of lib/base64.rb to do base64
	  encoding/decoding. fixed: [ruby-dev:25336]

	* test/webrick/test_httpauth.rb: new file.

Sat Jan  1 04:20:23 2005  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ns_spki.c (ossl_spki_set_challenge): should call
	  StringValue before GetSPKI. fixed: [ruby-dev:25359].

Sat Jan  1 01:13:28 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_autoload): [ruby-dev:25373]

Fri Dec 31 14:10:43 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item): Fix problem
	  if heading contains formatting.

Thu Dec 30 00:41:42 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (svalue_to_avalue): [ruby-dev:25366]

	* string.c (rb_str_justify): [ruby-dev:25367]

Wed Dec 29 11:07:07 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/html/kilmer.rb: Update to use new
	  sections.

Tue Dec 28 22:31:46 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_justify): create buffer string after argument type
	  conversion.  fixed: [ruby-dev:25341]

Tue Dec 28 15:41:48 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c (reinit): should initialize all static
	  variables.  fixed: [ruby-list:40445]

Tue Dec 28 15:25:20 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): second byte is up to
	  0xfe.

	* ext/nkf/lib/kconv.rb (Kconv#kconv): should handle UTF8 and UTF16
	  properly.

Tue Dec 28 13:35:20 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure
	  freeing internal zstreams.  fixed: [ruby-dev:25309]

	* ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.

Tue Dec 28 12:26:45 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub, win32/setup.mak (RDOCTARGET, install,
	  install-nodoc, install-doc): rdoc support for mswin32.

	* win32/configure.bat (--enable-install-doc, --disable-install-doc):
	  ditto.

Mon Dec 27 20:02:14 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix SEGV bug when deleting Tk interp

	* ext/tk/lib/multi-tk.rb: ditto

Mon Dec 27 16:55:17 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): should use
	  rb_hash_new to get exactly a Hash. fix [ruby-dev:25325].

Mon Dec 27 16:29:56 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_justify): [ruby-dev:25341]

Mon Dec 27 15:47:48 2004  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/fileasserts.rb: sync with HEAD.

	* test/fileutils/test_fileutils.rb: ditto.

	* test/fileutils/test_nowrite.rb: ditto.

Mon Dec 27 15:21:07 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mv): should raise error when moving a
	  directory to the (empty) directory. [ruby-talk:124368]
	  (backport from HEAD 1.48)

	* lib/fileutils.rb (mv): wrongly did not overwrite file on Win32
	  platforms. (backport from HEAD 1.48)

Sat Dec 25 11:11:48 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.2 released.

Sat Dec 25 04:23:49 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir, mkdir_p): should ensure directory
	  permission. (backportted from HEAD, 1.47)

	* lib/fileutils.rb (traverse, remove_dir): untaint trasted
	  objects. (backportted from HEAD, 1.46)

Sat Dec 25 01:28:23 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c: cancel io_reopen() change on Dec. 24th.

	* dln.c: use <dlfcn.h> for NetBSD.  [ruby-dev:25313]

	* io.c (rb_f_select): IO list could be altered.  [ruby-dev:25312]

Fri Dec 24 23:51:48 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: bcc32 should use RTL dll (backport from HEAD)
	  [ruby-dev:25306]

	* win32/win32.[ch]: ditto.

Fri Dec 24 23:27:18 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/image.rb: TkPhotoImage#cget bug fix

Fri Dec 24 18:39:25 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.[ch]: failed to compile on bcc32 (and probably wince)
	  [ruby-dev:25306]

Fri Dec 24 02:52:52 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_reopen, rb_io_reopen): prohibit to change access mode for
	  special IO ports.  [ruby-dev:25225]

Fri Dec 24 02:22:53 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/syck/rubyext.c (rb_syck_io_str_read): [ruby-core:03973]

	* ext/syck/rubyext.c (syck_loader_transfer): check type conversion.

	* ext/syck/rubyext.c (syck_parser_assign_io, rb_new_syck_node): duck
	  typing.

	* ext/syck/rubyext.c (syck_parser_s_alloc, syck_parser_initialize):
	  allocation framework.

	* ext/syck/rubyext.c (syck_emitter_s_alloc, syck_emitter_initialize):
	  ditto.

Fri Dec 24 01:21:00 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkextlib/blt.rb: add BLT extension support

	* ext/tk/lib/tkextlib/blt/*.rb: ditto

	* ext/tk/lib/tkextlib/blt/tile/*.rb: ditto

Thu Dec 23 23:36:28 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (proc_setgroups): check if the argument lenght is
	  modified.  fixed: [ruby-dev:25285]

Thu Dec 23 13:13:33 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: define TclTkLib::COMPILE_INFO and
	  RELEASE_DATE

	* ext/tcltklib/extconf.rb: ditto

	* ext/tk/tkutil.c: define TkUtil::RELEASE_DATE

	* ext/tk/lib/tk.rb: define Tk::RELEASE_DATE

Thu Dec 23 09:38:31 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_reopen): restore exact mode.  fixed: [ruby-core:04003]

Thu Dec 23 00:16:32 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (bsdi): use $(CC) for LDSHARED.  fixed [ruby-dev:25270]

Wed Dec 22 11:14:55 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_mode_modenum): replace O_ACCMODE with O_RDWR.
	  fixed: [ruby-dev:25273]

Wed Dec 22 08:34:32 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/dl/sym.c (rb_dlsym_initialize): extract internal pointers after
	  all argument conversion.  fixed: [ruby-dev:25271]

Wed Dec 22 00:08:01 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/*, test/soap/*, sample/soap/authheader/*: eval cleanup.

Tue Dec 21 22:07:33 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
	  ossl_asn1_decode_all): temporary value should be marked volatile.

Tue Dec 21 14:40:02 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
	  ossl_asn1_decode_all): use rb_str_new4 to avoid SEGV.
	  fix [ruby-dev:25261]

	* test/openssl/test_asn1.rb: add tests for OpenSSL::ASN1.

Tue Dec 21 12:22:40 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_reopen): keep duplex pipe in correct mode for exception
	  safeness.  fixed: [ruby-dev:25152]

Tue Dec 21 12:10:04 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/grid.rb: rescue bug of 'grid configure' on Tcl/Tk8.3-

Tue Dec 21 00:53:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse): [ruby-dev:25261]

	* ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto.

	* ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): ditto.

Mon Dec 20 23:22:26 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* added files:
	  * lib/soap/mapping/wsdl*.rb
	  * lib/wsdl/soap/element.rb
	  * lib/wsdl/xmlSchema/simpleContent.rb

	* modified files:
	  * lib/soap/*
	  * lib/wsdl/*
	  * lib/xsd/*
	  * test/soap/*
	  * test/wsdl/*
	  * test/xsd/*
	  * sample/soap/*
	  * sample/sdl/*

	* summary
	  * imported from the soap4r repository.  Version: 1.5.3-ruby1.8.2

	  * added several XSD basetype support: nonPositiveInteger,
	    negativeInteger, nonNegativeInteger, unsignedLong, unsignedInt,
	    unsignedShort, unsignedByte, positiveInteger

	  * HTTP client connection/send/receive timeout support.

	  * HTTP client/server gzipped content encoding support.

	  * improved WSDL schema definition support; still is far from
	    complete, but is making step by step improovement.

Mon Dec 20 22:56:39 2004  Tanaka Akira  <akr@m17n.org>

	* gc.c (stack_end_address): gcc noinline attribute is available since
	  gcc-3.1.

Mon Dec 20 14:07:02 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: supports new features of Tcl/Tk8.5a2

	* ext/tk/lib/tk/clock.rb: ditto

	* ext/tk/lib/tk/text.rb: ditto

	* ext/tk/lib/tk/panedwindow.rb: ditto

Mon Dec 20 12:47:13 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/net/https.rb,protocols.rb,telnets.rb: delete
	  doc and code about SSLContext#{key_file,cert_file}.
	  fixed: [ruby-dev:25243]

Mon Dec 20 12:42:17 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (io_fwrite): workaround for MSVCRT's bug.
	  fixed: [ruby-core:03982]

Mon Dec 20 11:21:04 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_eof): check if closed before clearerr().
	  fixed: [ruby-dev:25251]

Mon Dec 20 03:30:40 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session#initialize): empty session id was
	  used if request had no session key.  fixed: [ruby-core:03981]

Mon Dec 20 01:51:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (make_struct): [ruby-dev:25249]

Mon Dec 20 00:28:20 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rexml/encodings/SHIFT-JIS.rb: backported from CVS HEAD.

	* lib/rexml/encodings/SHIFT_JIS.rb: ditto.

Sun Dec 19 17:19:48 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509store.c
	  (ossl_x509store_set_time): add OpenSSL::X509::Store#time=.
	  (ossl_x509stctx_set_time): add OpenSSL::X509::StoreContext#time=.

	* test/openssl/ossl_x509store.rb: test certificate validity times.

	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional
	  second argument to specify the output format (see also
	  X509_NAME_print_ex).

	* ext/openssl/ossl_x509name.c (ossl_x509name_init): new constants:
	  OpenSSL::X509::Name::COMPAT, OpenSSL::X509::Name::RFC2253,
	  OpenSSL::X509::ONELINE, OpenSSL::X509::MULTILINE.

	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name::RFC2253DN):
	  new module to provide the parse for RFC2253 DN format.

	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name.parse_rfc2253):
	  new method to parse RFC2253 DN format.

	* test/openssl/ossl_x509name.rb: add tests about RFC2253 DN.

	* text/openssl/ssl_server.rb: try to listen ports from 20443 to 20542
	  while EADDRINUSE is raised.

	* all changes in this entry are backport from 1.9.

Sun Dec 19 17:24:59 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (enable_rpath): use rpath flag to embed the library
	  path into extensions on ELF environment.  [ruby-dev:25035]

Sun Dec 19 11:01:25 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit.rb: use standalone runner for -e.

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): accept
	  multiple -p and -x options.

	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#recursive_collect):
	  ditto.

Sat Dec 18 16:36:23 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate):
	  disallow interrupt by type conversion.  fixed: [ruby-dev:25226]

Sat Dec 18 15:16:41 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/webrick/httpauth.rb,
	  lib/webrick/httpauth/{basicauth.rb,digestauth.rb}: use
	  pack/unpack-template char "m" instead of lib/base64.rb to do base64
	  encoding/decoding.

Sat Dec 18 10:51:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_open_dir): new function.  [ruby-dev:25242]

Fri Dec 17 18:07:01 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* test/readline/test_readline.rb: fix for BSD. Thanks, GOTOU Yuuzou.
	  fixed: [ruby-dev:25218]

Fri Dec 17 16:28:12 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fix bug on setting up system encoding

	* ext/tk/lib/tk/event.rb: fix error on require process

	* ext/tk/lib/tk/font.rb: fix abnormal termination error on Windows

	* ext/tk/lib/tk/virtevent.rb: TkVirtualEvent::PreDefVirtEvent.new()
	  accepts event-sequence arguments

	* ext/tk/lib/tk/text.rb: fail to dump embedded images

	* ext/tk/lib/tk/text.rb: tag_nextrange and tag_prevrange returns wrong
	  types of values

	* ext/tk/lib/tk/texttag.rb: nextrange and prevrange returns wrong
	  types of values

	* ext/tk/lib/tk/text.rb: add TkText::IndexModMethods module and
	  TkText::IndexString class to treat text index modifiers

	* ext/tk/lib/tk/texttag.rb: use TkText::IndexModMethods module

	* ext/tk/lib/tk/textmark.rb: ditto

	* ext/tk/lib/tk/textimage.rb: ditto

	* ext/tk/lib/tk/textwindow.rb: ditto

	* ext/tk/lib/tk/textimage.rb: wrong gravity of text mark for embedded
	  image

	* ext/tk/lib/tk/textwindow.rb: wrong gravity of text mark for
	  embedded window

Fri Dec 17 13:50:00 2004  Akiyoshi, Masamichi  <akiyoshi@hp.com>

	* vms/vmsruby_private.c, vms/vmsruby_private.h: private routines
	  for VMS port are added.

	* eval.c (ruby_init): change to call VMS private intialization routine.

Fri Dec 17 13:33:58 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session#initialize): control adding
	  session_id hidden fields.  fixed: [ruby-talk:123850]

Thu Dec 16 23:25:25 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb, lib/drb/ssl.rb: backported from CVS HEAD.
	  [druby-ja:101]

	* test/drb/test_drb.rb: adjust and reduce sleep (backported from
	  CVS HEAD.)

Thu Dec 16 18:44:58 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait
	  for reading request till data arrive. [ruby-talk:121068]

	* lib/webrick/server.rb (WEBrick::GenericServer#start_thread):
	  should log about all accepted socket. [ruby-core:03962]

	* lib/webrick/accesslog.rb (WEBrick::AccessLog#setup_params):
	  "%%" and "%u" are supported. [webricken:135]

	* lib/webrick/httpservlet/filehandler.rb
	  (WEBrick::HTTPServlet::FileHandler#check_filename):
	  :NondisclosureName is acceptable if it is Enumerable.

	* lib/webrick/config.rb (WEBrick::Config::FileHandler):
	  default value of :NondisclosureName is [".ht*", "*~"].

Thu Dec 16 18:36:52 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.c (ossl_raise): refine message format.

Thu Dec 16 16:29:44 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/demos-en/widget: modify version check for
	  supporting features

Thu Dec 16 16:03:50 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/bindtag.rb: bug fix [ruby-talk: 123667]

	* ext/tk/lib/tk/timer.rb: accept :idle for the interval argument

	* ext/tk/lib/tk.rb: add TkComm._callback_entry?()

	* ext/tk/lib/multi-tk.rb: add MultiTkIp.cb_entry_class

	* ext/tk/lib/tk/canvas.rb: use TkComm._callback_entry?()

	* ext/tk/lib/tk/canvastag.rb: ditto

	* ext/tk/lib/tk/dialog.rb: ditto

	* ext/tk/lib/tk/optiondb.rb: ditto

	* ext/tk/lib/tk/text.rb: ditto

	* ext/tk/lib/tk/texttag.rb: ditto

	* ext/tk/lib/tk/textwindow.rb: ditto

	* ext/tk/lib/tk/timer.rb: ditto

	* ext/tk/lib/tk/validation.rb: ditto

	* ext/tk/lib/tkextlib/*: ditto

Thu Dec 16 03:14:28 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb (basic_encode): return value of pack('m') may
	  include multiple CR/LFs.  Backported from main trunk (rev 1.112).
	  [ruby-dev:25212]

Thu Dec 16 00:33:37 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (Init_Hash): remove custom "hash" and "eql?".

Wed Dec 15 18:57:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/set.rb (Set::eql): wrong definition.  [ruby-dev:25207]

Wed Dec 15 18:48:42 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* ext/curses/curses.c (window_subwin): call NUM2INT() before
	  GetWINDOW(). (backported from CVS HEAD)

Wed Dec 15 17:03:50 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.[ch] (rb_w32_isatty): new function to replace MSVCRT's
	  isatty because it never sets errno. (backported from CVS HEAD)

Wed Dec 15 15:39:32 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509name.c (ossl_x509name_to_a): avoid SEGV
	  (rollback the previous commit).

Wed Dec 15 16:10:23 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_obj_id_obsolete): warn always.

	* eval.c (rb_enable_super): ditto.

Wed Dec 15 15:31:02 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/set.rb (Set#==): [ruby-dev:25206]

Wed Dec 15 14:22:10 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_fdisset): check whether the handle is valid.
	  fixed: [ruby-core:03959]

Wed Dec 15 10:30:37 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]

Tue Dec 14 17:10:09 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_close): need to reset osfhnd().

Tue Dec 14 14:03:57 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.c (ossl_raise): avoid buffer overrun.
	  [ruby-dev:25187]

Tue Dec 14 12:36:04 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::initialize): generate new
	  session if given session_id does not exist.  [ruby-list:40368]

Mon Dec 13 18:13:52 2004  Tanaka Akira  <akr@m17n.org>

	* gc.c (stack_end_address): new function to obtain stack end address.
	  stack_end_address calls __builtin_frame_address(0) to obtain the
	  frame pointer of a stack frame of stack_end_address.  The address
	  is the stack pointer of the caller's stack frame.
	  (SET_STACK_END): use stack_end_address.
	  This makes the conservative garbage collector to scan a stack frame
	  of the garbage_collect function itself.  This is required because
	  callee-save registers may be stored in the frame.
	  [ruby-dev:25158]

Mon Dec 13 00:58:02 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (cleanpath_aggressive): make it private.
	  (cleanpath_conservative): ditto.
	  Suggested by Daniel Berger.  [ruby-core:3914]

Sun Dec 12 20:06:38 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: backported from CVS HEAD.

Sun Dec 12 10:35:10 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Don't
	  show an accessor's r/w flag if none was specified

Sun Dec 12 10:14:03 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb (RDoc::RDoc::parse_files): Never exclude files
	  explicitly given on the command line.

Sun Dec 11 23:54:07 2005  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/*: update to support libraries in ActiveTcl8.4.12.0
	  (see ext/tk/ChangeLog.tkextlib).

	* ext/tk/sample/scrollframe.rb: add a new sample.

Sat Dec 11 20:12:21 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: add DRbRemoteError. [ruby-list:40348],
	  [ruby-list:40390]

	* test/drb/drbtest.rb: ditto.

	* test/drb/ut_drb.rb: ditto.

Sat Dec 11 15:38:14 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/jcode.rb (String::succ): [ruby-dev:25156]

Sat Dec 11 12:41:55 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (run_trap_eval): prototype; avoid VC++ warnings.

	* ext/socket/getaddrinfo.c: fix typo. fixed: [ruby-core:03947]

	* win32/win32.c: need to include dln.h.

Sat Dec 11 00:10:18 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_reopen): [ruby-dev:25150]

Fri Dec 10 08:39:27 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/socket.c (sock_listen): get OpenFile just before calling
	  listen(2).  fixed: [ruby-dev:25149]

Thu Dec  9 17:00:00 2004  Akiyoshi, Masamichi  <akiyoshi@hp.com>

	* ext/socket/socket.c, ext/socket/getaddrinfo.c: port to VMS

Thu Dec  9 16:31:02 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/sdbm/init.c (GetDBM): typo.

Thu Dec  9 16:05:00 2004  Akiyoshi, Masamichi  <akiyoshi@hp.com>

	* defines.h: change path of vms.h
	* vms/vms.h: delete reference for snprintf()
	* vms/config.h: new file
	* vms/config.h_in: deleted

Thu Dec  9 14:38:35 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_inspect): escape # which starts an expression
	  substitution.  fixed: [ruby-core:03922]

	* string.c (rb_str_dump): not escape # which isn't a substitution.

Thu Dec  9 10:54:36 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dbm/dbm.c (fdbm_select): [ruby-dev:25132]

	* ext/sdbm/init.c: ditto.

	* ext/gdbm/gdbm.c: ditto.

Thu Dec  9 03:08:36 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_init): set root-win title to "ruby" when
	  the running script is '-e one-liner' or '-' (stdin).

	* ext/tcltklib/extconf.rb: add find_library("#{lib}#{ver}",..) for
	  stub libs

	* ext/tk/lib/tk/textmark.rb: TkTextMarkCurrent and TkTextMarkAnchor
	  have a wrong parent class.

	* ext/tk/lib/tk/dialog.rb: rename TkDialog2 --> TkDialogObj and
	  TkWarning2 --> TkWarningObj (old names are changed to alias names)

	* ext/tk/lib/tk/dialog.rb: bug fix of treatment of 'prev_command'
	  option and hashes for configuration

	* ext/tk/lib/tk/dialog.rb: add TkDialogObj#name to return the
	  button name

	* ext/tk/lib/tk/radiobutton.rb: rename enbugged method value() ==>
	  get_value() and value=(val) ==> set_value(val).

	* ext/tk/lib/tk/menu.rb: add TkMenu.new_menuspec

	* ext/tk/lib/tk/menu.rb: add alias (TkMenuButton = TkMenubutton,
	  TkOptionMenuButton = TkOptionMenubutton)

	* ext/tk/lib/tk/event.rb: new method aliases (same as option keys of
	  event_generate) for Event object

	* ext/tk/lib/tk/font.rb: configinfo returns proper types of values

	* ext/tk/lib/tk.rb: bind methods accept subst_args + block

	* ext/tk/lib/tk/canvas.rb: ditto

	* ext/tk/lib/tk/canvastag.rb: ditto

	* ext/tk/lib/tk/frame.rb: ditto

	* ext/tk/lib/tk/text.rb: ditto

	* ext/tk/lib/tk/texttag.rb: ditto

	* ext/tk/lib/tk/toplevel.rb: ditto

	* ext/tk/lib/tkextlib/*: ditto and bug fix

Wed Dec  8 23:54:29 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Typo
	  meant that h2 tag was invisible.

Wed Dec  8 21:56:31 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss, test/rss, sample/rss: backported from CVS HEAD.

Wed Dec  8 14:31:36 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_fwrite): change dereference for cosmetic reason.

	* sprintf.c (rb_f_sprintf): [ruby-dev:25104]

Tue Dec  7 19:08:00 2004  Akiyoshi, Masamichi  <akiyoshi@hp.com>

	* io.c (io_fwrite): fix offset incrementation (for VMS and Human68k)

Tue Dec  7 00:27:37 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (proc_setgroups): [ruby-dev:25081]

Mon Dec  6 18:08:10 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* re.c (rb_reg_eqq): document fix.  [ruby-talk:122541]

Mon Dec  6 17:19:13 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.
	  (backported from CVS HEAD)  [ruby-dev:24993]

Mon Dec  6 10:18:17 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in):
	  Oops - 1.8 doesn't have String#clear

Mon Dec  6 09:59:23 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (sock_connect): use rb_str_new4().
	  [ruby-dev:25052]

Mon Dec  6 01:42:08 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
	  ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
	  ossl_rsa_private_decrypt): should take an optional argument
	  to specify padding mode. [ruby-talk:122539]

	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): add new constants
	  PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING
	  under OpenSSL::PKey::RSA.

	* test/openssl/test_pkey_rsa.rb: new file.

Sun Dec  5 19:39:17 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Completion#complete): new parameter
	  to direct case insensitiveness.

	* lib/optparse.rb (OptionParser#order!): ignore case only for long
	  option.  [ruby-dev:25048]

Sat Dec  4 22:54:15 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_write): remove rb_str_locktmp().  [ruby-dev:25050]

	* io.c (io_fwrite): takes VALUE string as an argument.
	  [ruby-dev:25050]

	* ext/socket/socket.c (sock_connect): remove rb_str_locktmp().
	  [ruby-dev:25050]

	* ext/socket/socket.c (udp_connect): [ruby-dev:25045]

	* ext/socket/socket.c (udp_bind): ditto.

	* ext/socket/socket.c (udp_send): ditto.

	* ext/socket/socket.c (bsock_send): ditto.

	* ext/socket/socket.c (s_recvfrom): ditto.

	* hash.c (rb_hash_hash): should provide "hash" method where "eql?"
	  is redefined.  [ruby-talk:122482]

Sat Dec  4 14:54:52 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c (proc_invoke): use volatile `tmp' rather than `args'.
	  [ruby-core:03882]

Sat Dec  4 14:28:56 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::Section::set_comment):
	  Section comments may now be bracketed by lines which are
	  ignored. You can now write
	      # -----------
	      # :section: Dave's Section
	      # comment material
	      # -----------
	   The lines before :section: are removed, and identical lines at the end are
	   also removed if present.

Sat Dec  4 03:33:45 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* ext/readline/readline.c: check $SAFE. (backported from CVS HEAD)

	* test/readline/test_readline.rb: added tests for readline.
	  (backported from CVS HEAD)

Sat Dec  4 02:24:00 2004  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf.c: add constant NKF::VERSION

	* ext/nkf/nkf.c(guess): this becomes an alias of guess2

	* ext/nkf/test.rb(mime_out2): add --no-cp932

	* ext/nkf/nkf-utf8/nkf.c: original nkf2 revision 1.47

Sat Dec  4 00:35:08 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]

Fri Dec  3 18:57:03 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/ostruct.rb: 1.9 marshaling support back-ported.
	  [ruby-core:03871]

Fri Dec  3 13:45:20 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): copy arguments to frame.argv.
	  [ruby-core:03861]

Fri Dec  3 12:25:41 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* st.h: fix prototypes.

Fri Dec  3 00:21:05 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (convert_type): use rb_respond_to() again.
	  [ruby-dev:25021]

	* eval.c (rb_respond_to): funcall respond_to? if it's redefined.
	  [ruby-dev:25021]

Fri Dec  3 01:55:24 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: widget configuration by TkWindow#method_missing
	  returns proper object. "widget.option = val" returns val, and
	  "widget.option(val)" returns self.

	* ext/tk/lib/tk/font.rb: TkFont#replace accepts only one font argument.

	* ext/tk/lib/tk/radiobutton.rb: add TkRadiobutton#value and
	  TkRadiobutton#value=(val).

	* ext/tk/lib/tk/spinbox.rb: callback substitution support on
	  command option.

	* ext/tk/sample/demos-en/widget: bug fix (wrong image height)

	* ext/tk/sample/demos-jp/widget: ditto.

Fri Dec  3 00:11:48 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_file_initialize): [ruby-dev:25032]

Thu Dec  2 16:41:03 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_protect): prevent continuations created inside from being
	  called from the outside.  [ruby-dev:25003]

	* eval.c (rb_callcc, rb_cont_call): prohibit calling from different
	  signal contexts.  [ruby-dev:25022]

Thu Dec  2 09:57:24 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be
	  marshaled again.  [ruby-core:03862]

Thu Dec  2 09:30:06 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (thread_mark): mark thread group.  [ruby-dev:25020]

	* eval.c (thgroup_add): check whether the argument is really a Thread.

Thu Dec  2 07:57:16 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_ctl): [ruby-dev:25019]

Wed Dec  1 02:21:02 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* signal.c (sighandler): call handler immediately only for default
	  handlers.  [ruby-dev:25003]

Tue Nov 30 23:38:18 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]

	* io.c (read_all): remove unnecessary rb_str_resize().
	  [ruby-dev:24996]  (backported from CVS HEAD)

	* io.c (io_readpartial): ditto.

	* io.c (io_read): ditto.

Tue Nov 30 16:18:50 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]

	* io.c (read_all): remove unnecessary rb_str_resize().
	  [ruby-dev:24996]

	* io.c (io_read): ditto.

Tue Nov 30 00:49:08 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_sysread): use temporary lock.  [ruby-dev:24992]

Mon Nov 29 16:06:04 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_write): insufficiently filled string
	  being extended when overwriting.  [ruby-core:03836]

Mon Nov 29 15:59:05 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/ostruct.rb (OpenStruct::method_missing): check method
	  duplication for -d.

	* lib/ostruct.rb (OpenStruct::initialize): ditto.

Mon Nov 29 15:22:28 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/io/nonblock/test_flush.rb: abandon tests when io/nonblock is
	  not supported.

Mon Nov 29 03:08:30 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (convert_type): direct call conversion methods for the
	  performance.  [ruby-core:03845]

	* eval.c (rb_funcall_rescue): new function.

	* object.c (rb_Array): avoid using rb_respond_to().

	* object.c (rb_Integer): ditto.

	* parse.y (reduce_nodes): empty body should return nil.

	* string.c (rb_str_aset): the original string should not be
	  affected by modifying duplicated string.  [ruby-dev:24981]

Mon Nov 29 13:57:38 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (CreateChild): search executable file if no program
	  name given. (backported from CVS HEAD)

Mon Nov 29 13:37:54 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (fptr_finalize): must not use FILE after fclose().
	  [ruby-dev:24985]

Mon Nov 29 13:16:31 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (CreateChild): push back the last space before next
	  loop because CharNext() eats it.

Mon Nov 29 01:18:18 2004  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_io_check_writable): call io_seek regardless of
	  NEED_IO_SEEK_BETWEEN_RW.  [ruby-dev:24986]

Sat Nov 27 21:43:39 2004  Tanaka Akira  <akr@m17n.org>

	* io.c: avoid data lost with nonblocking fd and
	  stdio buffering in sync mode.  [ruby-dev:24966]
	  based on matz's patch [ruby-dev:24967]
	  (io_fwrite): new primitive writing function which writes
	  directly if sync mode.
	  (rb_io_fwrite): wrapper for io_fwrite now.
	  (io_write): call io_fwrite instead of rb_io_fwrite.

Sat Nov 27 14:44:15 2004  Kent Sibilev  <ksibilev@bellsouth.net>

	* lib/cgi/session.rb (CGI::Session::initialize): create_new_id is
	  now a instance method.  [ruby-core:03832]

Sat Nov 27 09:41:21 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_fread): old rb_io_fread with file closing checking.
	  (rb_io_fread): wrapper for io_fread now.
	  [ruby-dev:24964]

Fri Nov 26 18:02:44 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: Tk.destroy uses TkWindow#epath

	* ext/tk/lib/tk/image.rb: bug fix

	* ext/tk/lib/tk/wm.rb: add 'iconphoto' method(Windows only)

	* ext/tk/lib/tkextlib/*: some methods uses TkWindow#epath

Fri Nov 26 13:49:06 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (method_missing): raise TypeError for classes do not
	  have allocators.  [ruby-core:03752]

	* lib/erb.rb: add RDoc by James Edward Gray II.  [ruby-core:03786]

Fri Nov 26 13:29:02 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Break
	  out of preprocessing when we find a :section: directive (previously cleared out the
	  comment, but this apparently now generates an error in gsub!)

Fri Nov 26 00:17:40 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_read): move StringValue() check before GetOpenFile().
	  [ruby-dev:24959]

Thu Nov 25 20:14:57 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/thwait.rb (ThreadsWait#join_nowait): abnormally terminated
	  threads should be also processed.  [ruby-talk:121320]

Thu Nov 25 10:14:26 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (push_braces): do not reuse buffer strings.  [ruby-core:03806]

Thu Nov 25 07:59:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): stringify non-nil buffer argument, and always
	  taint the result.  [ruby-dev:24955]

Wed Nov 24 01:01:31 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_read): integer conversion should be prior to
	  GetOpenFile().  [ruby-dev:24952]

	* configure.in, io.c: cancel [ ruby-Patches-1074 ].

Tue Nov 23 08:09:50 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/menu.rb: improve usability of TkOptionMenubutton

Tue Nov 23 02:00:21 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (rb_file_chown): integer conversion should be prior to
	  GetOpenFile().  [ruby-dev:24949]

Tue Nov 23 00:10:48 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (rb_file_chown): integer conversion should be prior to
	  GetOpenFile().  [ruby-dev:24947]

	* file.c (rb_file_truncate): ditto.

	* file.c (rb_file_s_truncate): ditto.

	* dir.c (dir_seek): use NUM2OFFT().

	* misc/ruby-mode.el (ruby-non-block-do-re): should not match words
	  start with block keyword and underscore.  [ruby-core:03719]

Mon Nov 22 22:33:02 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Don't use names
	  of variables or constants when oarsing 'require'

Mon Nov 22 00:13:35 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_seek): should retrieve dir_data after NUM2INT().
	  [ruby-dev:24941]

Sat Nov 20 23:57:33 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/README (et al): Add a new directive, :section:, and
	  change the output format to accomodate. :section: allows to to
	  group together methods, attributes, constants, etc under
	  headings in the output. If used, a table of contents is
	  generated.

Sat Nov 20 23:56:54 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/options.rb (Options::parse): Force --inline-source if
	  --one-file option given

Sat Nov 20 23:55:19 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_splice): should place index wrapping after
	  possible modification.  [ruby-dev:24940]

Sat Nov 20 13:26:03 2004  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/utf8tbl.c: original revision 1.7

Sat Nov 20 05:34:24 2004  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf/nkf-utf8/nkf.c: original nkf.c rev:1.40

	* ext/nkf/test.rb: add test for mime encode/decode

Sat Nov 20 01:37:34 2004  Johan Holmberg  <holmberg@iar.se>

	* eval.c (error_print): nicer traceback at interrupt.
	  [ruby-core:03774]

Sat Nov 20 00:07:16 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): internal buffer should not be listed by
	  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]

Fri Nov 19 01:20:22 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
	  exception if data corresponding to session specified from the
	  client does not exist.

Fri Nov 19 00:59:31 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): internal buffer should not be listed by
	  ObjectSpace.each_object().  [ruby-dev:24919]

Thu Nov 18 18:41:08 2004  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* test/ruby/test_stringchar.rb (test_bang): added.

	* string.c (rb_str_upcase_bang, rb_str_capitalize_bang)
	  (rb_str_swapcase_bang): missing rb_str_modify().  [ruby-dev:24915]

Thu Nov 18 00:21:15 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (proc_getpgrp): prohibit for $SAFE=2.
	  [ruby-dev:24899]

	* process.c (get_pid): ditto.  [ruby-dev:24904]

	* process.c (get_ppid): ditto.

	* array.c (rb_ary_delete): defer rb_ary_modify() until actual
	  modification.  [ruby-dev:24901]

Thu Nov 18 10:10:14 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c, rubyio.h (rb_io_modenum_flags): exported.

	* ext/stringio/stringio.c (strio_initialize): allow Fixnum as mode as
	  well as IO.new does.  [ruby-dev:24896]

Wed Nov 17 23:42:40 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_settracefunc.rb: added.  [ruby-dev:24884]

Wed Nov 17 13:56:57 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]

	* parse.y (string_content): should not use FL_UNSET.

	* node.h (NODE_NEWLINE): remove unused bit to utilize flag field
	  in nodes.

Wed Nov 17 13:09:40 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/Makefile.sub (test): should build ruby.exe
	  before running test. [ruby-core:03756]

Wed Nov 17 04:33:01 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* pack.c: all features are backport from 1.9. [ruby-dev:24826]

	* bignum.c (rb_big2ulong_pack): new function to pack Bignums.

Wed Nov 17 03:42:45 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_splice): move rb_str_modify() after
	  StringValue(), which may alter the receiver.  [ruby-dev:24878]

Tue Nov 16 23:45:07 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (flo_divmod): protect float values from GC by
	  assignment to local variables.  [ruby-dev:24873]

Tue Nov 16 16:30:21 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/setup.mak (-epilogue-): remove config.h and
	  config.status to force updating them.

Tue Nov 16 16:20:45 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): position was ignored when a
	  buffer was passed.  http://www.yo.rim.or.jp/~nov/d/?date=20041116#p03

Tue Nov 16 11:19:07 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::options): use
	  Regexp conversion.

Tue Nov 16 01:41:31 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_mod_check): frozen check should be separated.
	  [ruby-core:3742]

	* array.c (rb_ary_update): pedantic check to detect
	  rb_ary_to_ary() to modify the receiver.  [ruby-dev:24861]

Mon Nov 15 13:50:52 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_justify): typo fixed.  [ruby-dev:24851]

Mon Nov 15 11:50:32 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle
	  operator symbols.  [ruby-talk:120177]

Sun Nov 14 13:27:03 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/pp.rb (PP#object_address_group): remove odd number of 'f'
	  prefixed to negative address.

Sun Nov 14 08:51:04 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/logger/test_logger.rb: Logger just expects
	  Logger#datetime_format to be used for Time#strftime independently of
	  locale. [ruby-dev:24828]

Fri Nov 12 15:03:26 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (ruby_options): now we cannot call rb_glob() before
	  ruby_init(), so call rb_w32_cmdvector() at ruby_options().

	* win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and
	  export it.

Fri Nov 12 14:08:01 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/event.rb: remove $LOADED_FEATURES trick

	* ext/tk/lib/tk.rb: ditto

Fri Nov 12 00:31:05 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/gdbm/gdbm.c (fgdbm_store): StringValue() may alter string
	  pointer.  [ruby-dev:24783]

Thu Nov 11 17:36:12 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (rb_globi): also should call back via rb_glob_caller().
	  [ruby-dev:24775]

Thu Nov 11 16:47:21 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/ruby/test_file.rb (test_truncate_wbuf): we want to test
	  only File#truncate, not behaviour of seek(2).

Thu Nov 11 09:41:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (push_braces): was confusing VALUE and char*.

	* dir.c (rb_push_glob): Dir.glob should have called its block.

Thu Nov 11 01:52:52 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (syserr_initialize): use stringified object.
	  [ruby-dev:24768]

Wed Nov 10 22:49:01 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb (SimpleDelegator::dup): wrong number of
	  arguments.

	* lib/delegate.rb (DelegateClass::dup): ditto.

Wed Nov 10 12:31:21 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* README.EXT (Example): extconf.rb is indispensable now.

Wed Nov 10 03:33:36 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix SEGV when compiled with Tcl/Tk8.3.x
	  or older

	* ext/tk/lib/tkextlib/tile/style.rb: bug fix

Tue Nov  9 14:27:18 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Officious): moved from DefaultList.

Tue Nov  9 01:05:04 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (rb_glob2): do not allocate buffer from heap to avoid
	  memory leaks.  use string object for buffering instead.
	  [ruby-dev:24738]

	* dir.c (join_path): ditto.

	* io.c (io_read): external input buffer may be modified even after
	  rb_str_locktmp().  [ruby-dev:24735]

	* dir.c (fnmatch): p or s may be NULL.  [ruby-dev:24749]

Tue Nov  9 00:53:53 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* regex.c (slow_match): avoid GCC 3.4.x warnings.

Tue Nov  9 00:50:06 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb: Change version numbering of RDoc and ri

Mon Nov  8 23:38:35 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/extservm.rb: add DRb::ExtServManager#uri=.
	  [ruby-dev:24743]

Mon Nov  8 22:20:19 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
	  Fix bug where parent class wasn't being detected if the
	  child class was defined using the A::B notation.

Mon Nov  8 00:14:13 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: add setup for mignw32 cross compiling.
	  [ruby-talk:119413]

Sun Nov  7 23:49:26 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: bind-event methods accept multi substitution
	  arguments.

	* ext/tk/lib/tk/canvas.rb: ditto.

	* ext/tk/lib/tk/canvastag.rb: ditto.

	* ext/tk/lib/tk/text.rb: ditto.

	* ext/tk/lib/tk/texttag.rb: ditto.

	* ext/tk/lib/tkextlib: ditto.

Sat Nov  6 14:58:44 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/server.rb (WEBrick::HTTPServer#start): remove
	  :DoNotReverseLookup option. (Socket#do_not_reverse_lookup is a
	  ruby 1.9 feature)

Sat Nov  6 11:31:04 2004  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb (_parse): checks whether zone was given.

Sat Nov  6 00:46:27 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_locktmp): check STR_TMPLOCK flag before
	  locking.  [ruby-dev:24727]

Fri Nov  5 18:12:42 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/scrollable.rb: divide Scrollable module into
	  X_Scrollable and Y_Scrollable

	* ext/tk/lib/tk/entry.rb: include X_Scrollable instead of Scrollable

	* ext/tk/lib/tk/autoload.rb: define autoload for X_Scrollable and
	  Y_Scrollable

Fri Nov  5 16:05:32 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: TkComm._at() supprts both of "@x,y" and "@x"

Fri Nov  5 13:22:58 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/text.rb: sorry. bug fix again.

Fri Nov  5 13:17:54 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/text.rb: bug fix

Fri Nov  5 08:52:48 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_mark): stricter GC stack check.

Fri Nov  5 08:52:48 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_mark): stricter GC stack check.

Fri Nov  5 08:34:43 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): should have removed rb_str_unlocktmp(str).
	  [ruby-dev:24708]

Thu Nov  4 21:25:38 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): string modify check no longer based on
	  tmplock.  [ruby-dev:24706]

Thu Nov  4 19:27:46 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* io.c (rb_f_open): fix typo.

Thu Nov  4 15:02:14 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/variable.rb: forget to initialize instance_variables
	  of TkVarAccess objects

Thu Nov  4 09:11:35 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_mark): enable GC stack checking.

Thu Nov  4 03:11:33 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): lock strings temporarily.  [ruby-dev:24687]

	* ext/socket/socket.c (s_recvfrom): tmplock input buffer.
	  [ruby-dev:24705]

Wed Nov  3 22:32:12 2004  NARUSE, Yui  <naruse@ruby-lang.org>

	* process.c: On NetBSD don't use setruid() and setrgid().

Wed Nov  3 22:24:17 2004  Daigo Moriwaki  <techml@sgtpepper.net>

	* lib/webrick/httpauth/digestauth.rb: use Base64.encode64 to
	  avoid warnings.

Wed Nov  3 17:19:59 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_uniq_bang): do not push frozen string from hash
	  table.  [ruby-dev:24695]

	* array.c (rb_ary_and): ditto.

	* array.c (rb_ary_or): ditto.

Wed Nov  3 17:13:02 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* io.c (pipe_open): fix compile error

Wed Nov  3 16:58:07 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: support to use different Tcl commands between
	  configure and configinfo

	* ext/tk/lib/font.rb: ditto.

	* ext/tk/lib/itemconfig.rb: support to use different Tcl commands
	  between item_configure and item_configinfo

	* ext/tk/lib/itemfont.rb: ditto.

	* ext/tk/extconf.rb: install SUPPORT_STATUS

	* ext/tk/lib/tkextlib: some bug fixes (see ext/tk/ChangeLog.tkextlib)

Wed Nov  3 16:30:41 2004  NARUSE, Yui  <naruse@ruby-lang.org>

	* ext/nkf: follow nkf 2.0.4

Wed Nov  3 15:53:34 2004  Kouhei Sutou  <kou@cozmixng.org>

	* test/rss/test_maker_*.rb: added tests for RSS Maker.

	* lib/rss/maker.rb: added RSS Maker.

	* lib/rss/maker/*.rb: ditto.

Tue Nov  2 16:35:57 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/enumerator/enumerator.c (each_cons_i): pass copy of an
	  internal consequent array.  [ruby-talk:118691]

Tue Nov  2 16:05:21 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (rb_f_fork): need to flush stdout and stderr before
	  fork(2).  [ruby-talk:117715]

Tue Nov  2 01:20:09 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): nail down dyna_var node when Proc object
	  or continuation is created.  [ruby-dev:24671]

Mon Nov  1 13:59:28 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead.

	* ext/enumerator/extconf.rb, ext/fcntl/extconf.rb,
	  ext/stringio/extconf.rb: added.

	* MANIFEST, ext/**/MANIFEST: removed.

	* README.EXT, README.EXT.ja: remove MANIFEST stuff.

Mon Nov  1 01:14:52 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_f_open): create copy of popen specifier.  [ruby-dev:24656]

Mon Nov  1 00:36:48 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* main.c (_stklen): move to gc.c.

Sun Oct 31 00:22:28 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_locktmp): lock string temporarily.

	* string.c (str_independent): add tmplock check.

	* io.c (io_write): lock output string temporarily.
	  [ruby-dev:24649]

	* io.c (io_write): use rb_str_locktmp().

	* io.c (read_all): ditto.

Sat Oct 30 06:53:24 2004  Peter Vanbroekhoven  <peter.vanbroekhoven@cs.kuleuven.ac.be>

	* eval.c (rb_eval): NODE_XSTR should pass copy of literal string.

Sat Oct 30 00:19:40 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* enum.c (enum_sort_by): protect continuation jump in.
	  [ruby-dev:24642]

Fri Oct 29 21:27:51 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_check_initialized): new function to check uninitialized
	  object.  [ruby-talk:118234]

	* file.c (rb_file_path), io.c (rb_io_closed): check if initialized.

Fri Oct 29 10:00:30 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_thread_start_0): forget to free some memory chunks.
	  [ruby-core:03611]

	* eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,
	  should be wrapped by PUSH_TAG/POP_TAG().  [ruby-dev:24627]

Thu Oct 28 08:42:02 2004  Tanaka Akira  <akr@m17n.org>

	* io.c (argf_forward): use ANSI style.
	  (argf_read): call argf_forward with argv argument.
	  [ruby-dev:24624]

Thu Oct 28 23:32:54 2004  akira yamada  <akira@ruby-lang.org>

	* ext/zlib/zlib.c (zstream_detach_input): resets klass of z->input if
	  z->input isn't nil.

Thu Oct 28 23:19:31 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: prefer relative path.  [ruby-talk:93037]

Wed Oct 27 18:49:11 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* gc.c: prototype; rb_io_fptr_finalize() doesn't return any value
	  at this version.

Wed Oct 27 17:27:45 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_sweep): recover ruby_in_compile variable.

Wed Oct 27 09:17:30 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (str_gsub): use a string object for exception safeness.
	  [ruby-dev:24601]

Tue Oct 26 23:52:32 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_getline): rs modification check should not interfere in the loop.

Tue Oct 26 23:30:39 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::add_class_or_module):
	  Restore correct :nopdoc: behavior with nested classes and modules.

Tue Oct 26 18:21:29 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (RESIZE_CAPA): check string attribute before modifying
	  capacity member of string structure.  [ruby-dev:24594]

Tue Oct 26 11:33:26 2004  David G. Andersen  <dga@lcs.mit.edu>

	* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
	  performance.  [ruby-talk:117701]

Tue Oct 26 10:56:55 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
	  arguments, unless (digit)$ style used.

Tue Oct 26 11:33:26 2004  David G. Andersen  <dga@lcs.mit.edu>

	* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
	  performance.  [ruby-talk:117701]

Tue Oct 26 10:56:55 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
	  arguments, unless (digit)$ style used.

Mon Oct 25 18:35:39 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* win32/win32.c (isUNCRoot): should check NUL after '.'.
	  [ruby-dev:24590]

	* win32/win32.c (isUNCRoot): fixed buffer overrun.

Mon Oct 25 08:03:26 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (get_backtrace): ignore illegal backtrace.  [ruby-dev:24587]

Sun Oct 24 00:41:09 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_load, search_required, rb_require_safe, rb_require): use
	  frozen shared string to avoid outside modification.  [ruby-dev:24580]

Sat Oct 23 22:18:32 2004  Guy Decoux  <ts@moulon.inra.fr>

	* eval.c (frame_free): Guy Decoux solved the leak problem.
	  Thanks.  [ruby-core:03549]

Sat Oct 23 00:20:55 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/zlib/zlib.c (zstream_append_input): clear klass for z->input
	  to avoid potential vulnerability.

	* ext/zlib/zlib.c (zstream_run): always use zstream_append_input()
	  to avoid SEGV.  [ruby-dev:24568]

Fri Oct 22 12:02:28 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_alias): was warning for wrong condition.
	  [ruby-dev:24565]

Fri Oct 22 10:36:37 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#meta_vars):
	  should check if path_info is not nil.

Fri Oct 22 00:22:31 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/zlib/zlib.c (zstream_shift_buffer): should restore class
	  field of a buffer.  [ruby-dev:24562]

Fri Oct 22 00:20:33 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_include): should not treat char as negative value.
	  [ruby-dev:24558]

Thu Oct 21 21:32:30 2004  IWATSUKI Hiroyuki  <don@na.rim.or.jp>

	* lib/pstore.rb (PStore#transaction): Use the empty content when a
	  file is not found.  [ruby-dev:24561]

Thu Oct 21 19:06:15 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):
	  ensure to close @body. (http://bugs.debian.org/277520)

Thu Oct 21 00:36:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_alias): should warn on method discarding.
	  [ruby-dev:24546]

	* ext/zlib/zlib.c (zstream_expand_buffer_into): hide internal
	  string buffer by clearing klass.  [ruby-dev:24548]

Wed Oct 20 19:45:13 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_gsub): 	reentrant check.  [ruby-dev:24432]

	* backport all SEGV bug fixes from CVS HEAD.  [ruby-dev:24536]

Wed Oct 20 04:17:55 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element
	  is a string.  [ruby-dev:24490]

	* ext/sdbm/init.c (fsdbm_delete_if): ditto.

Wed Oct 20 01:37:18 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_times): Array#* should return an instance of
	  the class of right operand.  [ruby-dev:24526]

	* ext/zlib/zlib.c (zstream_detach_buffer): should not expose
	  class-less object to Ruby world. [ruby-dev:24530]

	* eval.c (proc_dup): provide Proc#dup as well.  [ruby-talk:116915]

	* eval.c (ruby_exec): stack marking position may be higher than
	  expected.  thanks to Guy Decoux.  [ruby-core:03527]

Tue Oct 19 22:43:12 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_attr): If
	  we come across 'attr' in a context where it isn't
	  followed by a symbol, just issue a warning.

Tue Oct 19 20:41:37 2004  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole.c(ole_invoke): retrieve the result value when
	  retrying the IDispatch::invoke.

Tue Oct 19 17:24:11 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): block string buffer modification during
	  rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

	* dir.c (rb_push_glob): block call at once the end of method.
	  [ruby-dev:24487]

	* ext/enumerator/enumerator.c (enum_each_slice): remove
	  rb_gc_force_recycle() to prevent potential SEGV.
	  [ruby-dev:24499]

	* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
	  buffer by clearing klass.  [ruby-dev:24510]

Tue Oct 19 16:12:18 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c: backport from CVS HEAD

Tue Oct 19 08:54:26 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h, object.c (rb_class_inherited_p): export.

Tue Oct 19 08:46:57 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_upto): method result must be checked.  [ruby-dev:24504]

	* eval.c (error_print): ditto.  [ruby-dev:24519]

Mon Oct 18 23:37:05 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (r_object0): check inheritance by the internal function.
	  [ruby-dev:24515]

Mon Oct 18 15:58:01 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* range.c (range_step, range_each): need cast.

Fri Oct 29 16:34:19 2004  Daiki Ueno  <ueno@unixuser.org>

	* misc/ruby-mode.el (ruby-parse-partial): Parse the rest of the
	  line after opening heredoc identifier.  [ruby-dev:24635]

Mon Oct 18 07:26:21 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (rb_file_truncate): discard read buffer before truncation.
	  [ruby-dev:24197]

Mon Oct 18 02:11:21 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/config.rb (WEBrick::Config::General): add default values:
	  - WEBrick::Config[:DoNotReverseLookup]
	  - WEBrick::Config[:RequestCallback] (it used as an alias of
	    :RequestHandler in WEBrick::HTTPServer#run)
	  - WEBrick::Config::FileHandler[:AcceptableLanguages]

	* lib/webrick/httpservlet/filehandler.rb
	  (WEBrick::HTTPServlet::FileHandler#set_filename): search files
	  having suffix of language-name which Accept-Language header field
	  includes if :AcceptableLanguages options is present.

	* lib/webrick/httpservlet/filehandler.rb
	  (WEBrick::HTTPServlet::FileHandler#get_servlet): new method to
	  search servlet correspond to the suffix of filename.

	* lib/webrick/httprequest.rb: add attributes access methods: accept,
	  accept_charset, accept_encoding, accept_language, content_length
	  and content_type.

	* lib/webrick/httpresponse.rb: add attribute access methods:
	  content_length, content_length=, content_type and content_type=.

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.mime_types):
	  use the second suffix to detect media type. (the first suffix
	  may be a language name.)

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_qvalues):
	  add method to parse Accept header field. it returns an Array of
	  values sorted by the qvalues.

Mon Oct 18 02:04:11 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#virtual_host): new
	  method to register virtual hosting servers.

	* lib/webrick/server.rb (WEBrick::GenericServer#accept): call
	  do_not_reverse_lookup for each socket if :DoNotReverseLookup
	  is set.  [ruby-core:02357]

Mon Oct 18 00:42:45 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (sock_s_getservbyaname): protocol string
	  might be altered.  [ruby-dev:24503]

	* string.c (rb_str_upto): check if return value from succ is a
	  string.  [ruby-dev:24504]

Sun Oct 17 23:03:48 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block

Sun Oct 17 13:05:04 2004  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (fole_func_methods): correct argument mismatch.
	* ext/win32ole/win32ole.c (fole_get_methods): ditto.
	* ext/win32ole/win32ole.c (fole_put_methods): ditto.
	* ext/win32ole/tests/testWIN32OLE.rb: add test for WIN32OLE#ole_func_methods
	  WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods

Sat Oct 16 14:45:28 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/0.9.rb (RSS::Rss#to_s): removed garbage.

Sat Oct 16 13:42:49 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/: untabified.
	* test/rss/: untabified.
	* lib/rss/0.9.rb (RSS::Rss#to_s): inent -> indent.

Sat Oct 16 13:34:56 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss: supported prety print.
	* test/rss/test_1.0.rb: added test for calculating default indent size.

Fri Oct 15 18:04:35 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/timer.rb: TkTimer.new(interval, loop){ ... } is
	  acceptable. Add TkTimer.start ( == new + start ).

Fri Oct 15 12:43:09 2004  Tanaka Akira  <akr@m17n.org>

	* eval.c (Init_stack): make prototype declaration consistent with
	  the definition in gc.c.

Thu Oct 14 14:34:01 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* io.c (MODE_BINMODE, MODE_BINARY): fixed reversed condition.

Thu Oct 14 13:33:59 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: added link to Tutorial.

Mon Oct 11 13:48:20 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/*: untabify

Sun Oct 10 12:32:08 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Allow 'require'
	  to be used as a variable name

Sat Oct  9 21:23:37 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/converter.rb: changed to try to use Iconv for default
	  conversion.

	* lib/rss/rss.rb: 0.0.9 -> 0.1.0.

Sat Oct  9 19:50:36 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_getline): should not treat char as negative value.
	  [ruby-dev:24460]

Fri Oct  8 09:49:32 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_pack): pointer modification check before each
	  iteration.  [ruby-dev:24445]

Fri Oct  8 01:13:05 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/optiondb.rb: make it more secure

Thu Oct  7 23:47:57 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar
	  cannot propagate view port information from the source widget
	  (that calls 'set') to other assigned widgets.

Thu Oct  7 17:36:25 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: When CHILDKILLED and so on, Tk.errorCode returns
	  a Fixnum for 2nd element (it's pid) of the return value.

Thu Oct  7 12:55:04 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (io_read): should freeze buffer before thread context
	  switch. [ruby-dev:24442]

	* pack.c (pack_unpack): string conversion should at the top of the
	  method.  [ruby-dev:24439]

	* io.c (io_read): buffer should be frozen only after the length
	  check.  [ruby-dev:24440]

Thu Oct  7 02:56:43 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c: use FMODE_APPEND.

Thu Oct  7 01:05:33 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add Tk.errorInfo and Tk.errorCode

Thu Oct  7 00:08:37 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_s_sysopen): preserve path in the buffer allocated by
	  ALLOCA_N() to prevent modification.  [ruby-dev:24438]

Wed Oct  6 09:21:00 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_mode_flags): preserve append mode flag.
	  [ruby-dev:24436]

	* io.c (rb_io_modenum_mode): do not use external output buffer.

	* string.c (rb_str_justify): differ pointer retrieval to prevent
	  padding string modification.  [ruby-dev:24434]

	* range.c (range_each_func): allow func to terminate loop by
	  returning RANGE_EACH_BREAK.

	* range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]

Mon Oct  4 14:04:14 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_file_open_internal, rb_io_reopen): fname might be altered
	  while GC.  [ruby-dev:24408]

Mon Oct  4 12:53:45 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/optiondb.rb: support definition of command
	  resources on widgets

	* ext/tk/lib/tk/image.rb: bug fix

Sun Oct  3 21:20:03 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (TEXT_REGEXP): allow 8-bit characters for the german
	  version of Microsoft Exchange Server. (backported from HEAD)

	* lib/net/imap.rb (RTEXT_REGEXP): ditto.

	* lib/net/imap.rb (CTEXT_REGEXP): ditto.

Sat Oct  2 20:34:22 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* node.h (NEW_DVAR): extra semicolon.

Sat Oct  2 00:42:20 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (r_byte): retrieve pointer from string value for each
	  time.  [ruby-dev:24404]

	* marshal.c (r_bytes0): ditto.

	* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]

	* io.c (io_read): should freeze all reading buffer.
	  [ruby-dev:24400]

	* string.c (rb_str_sum): should use bignums when bits is greater
	  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]

	* eval.c (specific_eval): defer pointer retrieval to prevent
	  unsafe sourcefile string modification.  [ruby-dev:24382]

	* eval.c (specific_eval): defer pointer retrieval to prevent
	  unsafe sourcefile string modification.  [ruby-dev:24382]

	* string.c (rb_str_sum): wrong cast caused wrong result.
	  [ruby-dev:24385]

	* enum.c (enum_sort_by): hide temporary array from
	  ObjectSpace.each_object.  [ruby-dev:24386]

	* string.c (rb_str_sum): check was done with false pointer.
	  [ruby-dev:24383]

	* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]

Mon Oct 11 17:51:34 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
	  avoid mode string modification.  [ruby-dev:24454]

	* io.c (rb_io_getline_fast): should take delim as unsigned char to
	  distinguish EOF and '\377'.  [ruby-dev:24460]

	* io.c (rb_io_getline): add check for RS modification.
	  [ruby-dev:24461]

	* enum.c (enum_sort_by): use qsort() directly instead using
	  rb_iterate().  [ruby-dev:24462]

	* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
	  prevent access to recycled object (via continuation for
	  example).  [ruby-dev:24463]

Fri Oct  1 11:40:14 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
	  sourcefile string modification.  [ruby-dev:24373]

	* io.c (io_read): block string buffer modification during
	  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]

	* io.c (rb_io_s_popen): mode argument may be altered.
	  [ruby-dev:24375]

	* file.c (rb_file_s_basename): ext argument may be altered.
	  [ruby-dev:24377]

	* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
	  [ruby-dev:24378]

	* string.c (rb_str_chomp_bang): StringValue() may change the
	  receiver.  [ruby-dev:24371]

Fri Oct  1 11:25:20 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/grid.rb: revive TkGrid.grid

	* ext/tk/lib/tk/pack.rb: revive TkPack.pack

	* ext/tk/lib/tk/place.rb: revive TkPlace.place

Thu Sep 30 00:50:44 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_init): bug fix

	* ext/tk/tkutil.c (get_eval_string_core): accept a Regexp object

	* ext/tk/lib/multi-tk.rb: fix bug on 'exit' operation

	* ext/tk/lib/tk/text.rb: 'tksearch' accepts a Regexp object as a
	  matting pattern argument

Wed Sep 29 10:58:07 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* enum.c (sort_by_i): internally used object must not be changed
	  outside.  [ruby-dev:24368]

Mon Sep 27 13:46:45 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h, struct.c (rb_struct_s_members, rb_struct_members): public
	  accessors.  [ruby-dev:24342]

	* marshal.c (w_object, r_object0): use accessors.

Mon Sep 27 09:14:03 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.
	  [ruby-talk:113807]

Fri Sep 24 16:09:42 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): propagate DVAR_DONT_RECYCLE on termination
	  to avoid double call to rb_gc_force_recycle(). [ruby-dev:24311]

Fri Sep 24 08:29:45 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_subseq): original object might be modified after
	  sharing data creation.  [ruby-dev:24327]

	* array.c (rb_ary_replace): ditto.

	* array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]

	* struct.c (struct_members): always check struct size and size of
	  members list in the class.  [ruby-dev:24320]

Thu Sep 23 09:29:14 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_sub_bang): check if string is not modified
	  during iteration.  [ruby-dev:24315]

	* hash.c (rb_hash_rehash): replace st_foreach() by its deep
	  checking counterpart.  [ruby-dev:24310]

Wed Sep 22 13:38:12 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (rb_hash_rehash): add iteration check.  [ruby-dev:24301]

	* st.c (st_foreach): add deep check.

Wed Sep 22 13:06:14 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_call_handler): workaround for Ctrl-C.
	  merge from HEAD.

Wed Sep 22 00:11:12 2004  Dave Thomas  <dave@pragprog.com>

	* process.c: Add documentation for fork()

Wed Sep 22 09:04:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_collect_bang): element size might change during
	  comparison.  [ruby-dev:24300]

	* array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]

	* array.c (rb_ary_eql): ditto. [ruby-dev:24300]

Tue Sep 21 18:29:49 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_equal): merge miss.

	* array.c (rb_ary_uniq_bang): element size might change during
	  comparison.  [ruby-dev:24298]

Mon Sep 20 00:24:19 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* enum.c (enum_sort_by): do not use qsort directly.  use
	  rb_ary_sort_bang() instead.  [ruby-dev:24291]

	* enum.c (enum_sort_by): pedantic type check added.
	  [ruby-dev:24291]

	* hash.c (rb_hash_foreach_iter): check iter_lev after each
	  iteration.  [ruby-dev:24289]

	* array.c (rb_ary_and): element size might change during
	  comparison.  [ruby-dev:24290]

	* array.c (rb_ary_or): ditto. [ruby-dev:24292]

	* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]

Sat Sep 18 15:02:22 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_equal): element size might change during
	  comparison.  [ruby-dev:24254]

	* array.c (rb_ary_diff): ditto. [ruby-dev:24274]

	* array.c (rb_ary_select): ditto. [ruby-dev:24278]

	* array.c (rb_ary_delete): ditto. [ruby-dev:24283]

	* array.c (rb_ary_rindex): ditto. [ruby-dev:24275]

	* array.c (rb_ary_initialize): element size might change during
	  initializing block.  [ruby-dev:24284]

Sat Sep 18 14:10:23 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_s_chdir): avoid memory leak and unnecessary chdir to
	  the original directory when exception has caused in changing
	  direcotry or within block.  thanks to Johan Holmberg
	  <holmberg@iar.se> [ruby-core:03446]

Fri Sep 17 20:20:27 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir_p): backport from CVS HEAD 1.45. [ruby-core:03420]

Fri Sep 17 17:11:08 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_delete): element comparison might change array
	  size. [ruby-dev:24273]

	* file.c (rb_file_truncate): clear stdio buffer before truncating
	  the file.  [ruby-dev:24191]

	* ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF
	  which might return singleton class.  [ruby-dev:24202]

Fri Sep 17 16:07:09 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: improve exit operation

Fri Sep 17 15:01:57 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or
	  (thread_)tkwait

	* ext/tk/lib/tk.rb: add alias wait_window to wait_destroy

	* ext/tk/lib/multi-tk.rb: support calling 'mainloop' on slave
	  interpreters (however, the 'real' eventloop must be run on the
	  Default Master IP)

	* ext/tk/lib/remote-tk.rb: follow the changes of ext/tk/lib/multi-tk.rb

	* ext/tk/sample/remote-ip_sample2.rb: ditto

	* ext/tk/sample/tkoptdb-safeTk.rb: ditto

Thu Sep 16 18:12:32 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI#start): should set REMOTE_USER
	  to request.user attribute.

	* lib/webrick/httpservlet/filehandler.rb
	  (WEBrick::HTTPServlet::FileHandler#initialize): should expand
	  the pathname of document root directory.

Thu Sep 16 15:49:28 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_intern): protect string argument from GC.
	  [ruby-core:03411]

Wed Sep 15 20:22:23 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkoptdb-safeTk.rb: fix a bug depend on the changes
	  of MultiTkIp

Tue Sep 14 23:54:11 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string was en-bugged by
	  the previous changes.

Tue Sep 14 23:45:44 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::TextFormatter.for):
	  Add Eric Hodel's simpleformatter.

Tue Sep 14 16:59:37 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix SEGV

	* ext/tk/lib/multi-tk.rb: improve safe-level handling of argument proc

	* ext/tk/sample/multi-ip_sample.rb: rename of old 'safe-tk.rb'

	* ext/tk/sample/safe-tk.rb: new sample script

Tue Sep 14 00:15:15 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/zlib/zlib.c: backported from HEAD.

Mon Sep 13 19:16:33 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c (blk_copy_prev): need frame_dup().  [ruby-dev:24103]

Mon Sep 13 16:23:27 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_master and new_slave accept
	  safe-level value argument

Mon Sep 13 10:20:45 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* object.c (nil_inspect): fix typo.

Mon Sep 13 01:03:02 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: improve control of preserv/release tcltkip

	* ext/tcltklib/tcltklib.c: store original 'exit' command

	* ext/tk/tkutil.c: fix(?) SEGV

Sun Sep 12 23:46:23 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* util.c (ruby_strdup): remove unnecessary code. (xmalloc never
	  returns NULL.)

	* util.c (ruby_getcwd): fix memory leak on failure.

Sun Sep 12 02:41:58 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: add TclTkIp#allow_ruby_exit? and
	  allow_ruby_exit=

	* ext/tk/lib/multi-tk.rb: ditto.

	* ext/tk/lib/remote-tk.rb: ditto.

	* ext/tcltklib/MANUAL.euc: ditto.

	* ext/tcltklib/MANUAL.eng: ditto.

	* ext/tcltklib/tcltklib.c: fix some reasons of SEGV

	* ext/tk/tkutil.c: ditto.

	* ext/tk/lib/multi-tk.rb: ditto.

	* ext/tk/lib/tk/timer.rb: ditto.

Sat Sep 11 16:09:46 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb: Fix up cross-file class merging.

Fri Sep 10 20:20:53 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tcltklib/tcltklib.c (lib_merge_tklist): fix suspicious
	  pointer conversion.

Fri Sep 10 02:43:54 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/kilmer.rb: James Buck's
	  patch for call-seq.

Thu Sep  9 13:58:56 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_init): change flag value for setting
	  'argv' and 'argv0' variable

	* ext/tk/lib/remote-tk.rb: follow changes of multi-tk.rb

Thu Sep  9 11:46:18 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_classes): Allow
	  spaces aroun parameter to define_method_under (James Buck)

Wed Sep  8 18:44:03 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_write): zero fill a gap if exsts.
	  [ruby-dev:24190]

Wed Sep  8 15:19:49 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_init): cannot create a IP at level 4

	* ext/tk/lib/multi-tk.rb: improve 'exit' operation, security check,
	  and error treatment

	* ext/tk/lib/multi-tk.rb: allow a trusted slave IP to create slave IPs

	* ext/tk/lib/tk/listbox.rb: add TkListbox#value, value=, clear,	and
	  erase

	* ext/tk/lib/tk/text.rb: add TkText#clear and erase

Tue Sep  7 15:17:49 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/socket.c (ruby_connect): break immediately if a
	  socket is non-blocking.  [ruby-talk:111654]

Mon Sep  6 11:08:50 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tk/lib/tk/menu.rb(TkOptionMenubutton#insert): call correct method

Mon Sep  6 11:00:47 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (dir_s_chdir): the patch to shut up false warning when
	  exception occurred within a block.  a patch was given from Johan
	  Holmberg <holmberg at iar.se>.  [ruby-core:03292]

Mon Sep  6 07:51:42 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (cvar_cbase): singletons should refer outer cvar scope.
	  [ruby-dev:24223]

	* eval.c (rb_load): should preserve previous ruby_wrapper value.
	  [ruby-dev:24226]

Sat Sep  4 01:14:57 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (cvar_cbase): class variables cause SEGV in
	  instance_eval() for fixnums and symbols. [ruby-dev:24213]

Fri Sep  3 17:47:58 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (make_struct): remove redefining constant when
	  conflict.  [ruby-dev:24210]

Fri Sep  3 11:31:44 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: Tk.after makes TkCore::INTERP.tk_cmd_tbl grow
	  [ruby-dev:24207]

Fri Sep  3 02:12:48 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix typo [ruby-talk:111266]

	* ext/tk/lib/tk/text.rb: fix typo

	* ext/tk/lib/multi-tk.rb: improve safe-level treatment on slave IPs

Fri Sep  3 01:54:20 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: already built-in libraries satisfy dependencies.
	  [ruby-dev:24028]

Thu Sep  2 11:36:20 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c (rb_obj_instance_eval): backported from HEAD.

Wed Sep  1 21:18:25 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tk/lib/tk/spinbox.rb: fix typo

Tue Aug 31 18:24:04 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/tk/tkutil.c (cbsubst_init): fix memory leak

	* ext/tk/tkutil.c (cbsubst_get_all_subst_keys): fix SEGV

Tue Aug 31 16:04:22 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_delete): when a tcltkip is deleted,
	  destroy its root widget

Tue Aug 31 12:30:36 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (del_root): fix SEGV

Mon Aug 30 23:11:06 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_driver.rb (and others): ri now merges documentation
	  if it finds the same class in multiple places.

Mon Aug 30 22:40:30 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: 'restart' method accepts arguments

Mon Aug 30 21:50:14 2004  Dave Thomas  <dave@pragprog.com>

	* object.c: Add RDoc for Module.included.

Mon Aug 30 15:10:46 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (GNU/k*BSD): fixed FTBFS on GNU/k*BSD. [ruby-dev:24051]

Mon Aug 30 11:29:35 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (CreateChild): strip trailing spaces. [ruby-dev:24143]
	  merge from HEAD.

Sun Aug 29 14:08:56 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: compile error on bcc32 [ruby-dev:24081]

	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string does not work

Sat Aug 28 23:04:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_and): protect parameters from GC.
	  [ruby-talk:110664]

Thu Aug 26 04:38:29 2004  Dave Thomas  <dave@pragprog.com>

	* eval.c (return_jump): Minor typo in error message. Now reads
	  "return can't jump across threads".

Tue Aug 24 17:30:00 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not
	  use a session id as a filename. (backported from HEAD)

	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.

	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use
	  Dir::tmpdir. (backported from HEAD)

Tue Aug 24 14:40:16 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): untaint
	  session id after check. (backported from HEAD)

Tue Aug 24 09:09:01 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): d2i
	  functions may replace the pointer indicated by the first argument.

	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.

	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.

Mon Aug 23 14:04:51 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_ssl_read):
	  - should return an empty string if specified length to read is 0.
	  - should check for pending data and wait for fd before reading.
	  - call underlying IO's sysread if SSL session is not started.
	  [ruby-dev:24072], [ruby-dev:24075]

	* ext/openssl/ossl_ssl.c (ossl_ssl_write):
	  - call underlying IO's syswrite if SSL session is not started.

	* ext/openssl/ossl_ssl.c (ossl_ssl_pending): new method
	  OpenSSL::SSL#pending.

	* ext/openssl/lib/openssl/buffering.rb: should not use select.

Mon Aug 23 12:40:56 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/resolv.rb (Config.default_config_hash): when multiple domains
	  are set, Win32::Resolv.get_resolv_info returns Array.

Sun Aug 22 01:15:31 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):
	  should call :ProxyContentHandler before finishing CONNECT.

Sat Aug 21 06:41:16 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/tcltklib/extconf.rb (find_tcl, find_tk): find stub library.

	* lib/mkmf.rb (arg_config, with_config): deal with '-' and '_'
	  uniformly.  [ruby-dev:24118]

Thu Aug 19 16:29:45 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: Fail to treat a hash value of 'font' option.

	* ext/tk/lib/tk.rb: bindinfo cannot return '%' substiturion infomation.

	* ext/tk/lib/menu.rb: typo bug.

Thu Aug 19 15:15:24 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* dir.c (free_dir): fix memory leak.  reported by yamamoto
	  madoka.

Thu Aug 19 11:00:00 2004  Akiyoshi, Masamichi  <masamichi.akiyoshi@hp.com>

	* dln.c (dln_load): Modify to call lib$find_image_symbol for VMS.
	* io.c (rb_io_fwrite): Use fputc() for VMS non-stream file.

Thu Aug 19 06:07:45 2004  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/token.c: re2c no longer compiled with bit vectors.  caused
	  problems for non-ascii characters. [ruby-core:03280]
	* ext/syck/implicit.c: ditto.
	* ext/syck/bytecode.c: ditto.

	* lib/yaml/baseemitter.rb: folding now handles double-quoted strings,
	  fixed problem with extra line feeds at end of folding, whitespace
	  opening scalar blocks.

	* lib/yaml/rubytypes.rb: subtelties in handling strings with
	  non-printable characters and odd whitespace patterns.

Wed Aug 18 23:41:33 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/net/protocol.rb (rbuf_fill): OpenSSL::SSL::SSLSocket has its own
	  buffer, select(2) might not work. [ruby-dev:24072]

Wed Aug 18 17:10:12 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/tcltklib/stubs.c (ruby_tcltk_stubs): need to call
	  Tcl_FindExecutable() for Tcl/Tk 8.4.

Wed Aug 18 12:52:55 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_obj_instance_eval): evaluates under special singleton
	  classes as for special constants.

Tue Aug 17 17:20:59 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_reopen): should clear allocated OpenFile.  pointed
	  out by Guy Decoux. [ruby-core:03288]

Tue Aug 17 01:36:32 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/usage.rb: Remove extra indent. Tidy 'ri' option
	  parsing so RDoc::usage plays better with OptionParser.

Sat Aug 14 13:09:10 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb: backport from CVS HEAD (rev1.44).

	* lib/fileutils.rb: cp_r should copy symlink itself, except cp_r
	  root.

	* lib/fileutils.rb: new option mv :force.

	* lib/fileutils.rb: new module FileUtils::DryRun.

Sat Aug 14 02:48:16 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/usage.rb: Added. Allows command line programs
	  to report usage using their initial RDoc comment.

Fri Aug 13 13:23:17 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_range_header):
	  fix regex for range-spec.

	* lib/webrick/httpservlet/filehandler.rb
	  (WEBrick::HTTPServlet::DefaultFileHandler#make_partial_content):
	  multipart/byteranges response was broken.

	* lib/webrick/httpservlet/erbhandler.rb
	  (WEBrick::HTTPServlet::ERBHandler#do_GET): should select media type
	  by suffix of script filename.

	* lib/xmlrpc/server.rb: refine example code.

Wed Aug 11 17:17:50 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (RPATHFLAG): stop setting RPATHFLAG on Interix.

Sun Aug  8 00:43:31 2004  why the lucky stiff  <why@ruby-lang.org>

	* lib/implicit.c: added sexagecimal float#base60.

	* ext/syck/rubyext.c (yaml_org_handler): ditto.

	* lib/token.c: indentation absolutely ignored when processing flow
	  collections.  plain scalars are trimmed if indentation follows in
	  an ambiguous flow collection.

Sat Aug  7 00:50:01 2004  Tanaka Akira  <akr@m17n.org>

	* ext/zlib/zlib.c: Zlib::GzipReader#read(0) returns "" instead of nil.

Tue Aug  3 13:49:20 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/namespace.rb: bug fix

	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: add Tk::TreeCtrl.loupe

Mon Aug  2 18:04:21 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/msgcat.rb (set_translation): bug fix (fail to set
	  trans_str to the same as src_str when trans_str is not given.)

Mon Aug  2 11:53:06 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): Fix infinite recursion
	  looking up some top level symbols (batsman)

Mon Aug  2 11:48:29 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Allow '.'s in
	  variable names to support SWIG generated files (Hans Fugal)

Sat Jul 31 17:40:16 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial,
	  ruby-calculate-indent, ruby-move-to-block, ruby-forward-sexp,
	  ruby-backward-sexp): keywords must match word-wise.

Sat Jul 31 05:47:37 2004  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml.rb (YAML::load_file, YAML::parse_file): added.

	* lib/yaml/rubytypes.rb: exceptions were using an older
	  YAML.object_maker. [ruby-core:03080]

	* ext/syck/token.c (sycklex_yaml_utf8): using newline_len to
	  handline CR-LFs.  "\000" was showing up on folded blocks which
	  stopped at EOF.

	* ext/syck/token.c: re2c compiled with bit vectors now.
	* ext/syck/implicit.c: ditto.
	* ext/syck/bytecode.c: ditto.

Fri Jul 30 16:10:54 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (lib_fromUTF8_core): raise ArgumentError when
	  the unknown encoding name is given.

	* ext/tcltklib/tcltklib.c (lib_toUTF8_core): ditto.

	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertfrom): bug fix.

	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertto): ditto.

Wed Jul 28 18:59:17 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS
	  and CGI_COOKIES.  they will no longer be used.

Wed Jul 28 01:04:44 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (run_final): wrong order of data. [ruby-dev:23984]

Tue Jul 27 07:05:04 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): copy on write for argument local variable
	  assignment.

	* eval.c (assign): ditto.

	* eval.c (rb_call0): update ruby_frame->argv with the default
	  value used for the optional arguments.

	* object.c (Init_Object): "===" calls rb_obj_equal() directly.
	  [ruby-list:39937]

Mon Jul 26 11:22:55 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape): should
	  escape space.

Sun Jul 25 11:05:21 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* win32/win32.{h,c} (rb_w32_{f,fd,fs}open): workaround for bcc32's
	  {f,fd,fs}open bug. set errno EMFILE and EBADF. [ruby-dev:23963]

Sat Jul 24 13:32:47 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* range.c (rb_range_beg_len): returns Qnil only when "beg" points
	  outside of a range.  No boundary check for "end".

Fri Jul 23 16:40:25 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (define_final): should not disclose NODE* to Ruby world.
	  [ruby-dev:23957]

Fri Jul 23 09:03:16 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (disconnected?): new method. (backported from HEAD)

Thu Jul 22 16:41:54 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi/session.rb (CGI::Session::FileStore#update): sets the
	 permission of the session data file to 0600.

	* lib/cgi/session/pstore.rb (CGI::Session::Pstore#initialize):
	  ditto.

Thu Jul 22 00:02:21 2004  Masahiro Kitajima  <katonbo@katontech.com>

	* process.c (rb_f_system): not need to call last_status_set() any
	  longer on _WIN32.

Tue Jul 20 09:15:17 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* test/fileutils/test_fileutils.rb: File.link raises EINVAL on BeOS.

Mon Jul 19 01:15:07 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpservlet/cgihandler.rb
	  (WEBrick::HTTPServlet::CGIhandler#do_GET): set SystemRoot environment
	  variable to CGI process on Windows native platforms. [ruby-dev:23936]

	* lib/webrick/httpservlet/cgihandler.rb
	  (WEBrick::HTTPServlet::CGIhandler#do_GET): use $?.exitstatus and
	  refine log message.

Sun Jul 18 16:14:29 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/msgcat.rb (TkMsgCatalog.callback): bug fix
	  ( wrong number of argument )

Sun Jul 18 08:13:58 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): remove extra sign digit.

Sun Jul 18 03:21:42 2004  Akinori MUSHA  <knu@iDaemons.org>

	* dir.c (range): use NULL instead of 0.

	* dir.c (range): get rid of a gcc 3.4 warning.

Sun Jul 18 03:12:11 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (receive_responses): return if a LOGOUT response
	  received. (backported from HEAD)
	* lib/net/imap.rb (send_string_data): wait command continuation
	  requests before sending octet data of literals. (backported from HEAD)

Sat Jul 17 23:54:59 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/variable.rb: TkVariable#ref returns a TkVariable object

Sat Jul 17 22:04:44 2004  akira yamada  <akira@ruby-lang.org>

	* lib/uri/ldap.rb: method hierarchical? should be in URI::LDAP.

Sat Jul 17 18:29:07 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (stmt): not to show same error messages twice.

Sat Jul 17 13:13:32 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/ruby-lex.rb (RubyLex::identify_string): %s string do not
	  process expression interpolation.  [ruby-talk:106691]

Sat Jul 17 05:26:27 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/diagram.rb: Incorporate Micheal Neuman's
	  client-side imagemao patch

Sat Jul 17 01:57:03 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (THREAD_ALLOC): th->thread should be initialized to NULL.
	  [ruby-talk:106657]  The solution was found by Guy Decoux.

Fri Jul 16 22:30:28 2004  Michael Neumann  <mneumann@ntecs.de>

	* file.c (rb_stat_dev_major): new methods File::Stat#dev_major and
	  #dev_minor. [ruby-core:03195]

Fri Jul 16 15:23:53 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (return_jump, break_jump): raise unexpceted local jump
	  exception directly.  [ruby-dev:23740]

	* lib/base64.rb (Deprecated): super in bound method calls original
	  name method in stable version.  [ruby-dev:23916]

Fri Jul 16 11:31:49 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/test/unit/ui/{fox,gtk,gtk2}/testrunner.rb: remove
	  garbage (patch from akira yamada) [ruby-dev:23911]

Fri Jul 16 11:20:00 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): fix output of NaN, Inf and -Inf with
	  "%f" or etc on MSVCRT platforms. (backported from HEAD)

Fri Jul 16 11:17:38 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (exit_initialize): use EXIT_SUCCESS instead of 0.
	  [ruby-dev:23913]

	* error.c (exit_success_p): new method SystemExit#success?.
	  [ruby-dev:23912]

	* error.c (syserr_initialize): initialization for subclasses.
	  [ruby-dev:23912]

Thu Jul 15 23:53:38 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser#warn, OptionParser#abort): Exception
	  no longer has to_str method.

Thu Jul 15 22:59:48 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* ext/readline/extconf.rb: added dir_config for curses, ncurses,
	  termcap. (backported from HEAD)

Thu Jul 15 20:29:15 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* class.c, error.c, eval.c, intern.h, object.c, variable.c:
	  do not set path if it is a singleton class.  [ruby-dev:22588]
	  (backport from 1.9)

Thu Jul 15 10:15:04 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/, ext/tcltklib/: bug fix

	* ext/tk/lib/tk.rb: better operation for SIGINT when processing
	  callbacks.
	* ext/tk/lib/tk/msgcat.rb: ditto.
	* ext/tk/lib/tk/variable.rb: ditto.
	* ext/tk/lib/tk/timer.rb: ditto.

	* ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd
	  to define validatecommand methods easier

	* ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext
	  classes

	* ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type
	  check for items (e.g. canvas items; depends on the class) to
	  avoid some troubles on Tk extension widget class definition.

	* ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support

	* ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable

Wed Jul 14 18:08:37 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1cons_to_der): fix type of
	  argument. [ruby-dev:23891]

	* test/openssl/test_x509store.rb: prune tests for CRL checking
	  unless X509::V_FLAG_CRL_CHECK is defined.

Wed Jul 14 12:29:07 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* util.c (ruby_strtod): should not convert string in the form of
	  "-I.FE-X" which both "I" and "F" are ommitted. [ruby-dev:23883]

	* test/ruby/test_float.rb (test_strtod): add test for bug fix.

Wed Jul 14 00:31:15 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* array.c: rdoc patch. merged patch from Johan Holmberg
	  <holmberg@iar.se> [ruby-core:3170]

Tue Jul 13 19:39:12 2004  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic#merge_path):
	  "URI('http://www.example.com/foo/..') + './'" should return
	  "URI('http://www.example.com/')".  [ruby-list:39838]
	  "URI('http://www.example.com/') + './foo/bar/..'" should return
	  "URI('http://www.example.com/foo/')".  [ruby-list:39844]

	* test/uri/test_generic.rb (TestGeneric#test_merge): added tests.

Tue Jul 13 15:51:45 2004  Akinori MUSHA  <knu@iDaemons.org>

	* lib/mkmf.rb (init_mkmf): Do not add $(libdir) to $LIBPATH in
	   extmk mode.

	* lib/mkmf.rb (dir_config): Prepend a new library path instead of
	  appending so it is tried first.

Tue Jul 13 00:50:48 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb: Support call-seq: for Ruby files.

Mon Jul 12 21:20:36 2004  Dave Thomas  <dave@pragprog.com>

	* html_generator.rb: Support hyperlinks of the form {any text}[xxx]
	  as well as stuff[xxx]

Sat Jul 10 09:30:24 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/marshal/test_struct.rb: use qualified build-tin class name
	  (::Struct) to avoid name crash.

Sat Jul 10 04:21:56 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: better operation for SIGINT when processing
	  callbacks.
	* ext/tk/lib/tk/msgcat.rb: ditto.
	* ext/tk/lib/tk/variable.rb: ditto.
	* ext/tk/lib/tk/timer.rb: ditto.

	* ext/tk/lib/tk/validation.rb (__def_validcmd):  add a module
	  function of Tk::ValidateConfigure to define validatecommand
	  methods easier

Fri Jul  9 22:36:36 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* array.c, enum.c, pack.c: rdoc patch from Johan Holmberg
	  <holmberg@iar.se> [ruby-core:3132] [ruby-core:3136]

	* numeric.c: rdoc patch.

Fri Jul  9 19:26:39 2004  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::HTTPS#proxy_open): raise ArgumentError to
	  notice https is not supported.

Fri Jul  9 14:28:54 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_raise): accept third argument as well as
	  Kernel#raise, and evaluate the arguments to create an exception in
	  the caller's context.  [ruby-talk:105507]

Fri Jul  9 01:47:08 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib : bug fix
	* ext/tk/lib/tkextlib/itcl : add [incr Tcl] support
	* ext/tk/lib/tkextlib/itk  : add [incr Tk] support
	* ext/tk/lib/tkextlib/iwidgets : midway point of [incr Widgets] support
	* ext/tk/sample/tkextlib/iwidgets : very simple examples of
	  [incr Widgets]

Thu Jul  8 22:52:19 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/{rss,parser,0.9,1.0,2.0}.rb: supported RSS 0.9x/2.0
	  validation and validation which disregard order of elements.
	* test/rss/test_parser.rb: added tests for RSS 0.9x/2.0
	  validation.
	* test/rss/{test_trackback,rss-testcase}.rb: fixed no good method
	  name.

Thu Jul  8 00:05:23 2004  akira yamada  <akira@ruby-lang.org>

	* lib/tempfile.rb (Tempfile::initialize): got out code of
	  generating tmpname.  [ruby-dev:23832][ruby-dev:23837]

Wed Jul  7 15:53:14 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c (rb_str_match): raise TypeError when both arguments are
	  strings. [ruby-dev:22869] (backported from HEAD)

	* string.c (rb_str_match2): removed.

	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
	  wince/Makefile.sub (string.c): now not depend on version.h.

Wed Jul  7 00:48:34 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/tk/lib/tkextlib/tktrans.rb,
	  ext/tk/lib/tkextlib/treectrl.rb: fix syntax errors.

Tue Jul  6 18:38:45 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib : improve framework of developping Tcl/Tk extension
	  wrappers

Mon Jul  5 23:56:42 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/{trackback,syndication,dublincore,content}.rb: worked
	  with ruby 1.6 again.

	* test/rss/rss-assertions.rb: ditto.

Mon Jul  5 22:54:39 2004  Tanaka Akira  <akr@m17n.org>

	* lib/uri/common.rb (Kernel#URI): new global method for parsing URIs.

Mon Jul  5 09:02:52 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_yield, rb_f_catch): 4th argument to rb_yield_0()
	  is a set of bit flags.  [ruby-dev:23859]

Mon Jul  5 01:27:32 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* lib/drb/drb.rb(DRbConn self.open): If socket pool is full, close
	  the socket whose last-access-time is oldest. (and add new one)
	  [ruby-dev:23860]

Sun Jul  4 12:24:50 2004  Kouhei Sutou  <kou@cozmixng.org>

	* lib/rss/rss.rb: added copyright header.

Sun Jul  4 00:24:40 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* added files
	  * lib/soap/attachment.rb
	  * lib/soap/header
	  * lib/soap/mimemessage.rb
	  * lib/soap/rpc/httpserver.rb
	  * lib/wsdl/soap/cgiStubCreator.rb
	  * lib/wsdl/soap/classDefCreator.rb
	  * lib/wsdl/soap/classDefCreatorSupport.rb
	  * lib/wsdl/soap/clientSkeltonCreator.rb
	  * lib/wsdl/soap/driverCreator.rb
	  * lib/wsdl/soap/mappingRegistryCreator.rb
	  * lib/wsdl/soap/methodDefCreator.rb
	  * lib/wsdl/soap/servantSkeltonCreator.rb
	  * lib/wsdl/soap/standaloneServerStubCreator.rb
	  * lib/wsdl/xmlSchema/enumeration.rb
	  * lib/wsdl/xmlSchema/simpleRestriction.rb
	  * lib/wsdl/xmlSchema/simpleType.rb
	  * lib/xsd/codegen
	  * lib/xsd/codegen.rb
	  * sample/soap/authheader
	  * sample/soap/raa2.4
	  * sample/soap/ssl
	  * sample/soap/swa
	  * sample/soap/whois.rb
	  * sample/soap/calc/samplehttpd.conf
	  * sample/soap/exchange/samplehttpd.conf
	  * sample/soap/sampleStruct/samplehttpd.conf
	  * sample/wsdl/raa2.4
	  * sample/wsdl/googleSearch/samplehttpd.conf
	  * test/openssl/_test_ssl.rb
	  * test/soap/header
	  * test/soap/ssl
	  * test/soap/struct
	  * test/soap/swa
	  * test/soap/wsdlDriver
	  * test/wsdl/multiplefault.wsdl
	  * test/wsdl/simpletype
	  * test/wsdl/test_multiplefault.rb

	* modified files
	  * lib/soap/baseData.rb
	  * lib/soap/element.rb
	  * lib/soap/generator.rb
	  * lib/soap/marshal.rb
	  * lib/soap/netHttpClient.rb
	  * lib/soap/parser.rb
	  * lib/soap/processor.rb
	  * lib/soap/property.rb
	  * lib/soap/soap.rb
	  * lib/soap/streamHandler.rb
	  * lib/soap/wsdlDriver.rb
	  * lib/soap/encodingstyle/handler.rb
	  * lib/soap/encodingstyle/literalHandler.rb
	  * lib/soap/encodingstyle/soapHandler.rb
	  * lib/soap/mapping/factory.rb
	  * lib/soap/mapping/mapping.rb
	  * lib/soap/mapping/registry.rb
	  * lib/soap/mapping/rubytypeFactory.rb
	  * lib/soap/mapping/wsdlRegistry.rb
	  * lib/soap/rpc/cgistub.rb
	  * lib/soap/rpc/driver.rb
	  * lib/soap/rpc/element.rb
	  * lib/soap/rpc/proxy.rb
	  * lib/soap/rpc/router.rb
	  * lib/soap/rpc/soaplet.rb
	  * lib/soap/rpc/standaloneServer.rb
	  * lib/wsdl/data.rb
	  * lib/wsdl/definitions.rb
	  * lib/wsdl/operation.rb
	  * lib/wsdl/parser.rb
	  * lib/wsdl/soap/definitions.rb
	  * lib/wsdl/xmlSchema/complexContent.rb
	  * lib/wsdl/xmlSchema/complexType.rb
	  * lib/wsdl/xmlSchema/data.rb
	  * lib/wsdl/xmlSchema/parser.rb
	  * lib/wsdl/xmlSchema/schema.rb
	  * lib/xsd/datatypes.rb
	  * lib/xsd/qname.rb
	  * sample/soap/calc/httpd.rb
	  * sample/soap/exchange/httpd.rb
	  * sample/soap/sampleStruct/httpd.rb
	  * sample/soap/sampleStruct/server.rb
	  * sample/wsdl/amazon/AmazonSearch.rb
	  * sample/wsdl/amazon/AmazonSearchDriver.rb
	  * sample/wsdl/googleSearch/httpd.rb
	  * test/soap/test_basetype.rb
	  * test/soap/test_property.rb
	  * test/soap/test_streamhandler.rb
	  * test/soap/calc/test_calc.rb
	  * test/soap/calc/test_calc2.rb
	  * test/soap/calc/test_calc_cgi.rb
	  * test/soap/helloworld/test_helloworld.rb
	  * test/wsdl/test_emptycomplextype.rb
	  * test/wsdl/axisArray/test_axisarray.rb
	  * test/wsdl/datetime/test_datetime.rb
	  * test/wsdl/raa/test_raa.rb
	  * test/xsd/test_xmlschemaparser.rb
	  * test/xsd/test_xsd.rb

	* summary
	  * add SOAP Header mustUnderstand support.

	  * add HTTP client SSL configuration and Cookies support (works
	    completely with http-access2).

	  * add header handler for handling sending/receiving SOAP Header.

	  * map Ruby's anonymous Struct to common SOAP Struct in SOAP Object
	    Model.  it caused error.

	  * add WSDL simpleType support to restrict lexical value space.

	  * add SOAP with Attachment support.

Sat Jul  3 17:19:44 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/tk/lib/tkextlib/tkDND.rb: fix syntax error.

Thu Jul  1 23:15:29 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/pstore.rb (transaction): safer backup scheme.  [ruby-list:39102]

	* lib/pstore.rb (commit_new): use FileUtils.copy_stream for Cygwin.
	  [ruby-dev:23157]

	* lib/pstore.rb (transaction): allow overriding dump and load.
	  [ruby-dev:23567]

	* lib/pstore.rb (PStore#transaction): get rid of opening in write mode
	  when read only transaction.  [ruby-dev:23842]

	* lib/yaml/store.rb: follow lib/pstore.rb's change.

Thu Jul  1 18:36:08 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tcltklib : bug fix

	* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries

Thu Jul  1 11:59:45 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: check for EVP_CIPHER_CTX_copy, ENGINE_add,
	  EVP_CIPHER_CTX_set_padding, EVP_CipherFinal_ex, EVP_CipherInit_ex,
	  EVP_DigestFinal_ex and EVP_DigestInit_ex.

	* ext/openssl/openssl_missing.c (EVP_CIPHER_CTX_copy): new function.

	* ext/openssl/openssl_missing.h (EVP_DigestInit_ex, EVP_DigestFinal_ex,
	  EVP_CipherInit_ex, EVP_CipherFinal_ex, HMAC_Init_ex): new macro for
	  OpenSSL 0.9.6.

	* ext/openssl/ossl_cipher.c (ossl_cipher_encrypt, ossl_cipher_decrypt):
	  re-implemnt (the arguments for this method is ).

	* ext/openssl/ossl_cipher.c (ossl_cipher_pkcs5_keyivgen): new method
	  OpenSSL::Cipher::Cipher#pkcs5_keyivgen. it calls EVP_BytesToKey().

	* ext/openssl/ossl_cipher.c (ossl_cipher_alloc, ossl_cipher_initialize,
	  ossl_cipher_copy, ossl_cipher_reset ossl_cipher_final,
	  ossl_cipher_set_key, ossl_cipher_set_iv): replace all EVP_CipherInit
	  and EVP_CipherFinal into EVP_CipherInit_ex and EVP_CipherFinal_ex.
	  and EVP_CIPHER_CTX_init should only be called once.

	* ext/openssl/ossl_cipher.c (ossl_cipher_set_key_length): new method
	  OpenSSL::Cipher::Cipher#key_len=.

	* ext/openssl/ossl_cipher.c (ossl_cipher_init_deprecated): new
	  finction; print warning for Cipher#<<.

	* ext/openssl/ossl_digest.c: replace all EVP_DigestInit and
	  EVP_DigestFinal into EVP_DigestInit_ex and EVP_DigestFinal_ex.
	  and EVP_MD_CTX_init should only be called once.

	* ext/openssl/ossl_digest.c (digest_final): should call
	  EVP_MD_CTX_cleanup to avoid memory leak.

	* ext/openssl/ossl_hmac.c (ossl_hmac_initialize): repalce HMAC_init
	  into HMAC_init_ex. and HMAC_CTX_init is moved to ossl_hmac_alloc.

	* ext/openssl/ossl_hmac.c (hmac_final): should call
	  HMAC_CTX_cleanup to avoid memory leak.

	* test/openssl/test_cipher.rb, test/openssl/test_digest.rb,
	  test/openssl/test_hmac.rb: new file.

Thu Jul  1 04:08:30 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_i2d_ASN1_TYPE, ossl_ASN1_TYPE_free):
	  workaround for the versions earlier than OpenSSL-0.9.7.

Thu Jul  1 03:33:55 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): should create
	  empty pkey object if no argument is passed. [ruby-talk:103328]

	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.

	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize): ditto.

	* ext/openssl/ossl_pkey_dh.c: add new methods: OpenSSL::PKey::DH#p,
	  OpenSSL::PKey::DH#p=, OpenSSL::PKey::DH#g, OpenSSL::PKey::DH#g=,
	  OpenSSL::PKey::DH#pub_key, OpenSSL::PKey::DH#pub_key=,
	  OpenSSL::PKey::DH#priv_key and OpenSSL::PKey::DH#priv_key=.

	* ext/openssl/ossl_pkey_dsa.c: add new methods: OpenSSL::PKey::DSA#p,
	  OpenSSL::PKey::DSA#p=, OpenSSL::PKey::DSA#q, OpenSSL::PKey::DSA#q=,
	  OpenSSL::PKey::DSA#g, OpenSSL::PKey::DSA#g=,
	  OpenSSL::PKey::DSA#pub_key, OpenSSL::PKey::DSA#pub_key=,
	  OpenSSL::PKey::DSA#priv_key and OpenSSL::PKey::DSA#priv_key=.

Thu Jul  1 03:16:09 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_ssl_read): take optional second argument
	  to specify a string to be written.

	* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#read):
	  take optional second argument to specify a string to be written.

	* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#gets):
	  refine regexp for end-of-line.

	* ext/opnessl/lib/openssl/ssl.rb
	  (OpenSSL::SSL::SocketForwarder#listen): fix typo.

Wed Jun 30 11:38:51 2004  Mikael Brockman  <phubuh@phubuh.org>

	* parse.y (primary): should not be NULL.  [ruby-core:03098]

Wed Jun 30 02:53:24 2004  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/rubyext.c (syck_emitter_new): set buffer after
	  Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]

Tue Jun 29 10:31:19 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.

	* gc.c (define_final, run_final): preserve and restore safe level for
	  finalizers.  [ruby-core:03058]

	* signal.c (signal_exec, rb_trap_exit, trap): preserve and restore
	  safe level for signal handlers.  [ruby-dev:23829]

Mon Jun 28 14:57:56 2004  Jeff Mitchell  <quixoticsycophant@yahoo.com>

	* configure.in, lib/mkmf.rb (LIBPATHFLAG): use double quotes due to
	  DOSISH compilers.  [ruby-core:03107]

Mon Jun 28 00:30:19 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* sample/drb/*.rb: using 'DRb.thread.join' instead of 'gets'

Sun Jun 27 22:39:51 2004  Kouhei Sutou  <kou@cozmixng.org>

	* sample/rss/tdiary_plugin/rss-recent.rb: supported Hiki.

Sun Jun 27 12:19:46 2004  Kouhei Sutou  <kou@cozmixng.org>

	* {lib,sample,test}/rss: added RSS Parser. [ruby-dev:23780]

Sat Jun 26 11:07:30 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (aix): -b must come at the start of the command line,
	  and -e must not appear while testing libraries.  [ruby-talk:104501]

	* lib/mkmf.rb (dir_config): quote directory names if necessary.
	  [ruby-talk:104505]

Fri Jun 25 15:33:19 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/extconf.rb: check stricter.  [ruby-talk:104501]

	* ext/iconv/extconf.rb: include iconv.h for libiconv.  [ruby-dev:22715]

Fri Jun 25 08:31:29 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_thread_atfork): remove "fork terminates thread"
	  warning.  [ruby-dev:23768]

	* object.c (rb_obj_clone): backport FL_FINALIZE patch from 1.9.
	  [ruby-core:02786][ruby-core:03067]

	* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()
	  should give us packed address, not struct sockaddr.
	  [ruby-core:03053]

Fri Jun 25 02:04:23 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* {bcc32,win32,wince}/setup.mak: remove RUBY_EXTERN lines when
	  including version.h. [ruby-talk:104456] (backported from HEAD)

Thu Jun 24 14:23:29 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_fread): return already read data when system call is
	  interrupted.  [ruby-talk:97206]

Thu Jun 24 01:32:43 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* version.h: added declarations of ruby_version,
	  ruby_release_date, ruby_platform.
	  (backported from HEAD)

Wed Jun 23 22:23:37 2004  Dave Thomas  <dave@pragprog.com>

	* ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem
	  with OS X not returning 'from' parameter to recvfrom for
	  connection-oriented sockets.

Wed Jun 23 01:45:27 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_quotation):
	  Fix problem with the 'r' being dropped from %r{xxx}

Wed Jun 23 00:20:20 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/win32ole/win32ole.c (ole_hresult2msg): remove trailing
	  CRs and LFs. (doesn't depend on CR+LF) [ruby-dev:23749]

Wed Jun 23 00:00:25 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_initialize): should check fcntl result.  [ruby-dev:23742]

Tue Jun 22 21:11:36 2004  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (OLE_FREE): should not call CoFreeUnuse-
	  dLibraries().

	* ext/win32ole/win32ole.c (ole_event_free): ditto.

	* ext/win32ole/win32ole.c (ole_hresult2msg): truncate error message
	  before CR.

Tue Jun 22 16:47:42 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/ftp.rb (MDTM_REGEXP): fix for demon's ftp server.
	  Thanks, Rutger Nijlunsing.

Mon Jun 21 10:19:23 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (rb_w32_opendir): use FindFirstFile()/FindNextFile()/
	  FindClose() instead of _findfirst()/_findnext()/_findclose().
	  merge from HEAD.

Sat Jun 19 13:24:15 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (method_call): allow changing $SAFE.  [ruby-dev:23713]

Fri Jun 18 23:12:22 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_save_safe_level, rb_set_safe_level, safe_setter): limit
	  safe level.

Wed Jun 16 23:05:57 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* object.c (rb_mod_freeze): prepare string representation before
	  freezing. [ruby-talk:103646]

Wed Jun 16 16:04:40 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* object.c (rb_mod_le): singleton class inherits Class rather than its
	  object's class.  [ruby-dev:23690]

Wed Jun 16 16:01:17 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (stack_grow_direction): memoize the direction.

	* gc.c (Init_stack): should always move to end of VALUE.

Tue Jun 15 12:10:04 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: bug fix (TkWindow#grab)

Mon Jun 14 18:23:27 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/remote-tk.rb: bug fix

Sun Jun 13 00:23:04 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) support

	* ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and
	  eliminate warning about instance variable access

	* ext/tk/lib/tk/menubar.rb: improve supported menu_spec

	* ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library

	* ext/tk/lib/tk/root.rb: add menu_spec support

	* ext/tk/lib/tk/text.rb: bug fix

	* ext/tk/lib/tk/toplevel.rb: add menu_spec support

	* ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage

Sat Jun 12 11:15:53 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (target_os): strip -gnu suffix on Linux.

Fri Jun 11 17:08:21 2004  Akinori MUSHA  <knu@iDaemons.org>

	* config.guess: Restore a wrongly removed hyphen.

Fri Jun 11 14:30:08 2004  Akinori MUSHA  <knu@iDaemons.org>

	* config.guess: Attempt to avoid system name change on
	  Darwin platforms also.

Fri Jun 11 14:22:45 2004  Akinori MUSHA  <knu@iDaemons.org>

	* config.guess, config.sub: Attempt to avoid system name change on
	  Linux platforms.  We have been using "linux" instead of
	  "linux-gnu" on this branch.

Thu Jun 10 19:19:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/sdbm/init.c (fsdbm_store): sdbm should use StringValue().
	  [ruby-talk:103062]

Wed Jun  9 18:04:14 2004  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic::merge,
	  URI::Generic::route_from): accepts non-hierarchical URI.
	  [ruby-dev:23631]

	* test/uri/test_generic.rb (TestGeneric::test_route,
	  TestGeneric::test_merge): added tests for above changes.

Wed Jun  9 17:39:37 2004  Akinori MUSHA  <knu@iDaemons.org>

	* config.guess, config.sub: Update to a more recent version as of
	  2004-01-20.

	* configure.in: Add support for DragonFly BSD.

Wed Jun  2 20:16:03 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (str_new4): should share shared instance if it already
	  exists.  [ruby-dev:23665]

Wed Jun  2 12:41:53 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_gets_m): set lastline ($_) even when read line is
	  nil.  [ruby-dev:23663]

Fri May 28 11:20:31 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): bad influence on frame node.

	* eval.c (eval): reverted wrongly removed condition.  [ruby-dev:23638]

Thu May 27 23:15:18 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb: leading 0 padding of timestamp usec part.

	* lib/csv.rb (CSV.parse): [CAUTION] behavior changed.  in the past,
	  CSV.parse accepts a filename to be read-opened (it was just a
	  shortcut of CSV.open(filename, 'r')).  now CSV.parse accepts a
	  string or a stream to be parsed e.g.
	  CSV.parse("1,2\n3,r") #=> [['1', '2'], ['3', '4']]

	* lib/csv.rb: CSV::Row and CSV::Cell are deprecated.  these classes
	  are removed in the future.  in the new csv.rb, row is represented
	  as just an Array.  since CSV::Row was a subclass of Array, it won't
	  hurt almost all programs except one which depended CSV::Row#match.
	  and a cell is represented as just a String or nil(NULL).  this
	  change will cause widespread destruction.

	      CSV.open("foo.csv", "r") do |row|
		row.each do |cell|
		  if cell.is_null       # using Cell#is_null
		    p "(NULL)"
		  else
		    p cell.data         # using Cell#data
		  end
		end
	      end

	    must be just;

	      CSV.open("foo.csv", "r") do |row|
		row.each do |cell|
		  if cell.nil?
		    p "(NULL)"
		  else
		    p cell
		  end
		end
	      end

	* lib/csv.rb: [CAUTION] record separator(CR, LF, CR+LF) behavior
	  change.  CSV.open, CSV.parse, and CSV,generate now do not force
	  opened file binmode.  formerly it set binmode explicitly.

	  with CSV.open, binmode of opened file depends the given mode
	  parameter "r", "w", "rb", and "wb".  CSV.parse and CSV.generate open
	  file with "r" and "w".

	  setting mode properly is user's responsibility now.

	* lib/csv.rb: accepts String as a fs (field separator/column separator)
	  and rs (record separator/row separator)

	* lib/csv.rb (CSV.read, CSV.readlines): added.  works as IO.read and
	  IO.readlines in CSV format.

	* lib/csv.rb: added CSV.foreach(path, rs = nil, &block).  CSV.foreach
	  now does not handle "| cmd" as a path different from IO.foreach.
	  needed?

	* test/csv/test_csv.rb: updated.

	* test/ruby/test_float.rb: added test_strtod to test Float("0").

Thu May 27 21:37:50 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#initialize): refine pathname initialization
	  by pathname.

Thu May 27 20:22:05 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* io.c (rb_io_fwrite): check all case errno != 0 [ruby-dev:23648]

Thu May 27 14:53:13 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* io.c (rb_io_fwrite): workaround for bcc32's fwrite bug.
	  add errno checking.  [ruby-dev:23627]

Wed May 26 14:19:42 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval, eval): make line number consistent on eval with
	  Proc.  [ruby-talk:101253]

Wed May 26 13:59:17 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::skip_for_variable): Allow for
	  'do' after for statement

Wed May 26 13:56:03 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (Generators::MarkUp::style_url): Fix
	  relative path to code CSS file

Wed May 26 13:14:52 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_init_copy): copy also positions.  [ruby-talk:100910]

Wed May 26 00:00:00 2004  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/syck.c (syck_new_parser): clear parser on init.
	  thanks, ts. [ruby-core:02931]

	* ext/syck/token.c (sycklex_yaml_utf8): buffer underflow.
	  thanks, ts. [ruby-core:02929]

	* lib/yaml/baseemitter.rb (indent_text): simpler flow block code.

	* lib/yaml.rb: added rdoc to beginning of lib.

Mon May 24 10:46:26 2004  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/rdoc/generators/template/html/html.rb: SYSTEM identifiers
	  must be absolute URIs

Sat May 22 12:00:04 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* MANIFEST: add new encodings in rexml.

	* ext/tk/MANIFEST: add recent files.

Sat May 22 05:37:11 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/remote-tk.rb: (NEW library) controll Tk interpreters
	  on the other processes by Tcl/Tk's 'send' command

Fri May 21 09:22:05 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_parameters):
	  Add ()'s around parameters that don't have them

Thu May 20 17:02:03 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (check_sizeof): define result size.  [ruby-core:02911]

	* lib/mkmf.rb (create_header): macro name should not include equal
	  sign.

Thu May 20 15:59:50 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* ext/socket/socket.c: fix SEGV. [ruby-dev:23550]

Thu May 20 14:35:52 2004  Tanaka Akira  <akr@m17n.org>

	* ext/socket/socket.c: check SCM_RIGHTS macro addition to
	  the msg_control field to test existence of file descriptor passing
	  by msg_control.

Thu May 20 12:38:06 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (flo_eq): always check if operands are NaN.
	  [ruby-list:39685]

Thu May 20 12:34:39 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility):
	  At Ryan Davis' suggestion, honor visibility modifers if guarded by a
	  statement modifier

Thu May 20 12:22:13 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (have_type): do not check pointer to incomplete type,
	  which always get compiled.  [ruby-list:39683]

Wed May 19 11:09:00 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: change permition of TkObject#tk_send from
	  private to public

Tue May 18 14:00:46 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* node.h (NEW_DSTR): adjust list length.

	* parse.y (literal_concat): ditto.

Mon May 17 16:14:25 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* numeric.c (flo_to_s): it's preferable that "p 0.0" outputs "0.0"
	  instead of "0.0e+00". [ruby-dev:23480]

	* numeric.c (flo_to_s): it's preferable that "p 0.00000000000000000001"
	  outputs "1.0e-20" instead of "9.999999999999999e-21". (the precision
	  is considered, but there is assumption DBL_DIG == 15 in current
	  implementation)

Mon May 17 10:13:33 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (setup_domain_and_type): honor duck typing.
	  [ruby-dev:23522]

	* ext/socket/socket.c (sock_s_getnameinfo): ditto.

Mon May 17 01:15:23 2004  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml.rb: removed fallback to pure Ruby parser.

	* lib/yaml/baseemitter.rb (indent_text): was forcing a mod value
	  of zero at times, which kept some blocks from getting indentation.

	* lib/yaml/baseemitter.rb (node_text): rewriting folded scalars.

	* ext/syck/syck.h: reports style of scalars now, be they plain, block
	  single-, or double-quoted.

	* ext/syck/syck.c: ditto.

	* ext/syck/gram.c: ditto.

	* ext/syck/node.c: ditto.

	* ext/syck/token.c: ditto.

	* ext/syck/rubyext.c (yaml_org_handler): symbols loaded only
	  if scalar style is plain.

	* ext/syck/rubyext.c (yaml_org_handler): some empty strings were
	  loaded as symbols.

	* test/yaml/test_yaml.rb (test_perl_regexp): updated test to
	  match new regexp serialization.

Mon May 17 00:03:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/drb/drb.rb: Cosmetic documentation changes.

Sun May 16 22:36:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/test/unit.rb: Removed :nodoc: directive (it prevented effective
	  RDoc operation), and added file-level comment.

Sun May 16 20:55:49 2004  Tanaka Akira  <akr@m17n.org>

	* ext/dbm/dbm.c (fdbm_initialize): accept optional 3rd argument to
	  specify an open flag.
	  (Init_dbm): define open flags: DBM::READER, DBM::WRITER, DBM::WRCREAT
	  and DBM::NEWDB.

Sun May 16 13:10:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/test/unit/**/*.rb: Removed :nodoc: directives (many were
	  generating warnings, many were on private methods).

Sat May 15 01:41:34 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): forgot to restore $SAFE value before evaluating
	  compiled node.  [ruby-core:02872]

Sat May 15 01:33:12 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* range.c (range_each_func): terminates loop if generating value
	  is same to @end.  [ruby-talk:100269]

Fri May 14 22:08:38 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_new4): should not reuse frozen shared string if
	  the original is not an instance of String. [ruby-talk:100193]

Fri May 14 18:39:25 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/canvas.rb: improve coords support for canvas items.
	  Now, supports all of the followings.
	    TkcLine.new(c, 0, 0, 100, 100, :fill=>'red')
	    TkcLine.new(c, [0, 0, 100, 100], :fill=>'red')
	    TkcLine.new(c, [0, 0], [100, 100], :fill=>'red')
	    TkcLine.new(c, [[0, 0], [100, 100]], :fill=>'red')
	    TkcLine.new(c, :coords=>[0, 0, 100, 100], :fill=>'red')
	    TkcLine.new(c, :coords=>[[0, 0], [100, 100]], :fill=>'red')

Fri May 14 12:11:43 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* util.c (ruby_strtod): strtod("0", &end); => end should point '\0'.
	 [ruby-dev:23498]

Thu May 13 15:47:30 2004  akira yamada  <akira@ruby-lang.org>

	* lib/net/telnet.rb (Net::Telnet::login): "options" can specify
	  regexps for login prompt and/or password prompt.

Thu May 13 14:23:45 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* hash.c (delete_if_i): use st_delete_safe() (via
	  rb_hash_delete()) instead of returning ST_DELETE.
	  backport from HEAD.  [ruby-dev:23487]

Thu May 13 13:01:30 2004  akira yamada  <akira@ruby-lang.org>

	* lib/uri/mailto.rb (URI::MailTo::to_s): should include fragment.

Thu May 13 11:04:08 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* pack.c (pack_pack): always add with null for 'Z'.

	* pack.c (pack_unpack): terminated by null for 'Z'.  [ruby-talk:98281]

Wed May 12 19:59:43 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (have_type, check_sizeof): replace unusable characters.
	  [ruby-talk:99788]

Wed May 12 17:41:42 2004  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb (Resolv::DNS::Config): make it configurable without
	  external file such as /etc/resolv.conf.

Wed May 12 14:37:27 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509name.c: attribute value of DC (short name of
	  domainComponent) should be IA5String.

Wed May 12 13:20:19 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk/composite.rb: improve configure methods (based on
	  the proposal of [ruby-talk:99671]).

Wed May 12 11:51:08 2004  Dave Thomas  <dave@pragprog.com>

	* class.c (rb_obj_singleton_methods): fix rdoc

Mon May 10 21:44:42 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Change scheme for
	  looking up symbols in  HTML generator.

Mon May 10 16:45:21 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): warning during eval should not cause deadlock.
	  [ruby-talk:98651]

	* eval.c (rb_eval): raise TypeError exception for superclass
	  mismatch.  [ruby-list:39567]

Mon May 10 12:11:37 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Hack to search parents
	  for unqualified constant names.

Mon May 10 12:11:37 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Hack to search parents
	  for unqualified constant names.

Sun May  9 22:37:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/net/ftp.rb: improved documentation
	* lib/net/imap.rb: ditto
	* lib/net/pop.rb: ditto
	* lib/net/smtp.rb: ditto
	* lib/net/telnet.rb: ditto

Fri May  7 21:50:21 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_include): Allow
	  multiple arguments to 'include'

Fri May  7 21:31:56 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_list): Array() breaks pathes including "\n".
	  [ruby-core:02843]

Fri May  7 11:25:53 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* util.c (ruby_strtod): "0.0000000000000000001" should be converted
	  to 1.0e-19 instead of 0.0. (leading zeros aren't significant digits)
	  [ruby-talk:99318] [ruby-dev:23465]

Fri May  7 10:00:05 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/tkutil.c (get_eval_string_core): bug fix. [ruby-dev:23466]

Thu May  6 22:13:17 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* ext/socket/socket.c (ippaddr): use NUMERICHOST if can not resolve
	  hostname.

Thu May  6 14:22:29 2004  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml/rubytypes.rb (to_yaml): added instance variable handling
	  for Ranges, Strings, Structs, Regexps.

	* lib/yaml/rubytypes.rb (to_yaml_fold): new method for setting a
	  String's flow style.

	* lib/yaml.rb (YAML::object_maker): now uses Object.allocate.

	* ext/syck/gram.c: fixed transfer methods on structs, broke it
	  last commit.

Thu May  6 11:40:28 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (string): accept NIL.

	* lib/net/imap.rb (body_type_basic): allow body-fields omissions.

Thu May  6 01:59:04 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (Generators::HtmlMethod::params):
	  Don't include the &block parameter if we have explicit
	  yield parameters.

Wed May  5 03:40:29 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/ring.rb: use recv instead of recvfrom.

Tue May  4 23:52:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/gserver.rb: documented

Tue May  4 23:46:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/xmlrpc/README.txt: introduced for documentation purposes

Mon May  3 09:47:24 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):
	  Fix parsing bug if yield called within 1 line block

Sun May  2 01:04:38 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib, ext/tk: renewal Ruby/Tk

Fri Apr 30 20:08:41 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* time.c (SIZEOF_TIME_T): support SIZEOF_TIME_T == SIZEOF_INT.

Tue Apr 27 13:12:42 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): too many line trace call. (ruby-bugs PR#1320)

Tue Apr 27 08:41:28 2004  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml/rubytypes.rb: passing Range tests.

	* ext/syck/syck.h: version 0.44.

	* ext/syck/gram.c: transfers no longer open an indentation.
	  fixed transfers which precede blocks.

	* ext/syck/token.c: ditto.

	* ext/syck/syck.c: fixed segfault if an anchor has been released already.

	* ext/syck/node.c (syck_free_members): organized order of free'd nodes.

	* ext/syck/rubyext.c (syck_emitter_write_m): test for proper string with
	  StringValue.

Mon Apr 26 23:56:54 2004  Daniel Kelley  <news-1082945587@dkelley.gmp.san-jose.ca.us>

	* README.EXT, README.EXT.ja: fixed wrong function signature.
	  [ruby-talk:98349]

Mon Apr 26 21:40:09 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::add_alias): Only alias
	  to instance methods.

Sat Apr 24 10:38:31 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::group_lines):
	  Fix bug where consecutive headings are merged.

Fri Apr 23 23:26:13 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb: $hdrdir should not contain macros for backward
	  compatibility.  [bruby-dev:28]

	* version.c (ruby_show_copyright): obtain copyright year from
	  RUBY_RELEASE_YEAR.

	* win32/resource.rb: ditto.

	* win32/resource.rb: default rubyw icon to ruby.ico, and let DLL also
	  include them.

	* win32/resource.rb: include winver.h for older WindowsCE.

Fri Apr 23 16:38:46 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb: sync taint/freeze flag between
	  a pathname object and its internal string object.

Fri Apr 23 14:52:08 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (stmt, arg, aref_args): should not make sole splat into
	  array, in aref_args other than aref with op_asgn.

Fri Apr 23 14:14:38 2004  Tanaka Akira  <akr@m17n.org>

	* lib/resolv.rb: don't use Regexp#source to embed regexps.
	  [ruby-dev:23432]

Thu Apr 22 04:15:36 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (aref_args): should pass expanded list.  [ruby-core:02793]

Thu Apr 22 01:12:57 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (flo_to_s): tweak output string based to preserve
	  decimal point and to remove trailing zeros.  [ruby-talk:97891]

	* string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM
	  search.  [ruby-talk:97342]

Wed Apr 21 22:57:27 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size.

Wed Apr 21 20:05:00 2004  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::HTTP#proxy_open): set Host: field explicitly.
	  [ruby-list:39542]

Mon Apr 19 18:11:15 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (rb_hash_equal): returns true if two hashes have same set
	  of key-value set.  [ruby-talk:97559]

	* hash.c (rb_hash_eql): returns true if two hashes are equal and
	  have same default values.

Mon Apr 19 08:19:58 2004  Doug Kearns  <djkea2@mugca.its.monash.edu.au>

	* dln.c, io.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb, lib/date.rb,
	  lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb, lib/matrix.rb,
	  lib/monitor.rb, lib/set.rb, lib/thwait.rb, lib/timeout.rb,
	  lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb, lib/net/ftp.rb,
	  lib/net/http.rb, lib/net/imap.rb, lib/net/telnet.rb,
	  lib/racc/parser.rb, lib/rinda/rinda.rb, lib/rinda/tuplespace.rb,
	  lib/shell/command-processor.rb, lib/soap/rpc/soaplet.rb,
	  lib/test/unit/testcase.rb, lib/test/unit/testsuite.rb: typo fix.

Mon Apr 19 08:14:18 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Allow for
	  #ifdef HAVE_PROTOTYPES

Fri Apr 16 22:33:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* ext/iconv/iconv.c: nearly finished RDoc comments.

Fri Apr 16 17:04:07 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_equal): always returns true or false, never
	  returns nil. [ruby-dev:23404]

Fri Apr 16 08:27:02 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: skip linking when libraries to be preloaded not
	  compiled.  [ruby-list:39561]

Thu Apr 15 23:21:52 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* process.c (pst_success_p): new method Process::Status#success?.
	  [ruby-dev:23385]

Thu Apr 15 17:12:13 2004  Tanaka Akira  <akr@m17n.org>

	* ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,
	  GDBM::WRCREAT and GDBM::NEWDB.
	  (fgdbm_initialize): use specified read/write flag.

Wed Apr 14 11:29:56 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* numeric.c (flo_eq): workaround for bcc32's bug.
	  (ruby-bugs-ja:PR#594)

Wed Apr 14 13:06:35 2004  Doug Kearns  <djkea2@mugca.its.monash.edu.au>

	* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
	  process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]

Wed Apr 14 11:06:38 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::scan): Changed
	  behavior of :enddoc: -- it now unconditionally terminates
	  processing of the current file.

Wed Apr 14 11:03:22 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* defines.h: include <net/socket.h> to get fd_set definition in BeOS.

Tue Apr 13 23:06:30 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb: change pattern matching.
	  a === b -> a == b || a === b. [druby-ja:98]

	* test/rinda/test_rinda.rb: ditto.

Tue Apr 13 19:54:29 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: should not overwrite HTTP request header.
	  [ruby-list:39543]

Tue Apr 13 01:30:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* ext/iconv/iconv.c: RDoc documentation (from RD; nearly finished).
	* ext/iconv/charset_alias.rb: Prevent from RDoc'ing.

Mon Apr 12 19:11:29 2004  Eric Hodel  <drbrain@segment7.net>

	* gc.c (rb_gc_copy_finalizer): typo.  [ruby-core:02774]

Mon Apr 12 18:52:32 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509name.c (ossl_x509name_init_i): should return
	  a value.

Mon Apr 12 10:43:47 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (rb_glob2, rb_glob, rb_globi, push_globs, push_braces,
	  rb_push_glob): fix memory leak. (leaked when block was interrupted)

Mon Apr 12 10:27:37 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: backport SIZEOF_TIME_T definition from 1.9.

	* win32/Makefile.sub: ditto.

	* wince/Makefile.sub: ditto.

Sun Apr 11 19:12:35 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ruby.c (require_libraries): restore source file/line after
	  statically linked extensions initialized.  [ruby-dev:23357]

Sun Apr 11 10:47:04 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::TopLevel::add_class_or_module): Toplevel
	  classes and modules are a special case too... (handle extending existing
	  classes with or without :enddoc:)

Sat Apr 10 23:51:13 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::add_to): Implementation of :enddoc:
	  made one too many assumptions...

Sat Apr 10 00:00:19 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/markup/simple_markup/inline.rb: Fix problem
	  with \_cat_<b>dog</b>

Wed Apr  7 00:19:50 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb: fix hash tuple bug.

	* lib/rinda/tuplespace.rb: ditto.

	* test/rinda/test_rinda.rb

Tue Apr  6 18:24:18 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_reopen): should use rb_io_check_io().

Tue Apr  6 16:46:09 2004  Tanaka Akira  <akr@m17n.org>

	* configure.in: check the size of time_t.

	* time.c (time_add): new function.
	  (time_plus): use time_add.
	  (time_minus): use time_add.

Tue Apr  6 13:21:30 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (make_hostent): must return value.

Tue Apr  6 00:05:30 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb: add require 'drb/drb'

Mon Apr  5 08:18:23 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb: Remove leading ./ from file names so that cross
	  references work properly.

Sun Apr  4 20:33:42 2004  Minero Aoki  <aamine@loveruby.net>

	* eval.c (Init_load): make $LOADED_FEATURES built-in.
	  [ruby-dev:23299]

	* ruby.c (ruby_prog_init): make $PROGRAM_NAME built-in.

	* lib/English.rb: remove $LOADED_FEATURES and $PROGRAM_NAME.

Sun Apr  4 14:01:20 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/options.rb (Options::parse): Allow multiple -x options to RDoc.
	  Fix bug where files weren't being excluded properly

Sat Apr  3 17:11:05 2004  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/syck.h: version 0.43.

	* ext/syck/lib/gram.c: allow root-level inline collections.
	 [ruby-talk:94922]

	* lib/yaml/rubytypes.rb (Symbol#to_yaml): emit symbols as implicits.
	 [ruby-talk:94930]

	* ext/syck/bytecode.c: turn off default implicit typing.

	* ext/syck/implicit.c: detect base60 integers.

	* ext/syck/rubyext.c: handle base60, as well as hex and octal
	  with commas.  implicit typing of ruby symbols.

Fri Apr  2 17:27:17 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (top_include): include in the wrapped load is done for
	  the wrapper, not for a singleton class for wrapped main.
	  [ruby-dev:23305]

Fri Apr  2 15:13:44 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_eq): use temporary double variable to save the
	  result (internal float register may be bigger than 64 bits, for
	  example, 80 bits on x86).  [ruby-dev:23311]

Fri Apr  2 14:35:26 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (block_pass): should generate unique identifier of the
	  pushing block.  [ruby-talk:96363]

Fri Apr  2 07:31:38 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/socket.c (make_hostent): fix memory leak, based on
	  the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>.

Thu Apr  1 22:55:33 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb: Allow rdoc comments in
	  =begin rdoc/=end

	* lib/rdoc/parsers/parse_rb.rb: Fix problem with comment in
	  top-level method being taken as file comment.

Thu Apr  1 22:55:04 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_options.rb: Fix undefined variable warning.

Thu Apr  1 19:58:37 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/mapping/{factory.rb,registry.rb}: fixed illegal mapped URI
	  object with soap/marshal.
	  added URIFactory class for URI mapping.  BasetypeFactory checks
	  instance_variables when original mapping is not allowed (ivar must
	  be empty).  Instance of URI have instance_variables but it must be
	  llowed whenever original mapping is allowed or not.

	* lib/xsd/datatypes.rb: check the smallest positive non-zero
	  single-precision float exactly instead of packing with "f".
	  [ruby-talk:88822]

	* lib/soap/mapping/rubytypeFactory.rb: should not dump singleton class.
	  [ruby-dev:22588]
	  c = class << Object.new; class C; self; end; end; SOAPMarshal.dump(c)

Wed Mar 31 19:06:23 2004  Tanaka Akira  <akr@m17n.org>

	* time.c (year_leap_p): new function.
	  (timegm_noleapsecond): ditto.
	  (search_time_t): use timegm_noleapsecond instead of
	  mktime for first guess.

Wed Mar 31 12:04:04 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/delegate.rb (DelegateClass): define internal methods of the
	  result class, but not metaclass of the caller.  [ruby-talk:96156]

	* intern.h: provide proper prototypes.  [ruby-core:02724]

	* ruby.h: missing.h is now prerequisite to intern.h.

Tue Mar 30 20:25:34 2004  Tanaka Akira  <akr@m17n.org>

	* time.c (search_time_t): limit guess range by mktime if it is
	  available.  [ruby-dev:23274]

Sun Mar 28 14:16:59 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/net/pop.rb (auth): failed when account/password include "%".
	  [ruby-talk:95933]

Sat Mar 27 21:40:41 2004  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb: permit extra semicolon in content-type field.

Sat Mar 27 10:40:48 2004  Tanaka Akira  <akr@m17n.org>

	* (lib/pp.rb, lib/prettyprint.rb): define seplist in PP::PPMethods
	  instead of PrettyPrint.

Thu Mar 25 23:28:52 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_overflow_p): backport 1.9 usec overflow function.
	  (ruby-bugs PR#1307)

Thu Mar 25 23:15:24 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_options.rb (RI::Options::show_version):
	  Add --version option

Thu Mar 25 04:16:18 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_options.rb (RI::Options): Add the --list-names option,
	  which dumps our all known names

Thu Mar 25 03:57:47 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_util.rb (NameDescriptor::initialize): No longer
	  allow nested classes to be designated using "."--you must
	  now use "::"

Thu Mar 25 02:00:18 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/html/one_page_html.rb (Page):
	  Fix to work with C modules.

Wed Mar 24 21:17:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/uri.rb: Documented (thanks Dmitry V. Sabanin).
	* lib/uri/common.rb: Ditto.
	* lib/uri/ftp.rb: Ditto.
	* lib/uri/generic.rb: Ditto.
	* lib/uri/http.rb: Ditto.
	* lib/uri/https.rb: Ditto.
	* lib/uri/ldap.rb: Ditto.
	* lib/uri/mailto.rb: Ditto.
	  (All backported from 1.9)

Wed Mar 24 18:48:26 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb ($ruby, $topdir, $hdrdir): should not be affected by
	  DESTDIR after installed.

	* lib/mkmf.rb (RUBY): / is not recognized as path separator on
	  nmake/bmake. [ruby-list:39388]

	* lib/mkmf.rb (init_mkmf): $INCFLAGS also should be lazy-evaluated.

Wed Mar 24 12:32:56 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_class_module):
	  Don't document methods if we don't know for sure the
	  class or module.

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
	  Don't store documentation for singleton classes if we
	  don't know the real class.

Wed Mar 24 11:11:26 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (Generators::HTMLGenerator::load_html_template):
	  Allow non-RDoc templates by putting a slash in the template name

Mon Mar 22 16:19:57 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ruby.1: add -width option to .Bl for old groff.

Sun Mar 21 21:11:16 2004  Keiju Ishitsuka  <keiju@ishitsuka.com>

	* lib/shell/*: bug fix for Shell#system(command_line_string).

Sat Mar 20 20:57:10 2004  David Black  <dblack@wobblini.net>

	* lib/scanf.rb: Backported 1.9 branch
	  modifications/corrections to 1.8 branch

Sat Mar 20 23:51:03 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c (rb_require_safe): preserve old ruby_errinfo.
	  [ruby-talk:95409]

	* eval.c (rb_f_raise): should not clear backtrace information if
	  exception object already have one.

Sat Mar 20 15:25:36 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Force
	  page background to white.

Sat Mar 20 09:52:33 2004  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb, lib/date/format.rb: _parse() now accepts fractional
	  part of second minute that follows a comma or a full stop.

Fri Mar 19 01:55:57 2004  Mauricio Fernandez  <batsman.geo@yahoo.com>

	* io.c (rb_io_sync): need not to check writable. [ruby-core:02674]

Thu Mar 18 21:44:38 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: backport drb.rb 1.16.

Fri Mar 18 17:49:51 2005  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* struct.c (make_struct): allow const_id for accessor names.
	  [ruby-core:04585]

	* eval.c (rb_attr): check if attribute name is local_id or
	  const_id.

Thu Mar 18 16:22:38 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_eq): avoid false positive by using scope and
	  dyna_vars.  no longer use frame.uniq.

Wed Mar 17 14:44:43 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (range): fix possible "\0" overrun. (in case of "\0-")

Mon Mar 15 07:39:13 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_yield_0): should not re-submit TAG_BREAK if this
	  yield is not break destination. [ruby-dev:23197]

Sat Mar 13 14:28:16 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/drb/test_drbssl.rb: rescue LoadError. (Barkport from main
	  trunk)

	* test/drb/test_drbunix.rb: ditto.

Wed Mar 10 22:28:09 2004  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (remove_dir): should handle symlink correctly.
	  This patch is contributed by Christian Loew.  [ruby-talk:94635]
	  (Backport from main trunk)

Wed Mar 10 16:28:42 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (return_jump): set return value to the return
	  destination.  separated from localjump_destination().

	* eval.c (break_jump): break innermost loop (or thread or proc).

	* eval.c (rb_yield_0): set exit_value for block break.

Wed Mar 10 15:58:43 2004  Ryan Davis  <ryand@zenspider.com>

	* eval.c (eval): Only print backtrace if generating the backtrace
	  doesn't generate an exception.  [ruby-core:02621]

Tue Mar  9 13:04:26 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_ungetc): raise IOError instead of calling
	  rb_sys_fail().  [ruby-talk:23181]

Mon Mar  8 19:32:28 2004  akira yamada  <akira@ruby-lang.org>

	* lib/uri/common.rb (URI::REGEXP::PATTERN::HOSTPORT): (?:#{PORT})
	  -> (?::#{PORT}).  [ruby-dev:23170]

Mon Mar  8 15:31:41 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (range): treat incomplete '[' as ordinary character (like
	  has_magic does).

	* dir.c (range):  Cancel above change. More discussion is needed.

Sun Mar  7 22:37:46 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/drb/ut_drb.rb: use 'druby://localhost:0'. [ruby-dev:23078]

	* test/drb/ut_eval.rb: ditto.

	* test/drb/ut_large.rb: ditto.

	* test/drb/ut_safe1.rb: ditto.

	* test/drb/ut_drb_drbssl.rb: use 'drbssl://localhost:0'.

Sun Mar  7 16:22:26 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* Makefile.in (lex.c): use $? instead of $<.

Fri Mar  5 00:54:14 2004  Dave Thomas  <dave@pragprog.com>

	* lib/test/unit.rb: MOve RDoc documentation so that you can
	  now say 'ri Test::Unit'

Tue Mar  2 12:32:59 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub, wince/Makefile.sub (config.h): shouldn't check
	  defined? NORETURN. [ruby-dev:23100]

Mon Mar  1 12:24:10 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_alias):
	  Allow aliases to have parentheses

Sun Feb 29 23:14:53 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
	  Handle :nodoc: on singleton classes.

Sat Feb 28 10:58:49 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* MANIFEST: add test_erb.rb

	* lib/erb.rb, test/erb/test_erb.rb: don't forget filename,
	  if both filename and safe_level given. [ruby-dev:23050]

Fri Feb 27 01:00:09 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb, test/drb/drbtest.rb: require drb/eq.rb by default

Wed Feb 25 21:16:25 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb (with_destdir): should return the given argument if no
	  DESTDIR is given.

	* instruby.rb: use path name expansion of cmd.exe.

Wed Feb 25 09:35:22 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* error.c (NameError::Message): new class for lazy evaluation of
	  message to ensure replaced before marshalling. merge from HEAD.
	  (ruby-bugs-ja:PR#588)

	* eval.c (rb_method_missing): use NameError::Message. merge from
	  HEAD. (ruby-bugs-ja:PR#588)

Tue Feb 24 18:59:37 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (glob_helper): '**/' should not match leading period
	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]

Tue Feb 24 13:22:21 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb (RDoc::RDoc::normalized_file_list): Attempt to get better
	  heuristics on which files to include and exclude. Now only include
	  non-standard files if they are explicitly named in ARGV.

Tue Feb 24 07:23:30 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Deal with :stopdoc: when
	  choosing a default main page to display (ie. don't select a page
	  if we don't have documentation for it).

Tue Feb 24 06:40:14 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle
	  class variables in code listings

Tue Feb 24 06:40:14 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle
	  class variables in code listings

Tue Feb 24 06:32:27 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_aliases): Handle
	  aliases in C files.

Tue Feb 24 06:16:22 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb (RDoc::RDoc::document): Now create op dir _before_
	  parsing files.

Tue Feb 24 06:08:47 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_constant):
	  Start collecting text of constant values earlier: was missing
	  values in output if there was no space after '='

Tue Feb 24 06:08:25 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Escape contant values.

Tue Feb 24 03:45:06 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_config.c (ossl_config_each): add new method
	  OpenSSL::Config#each. it iterates with section name, field name
	  and value.

	* ext/openssl/ossl_config.c (Init_ossl_config): include Enumerable.

Mon Feb 23 09:16:35 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* instruby.rb (DOSISH): embedded path in batch files should not be
	  prefixed by DESTDIR.  [ruby-core:02186]

Sun Feb 22 09:54:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* re.c: corrected documentation format (again)

Sun Feb 22 09:43:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* re.c: corrected documentation format (rb_reg_initialize_m)

Sat Feb 21 22:36:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* ext/zlib/zlib.c: documented, but needs more effort.

Sat Feb 21 11:12:15 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* missing/os2.c, missing/x68.c: typo fix.  pointed out by greentea.

Fri Feb 20 18:59:47 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/init.rb (IRB::IRB.parse_opts): add -I option to
	  irb. [ruby-dev:39243]

Thu Feb 19 23:24:16 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):
	  Support visibility modifiers for attributes

Thu Feb 19 23:24:16 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):
	  Support visibility modifiers for attributes

Thu Feb 19 22:39:04 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/rinda/test_rinda.rb: DRb.start_service only once in testsuites.
	  DRb.start_service could handle this.

Thu Feb 19 22:19:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/ostruct.rb: documented

Thu Feb 19 21:28:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* ext/strscan/strscan.c: improved documentation

Thu Feb 19 03:10:52 2004  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c: synchronized with main trunk (rev 1.11).

Thu Feb 19 02:30:34 2004  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c: documentation checked.

Thu Feb 19 00:11:05 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/markup/simple_markup/preprocess.rb (SM::PreProcess::handle):
	  Strip extraneous space from filenames in :include:

Wed Feb 18 22:52:00 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/unix.rb: remove O_NONBLOCK, thanks \ay

Wed Feb 18 22:47:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* ext/strscan/strscan.c: documented

Wed Feb 18 22:03:11 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/*: should not depend on $KCODE.

Wed Feb 18 17:18:01 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/win32ole/win32ole.c: need to include <olectl.h> on Cygwin.

Wed Feb 18 10:40:38 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* sprintf.c (rb_f_sprintf): do not prepend dots for negative
	  numbers if FZERO is specified.  [ruby-list:39218]

Tue Feb 17 23:40:34 2004  Guy Decoux  <ts@moulon.inra.fr>

	* sprintf.c (rb_f_sprintf): preserve original val for
	  format_integer. [ruby-talk:92975]

Tue Feb 17 23:28:45 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/marshaltestlib.rb: common marshal testcase added.

	* test/ruby/test_marshal.rb: use above testsuite.

	* test/soap/marshal/test_marshal.rb: ditto.

	* test/soap/marshal/cmarshal.rb: removed (not used).

Tue Feb 17 10:51:23 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/syck/rubyext.c (syck_emitter_end_object): takes only one arg.

Tue Feb 17 01:35:28 2004  Tanaka Akira  <akr@m17n.org>

	* eval.c (rb_eval): care that another thread replace NODE_DREGX_ONCE
	  to NODE_LIT.  [ruby-dev:22920]

Tue Feb 17 01:24:35 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): define
	  STACK_GROW_DIRECTION. [ruby-dev:22910]

	* bcc32/Makefile.sub (config.h): add newer checks.

	* wince/Makefile.sub (config.h): define NEED_IO_SEEK_BETWEEN_RW.

Tue Feb 17 00:38:10 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb: TupleSpace#initialize, stop doubling timeout

Tue Feb 17 00:18:03 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/rinda/test_rinda.rb: import test_rinda.rb

Tue Feb 17 00:14:30 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: avoid warning "Redefinition of macro
	  'HAVE_GETLOGIN'".

	* vms/config.h_in: ditto.

Mon Feb 16 23:28:14 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/csv.rb: document reduction.  [ruby-core:02429]

Mon Feb 16 22:08:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/generator.rb: corrected doc format
	* lib/rinda/rinda.rb: added documentation (from Hugh Sasse)
	* lib/rinda/tuplespace.rb: ditto

Mon Feb 16 20:41:32 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: show more warnings. (refering to mingw)

	* bcc32/setup.mak: ditto.

Mon Feb 16 13:39:44 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (rb_glob, rb_globi): add const.

	* ruby.h: ditto.

Mon Feb 16 02:16:33 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* bcc32/Makefile.sub: should warn suspicious pointer conversion.

	* bcc32/setup.mak: ditto.

Sun Feb 15 19:06:42 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/tuplespace.rb: TupleSpace#read(tpl, 0), raise
	  RequestExpiredError if not found.

Sun Feb 15 15:56:46 2004  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c: add IDispatch wrapper in val2variant.
	  Thanks, arton.

Sun Feb 15 01:46:05 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/mkmf.rb: absolute path of ruby is assigned to $(RUBY).
	  [ruby-dev:22870]

Sat Feb 14 11:29:41 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* sample/drb/*: import lib/drb/sample

Sat Feb 14 11:08:23 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: add pretty_print, thanks gotoken.

Fri Feb 13 12:35:08 2004  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: File.link may raise EINVAL and
	  EACCES on Windows.

Thu Feb 12 21:45:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/ftools.rb: documented

Thu Feb 12 21:25:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/base64.rb: backported from HEAD (modularised and documented)

Thu Feb 12 20:31:48 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_tmpsrc): cpp32 of Borland C++ ignores #error
	  directives in DOS line-ending files at all.

Thu Feb 12 02:23:56 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb: use assert_raise instead of assert_raises.

	* lib/pp.rb: ditto.

	* lib/time.rb: ditto.

	* lib/tsort.rb: ditto.
	  use TSortHash and TSortArray instead of Hash and Array in test.

Wed Feb 11 20:01:12 2004  akira yamada  <akira@ruby-lang.org>

	* test/ruby/test_file.rb (TestFile::test_fnmatch): added tests for
	  File.fnmatch. [ruby-dev:22815][ruby-dev:22819]

	* test/ruby/test_proc.rb (TestProc::test_eq): added a
	  test.  [ruby-dev:22599]

	* test/ruby/test_proc.rb (TestProc::test_eq): added tests for
	   Proc#==.  [ruby-dev:22592], [ruby-dev:22601]

Tue Feb 10 16:43:56 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (umethod_bind): purge unused check.  [ruby-dev:22850]

Mon Feb  9 17:16:00 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/rdoc/parsers/parse_c.rb: escape '{' and '}' to avoid warnings.

Mon Feb  9 13:00:55 2004  Hirokazu Yamamoto  <ocean@m2.ccsnet.ne.jp>

	* dir.c (fnmatch): File.fnmatch('*?', 'a') should return true.
	  [ruby-dev:22815]

	* dir.c (fnmatch): File.fnmatch('\[1\]' , '[1]') should return true.
	  [ruby-dev:22819]

Sun Feb  8 16:46:13 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/pp.rb (PP::PPMethods::object_address_group): suppress negative
	  sign for higher heap areas.

Fri Feb  6 22:48:16 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb (gen_url): Support
	  https in RDoc hyperlinks

Fri Feb  6 22:41:22 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): rollback the previous
	  commit.  [ruby-dev:22813]

Fri Feb  6 22:22:50 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): remove instance
	  variable which is defined in the test.

Fri Feb  6 00:48:37 2004  Tanaka Akira  <akr@m17n.org>

	* lib/prettyprint.rb (PrettyPrint#first?): obsoleted.

Thu Feb  5 23:56:55 2004  Tanaka Akira  <akr@m17n.org>

	* lib/prettyprint.rb (PrettyPrint#seplist): added.

	* lib/pp.rb (PPMethods#pp_object): use seplist.
	  (PPMethods#pp_hash): ditto.
	  (Array#pretty_print): ditto.
	  (Struct#pretty_print): ditto.
	  (MatchData#pretty_print): ditto.

	* lib/set.rb (Set#pretty_print): use seplist.

Wed Feb  4 02:12:06 2004  Tanaka Akira  <akr@m17n.org>

	* file.c (test_l): fix wrong method name in document.
	  (test_S): ditto.
	  (test_b): ditto.
	  (test_c): ditto.
	  (test_suid): ditto.
	  (test_sgid): ditto.
	  (test_sticky): ditto.

Tue Feb  3 08:04:57 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb (Struct#pretty_print_cycle): follow 1.8 style.

Mon Feb  2 19:33:49 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: backport from 1.9 for Interix.

	* dln.c (dln_load): ditto.

Mon Feb  2 13:31:51 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/net/http.rb (canonical_each): fix merge miss.

Mon Feb  2 01:54:00 2004  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb (Struct#pretty_print): make it 1.8 style.
	  (Numeric#pretty_print, FalseClass#pretty_print)
	  (TrueClass#pretty_print, Module#pretty_print): fix pp for objects
	  with instance variables.  [ruby-talk:91157]

	* lib/open-uri.rb (URI::Generic#find_proxy): return nil on loopback
	  address.

	* lib/resolv-replace.rb (BasicSocket#send): don't replace because
	  it has no hostname argument.
	  (IPSocket.getaddress): raise SocketError instead of
	  Resolv::ResolvError for errors.
	  (TCPSocket#initialize, UDPSocket#bind, UDPSocket#connect)
	  (SOCKSSocket#initialize): use IPSocket.getaddress instead of
	  Resolv.getaddress.
	  (UDPSocket#send): recognize 3 arguments form.  try all addresses on
	  4 arguments form.

Sun Feb  1 18:17:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/net/http.rb: merged coding style changes from HEAD.

Sun Feb  1 16:15:00 2004  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/test/unit.rb: rearranged documentation for RDoc's sake.
	* lib/matrix.rb: improved documentation.
	* lib/net/http.rb: slight documentation formatting improvement.

Sun Feb  1 05:30:06 2004  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): warn HTTP_PROXY.
	 raise an errror on non-http proxy URI.
	 (OpenURI::Buffer#<<): make a tempfile binmode.  [ruby-talk:90793]

Sat Jan 31 09:20:32 2004  NAKAMURA, Hiroshi  <nakahiro@sairon.co.jp>

	* sample/openssl/gen_csr.rb: wrong usage string.

Sat Jan 31 01:00:32 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/wsdlDriver.rb, lib/wsdl/soap/operation.rb: add support of
	  "parts" attribute of soap:body element in WSDL.

	* lib/wsdl/xmlSchema/schema.rb: friendly warning message for
	  simpleType element which is not supported for now.

	* lib/soap/mapping/factory.rb: deleted unused methods.

	* lib/soap/mapping/rubytypeFactory.rb: do no ignore case while xsi:type
	  string <-> Ruby class name matching.

	* test/wsdl/soap/{soapbodyparts.wsdl,test_soapbodyparts.wsdl}: new
	  files.

Thu Jan 29 23:56:00 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* util.c (mblen): fix overrun.  [ruby-dev:22672]

Thu Jan 29 22:41:53 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Allow 'link:' in Tidylinks.
	  THis means you can write "see f1[link:files/f1_rb.html]".

Thu Jan 29 15:33:23 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509hame.c (ossl_x509name_initialize): change
	  second argument. it expected to be a Hash not an Integer.

	* ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): add new
	  function for OpenSSL::X509::Name#add_entry.

	* ext/openssl/ossl_x509name.c (ossl_x509name_to_a): append ASN.1
	  tag number to each element of return value.

	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): add constants
	  OpenSSL::X509::Name::DEFAULT_OBJECT_TYPE and OBJECT_TYPE_TEMPLATE.

	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#initialize):
	  second argument takes OBJECT_TYPE_TEMPLATE by default.

	* sample/openssl/gen_csr.rb: use OpenSSL::X509::Name.parse.

Wed Jan 28 04:29:41 2004  Eric Schwartz  <emschwar@fc.hp.com>

	* lib/cgi/session.rb: use LOCK_SH to read, and a few other
	  improvements.  [ruby-core:02328]

Tue Jan 27 11:09:29 2004  FUKUMOTO Atsushi  <fukumoto@nospam.imasy.or.jp>

	* ext/socket/socket.c (s_recvfrom): sending length should be an
	  invariant while retrying on EAGAIN.  [ruby-talk:89962]

Tue Jan 27 10:35:18 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/win32ole/win32ole.c (set_argv): fix condition.

Tue Jan 27 02:26:31 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (WEBrick:HTTPUtils::parse_header):
	  refine regex for header-name.

Tue Jan 27 00:30:11 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/Makefile.sub: rollback.

Mon Jan 26 22:53:04 2004  Dave Thomas  <dave@pragprog.com>

	* io.c: Remove documentation references to $defout.

Mon Jan 26 15:11:47 2004  NAKAMURA Usaku  <usa@ruby-lang.org>

	* sample/exyacc.rb: escape '}' to avoid warning.

Mon Jan 26 14:41:46 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/delegate.rb (Delegator::initialize): preserve
	  singleton_method_added method [ruby-dev:22685]

	* lib/delegate.rb (Delegator::initialize): use Kernel::raise
	  instead of mere raise.  [ruby-dev:22681]

Mon Jan 26 12:47:17 2004  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7

Mon Jan 26 11:35:23 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb: Makefiles should depend on also rbconfig.rb.
	  (ruby-bugs:PR#1256)

	* ext/win32ole/win32ole.c (set_argv): set real arguments to
	  WIN32OLE::ARGV.  [ruby-list:39073]

Thu Jan 22 22:54:53 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (BEG_REGEXP): allow 8-bit characters in quoted
	  strings for Novell GroupWise Internet Agent.
	* lib/net/imap.rb (DATA_REGEXP): ditto.

Thu Jan 22 16:21:33 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (string_content): reset lexical states at the beginning of
	  string contents.  [ruby-list:39061]

Wed Jan 21 21:55:51 2004  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: remove O_NONBLOCK, thanks \ay
	* lib/drb/extserv.rb: typo

Wed Jan 21 17:57:56 2004  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (envelope): allow NIL.
	* lib/net/imap.rb (body): ditto.
	* lib/net/imap.rb (number): ditto.
	* lib/net/imap.rb (ensure_nz_number): show a detailed error
	  message.

Wed Jan 21 16:44:20 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (merge_libs): squeeze successive same libraries.
	  [ruby-dev:22652]

Wed Jan 21 16:01:37 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/digest/rmd160/extconf.rb: have_library appends found library.

Wed Jan 21 11:36:00 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (block_append): update nd_end for "real" head node.
	  [ruby-list:39058]

Tue Jan 20 14:48:13 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: should check <openssl/conf_api.h> instead
	  of OPENSSL_VERSION_NUMBER. [ruby-list:39056]

Tue Jan 20 14:43:17 2004  Dave Thomas  <dave@pragprog.com>

	* lib/base64.rb: Add RDoc

Tue Jan 20 14:25:51 2004  Dave Thomas  <dave@pragprog.com>

	* lib/abbrev.rb: Add RDoc

Tue Jan 20 13:22:39 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Document aliases at
	  top-most level.

	* lib/English.rb: Document English.rb.

Tue Jan 20 02:49:22 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: add check for OpenSSL version.
	  [ruby-list:39054]

Tue Jan 20 02:38:13 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_class): should not dump singleton class.
	  [ruby-dev:22631]

Tue Jan 20 01:31:36 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* io.c (lineno): typo fix(FIX2INT -> INT2FIX).

Mon Jan 19 21:53:38 2004  akira yamada  <akira@ruby-lang.org>

	* io.c, re.c, string.c, time.c: fixed up positions of RDocs.

Mon Jan 19 07:09:20 2004  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date.rb: zone was wrong when it was behind UTC.
	  Thanks Mark J. Reed.

	* lib/date/format.rb: %z is now always replaced by four digits
	  with a leading plus or minus sign.

	* sample/cal.rb: added a class, anyway.

Sun Jan 18 20:47:35 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ruby.c: use translate_char() on Cygwin.

Sun Jan 18 02:33:26 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* defines.h (_WIN32): undef _WIN32 on Cygwin before defining DOSISH.

Sun Jan 18 00:23:55 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (class2path): check anonymous class/module before
	  checking referable, and allow singleton classes.

Fri Jan 16 14:33:35 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (class2path): get class path and check referable.
	  [ruby-dev:22588]

Fri Jan 16 09:52:23 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_eq): Proc with empty body may not be equal.
	  [ruby-dev:22590]

Thu Jan 15 13:03:10 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (argf_read): do not append EOF.  (ruby-bugs-ja:PR#585)

	* io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio
	  weird behavior.  [ruby-dev:22424]

Wed Jan 14 13:31:06 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/extconf.rb: wrapper iconv.rb is dependent on platform.

Tue Jan 13 18:54:28 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb(Logger#msg2str): no special treatment for the object
	  which responds to :to_str.  commited at 2004-01-11T21:46:27 by
	  gsinclair.

	* lib/logger.rb(LogDevice#initialize): remove type checking if the
	  given object is a String.  Kernel.open handles it correctly.
	  commited at 2004-01-11T21:46:27 by gsinclair.

	* test/logger/test_logger.rb: follow above change (ArgumentError ->
	  TypeError.)  follow above commit.

Tue Jan 13 14:27:13 2004  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>

	* lib/test/unit/ui/testrunnerutilities.rb (TestRunnerUtilities):
	  moved run method which allows output level.  [ruby-dev:22554]

Tue Jan 13 04:29:52 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_driver.rb (RiDriver::report_method_stuff):
	  Show fully-qualified class names in class list.

Tue Jan 13 01:04:37 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_paths.rb (RI::Paths): First attempt at
	  incorporating DESTDIR in the rdoc installation.

Mon Jan 12 23:27:19 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (primary): fix position after FCALL.  [ruby-dev:22574]

Mon Jan 12 12:07:22 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods):
	  Someone changed the "// in eval.c" comments to "/*...*/" style,
	  so the parsing of the source file name broke.

	* object.c: Remove spurious space in TrueClass documentation.

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Fix
	  bad regexp: if the code before a documented method contained
	  a comment that wasn't terminated by whitespace, that comment
	  and all intervening code was included in the following
	  method's documentation.

	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter::break_to_newline):
	  HTML formats need explicit line breaks.

Mon Jan 12 11:46:30 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single
	  quotes.  [ruby-dev:22564]

	* lib/mkmf.rb (libpathflag): do not enclose with quotes always.

	* {bcc32,win32,wince}/Makefile.sub (LIBPATHFLAG): quoted.

Mon Jan 12 02:24:07 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML
	  generation support to ri (Elliot Hughes)

Mon Jan 12 02:24:07 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML
	  generation support to ri (Elliot Hughes)

Sun Jan 11 02:07:47 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):
	  Also accept command line options via the 'RI' environment variable.

Sun Jan 11 02:07:47 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):
	  Also accept command line options via the 'RI' environment variable.

Sat Jan 10 21:27:41 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): need to add message delimiter. [ruby-dev:22561]

Sat Jan 10 01:54:50 2004  Eric Sunshine  <sunshine@sunshineco.com>

	* defines.h (__NeXT__): Ensure that all standard S_IRUSR, S_IWGRP,
	  S_IRWXO, etc. macros are defined since future code might require
	  them (even though present code only requires a subset).

	* defines.h (__NeXT__): Bug fix: WORDS_BIGENDIAN was not being set
	  correctly on Rhapsody when -arch compiler flag was used (via
	  configure's --enable-fat-binary option).

Fri Jan  9 10:05:14 2004  Siena.  <siena@faculty.chiba-u.jp>

	* lib/mkmf.rb (libpathflag): use single quotes.  [ruby-dev:22440]

Thu Jan  8 23:49:21 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (RDOCTARGET): new macro.  if you want to install
	  rdoc documentation, you need to run configure with
	  --enable-install-doc.

Thu Jan  8 21:29:43 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkey.c (ossl_pkey_to_der): removed; it returns
	  public key only.

	* ext/openssl/ossl_pkey_dh.c (ossl_dh_to_der): new function for
	  OpenSSL::PKey::DH#to_der.

	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_to_der): new function for
	  OpenSSL::PKey::DSA#to_der.

	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_to_der): new function for
	  OpenSSL::PKey::RSA#to_der.

Thu Jan  8 16:51:04 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/wsdl/datetime/test_datetime.rb: fixed a stupid testcase which
	  dumps "E" at month-end.

Thu Jan  8 11:20:01 2004  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c, object.c, process.c, re.c: don't use C++ style comments.

Thu Jan  8 04:36:21 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (WEBrick::CGI#initialize): should create
	  @config[:Logger] if it was not given.

	* sample/webrick/*: new files.

	* MANIFEST: add sample/webrick/*

Wed Jan  7 13:00:18 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_driver.rb: Fix problem where ri was
	  being too eager to find matches of ambiguous method
	  names (such as "ri Thread.join" would return both
	  Thread.join and ThreadsWait.join)

Wed Jan  7 12:35:41 2004  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/debug.rb: revert command parse regexps.  [ruby-list:39014] by
	  Shirai,Kaoru.

Wed Jan  7 08:21:04 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parserfactory.rb: Check for shebang
	  line in files that would otherwise be treated as
	  plain text.

Tue Jan  6 22:13:34 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_mod_modfunc): should break if m has no super class.
	  [ruby-dev:22498]

Tue Jan  6 21:55:02 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (fptr_finalize): should save errno just after failure.
	  [ruby-dev:22492]

Tue Jan  6 14:53:14 2004  Dave Thomas  <dave@pragprog.com>

	* bin/ri: split out the display side, making it pluggable. Added
	  new ri_driver and ri_display files in lib/rdoc/ri.

Tue Jan  6 06:37:53 2004  Dave Thomas  <dave@pragprog.com>

	* bin/rdoc: Add --ri-system switch

	* lib/.document: Update with list of files that seem to have
	  documentation

	* lib/test/unit.rb: Reorder comment to make it RDoc friendly.

	* Makefile.in: add install-nodoc target, and make it
	  generate RDoc on default install.

	* lib/rdoc/ri/ri_options.rb (RI::Options::parse): Add
	  --doc-dir option to ri.

Tue Jan  6 00:04:40 2004  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):
	  fix parsing if there are braces in a method parameter list

Fri Jan  2 14:54:11 2004  Dave Thomas  <dave@pragprog.com>

	* bin/ri: Add new --classes option, and arrange for
	  help messages to be paged too.

	* bin/rdoc: Add statistics.

	* process.c: (MG) Added Process documentation

	* lib/rdoc/ri/ri_formatter.rb (RI::AttributeFormatter::wrap):
	  Fix problem with labels not displaying in RI labeled
	  lists using BS and ANSI modes.

Fri Jan  2 01:50:13 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (argf_eof): ARGF.eof? should not have any side effect.
	  [ruby-dev:22469]

Wed Dec 31 17:25:17 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (argf_each_byte): should return self.  [ruby-dev:22465]

Wed Dec 31 11:20:34 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Make
	  file referenced in "// in sss.c" relative to current file.

Wed Dec 31 11:17:37 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/generators/html_generator.rb: Fix problem when
	  a public method was aliased, but the alias is then
	  made private, and hence doesn't appear in RDoc output.

Wed Dec 31 01:33:05 2003  Dave Thomas  <dave@pragprog.com>

	* array.c, error.c, eval.c, io.c, prec.c, range.c, re.c,
	  string.c, time.c: Add RDoc for Kernel functions, and tidy.

Tue Dec 30 19:39:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_f_readline): should raise EOFError at the end of
	  files.  [ruby-dev:22458]

	* io.c (argf_read): should concatenate input files when length
	  argument is nil. [ruby-dev:22450]

	* io.c (argf_read): should update supplied string buffer (2nd
	  argument) even when IO#read is called multiple times.

	* io.c: should initialize lineno by zero. [ruby-dev:22460]

Tue Dec 30 12:30:30 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): If a
	  class and a method have the same name, finding Xxx.abc was trying
	  to find 'abc' in method 'Xxx', not class 'Xxx'.

Tue Dec 30 08:32:32 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):
	  Handle undoing nesting of yield parameters correctly for:

	  def each_entry(&b) Dir.foreach(@path) {|f| yield P.new(f) } end

Tue Dec 30 08:32:32 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):
	  Handle undoing nesting of yield parameters correctly for:

	    def each_entry(&block) Dir.foreach(@path) {|f| yield Pathname.new(f) } end

Mon Dec 29 12:51:02 2003  Dave Thomas  <dave@pragprog.com>

	* eval.c: Add RDoc for Kernel global functions.

Mon Dec 29 11:00:16 2003  Dave Thomas  <dave@pragprog.com>

	* array.c: Tidy up RDoc loose ends.

Mon Dec 29 05:05:51 2003  Dave Thomas  <dave@pragprog.com>

	* struct.c, random: Add RDoc comments

Mon Dec 29 02:20:54 2003  Dave Thomas  <dave@pragprog.com>

	* eval.c: Add RDoc for class Proc, Method, UnboundMethod

Mon Dec 29 00:41:44 2003  Dave Thomas  <dave@pragprog.com>

	* math.c: Add RDoc comments

Sun Dec 28 20:19:11 2003  Tanaka Akira  <akr@m17n.org>

	* ext/stringio/stringio.c (strio_sysread): StringIO.new.sysread didn't
	  raise EOFError.

	* ext/zlib/zlib.c (gzreader_gets): don't increment lineno when
	  gzfile_read_all returns "".

Sun Dec 28 15:25:08 2003  Dave Thomas  <dave@pragprog.com>

	* class.c,object.c,parse.y,sprintf.c,variable.c: Document classes
	  Object, Module, etc...

Sun Dec 28 11:55:29 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/csv/test_csv.rb: generate bom.csv and mac.csv files on the fly.
	  [ruby-talk:88852]

	* test/csv/{bom.csv,mac.csv}: removed.

Sun Dec 28 08:56:51 2003  Dave Thomas  <dave@pragprog.com>

	* eval.c: Thead[Group] RDoc (thanks to MG)

Sun Dec 28 03:50:05 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_override_comment):
	  Escape method names used in regexp

Sun Dec 28 01:46:02 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item):
	  Add support for rules in 'ri' output.

Sun Dec 28 01:35:35 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body):
	  Sometimes the Ruby source aliases two otherwise
	  unrelated methods (for example Kernel#object_id and
	  Kernel#hash are both the same C function). Provide a
	  facility to allow the methods to be documented
	  separately.

Sun Dec 28 01:05:31 2003  Dave Thomas  <dave@pragprog.com>

	* marshal.c, signal.c: RDoc collemts added by Elliott Hughes

Sun Dec 28 00:48:47 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_class_comment):
	  Some source files use lower case class or module names
	  when naming the Init_XXX function in C.

Sat Dec 27 23:41:46 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: fix "test: too many arguments" error.

Sat Dec 27 15:32:19 2003  Dave Thomas  <dave@wireless_3.local.thomases.com>

	* time.c: RDoc comments added

Sat Dec 27 15:07:57 2003  Dave Thomas  <dave@pragprog.com>

	* object.c: Add RDoc comments for Symbol class.

Sat Dec 27 14:42:30 2003  Dave Thomas  <dave@pragprog.com>

	* numeric.c: Add RDoc comments.

Sat Dec 27 00:44:00 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (next_argv): warn always for stdin on inplace edit mode.

	* io.c (read_all): need to check string value.

	* io.c (argf_read): allow ARGF.read(nil).  [ruby-dev:22433]

Fri Dec 26 23:02:09 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_f_backquote): need not to check nil result.
	  [ruby-core:02078]

	* io.c (rb_io_getline): should return nil when read_all gives
	  empty string, even when nil rs is specified. [ruby-core:02077]

Fri Dec 26 18:50:59 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: check if getcontext and setcontext are available.

	* eval.c: use presence of getcontext/setcontext.

Fri Dec 26 16:40:53 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (PathnameTest#test_plus): add 2 assertions.

Fri Dec 26 09:26:58 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_pack): add sign check for 'i', and 'l'.
	  [ruby-dev:22427]

	* bignum.c (rb_quad_pack): add range check for 'quad int'.

Thu Dec 25 22:39:59 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c (rb_str_update): don't return any value.

Thu Dec 25 15:30:17 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_update): call rb_str_modify().

Thu Dec 25 05:08:09 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (search_required): search actual file name once when no
	  extension specified.

Thu Dec 25 04:00:44 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.1 released.

Thu Dec 25 00:17:53 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* configure.in: check for nanosleep, -lrt if required.
	  [ruby-core:02059]

	* eval.c (thread_timer): use select(2) if nanosleep(2) is not
	  available.

	* eval.c: check __stub_getcontext for glibc on some platforms.
	  [ruby-list:38984]

Wed Dec 24 23:48:04 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb
	  test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0"
	  to express -0.0.  [ruby-talk:88786]

Wed Dec 24 23:29:30 2003  Tanaka Akira  <akr@m17n.org>

	* lib/tsort.rb (test_orphaned_break): removed.

Wed Dec 24 20:53:06 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkmulticolumnlist.rb: new sample

	* ext/tk/sample/tkmultilistframe.rb: bug fix

Wed Dec 24 20:37:37 2003  Eric Sunshine  <sunshine@sunshineco.com>

	* configure.in (LDSHARED): Fixed typographical error in assignment of
	  LDSHARED for Rhapsody which caused linking of extension modules to
	  fail.

Wed Dec 24 17:51:18 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (rb_thread_flock): enable thread support again.

Wed Dec 24 16:46:08 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (catch_timer): do not call rb_thread_schedule() inside to
	  avoid pthread_mutex_lock() deadlock.  interrupts to system calls
	  are detected by TRAP_END via EINTR error.

	* eval.c (thread_timer): do not post signal unless it is
	  absolutely necessary.

	* rubysig.h (TRAP_END): add CHECK_INTS to switch thread.

	* regex.c (re_compile_pattern): check if nextp is smaller than
	  pend.  [ruby-dev:22372]

	* eval.c (umethod_bind): remove method overridden check.
	  [ruby-dev:22366]

Wed Dec 24 16:13:05 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_ssl_read): should check for error
	  status by SSL_get_error().

	* ext/openssl/ossl_ssl.c (ossl_ssl_write): ditto.

Wed Dec 24 14:23:27 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): clear the buffer argument
	  when returning nil.  [ruby-dev:22363]

	* test/ruby/ut_eof.rb (TestEOF::test_eof_0, TestEOF::test_eof_1):
	  add buffer argument tests.

Wed Dec 24 14:07:55 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/assertions.rb: Modules are allowed to rescue.

	* lib/test/unit/autorunner.rb: show output_level in order.

	* lib/test/unit/collector/dir.rb: get rid of successive same
	  directories in load path.

	* test/testunit/test_assertions.rb (test_assert_nothing_raised,
	  test_assert_raise): test for modules.

Wed Dec 24 13:43:34 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/net/imap.rb (authenticate): remove "\n" from base64 encoded
	  strings.

Wed Dec 24 11:26:41 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/fileutils/test_fileutils.rb: should not create any
	  files or directories in current directory.  [ruby-talk:88724]

Wed Dec 24 10:29:53 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): never return nil at
	  unlimited read.  [ruby-dev:22334]

	* ext/stringio/stringio.c (strio_read): support second
	  argument.  [ruby-dev:22350]

Wed Dec 24 09:38:49 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (arg): should return 0 after error.  [ruby-dev:22360]

Wed Dec 24 00:56:54 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): do not return nil at the end of file.
	  [ruby-dev:22334]

	* io.c (argf_read): do not depend on nil at eof behavior of
	  IO#read().

	* eval.c (rb_thread_join): dup exception before re-raising it.

	* io.c (rb_io_eof): call clearerr() to prevent side effect.  this
	  patch is supplied by Masahiro Sakai <sakai@tom.sfc.keio.ac.jp>.
	  [ruby-dev:22234]

	* pack.c (OFF16): get offset for big endian machines.

	* pack.c (pack_pack): use OFF16 instead of OFF16B.
	  [ruby-dev:22344]

	* pack.c (pack_unpack): ditto.

Tue Dec 23 22:47:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_io_check_readable): set FMODE_RBUF always, even if
	  NEED_IO_SEEK_BETWEEN_RW is not defined. [ruby-dev:22340]

	* io.c (rb_io_check_writable): clear FMODE_RBUF before writing
	  something.

Tue Dec 23 22:25:00 2003  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/optparse.rb: incomplete RDoc documentation added in place of
	  existing RD comments.  Tabs converted to spaces.

Tue Dec 23 19:44:47 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/test_streamhandler.rb (test_basic_auth): removed.
	  soap4r + basic_auth is not officially supported in ruby/1.8.1 even
	  though soap4r + basic_auth + http-access2 should run fine.

Tue Dec 23 19:42:59 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_ungetc): raise an exception at unread stream to
	  avoid unspecified behavior.  [ruby-dev:22330]

	* test/ruby/test_system.rb (test_syntax): glob relatively from
	  __FILE__.

Tue Dec 23 18:09:40 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (pack_pack): remove unnecessary negative value check.
	  [ruby-dev:22329]

Tue Dec 23 17:26:55 2003  KONISHI Hiromasa  <konishih@fd6.so-net.ne.jp>

	* bcc32/Makefile.sub (config.h): bcc has finite(). [ruby-list:38940]

Tue Dec 23 16:08:16 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/rexml/encodings/US-ASCII.rb: typo.  [ruby-talk:88650]

	* test/ruby/test_system.rb: num of asserts depended on running dir.

	* test/xsd/test_noencoding.rb: rexml + without iconv/uconv cannot
	  handle euc-jp.  install iconv, uconv or xmlscan.

Tue Dec 23 14:13:51 2003  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic::check_userinfo,
	  URI::Generic::check_user, URI::Generic::check_password): tests
	  conflicts/depends with other components closely.

	* test/uri/test_generic.rb (TestGeneric::test_set_component):
	  added tets.

Tue Dec 23 11:08:34 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/xsd/test_noencoding.rb: rescue Errno::EINVAL and do not test.
	  "euc-jp" might not be in supported encoding name list.
	  [ruby-talk:88650]

Tue Dec 23 06:10:31 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb (CGI): add support for mod_ruby.

	* lib/webrick/cgi.rb (CGI::Socket): add check for existence of
	  OpenSSL module in all HTTPS related methods.

	* lib/webrick/cgi.rb (CGI::Socket#cipher): should create similar
	  value to OpenSSL::SSLSocket#cipher.

	* lib/webrick/httpresponse.rb (HTTPResponse#setup_header): should
	  set "connection: close" if @keep_alive is false.

	* lib/webrick/https.rb (HTTPrequest#meta_vars): add supprt for
	  SSL_PROTOCOL, SSL_CIPHER_USEKEYSIZE and SSL_CIPHER_ALGKEYSIZE.

Mon Dec 22 23:00:05 2003  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic::check_opaque): fixed typo.

Mon Dec 22 21:59:24 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (map_charset): always ensure code is a String.

Mon Dec 22 21:15:29 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* class.c (rb_mod_init_copy): always copy singleton class.
	  [ruby-dev:22325]

Mon Dec 22 20:44:36 2003  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic#route_from): accepts urls which
	  has no host-part.

	* test/uri/test_generic.rb (TestGeneric::test_route): added a test.

Mon Dec 22 20:38:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/cgi.rb: reduce eval.

	* lib/cgi.rb (CGI::QueryExtension::read_multipart): alias path to
	  local_path.  [ruby-list:38883]

Mon Dec 22 20:09:31 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/test_property.rb: remove duplicated test method.

Mon Dec 22 18:22:04 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): remove
	  HAVE_ISINF definition to follow previous commits of missing.h
	  and win32/win32.h.

Mon Dec 22 17:23:42 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (ac_cv_func_setitimer): moved from defines.h

	* defines.h, rubysig.h, signal.c: removed macro handling which
	  should be done in configure.

	* configure.in (intrinsics.h): check if present.

	* ruby.h: include intrinsics.h if available.

	* bignum.c, marshal.c: include ieeefp.h if available.

	* missing.h (isinf): define as a macro if finite() and isnan()
	  are available.  [ruby-core:02032]

Mon Dec 22 17:07:31 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in (mingw): set isnan, finite and isinf to yes.

Mon Dec 22 13:40:19 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/property.rb: passing block by reference.

Mon Dec 22 00:32:43 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_with_disable_interrupt): use ENABLE_INTS instead of
	  ALLOW_INTS which may switch context.  [ruby-dev:22319]

	* ext/syck/emitter.c (syck_emitter_write): str bigger than
	  e->bufsize causes buffer overflow.  [ruby-dev:22307]

Sun Dec 21 17:29:00 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* class.c (rb_check_inheritable): new function.  [ruby-dev:22316]

	* intern.h: add prototype.

	* eval.c (superclass): use rb_check_inheritable().

	* object.c (rb_class_initialize): check argument validity.

Sun Dec 21 16:25:10 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#+): re-implemented to resolve ".." in
	  beginning of the argument.
	  (Pathname#join): concatenate from the last argument.
	  (Pathname#parent): just use Pathname#+.

Sun Dec 21 00:12:37 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add new methods (TkScrollbar#assign, assign_list)

	* ext/tk/sample/tkmultilistframe.rb: use TkScrollbar#assign method

Sat Dec 20 21:59:03 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): refine regexp.

	* lib/webrick/cgi.rb (CGI#start): NPH scripts return status line
	  instead of Status: header field.

	* lib/webrick/cgi.rb (CGI::Socket): refine some coditions.

Sat Dec 20 16:07:14 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Completion::complete): wrong
	  Regexp for word boundary.  pointed out by Gavin Sinclair.

	* lib/optparse.rb (OptionParser::make_switch): [no-] prefix was
	  missing.

Sat Dec 20 11:40:10 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/yaml.rb (YAML::YAML): adjust Marshal version.

Sat Dec 20 03:56:02 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_with_disable_interrupt): prohibit thread context
	  switch during proc execution.  [ruby-dev:21899]

Sat Dec 20 02:41:02 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/cgi.rb: add file. (yet another CGI library)

	* MANIFEST: add lib/webrick/cgi.rb.

Sat Dec 20 02:18:31 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* misc/ruby-mode.el (ruby-calculate-indent): proper indentation
	  inside of parentheses.  [ruby-dev:22308]

Fri Dec 19 21:24:22 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): should not set
	  HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH.

	* lib/webrick/https.rb (HTTPRequest#parse): should check presence
	  of cert() method to detect SSLSocket.

Fri Dec 19 22:56:46 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/property.rb (SOAP::Property#load): new method for loading
	  property value into existing property tree.

	* test/soap/test_property.rb: add test.

Fri Dec 19 19:21:49 2003  akira yamada  <akira@ruby-lang.org>

	* lib/runit/cui/testrunner.rb (RUNIT::CUI::TestRunner::run):
	  should use Test::Unit::UI::{PROGRESS_ONLY,VERBOSE}.

Fri Dec 19 17:36:49 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkmultilistbox.rb: bug fix

	* ext/tk/sample/tkmultilistframe.rb: new sample script

Fri Dec 19 03:44:27 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (parse_form_data): should return an
	  empty Hash if the body is empty.

Thu Dec 18 21:47:35 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/mkmf.rb (create_makefile): should remove deffile if it's
	  made by miniruby. based on nobu's patch.

Thu Dec 18 21:44:21 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (stack_extend): ignore inline optimization on VC7.

	* win32/Makefile.sub (OS, RT): can override.

	* win32/Makefile.sub (LDFLAGS): ditto. shouldn't use pdb:none
	  option. based on Tietew's patch [ruby-dev:22289]

Thu Dec 18 16:38:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (fnmatch): unlike find_dirsep(), rb_path_next() never
	  return NULL.

Thu Dec 18 15:27:59 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/ipaddr.rb (IPSocket::getaddress): merge usa's patch.
	  [ruby-dev:21678]

Wed Dec 17 15:15:30 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/cgi.rb (CGI::QueryExtension::Value::[]): should work like
	  String#[] if more than one arguments are specified.

	* lib/delegate.rb: avoid using common instance name as "@obj".

	* lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer
	  subclass of String, but DelegateClass(String).

	* ext/curses/extconf.rb: restore function check for init_color.
	  [ruby-list:38905]

	* Makefile.in: need to specify $(MAINLIBS) for the miniruby
	  generation rule.

	* configure.in: better FreeBSD -lc_r support.

Wed Dec 17 00:16:14 2003  Minero Aoki  <aamine@loveruby.net>

	* ext/strscan/strscan.c: new method
	  StringScanner#beginning_of_line? (alias #bol?)

	* ext/strscan/strscan.c: new method StringScanner#concat and #<<.

	* ext/strscan/strscan.c: StringScanner#new(str) does not duplicate
	  nor freeze STR (allow destructive modification).

	* test/strscan/test_stringscanner.rb: test new methods above.

	* test/strscan/test_stringscanner.rb: test destructive string
	  modification.

Tue Dec 16 21:20:47 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pp.rb: don't use local variable `pp'.

	* lib/prettyprint.rb: ditto.

Tue Dec 16 13:20:43 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: condition bug of if statement on
	  {pack,grid}_propagate methods

Tue Dec 16 03:17:29 2003  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml/rubytypes.rb: comments in strings. [ruby-talk:88012]

	* test/yaml/test_yaml.rb: add test.

Tue Dec 16 01:14:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (catch_timer): check rb_thread_crtical in main native
	  thread.

	* eval.c (thread_timer): just sends signals periodically, to
	  prevent main native thread from receiving them in critical
	  section.  [ruby-core:01959]

Mon Dec 15 13:32:22 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (check_dirname): check string safety and remove extraneous
	  trailing directory separators.  [ruby-dev:22279]

	* file.c: renamed and externalized rb_path_next,
	  rb_path_skip_prefix, rb_path_last_separator, rb_path_end.

	* intern.h: prototypes for rb_path_next, rb_path_skip_prefix,
	  rb_path_last_separator, rb_path_end.

Mon Dec 15 09:27:46 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): first argument
	  of rb_protect should take an argument of VALUE.

Sun Dec 14 18:46:48 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/socket/socket.c (Init_socket): IPv6 is not supported although
	  AF_INET6 is defined on MinGW.

	* lib/ipaddr.rb (AF_INET6): workaround in the environment which does
	  not support IPv6.

Sat Dec 13 18:55:16 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/charset_alias.rb: preserve original order.

	* ext/iconv/extconf.rb: remove wrapper file at clean.

Sat Dec 13 18:09:42 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (thread_timer): use timer by sub-thread and nanosleep.
	  [ruby-talk:87519]

	* gc.c (Init_stack): no stack adjustment for THREAD_SAFE.

Sat Dec 13 17:17:59 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_alloc): cache the created object at first time.
	  [ruby-talk:61288], [ruby-dev:22240]

Sat Dec 13 09:01:23 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in: check ucontext.h.

	* eval.c: use getcontext/setcontext() instead of setjmp/longjmp()
	  on ia64 or with native thread enabled.  [ruby-core:01932]

Sat Dec 13 03:09:14 2003  why the lucky stiff  <why@ruby-lang.org>

	* lib/yaml/rubytypes.rb: anonymous struct fix. [ruby-core:01946]

	* test/yaml/test_yaml.rb: add test.

Fri Dec 12 22:36:44 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/csv.rb: add Cell#to_str and Cell#to_s for /.../ =~ aCell,
	  "#{aCell}" and so on.

	* test/csv/test_csv.rb: add tests.

Fri Dec 12 19:33:06 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir): remove trailing `/' from pathes.

	* lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238]

	* lib/fileutils.rb (rmdir_r): ditto.

	* lib/fileutils.rb (fu_copy_dir): check if it is a directory after
	  mkdir(2).

Fri Dec 12 06:06:09 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_invoke): fix class name in warning message for
	  define_method.  [ruby-dev:22235]

Thu Dec 11 21:24:43 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_pkcs12.[ch]: new files. add OpenSSL::PKCS12.

	* ext/openssl/ossl.[ch]: ditto.

	* ext/openssl/MANIFEST: add ossl_pkcs12.[ch].

Thu Dec 11 20:54:28 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir_p): remove trailing `/' befere mkdir(2).
	  mkdir("nonexistdir/") does not work on NetBSD/Alpha 1.6.1.

	* lib/fileutils.rb (fu_list): call to_str for all arguments.

Thu Dec 11 20:07:01 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/ftools.rb (makedirs): sync with fileutils.

Thu Dec 11 19:53:03 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir_p): catch all SystemCallErrors.
	  (mkdir("C:\") causes EACCESS on Windows 2000/NTFS)

Thu Dec 11 19:08:02 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (mkdir_p): check if it is a directory after
	  mkdir(2) instead of before mkdir(2), to avoid race condition.
	  [ruby-talk:87730]
	  Refer: mkinstalldirs sh script, GNU mkdir(1) (coreutils 5.0)

Thu Dec 11 18:49:30 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb: def m( arg ) -> def m(arg).

Thu Dec 11 11:39:43 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (ieeefp.h), numeric.c: needed for finite() on
	  Solaris.  [ruby-core:01921]

	* file.c (rb_stat_inspect): adjust format specifier.

	* parse.c (arg_prepend): nodetype() is for debug use.

	* ruby.h (ISASCII, etc): cast to int to get rid of warning.

	* ruby.h (alloca.h): include even in GCC.  [ruby-core:01925]

	* ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format
	  specifier.

	* ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,
	  BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.

	* ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.

	* ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be
	  volatile.

	* ext/iconv/iconv.c (iconv_convert): ensure actual parameter with
	  format specifier.

	* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not
	  define unless used.

	* ext/pty/pty.c (getDevice): get rid of warning.

	* ext/socket/socket.c (port_str, sock_s_getaddrinfo,
	  sock_s_getnameinfo): FIX2INT() now returns long.

	* ext/socket/socket.c (init_inetsock_internal): uninitialized
	  variable.

	* ext/syck/rubyext.c (syck_parser_assign_io): add prototype.

	* ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use
	  ISDIGIT() instead of isdigit() to avoid warnings and for
	  platforms which don't support non-ascii charater.

Wed Dec 10 19:28:56 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): set EOF flag at short read.
	  [ruby-dev:22223], [ruby-dev:22224]

Wed Dec 10 18:07:25 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/erb.rb: new method ERB#filename(=). [ruby-dev:22208]

Wed Dec 10 17:54:51 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): do not set EOF flag when
	  requested length is zero.  [ruby-dev:22214]

Wed Dec 10 17:17:18 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): should return given string even if data read is
	  empty.  [ruby-dev:22207]

Wed Dec 10 17:16:06 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): adjust behavior at reading
	  beyond EOF to IO.  [ruby-dev:22205]

	* test/ruby/ut_eof.rb (TestEOF::Seek): test behaviors at reading
	  beyond EOF.

	* test/ruby/test_file.rb, test/stringio/test_stringio.rb: include
	  TestEOF::Seek test case.

Wed Dec 10 15:01:19 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* test/monitor/test_monitor.rb (test_cond): use Queue#deq
	  instead of sleep.

Wed Dec 10 14:45:39 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/pty/pty.c (HAVE_SYS_IOCTL_H): need to include <sys/ioctl.h>
	  for TIOCSCTTY on *BSD.  based on gotoyuzo's patch.
	  (ruby-bugs:PR#1211)

	* ext/pty/pty.c (establishShell): should close descriptors if fork
	  failed.

Wed Dec 10 12:53:05 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* win32/win32.h: define execv() using do_aspawn().

	* process.c (proc_exec_v): remove #ifdef's which stopped needing.

Tue Dec  9 23:32:23 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tkdialog.rb,
	  ext/tk/lib/tkentry.rb, ext/tk/lib/tkscrollbox.rb, ext/tk/lib/tktext.rb,
	  ext/tk/sample/tkalignbox.rb, ext/tk/sample/tkcombobox.rb,
	  ext/tk/sample/tkmultilistbox.rb, ext/tk/sample/tkoptdb.rb, ext/tk/sample/tktextframe.rb,
	  ext/tk/sample/demos-en/dialog1.rb, ext/tk/sample/demos-en/dialog2.rb,
	  ext/tk/sample/demos-jp/dialog1.rb, ext/tk/sample/demos-jp/dialog2.rb:
	  overrided instance methods, which are private methods on the super
	  class, are changed to 'private'

Tue Dec  9 19:53:02 2003  akira yamada  <akira@ruby-lang.org>

	* lib/uri/generic.rb (URI::Generic#route_from0): make case insensitive
	  for host-part.

	* test/uri/test_generic.rb (test_route): added tests for the above
	  change.

Tue Dec  9 14:10:48 2003  Tanaka Akira  <akr@m17n.org>

	* io.c (rb_io_check_readable): don't call io_seek if EOF flag is set,
	  to avoid clearing EOF flag.
	  (rb_io_check_writable): ditto.

Tue Dec  9 02:53:55 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkalignbox.rb: new sample script

Tue Dec  9 00:45:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: renamed #assert_raises to #assert_raise
	  and made the former call the latter. [ruby-core:01890]

	* test/testunit/test_assertions.rb: ditto.

Tue Dec  9 00:07:35 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/rpc/standaloneServer.rb: add 'shutdown' and 'status'
	  methods as delegates to WEBrick.

	* test/soap/calc/{test_calc.rb,test_calc2.rb},
	  test/soap/helloworld/test_helloworld.rb,
	  test/wsdl/datetime/test_datetime.rb, test/wsdl/raa/test_raa.rb:
	  follow the change.

Mon Dec  8 22:48:03 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/autorunner.rb: remove dependency to a particular
	  runner.  [ruby-core:01901], [ruby-list:38869]

	* lib/test/unit/ui/testrunnerutilities.rb: moved output level
	  constants from Console.

	* lib/test/unit/ui/console/testrunner.rb: ditto.

	* lib/test/unit/ui/{fox,gtk,gtk2,tk}/testrunner.rb (initialize):
	  accept output_level.

Mon Dec  8 15:03:30 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/syck/syck.c (syck_io_str_read): get rid of buffer overflow.

Mon Dec  8 13:02:11 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/uri/common.rb: new method URI.regexp. [ruby-dev:22121]

	* test/uri/test_common.rb: add test for URI.regexp.

Mon Dec  8 12:44:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c: define swap16 and swap32 only if they are not
	  defined. OpenBSD defines these macros. [ruby-dev:22181]

Sun Dec  7 20:54:17 2003  Tanaka Akira  <akr@m17n.org>

	* ext/iconv/iconv.c (map_charset): make case sensitive.
	  ext/iconv/charset_alias.rb (charset_alias): don't ignore
	  config.charset's information.  sort aliases.

Sat Dec  6 22:58:03 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_start_ssl): new function to wrap
	  SSL_connect and SSL_accept; if SSL_connect (or SSL_accept) returned
	  but not finished the handshake process, we should retry it.

	* ext/openssl/ossl_ssl.c (ossl_ssl_connect): call ossl_start_ssl.

	* ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto.

	* ext/openssl/ossl_ssl.c (ossl_ssl_read): allow signal traps.

Sat Dec  6 21:45:10 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* io.c (flush_before_seek): flush before seek on any platform.

	* configure.in: ditto.

Sat Dec  6 17:23:00 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/soap.rb(SOAP::Env.getenv): allow upcase environment variable
	  as well as downcase one.

	* lib/soap/netHttpClient.rb(SOAP::NetHttpClient#proxy=): check URI.

Fri Dec  5 23:22:30 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises,
	  Test::Unit::Assertions::assert_nothing_raised): use the last
	  argument as message unless class object.

	* test/testunit/test_assertions.rb (test_assert_raises): test for
	  multiple exception list.  [ruby-core:01891]

	* test/testunit/test_assertions.rb (test_assert_nothing_raised): test
	  for non-exception classes.

Fri Dec  5 22:23:04 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/netHttpClient.rb: proxy support did not work.  fixed.

	* lib/soap/property.rb: add class methods for loading property from
	  stream/file/propertyfile.  propertyfile is a file which is located at
	  somedir in $:.

	* lib/soap/soap.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb,
	  lib/wsdl/importer.rb: load property from propertyfile 'soap/property'
	  e.g. /usr/local/lib/ruby/site_ruby/1.8/soap/property.

	* test/soap/test_property.rb, test/soap/test_streamhandler.rb: new file.

Fri Dec  5 17:26:23 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_exec_end_proc): maintain tmp_end_procs.
	  [ruby-dev:22154]

Fri Dec  5 13:36:59 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_exec_end_proc): should not clear end_procs and
	  ephemeral_end_procs before execution. [ruby-dev:22144]

	* eval.c (rb_obj_extend): call Module#extended hook after
	  extended_object.  [ruby-list:38866]

	* object.c (Init_Object): Module#extended defined.

Fri Dec  5 13:17:30 2003  Tanaka Akira  <akr@m17n.org>

	* test/ruby/test_pipe.rb: use IO.pipe instead of IO.popen.

Fri Dec  5 11:54:45 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): follow IO#read.

	* test/ruby/ut_eof.rb, test/ruby/test_file.rb, test/ruby/test_pipe.rb,
	  test/stringio/test_stringio.rb: add EOF test.

Fri Dec  5 02:49:35 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises):
	  allow multiple exception list.  [ruby-core:01884]

	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_nothing_raised):
	  check whether arguments are subclass of Exception.

Thu Dec  4 23:54:00 2003  Rick Ohnemus  <rick.ohnemus@systemware.com>

	* dln.c (aix_loaderror): should not use member named 'errno' which
	  might be a macro (e.g. on AIX).

Thu Dec  4 23:32:26 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): do not depend on lseek position.
	  [ruby-dev:22026]

Thu Dec  4 22:37:26 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): preserve $! value when retry happens in the
	  rescue clause.  [ruby-talk:86697]

Thu Dec  4 21:50:07 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/drb/drb.rb (DRb::DRbMessage::send_request, send_reply):
	  should rescue errors and re-raise DRbConnError on write too.
	  [ruby-dev:22132]

Thu Dec  4 16:41:17 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (exc_list): allow expanding list.  [ruby-dev:22134]

Thu Dec  4 14:09:24 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb (test_cp): test if the error is
	  kind of SystemCallError.  It is needless details that which errno
	  is set on each systems.

Thu Dec  4 13:24:13 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/monitor.rb: use Object#__send__ instead of Object#send.

Thu Dec  4 13:17:45 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/streamHandler.rb: support latest released version of
	  http-access2.

Thu Dec  4 13:04:44 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/soap.rb: add SOAP::Env module for environment repository
	  such as HTTP_PROXY.

	* lib/soap/property.rb: property implementation.

	* lib/soap/streamHandler.rb, lib/soap/wsdlDriver.rb,
	  lib/soap/rpc/driver.rb: use soap/property.rb.

	* lib/wsdl/importer.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb:
	  use SOAP::Env.

	* lib/soap/netHttpClient.rb: add basic_auth, ssl_config, and cookie
	  management interface, but ignored for now.

	* lib/xsd/charset.rb: add XSD::Charset.encoding= interface to set
	  wiredump charset explicitly.  it was fixed to 'utf-8' when iconv or
	  uconv module was found.

Thu Dec  4 10:43:58 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/dl/sym.c (rb_dlsym_guardcall): __declspec(noinline) is VC7
	  feature.

Thu Dec  4 10:27:12 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: update hyperlink to the Japanese document.

Thu Dec  4 09:12:43 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (asn1time_to_time): should check that
	  the underlying value of ASN1_TIME isn't NULL. [ruby-core:01881]

Thu Dec  4 08:29:43 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/server.rb (GenericServer#start): should rescue
	  Exception to avoid unexpected aborting. [ruby-core:01853]

	* lib/webrick/server.rb (GenericServer#start_thread): should check
	  that peeraddr isn't nil before printing.

	* lib/webrick/httpresponse.rb (HTTPResponse#start_thread): should
	  rescue Exception to avoid unexpected aborting of thread.

Thu Dec  4 03:48:59 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#link, Pathname#symlink): obsoleted.
	  (Pathname#make_link, Pathname#make_symlink): new method.

Thu Dec  4 01:45:24 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (argf_read): should not terminate on empty string; wait
	  until real EOF.  [ruby-dev:21969]

	* io.c (argf_read): should adjust length to read, when length is
	  specified and read spans command line argument files.

Wed Dec  3 19:38:36 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: correct fcntl parameter. [ruby-dev:22120]

Wed Dec  3 13:49:07 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: 'format'==>'Kernel.format' (avoid override trouble)

	* ext/tk/lib/tkafter.rb: ditto.

	* ext/tk/lib/tkcanvas.rb: ditto.

	* ext/tk/lib/tkdialog.rb: ditto.

	* ext/tk/lib/tktext.rb: ditto.

Wed Dec  3 13:28:13 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in (lex.c): try gperf first, and copy from the source
	  directory if failed.  [ruby-dev:22123]

	* ext/extmk.rb (MTIMES): let makefiles depend to mkmf.rb.

	* lib/mkmf.rb (configuration): DLDFLAGS was duplicated.

Tue Dec  2 23:18:12 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: wrote the warning about HTTP_PROXY environment
	  variable.

Tue Dec  2 21:31:42 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* bin/testrb: new test runner.  [ruby-core:01845]

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner.run,
	  Test::Unit::AutoRunner#process_args): take test list to run and
	  options.

	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::RUNNERS,
	  Test::Unit::AutoRunner#run): should not exit inside a library,
	  just return the result instead.

	* lib/test/unit.rb: ditto.

	* test/runner.rb: exit with the test result.

Tue Dec  2 20:18:48 2003  Eric Sunshine  <sunshine@sunshineco.com>

	* configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found
	  instead of Bison or byacc.

	* parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least
	  10000 (Bison's default) since some old versions of Yacc define it as
	  low as 150 by default, which is too low for Ruby to parse some files,
	  such as date/format.rb.  Among other issues, the parse problem causes
	  "make test" to fail.

Tue Dec  2 20:03:20 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: check if Pathnames are usable
	  for arguments.

Tue Dec  2 04:22:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: fixed #assert_no_match message.

	* test/testunit/test_assertions.rb: ditto.

Tue Dec  2 00:43:00 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/syck.c: string buffering bug.  decrementing by full
	  max_size now. [ruby-core:01834]

Mon Dec  1 21:33:08 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* numeric.c (num_sadded): prohibit singleton method definition for
	  Numerics.  fill yet another gap between Fixnum and Bignum.

Mon Dec  1 17:33:47 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (htov16): converts endian using swap16. htov32(), hton16,
	  hton32 as well. [ruby-talk:85377]

	* pack.c (swap16): swap 2 bytes no matter how big short is on the
	  platform.  swap32() is also prepared.

	* numeric.c (rb_num2int): returns long to preserve information.
	  rb_fix2int(), rb_num2uint(), rb_fix2uint() as well.
	  [ruby-talk:85377]

	* numeric.c (rb_num2uint): should not check for value range if the
	  source value is negative.

Mon Dec  1 17:14:34 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* sample/optparse/opttest.rb: added.

Mon Dec  1 16:10:52 2003  Dave Thomas  <dave@pragprog.com>

	* lib/rdoc/rdoc.rb: (etc) initial merge into main tree.

Mon Dec  1 14:17:49 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_each_src_dest0): call #to_str to allow
	  Pathname for arguments. [ruby-core:01795]

	* test/fileutils/test_fileutils.rb: does much strict test on
	  "same" files detecting.

Mon Dec  1 09:28:14 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
	  (XCFLAGS): re-export $(XCFLAGS).

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
	  (ARCH_FLAG): export $(ARCH_FLAG) (perhaps empty value).

Mon Dec  1 01:03:27 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/mkmf.rb (TRY_LINK, link_command): added support for DLDFLAGS
	  and ARCH_FLAG.  [ruby-dev:22085]

Sun Nov 30 20:18:07 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: keep ARCH_FLAG separate. export ARCH_FLAG.
	  [ruby-core:01819]

	* Makefile.in: add ARCH_FLAG to CFLAGS.

	* Makefile.in: add @CPPFLAGS@ to CPPFLAGS.

	* lib/mkmf.rb (link_command, cc_command): use ARCH_FLAG.

	* lib/mkmf.rb (configuration): add ARCH_FLAG to DLDFLAGS.

	* Makefile.in: add ARCH_FLAG to DLDFLAGS.

	* configure.in: should put getcwd in AC_CHECK_FUNCS, not
	  AC_REPLACE_FUNCS.  [ruby-core:01826]

Sun Nov 30 18:22:48 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: do not override CCDLDFLAGS, LDFLAGS, XLDFLAGS,
	  DLDFLAGS and LDSHARED.

	* configure.in: XCFLAGS for compiling ruby itself.  ARCH_FLAG is
	  reflected in CFLAGS.

	* lib/mkmf.rb: ditto.  do not import XCFLAGS from config.status.

Sun Nov 30 17:37:36 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: bug fix [ruby-talk:86746]

Sun Nov 30 13:02:00 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/encodingstyle/soapHandler.rb: refactoring - Simplifying
	  Conditional Expressions.

	* lib/wsdl/soap/definitions.rb: refactoring - Move Method.

	* test/xsd/{test_noencoding.rb,noencoding.xml}: new files.  test for
	  encoding unspecified XML file parsing.

	* test/wsdl/{test_fault.rb,map,datetime}: new files.  test of
	  SOAPFault, dateTime and Apache's Map.

Sun Nov 30 09:35:14 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* string.c (rb_str_update): get rid of SEGV at just allocated String.
	  [ruby-core:01812]

Fri Nov 28 23:19:34 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_mark): explicitly check mark recursion levels, instead
	  of unreliable stack length.

Fri Nov 28 22:49:56 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/rinda/rinda.rb: fix TupleSpaceProxy#read, read_all.

Fri Nov 28 21:44:40 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* test/fileutils/test_fileutils.rb (test_ln_s): should be a file, not
	  a directory for FreeBSD.

Fri Nov 28 19:37:56 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* hash.c (env_has_value, env_index): must match exactly.

	* test/ruby/test_env.rb (test_has_value, test_index): condition for
	  aboves.

Fri Nov 28 17:59:20 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/ruby/test_env.rb: add tests for ENV.

Fri Nov 28 17:47:46 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb (DRbMessage#load): rescue Errno::* and raise
	  DRbConnError.

Fri Nov 28 15:41:15 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#realpath): obsolete the force_absolute
	  argument.

Fri Nov 28 14:41:52 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/streamHandler.rb: drop unused http parameters.

	* lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb,
	  lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb,
	  lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken
	  under WSDL dynanic client environment.  fixed.

	* test/wsdl/raa/*: add tests.

	* lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.)
	  bug of soap4r.  XSDDateTimeImple.to_time passed a Float to
	  Time.local/Time.gm as an usec, and NUM2LONG(rb_num2long for Float)
	  causes rounding error.

	* test/soap/test_basetype.rb, test/xsd/test_xsd.rb: add tests.

Fri Nov 28 04:15:24 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (method_arity): used wrong Proc object.  [ruby-talk:86504]

Fri Nov 28 00:47:29 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): treat true as
	  success, false as failure.  [ruby-dev:22067]

	* eval.c (rb_f_abort, rb_thread_switch), process.c (rb_f_system): use
	  ANSI macro instead of hard coded value.

	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): use VALUEs not but
	  TYPEs.

Thu Nov 27 22:05:48 2003  Akinori MUSHA  <knu@iDaemons.org>

	* eval.c, gc.c: FreeBSD/ia64 currently does not have a way for a
	  process to get the base address for the RSE backing store, so
	  hardcode it for the moment.
	  [submitted by: Marcel Moolenaar <marcel@FreeBSD.org>]

Thu Nov 27 17:36:42 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkafter.rb: bug fix on TkTimer#cancel_on_exception=(mode).
	  TkTimer#wait recieves the exception of the callback.
	  The exception is kept on @return_value.

Thu Nov 27 16:58:48 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* win32/win32.c (rb_w32_stat): remove _fullpath() for NUL: device.

Wed Nov 26 15:38:47 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* test/fileutils/test_fileutils.rb (test_ln_s): should take the
	  existing symbolic link for OpenBSD.

Wed Nov 26 04:48:42 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/token.c: removed YYTOKTMP references which
	  were causing buffer overflows on large block scalars,
	  comments, quoted scalars and plain scalars.

	* ext/syck/rubyext.c: dynamic changing of buffer size.

	* ext/syck/syck.h: default buffer size of 4k.

Wed Nov 26 00:55:30 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpresponse.rb: add HTTPResponse#keep_alive=.

	* lib/webrick/httpserver.rb (HTTPServer#run): should pass the
	  request's keep_alive flag to the response.

Tue Nov 25 21:41:35 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* defines.h (ENV_IGNORECASE): should define when DOSISH without
	  human68k. [ruby-dev:22047]

	* hash.c (env_has_value, env_index): don't ignore case of value.
	  [ruby-dev:22048]

Tue Nov 25 21:39:37 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (path_check_1): honor sticky bits always.
	  [ruby-talk:86273]

Tue Nov 25 20:02:14 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: do test in more deep
	  directory.

	* test/fileutils/test_nowrite.rb: ditto.

Tue Nov 25 19:04:23 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): ENV case sensitivity test
	  refined.

Tue Nov 25 18:13:30 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: chdir Dir.tmpdir before each
	  test. [ruby-dev:22045]

	* test/fileutils/test_nowrite.rb: ditto.

Tue Nov 25 17:52:11 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): use http_proxy under CGI
	  if the environment variable is case sensitive.

Tue Nov 25 16:41:33 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb:
	  removed.  this test requires extra libraries in soap4r/1.5.*.

Tue Nov 25 16:24:42 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/**/*.rb, lib/wsdl/**/*.rb, lib/xsd/**/*.rb: changed license;
	  GPL2 -> Ruby's.

	* lib/soap/rpc/driver.rb, lib/soap/wsdlDriver.rb,
	  lib/soap/streamHandler.rb: add interface to streamhandler.

	* lib/soap/marshal.rb: raise error if parse fails.

	* lib/soap/netHttpClient.rb: add https support.  Patched by
	  Oliver M. Bolzer.

	* lib/soap/netHttpClient.rb: dump HTTP response message body by itself.

	* lib/soap/rpc/driver.rb, lib/soap/rpc/proxy.rb,
	  lib/soap/wsdlDriver.rb: add driver#mandatorycharset interface to foce
	  using charset for parsing response from buggy server.

	* lib/soap/encodingstyle/soapHandler.rb: support Apache Axis's half
	  typed multi-ref array.

	* lib/soap/mapping/factory.rb, lib/soap/mapping/registry.rb: map
	  SOAPStruct which has multi-accessors which name are the same, to an
	  array.

	* lib/soap/rpc/element.rb: fixed illegal parameter order.

	* lib/soap/rpc/element.rb: element name of response message could have
	  the name other than 'return'.

	* lib/wsdl/operation.rb, lib/wsdl/operationBinding.rb,
	  lib/wsdl/soap/classDefCreator.rb, lib/wsdl/soap/methodDefCreator.rb,
	  lib/wsdl/soap/methodDefCreatorSupport.rb: WSDL/1.1 allows plural
	  fault definition in a operation. [ruby-talk:84948]

	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb: add
	  test for above fix.

	* lib/wsdl/soap/complexType.rb: support WSDL array definition with
	  maxOccures="unbound".

	* lib/xsd/charset.rb: use cp932 under emx.  Patched by
	  Siena. / SHINAGAWA, Norihide in [ruby-dev:21972]

	* lib/xsd/xmlparser/parser.rb: set @charset nil by default.  Nil means
	  'follow encoding declaration in XML'.

	* sample/soap/digraph.rb, sample/wsdl/amazon/wsdlDriver.rb,
	  sample/wsdl/googleSearch/sampleClient.rb,
	  sample/wsdl/googleSearch/wsdlDriver.rb,
	  test/wsdl/test_emptycomplextype.rb,
	  test/wsdl/marshal/test_wsdlmarshal.rb,
	  test/xsd/test_xmlschemaparser.rb: use File.open(...) { |f| f.read }
	  instead of File.open(...).read. [ruby-dev:21964]

	* test/wsdl/emptycomplextype.wsdl, test/wsdl/test_emptycomplextype.rb:
	  simplify the test case.

	* test/wsdl/axisArray/*: add tests for axis's array encoding.

Tue Nov 25 16:15:29 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ruby.h: don't treat Cygwin as Windows.

Tue Nov 25 15:18:28 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in: change default value of --enable-pthread (default: no)

Tue Nov 25 07:31:16 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (primary): allow newlines just before right argument
	  parenthesis.  (ruby-bugs:PR#1221)

Mon Nov 24 23:32:06 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI.open_loop, URI::HTTP#proxy_open): use
	  catch/throw for redirection instead of exception.
	  (OpenURI.open_loop, OpenURI.redirectable?): restrict redirection.

Mon Nov 24 19:59:48 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): use CGI_HTTP_PROXY
	  instead of HTTP_PROXY in the CGI environment.

Mon Nov 24 19:32:55 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/etc/extconf.rb: check for pw_passwd in struct passwd and
	  gr_passwd in struct group for DJGPP.

	* ext/etc/etc.c: ditto.

	* ext/Setup.dj: support for curses, etc, zlib.

Mon Nov 24 17:00:00 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb: validate option names.
	  :content_length_proc and :progress_proc option implemented.

Mon Nov 24 14:53:10 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
	  (XCFLAGS): output empty value instead of `-DRUBY_EXPORT'.

Sat Nov 22 23:09:45 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: set enable_pthread to no on MinGW.

Sat Nov 22 22:56:20 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in: add --enable-pthread option (default: yes)

Sat Nov 22 22:48:46 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkComposite

	* ext/tk/lib/tkafter.rb: bug fix of TkAfter#start

	* ext/tk/sample/tkcombobox.rb: new sample script

	* ext/tcltklib/tcltklib.c: add native thread check

Sat Nov 22 18:49:47 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/curses/curses.c (window_nodelay): nodelay() of NetBSD's
	  libcruses returns no value, just like keypad().

Sat Nov 22 17:36:36 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
	  (HAVE_GETCWD): output to config.h.

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
	  (XCFLAGS): output to config.status.

Sat Nov 22 13:10:10 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (have_st_ino?): djgpp has valid st_ino.

Sat Nov 22 11:28:48 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (Init_stack): stack region is far smaller than usual if
	  pthread is used.

Sat Nov 22 07:30:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/util/backtracefilter.rb: fixed a bug that occurred
	  when an exception had no backtrace.

	* test/testunit/util/test_backtracefilter.rb: ditto.

Fri Nov 21 16:44:18 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tkentry.rb: fix the encoding trouble of percent
	  substitutions on validatecommand option of TkEntry widget

	* ext/tk/lib/tk.rb: fix bug on {pack|grid}_propagate() method

Fri Nov 21 16:12:11 2003  Akinori MUSHA  <knu@iDaemons.org>

	* ruby.1: Fix markups and grammar.

Fri Nov 21 14:49:42 2003  Minero Aoki  <aamine@loveruby.net>

	* ruby.1: wrote about ruby related environment variables.

Fri Nov 21 12:28:03 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_extended): singleton methods should not be checked
	  when dumping via marshal_dump() or _dump(). [ruby-talk:85909]

Fri Nov 21 01:40:00 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in: check <pthread.h>

	* ruby.h: include pthread.h if existence.
	  define is_ruby_native() macro when not HAVE_NATIVETHREAD

	* eval.c: undef is_ruby_native() function when not HAVE_NATIVETHREAD

Fri Nov 21 00:43:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: use #__send__ instead of #send.

	* lib/test/unit/testcase.rb: ditto.

Thu Nov 20 19:19:22 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in: don't find the Cygwin's pthread library on MinGW.

Thu Nov 20 19:15:50 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (have_st_ino?): emx (OS/2 with EMX) does not
	  have st_ino (always 0). [ruby-dev:21972]

	* lib/fileutils.rb (rename_cannot_overwrite_file?): emx does not
	  allow overwriting files by rename(2).

	* test/fileutils/test_fileutils.rb: windows? ->
	  have_drive_letter?, have_file_perm?

Thu Nov 20 17:50:58 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/tkballoonhelp.rb: new sample script

	* ext/tk/sample/tkmultilistbox.rb: ditto

	* ext/tk/sample/tktextframe.rb: ditto

Thu Nov 20 13:37:34 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ruby.h: define is_ruby_native_thread() for no native thread
	  environment

	* eval.c: ditto

Thu Nov 20 12:42:47 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in: always check existence of the pthread library

	* ruby.h: define macros for ruby's native thread check

	* eval.c: add ruby's native thread check

	* gc.c: ditto

Wed Nov 19 14:45:18 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb (to_ary): print more friendly warning message.

Wed Nov 19 14:32:08 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_same?): add djgpp and wince.

	* lib/fileutils.rb (cannot_overwrite_file?): add wince.

Wed Nov 19 11:04:47 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/fileutils.rb (cannot_overwrite_file?, have_st_ino?): bccwin32
	  is same as mswin32.

Wed Nov 19 07:54:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit.rb: do not run tests if $! is set.

	* lib/test/unit/assertionfailederror.rb: extend StandardError instead
	  Exception (irb catches the former but not the latter).

Tue Nov 18 23:31:36 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* missing/memmove.c (memmove): take void *, not char *.

	* missing.h (memmove): ditto.

	* missing.h (strchr, strrchr): return char *, not int.

Tue Nov 18 22:20:10 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_same?): temporal fix for windows.

Tue Nov 18 19:05:04 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_same?): check by inode instead of path
	  name, to detect two hard links pointing to the same content.

	* test/fileutils.rb: did not create correctly looped symlinks.

Tue Nov 18 18:23:05 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_read): behave as IO at empty string.
	  [ruby-dev:21939], [ruby-dev:21941]

	* ext/stringio/stringio.c (strio_getc, strio_getline): set EOF flag.

	* ext/stringio/stringio.c (strio_rewind, strio_seek, strio_ungetc):
	  clear EOF flag.

	* test/stringio/test_stringio.rb: imported from [ruby-dev:21941].

Tue Nov 18 14:06:35 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/fileutils.rb (fu_each_src_dest): raise if src==dest.
	  [ruby-talk:85344] [ruby-core:01699]

	* lib/fileutils.rb: use Object#is_a? instead of Class#=== to allow
	  e.g. remote objects for receivers.

	* lib/fileutils.rb: FileTest -> File.

	* lib/fileutils.rb: put parentheses for arguments of File.xxxx?

	* test/fileutils/test_fileutils.rb (test_cp): test "cp a a".

	* test/fileutils/test_fileutils.rb (test_mv): test "mv a a".

	* test/fileutils/test_fileutils.rb (test_ln): test "ln a a".

	* test/fileutils/test_fileutils.rb (test_ln_s): test "ln_s a a".

	* test/fileutils/test_fileutils.rb (test_install): test "install a a".

	* test/fileutils/fileasserts.rb: new method assert_symlink.

	* test/fileutils/fileasserts.rb: assert_is_directory -> assert_directory.

Mon Nov 17 19:38:49 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (getcwdofdrv): avoid using getcwd() directly, use
	  my_getcwd() instead.

	* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
	  <sunshine@sunshineco.com>.  [ruby-core:01596]

Mon Nov 17 10:50:27 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Completion::complete): allow least
	  common completion for three or more candidates.

Mon Nov 17 09:41:38 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/ui/tk/testrunner.rb,
	  lib/test/unit/ui/gtk/testrunner.rb:
	  run GUI main loop in sub thread.

	* lib/test/unit/ui/gtk2/testrunner.rb: imported from rough.

	* lib/test/unit/autorunner.rb (keyword_display): sort keywords.

Sun Nov 16 18:10:57 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): iterator should return value from next inside
	  begin/rescue/end.  (ruby-bugs:PR#1218)

Sun Nov 16 13:26:07 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): LINK check earlier than anything else,
	  i.e. do not dump TYPE_IVAR for already dumped objects.
	  (ruby-bugs:PR#1220)

	* eval.c (rb_eval): call "inherited" only when a new class is
	  generated; not on reopening.

	* eval.c (eval): prepend error position in evaluating string to
	  "mesg" attribute string only when it's available and is a
	  string.

Sun Nov 16 12:16:10 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/protocol.rb: logging response body. [experimental]
	  [ruby-list:38800]

Sun Nov 16 10:49:38 2003  Gavin Sinclair  <gsinclair@soyabean.com.au>

	* lib/thread.rb (Thread.exclusive): wrap method definition in
	  class Thread to enable rdoc to process.

Sun Nov 16 09:45:23 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb (set_debug_output): warn if method is called
	  after #start.  [ruby-dev:38798]

Sun Nov 16 04:41:33 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (eval): do not re-raise exception to avoid unnecessary
	  exception copying, instead modify exception and internal
	  information to adjust eval().

	* eval.c (backtrace): can return the current frame information
	  only if lev < -1.

Sat Nov 15 22:16:42 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* /ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext):
	  refine error message.

Sat Nov 15 10:05:40 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI.open_loop, OpenURI::HTTP#proxy_open):
	  refactored to support options.
	  (Buffer): maintain size by this class.

Sat Nov 15 07:40:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_method_node): new API to retrieve method body.

Fri Nov 14 13:21:30 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)

	* ext/tk/lib/tkdialog.rb: TkDialog.new accepts a parent widget
	  argument [ruby-talk:85066]

Thu Nov 13 20:53:35 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (Kernel[#.]open): hard coded URI schemes removed.
	  [ruby-ext:02251]

Thu Nov 13 19:17:00 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* lib/test/unit/ui/tk/testrunner.rb: use grid and panedwindow
	  (if available)

Thu Nov 13 17:56:41 2003  Tanaka Akira  <akr@m17n.org>

	* lib/open-uri.rb (OpenURI.open_uri): use File::RDONLY.
	  reported by Take_tk <ggb03124@nifty.ne.jp>.
	  [ruby-ext:02245]

Thu Nov 13 16:45:53 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509req.c (ossl_x509req_to_der): add function for
	  X509::Request#to_der.

Thu Nov 13 11:31:14 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Completion#complete): prior shorter
	  name to containing longer name.

Thu Nov 13 06:08:54 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: stop freezing some classes

	* ext/tk/lib/multi-tk.rb: ditto.

Wed Nov 12 17:32:49 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/assertions.rb (assert_throws, assert_nothing_thrown):
	  uncaught throw in sub thread raises ThreadError.

	* lib/test/unit/ui/tk/testrunner.rb (setup_ui): "expand" is not
	  necessary.

Wed Nov 12 14:09:43 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* test/monitor/test_monitor.rb: fix the timing problem by Queue.

Wed Nov 12 12:59:44 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* test/monitor/test_monitor.rb: added.

Wed Nov 12 10:14:28 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/monitor.rb: refactored. Thanks, Gennady Bystritsky.

Wed Nov 12 06:11:39 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.c (ossl_x509_sk2ary, ossl_x509crl_sk2ary):
	  add functions to convert STACK into Array.

	* ext/openssl/ossl.h: add prototypes.

	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_set_certificates,
	  ossl_pkcs7_get_certificates, ossl_pkcs7_get_crls,
	  ossl_pkcs7_set_crls): add functions for PKCS7#certificates=
	  PKCS7#certificates, PKCS7#crls= and PKCS7#crls.

Wed Nov 12 00:47:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/ui/testrunnermediator.rb: should require 'test/unit'.

Tue Nov 11 23:54:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/ui/gtk/testrunner.rb: added a rescue clause to handle
	  the case when the requested font is not available.

Tue Nov 11 22:44:08 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (appendline): file may not end with newline.  a bug if
	  READ_DATA_PENDING_PTR is defined. [ruby-talk:84925]

Tue Nov 11 10:42:41 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: raise an exception when creating TkWindow
	  object, because TkWindow class is an abstract class.

Tue Nov 11 03:30:43 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/ext/openssl/ossl_conf.c (ossl_config_get_value): return nil
	  if the specified value doesn't exist.

	* lib/ext/openssl/ossl_conf.c (ossl_config_get_section): return
	  a empty hash if the specified section doesn't exist.

Mon Nov 10 11:40:29 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/monitor.rb (wait): return true on signal/broadcastfalse and
	  false on timeout. Thanks Gennady Bystritsky.

Mon Nov 10 00:07:10 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (primary): primary_value may be 0 when syntax error.
	  [ruby-talk:84893]

Sun Nov  9 02:05:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: un-deprecated #assert_not_nil to
	  maintain symmetry with #assert_nil. Also added better output for
	  #assert_kind_of.

	* test/testunit/tc_assertions.rb: ditto.

Sat Nov  8 18:50:20 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/wsdl/raa/*: add new testcase for WSDL loading, parsing and
	  reading.

	* test/soap/marshal/*: backport from soap4r/1.5.1.  all differences are
	  for ruby/1.6.

	* lib/soap/*: backport from soap4r/1.5.1.  all differences are for
	  ruby/1.6.

	* lib/wsdl/data.rb, lib/wsdl/xmlSchema/data.rb: move definition of
	  ArrayTypeAttrName from ::WSDL::XMLSchema::* to ::WSDL::*.
	  [ruby-talk:84813]

	* lib/wsdl/soap/definitions.rb: element name typo in custom exception
	  struct definition which is needed for wsdlDriver; camelCase ->
	  underscore_name.

Sat Nov  8 13:49:50 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in: improvement of pthread check

Sat Nov  8 13:28:46 2003  Takaaki Tateishi  <ttate@ttsky.net>

	* ext/dl/sym.c: Add DL.win32_last_error and DL.last_error.
	  Thanks, Kaoru Shirai.

Sat Nov  8 06:19:38 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,
	  TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only
	  (queueing a handler to the EventQueue).

	* ext/tcltklib/README.1st: edit the description of '--with-pthread-ext'

Fri Nov  7 23:23:04 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (Pathname#+): if self or the argument is `.', return
	  another.
	  (Pathname#parent): if self is `.', return `..'.
	  (Pathname#children): if self is `.', don't prepend self for a
	  pathname in a result.
	  (Pathname#join): re-implemented using Pathname#+.
	  (Pathname#find): if self is `.', remove `./' prefix of yielding
	  pathname.

Fri Nov  7 10:23:24 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/socket.c (make_hostent): get rid of SEGV on aliases
	  lookup failure.  (ruby-bugs:PR#1215)

Fri Nov  7 04:08:05 2003  UENO Katsuhiro  <katsu@blue.sky.or.jp>

	* ext/zlib/zlib.c (Init_zlib): define Zlib::GzipReader#each_line as
	  an alias of Zlib::GzipReader#each.

Fri Nov  7 01:03:16 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_load): save and restore rb_prohibit_interrupt.
	  [ruby-dev:21857]

Thu Nov  6 18:05:07 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* io.c (rb_io_inspect): show the path also at a closed file.
	  [ruby-dev:21851]

Thu Nov  6 11:42:07 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/stringio/stringio.c (strio_set_string, strio_reopen): check
	  tainted.

	* ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write,
	  strio_putc): add infection.

	* ext/stringio/stringio.c (strio_path): just nil.  [ruby-dev:21846]

	* ruby.c (proc_options): reserve searched script path in the
	  source file name table.  [ruby-list:38765]

	* lib/optparse.rb (OptionParser::Completion#complete): default not to
	  ignore case on completion.  [ruby-talk:84726]

	* win32/win32.c (make_cmdvector): process backslashes even if a quote
	  is not enclosed.

Wed Nov  5 23:49:45 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* sample/openssl/gen_csr.rb: there (at least) is a CA which does not
	  accept DN in UTF8STRING format.  it's a sample.

Wed Nov  5 22:55:16 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* configure.in, eval.c, signal.c: : add '--with-pthread-ext'
	  option to fix the pthread trouble on 'tcltklib'

	* ext/tcltklib/README.1st: add the description of '--with-pthread-ext'

	* ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste
	  to support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste

	* ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's
	  tk_menuSetFocus

Wed Nov  5 17:33:45 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_load): allow interrupt during loaded program
	  evaluation.  [ruby-dev:21834]

	* hash.c (rb_hash_fetch): always warn if default argument and a
	  block are supplied at the same time. [ruby-dev:21842]

	* hash.c (env_fetch): ditto.

	* array.c (rb_ary_fetch): ditto.

Wed Nov  5 19:08:47 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (OptionParser::Switch::PlacedArgument::parse):
	  do not remove next argument if empty value is placed.

	* test/optparse: added.

Wed Nov  5 17:05:18 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/ui/gtk/testrunner.rb: typo.

Wed Nov  5 11:13:32 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* string.c: add #include "version.h". this file still depends on it.

	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
	  wince/Makefile.sub: add version.h dependency to string.c.

Wed Nov  5 09:14:23 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/monitor.rb: revert to the previous revision.

Wed Nov  5 08:39:51 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/https.rb (HTTPRequest#parse): set @client_cert_chain.

	* lib/webrick/https.rb (HTTPRequest#meta_vars): create
	  SSL_CLIENT_CERT_CHAIN_n from @client_cert_chain.

	* ext/openssl/ossl_ssl.c (ossl_ssl_get_peer_cert_chain): return nil
	  if no cert-chain was given.

Tue Nov  4 23:44:48 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:
	  remove needless version.h dependency.

Tue Nov  4 23:38:43 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* class.c, hash.c, string.c: remove #include "version.h".

	* Makefile.in: remove needless version.h dependency.

Tue Nov  4 06:54:52 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (read_all): fptr->f may be NULL, if IO is closed in the
	  signal handler.

	* io.c (io_read): ditto.

	* string.c (get_pat): remove 1.8.0 warning code.

	* string.c (rb_str_match): extend warning until 1.8.2.

	* string.c (rb_str_match2): ditto.

	* class.c (class_instance_method_list): remove 1.8.0 warnings.
	  method_list now recurs.  [ruby-dev:21816]

	* class.c (rb_obj_singleton_methods): ditto.

	* array.c (rb_ary_select): remove select with block.
	  [ruby-dev:21824]

	* hash.c (rb_hash_select): ditto.

	* hash.c (env_select): ditto.

	* re.c (match_select): ditto.

	* struct.c (rb_struct_select): ditto.

Mon Nov  3 22:53:21 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/racc/parser.rb: synchronize with Racc 1.4.4.

	* ext/racc/cparse/cparse.c: ditto.

	* ext/racc/cparse/cparse.c (parse_main): should abort when
	  the length of LR state stack <=1, not ==0.

Mon Nov  3 08:50:47 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* process.c (check_uid_switch): remove duplicated error messages.

	* process.c (check_gid_switch): ditto.

Sun Nov  2 02:28:33 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/ssl.rb: new option :SSLExtraChainCert.

Sun Nov  2 01:02:04 2003  Akinori MUSHA  <knu@iDaemons.org>

	* string.c (rb_str_hash): Update the HASH_PERL alternative hash
	  algorithm in sync with Perl 5.8.

	* st.c (strhash): Ditto.

Sat Nov  1 18:21:09 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method
	  SSLSocket#peer_cert_chain.

	* ext/openssl/ossl_x509req.c (GetX509ReqPtr): new function
	  which returns underlying X509_REQ.

	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_issuer_cert,
	  ossl_x509extfactory_set_subject_cert, ossl_x509extfactory_set_crl,
	  ossl_x509extfactory_set_subject_req, ossl_x509extfactory_set_config):
	  use underlying C struct without duplication not to leak momory.

Sat Nov  1 01:49:03 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/mapping/factory.rb: mark marshalled basetype objects when
	  @allow_original_mapping is true.  multi-referencing basetype node is
	  prohibited in SOAP/1.1 encoding but soap4r's original ruby object
	  mapping requires basetype to be marked to detect self referencing
	  loop.  e.g. o = 1; o.instance_eval { @iv = o }  soap4r's original
	  mapping is only used through soap/marshal API.

	* test/soap/marshal/test_marshal.rb: add tests for self referencing
	  immutable objects.

	* test/soap/calc/test_calc_cgi.rb: fix test name.

Fri Oct 31 22:26:29 2003  Takaaki Uematsu  <uema2x@jcom.home.ne.jp>

	* wince/string_wce.c (strrchr): should decrement pointer.

	* wince/Makefile.sub: correct a range of isdigit().

Fri Oct 31 12:55:24 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* configure.in, lib/mkmf.rb: add RPATHFLAG for NetBSD.
	  [ruby-dev:21791]

	* bcc32/Makefile.sub, win32/Makefile.sub, win32/Makefile.sub: ditto.

Fri Oct 31 01:38:14 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* wince/Makefile.sub, win32/Makefile.sub (.y.c): allow white spaces
	  at the beginning of line to remove by sed. (ruby-bugs-ja:PR#580)

Fri Oct 31 01:02:24 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* compar.c (cmp_equal): protect exceptions from <=> comparison
	  again.  returns nil if any exception or error happened during
	  comparison.

	* eval.c (search_required): should update *featurep when DLEXT2 is
	  defined. (ruby-bugs-ja:PR#581)

Thu Oct 30 23:41:04 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/drb.rb: add DRbArray

	* lib/drb/invokemethod.rb: fix Hash#each problem. [ruby-dev:21773]

	* lib/drb/unix.rb: add LoadError. [ruby-dev:21743]

Thu Oct 30 23:19:11 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/generator.rb: better XML pretty printing.

	* lib/soap/encodingstyle/soapHandler.rb: remove unnecessary namespace
	  assignment in the element which has "encodingStyle" attribute, and
	  add necessary namespace assignment for "arrayType" attribute.

	* test/soap/calc/test_calc_cgi.rb: take over $DEBUG to ruby process
	  through CGI.

Thu Oct 30 22:59:39 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/yaml2byte.c: HASH const too long.  Thanks, matz.

Thu Oct 30 19:13:53 2003  Akinori MUSHA  <knu@iDaemons.org>

	* ext/syck/MANIFEST: Add yamlbyte.h.

Thu Oct 30 14:25:31 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (READ_DATA_BUFFERED): new macro to detect whether stdio
	  buffer filled.

	* io.c (rb_io_fptr_cleanup): move path deallocation to
	  rb_io_fptr_finalize (finalizer called by GC).

Thu Oct 30 13:23:39 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (logop): left may be NULL. [ruby-talk:84539]

	* eval.c (rb_eval): NODE_CASE nd_head may be NULL.

Thu Oct 30 10:14:51 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/test/unit/autorunner.rb: make fox runner work.

Thu Oct 30 09:32:26 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* process.c (rb_f_system): fixed lack of security check before
	  calling do_spawn() on win32. [ruby-talk:84555]

Thu Oct 30 02:46:35 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): single array value to normal Proc#call
	  (i.e. not via lambda call), should be treated just like yield.
	  [ruby-dev:21726]

Thu Oct 30 02:25:48 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/buffering.rb (Buffering#initialize):
	  add new method to inherit @sync from @io.sync.

	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): no need to
	  set sync flag explicitly.

	* ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): call super.

	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): set extra chain
	  certificates in @extra_chain_cert.

Wed Oct 29 22:02:04 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/drb/drbtest.rb: use rbconfig.rb to make the path of ruby
	  interpreter to exec, instead of test/ruby/envutil.rb,

Wed Oct 29 19:58:59 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is not
	  defined and TCL_MAJOR_VERSION >= 8.

	* ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc,
	  rb_threadVwaitProc): use CONST84 instead of CONST.

	* ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand,
	  ip_rb_threadTkWaitCommand): use CONST84 always.

Wed Oct 29 17:27:05 2003  Tanaka Akira  <akr@m17n.org>

	* re.c (rb_reg_s_union, Init_Regexp): new method `Regexp.union'.

	* lib/pathname.rb (realpath): examine Dir.pwd because it may have
	  symlinks.

Wed Oct 29 17:16:31 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_longjmp): must not disturb original jump.
	  [ruby-dev:21733]

Wed Oct 29 15:28:34 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (Init_Proc): taint preallocated exception object
	  sysstack_error. [ruby-talk:84534]

Wed Oct 29 11:27:39 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (ret_args): node may be NULL. [ruby-talk:84530]

Tue Oct 28 15:20:12 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,
	  WaitVariableProc, WaitVisibilityProc, WaitWindowProc,
	  ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc,
	  rb_threadWaitVisibilityProc, rb_threadWaitWindowProc,
	  ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype;
	  avoid VC++ warnings.

Mon Oct 27 19:19:55 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_longjmp): ignore reentering error while warning.
	  [ruby-dev:21730]

Mon Oct 27 00:23:50 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_ruby): bug fix on Win : hang-up when
	  calling 'exit' in the Tk callback procedure. [ruby-list:38656]

Sat Oct 25 09:18:04 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_method_missing): protect exception from within
	  "inspect".  (ruby-bugs:PR#1204)

Fri Oct 24 23:26:34 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* hash.c (rb_hash_each): Hash#each should yield single value.
	  [ruby-talk:84420]

	* hash.c (env_each): ditto for ENV.each.

Thu Oct 23 20:25:32 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/server.rb (GenericServer#start): should rescue
	  IOError from IO::accept. [ruby-dev:21692]

Thu Oct 23 17:59:36 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_cleanup): initialize stack bottom for embedding.
	  [ruby-dev:21686]

	* ext/dl/extconf.rb: move list of files to clean from DEPEND file,
	  to get rid of macro redefinitions.

Thu Oct 23 13:44:00 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y: integrate operations for stack_type.  [ruby-dev:21681]

Thu Oct 23 00:41:45 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/calc/*, test/soap/helloworld/*: set logging threshold
	  to ERROR.

Wed Oct 22 12:53:31 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
	  ignore tests which raised LoadError.

	* test/drb/drbtest.rb, test/ruby/test_beginendblock.rb,
	  test/ruby/test_system.rb: avoid requiring same file twice.

	* test/drb/test_drbssl.rb, test/drb/test_drbunix.rb: should not use
	  ARGV unless invoked directly.  do not create test cases unless
	  required libraries are available.

Wed Oct 22 02:31:34 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (ruby_cleanup): should not ignore exit_value in END
	  execution. [ruby-dev:21670]

Tue Oct 21 23:16:26 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (ruby_cleanup): call finalizers and exit procs before
	  terminating threads.

	* eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().

Tue Oct 21 15:57:11 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
	  prepend the directory of target file to the load path.

Tue Oct 21 15:08:53 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (do_spawn, do_aspawn): should wait child process even
	  if callded with P_OVERLAY.

	* win32/win32.c (do_spawn, do_aspawn): should return child's exit
	  status to parent.

Tue Oct 21 00:35:02 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/calc/*, test/soap/helloworld/*: catch the exception from
	  test server thread and recover.

Tue Oct 21 00:22:57 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* test/drb/*: import drb/runit.

Mon Oct 20 23:55:47 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): set current node after arguments evaluation.
	  [ruby-dev:21632]

	* eval.c (rb_yield_0): set current node and keep it at local jump.

Mon Oct 20 22:01:18 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_cleanup): keep thread group for main thread.
	  [ruby-dev:21644]

Mon Oct 20 18:28:10 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_catch): backout.

Mon Oct 20 17:31:46 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
	  destination.

	* eval.c (localjump_destination): use unique number in ruby_frame
	  for localjump destination.

Mon Oct 20 11:31:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ruby/test_signal.rb (test_signal): restore old trap.

Mon Oct 20 11:00:46 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (gc_sweep): loosen page free condition to avoid add_heap()
	  race condition. [ruby-dev:21633]

	* gc.c (gc_sweep): do not update malloc_limit when malloc_increase
	  is smaller than malloc_limit.

Mon Oct 20 09:45:12 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* lib/debug.rb (debug_command): remove debug print.

Wed Oct 20 00:25:41 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (search_required): required name must not be changed before
	  loading.  [ruby-dev:24492]

Sun Oct 19 13:12:30 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (foreachline, dir_foreach): add obsolete warning.

Sun Oct 19 00:14:22 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/calc/*, test/soap/helloworkd/*: changed port# of test
	  server. (17171)

Sat Oct 18 23:01:32 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* missing/acosh.c (DBL_MANT_DIG): typo fix(ifdef -> ifndef).

Sat Oct 18 05:48:59 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/rubyext.c: YAML::Syck::compile method.

	* ext/syck/syck.c: Buffer edge bug.

	* ext/syck/yaml2byte.c: YAML to bytecode converter.

	* ext/syck/yamlbyte.h: Ditto.

	* ext/syck/bytecode.c: Bytecode parser fixes to empty collections
	  and empty strings.

	* ext/syck/token.c: Ditto.

Fri Oct 17 23:07:38 2003  Akinori MUSHA  <knu@iDaemons.org>

	* ext/enumerator/enumerator.c, ext/enumerator/enumerator.txt:
	  Provide Kernel#to_enum as an alias for Kernel#enum_for.  Maybe
	  this is a better name.

Fri Oct 17 23:00:30 2003  Akinori MUSHA  <knu@iDaemons.org>

	* lib/generator.rb: Add rdoc documentation.

Fri Oct 17 22:16:42 2003  Akinori MUSHA  <knu@iDaemons.org>

	* lib/set.rb: Reword and fix Overview.

	* lib/set.rb: It is not necessary to require
	  'test/unit/ui/console/testrunner'.

Fri Oct 17 11:15:22 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* test/ruby/test_range.rb: added.

	* MANIFEST: add test/ruby/test_range.rb.

Fri Oct 17 03:21:23 2003  William Sobel  <will.sobel@barra.com>

	* ext/socket/socket.c (make_hostent): h_aliases may be NULL.
	  (ruby-bugs:PR#1195)

	* ext/socket/socket.c (sock_s_gethostbyaddr): ditto.

Fri Oct 17 00:12:41 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: (bug fix) instance variable @frame was used
	  without initializing on TkComposite module.

Thu Oct 16 23:51:04 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: If $DEBUG == true and some exception is caused
	  in a callback operation, Ruby/Tk shows a (verbose) backtrace
	  information on the callback process.

Thu Oct 16 17:09:19 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/debug.rb (DEBUGGER__::Context::debug_command): do not call
	  debug_silent_eval() when $1 is not set. (ruby-bugs:PR#1194)

Thu Oct 16 16:54:57 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (rb_str_upto): ("a"..."a").to_a should return [].
	  [ruby-core:01634]

Thu Oct 16 16:40:51 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb:
	  Add Tk::EncodedString and Tk::UTF8_String class to support
	  characters using the \uXXXX escape to the UNICODE string.

	* ext/tk/sample/{demos-en,demos-jp}/unicodeout.rb
	  new demo-scripts (samples of Tk::UTF8_String)

	* ext/tk/sample/{demos-en,demos-jp}/widget
	  add entries for 'unicodeout.rb'

Thu Oct 16 08:38:06 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/digest/test_digest.rb (test_eq): show failed class.

	* test/ruby/test_iterator.rb (test_break, test_return_trace_func):
	  test localjump destination.

Wed Oct 15 20:22:31 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/netHttpClient.rb: use URI::HTTP#request_uri instead of
	  instance_eval('path_query').  [ruby-list:38575]

Wed Oct 15 17:24:45 2003  URABE Shyouhei  <root@mput.dip.jp>

	* lib/cgi.rb (CGI::Cookie): tiny typo fix.

Wed Oct 15 15:00:54 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_run): just return FAILURE instead of parse error
	  count.  [ruby-list:38569]

Wed Oct 15 13:17:02 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/digest/digest.c (rb_digest_base_alloc): need to initialize
	  buffer. [ruby-dev:21622]

Wed Oct 15 11:23:05 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): dump extended modules as well.

	* marshal.c (r_object0): TYPE_USRMARSHAL should restore extended
	  modules before invoking marshal_load.  these two fixes are done
	  by Masatoshi Seki <m_seki@mva.biglobe.ne.jp>.

Wed Oct 15 09:30:34 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/enumerator/enumerator.c (enumerator_each): avoid VC++ warning.

	* ext/syck/syck.h: include stdio.h for definition of FILE.

Wed Oct 15 08:09:07 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/bytecode.c: Checkin of YAML bytecode support.

	* ext/syck/gram.c: Ditto.

	* ext/syck/syck.c: Ditto.

	* ext/syck/token.c: Ditto.

	* ext/syck/handler.c: Ditto.

	* ext/syck/handler.c: Now using 'tag' rather than 'taguri' in type URIs.

	* ext/syck/rubyext.c: Ditto (on both counts).

Wed Oct 15 05:05:53 2003  Akinori MUSHA  <knu@iDaemons.org>

	* lib/generator.rb: A new library which converts an internal
	  iterator to an external iterator.

	* lib/abbrev.rb: A new library which creates an abbreviation table
	  from a list.

Wed Oct 15 04:31:51 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/sample/demos-en/entry3.rb, ext/tk/sample/demos-jp/entry3.rb :
	  new demo-scripts

	* ext/tk/sample/demos-en/widget, ext/tk/sample/demos-jp/widget :
	  add entries for 'entry3.rb'

Wed Oct 15 04:31:47 2003  Akinori MUSHA  <knu@iDaemons.org>

	* test/digest/test_digest.rb: Moved from ext/digest/test.rb.

Wed Oct 15 03:53:20 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/tk.rb: fixed trouble on auto-load Tcl commands (enbug
	  on the last commit).

Wed Oct 15 00:25:00 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (yylex): argument parentheses preceded by spaces should
	  be warned; not error.  [ruby-talk:84103]

Wed Oct 15 00:20:15 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c: replace Tcl/Tk's vwait and tkwait to
	  switch on threads smoothly and avoid seg-fault.

	* ext/tcltklib/tcltklib.c: add TclTkIp._thread_vwait and
	  _thread_tkwait for waiting on a thread. (Because Tcl/Tk's vwait
	  and tkwait command wait on an eventloop.)

	* ext/tk/lib/multi-tk.rb: support TclTkIp._thread_vwait and
	  _thread_tkwait.

	* ext/tk/lib/tk.rb: now, TkVariable#wait has 2 arguments.
	  If 1st argument is true, waits on a thread. If false, waits on
	  an eventloop. If 2nd argument is true, checks existence of
	  rootwidgets. If false, doesn't. Default is wait(true, false).

	* ext/tk/lib/tk.rb: add TkVariable#tkwait(arg) which is equal to
	  TkVariable#wait(arg, true). wait_visibility and wait_destroy
	  have an argument for waiting on a thread or an eventloop.

	* ext/tk/lib/tk.rb: improve of accessing Tcl/Tk's special variables.

	* ext/tk/lib/tkafter.rb: support 'wait on a thread' and 'wait on
	  an eventloop'.

Wed Oct 15 00:10:24 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of
	  SOAPBasetype and SOAPCompoundtype.

	* lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:
	  Encoding methods signature change.  Pass SOAPGenerator as a parameter.

	* lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring
	  for better marshalling/unmarshalling support.  Now I think SOAP
	  marshaller supports all kind of object graph which is supported by
	  Ruby's original marshaller.  Of course there could be bugs as always.
	  Find it.  :-)

	* lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO.
	  DEBUG is too noisy.

	* lib/xsd/datatypes.rb: DateTime#of is obsoleted.  Use DateTime#offset.

	* test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid
	  useless warning.

Tue Oct 14 19:09:35 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (ruby_finalize_0): return the given exit status unless
	  SystemExit got raised.

Tue Oct 14 11:53:49 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h (ruby_stop): never return.

	* ruby.h (ruby_run): ditto.

Tue Oct 14 04:43:55 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (realpath): make ELOOP check bit more robust.
	  (children): prepend self by default.
	  (chroot): obsoleted.

Tue Oct 14 02:29:31 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_require_safe): segfault after loading .so.

Tue Oct 14 02:05:23 2003  Akinori MUSHA  <knu@iDaemons.org>

	* ext/Setup*, ext/enumerator/*: Add ext/enumerator, a helper
	  module for the Enumerable interface.

Mon Oct 13 23:55:59 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* test/ruby/envutil.rb: use Config::CONFIG["ruby_install_name"],
	  not "ruby".

Mon Oct 13 23:57:29 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_feature_p): match by classified suffix.

	* eval.c (rb_require_safe): require library in the specified safe
	  level.

	* variable.c (rb_autoload, rb_autoload_load): restore safe level
	  when autoload was called.  [ruby-dev:21338]

	* intern.h: prototypes; rb_require_safe.

	* test/runner.rb: accept non-option arguments.

Mon Oct 13 20:49:51 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_new4): should not preserve FL_TAINT status in the
	  internal shared string. [ruby-dev:21601]

	* string.c (rb_str_new4): ditto.

	* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.

	* process.c: ditto. [ruby-list:38521]

Mon Oct 13 19:51:02 2003  Koji Arai  <jca02266@nifty.ne.jp>

	* lib/debug.rb (debug_command): should enter emacs mode when
	  assigned any value to the environment variable "EMACS".
	  On Meadow, (getenv "EMACS") is "meadow".

Sun Oct 12 14:45:03 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/win32ole/extconf.rb: check "windows.h", not "windows".
	  [ruby-talk:84051]

Sat Oct 11 20:41:03 2003  Corinna Vinschen  <corinna@vinschen.de>

	* file.c (eaccess): Use access(2) on Cygwin.

Sat Oct 11 17:09:21 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/rexml/quickpath.rb (REXML::QuickPath::match):
	  escape '[' to avoid warning.

Sat Oct 11 16:08:41 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (realpath): check existence of the file.

	* lib/pathname.rb (realpath): re-implemented.
	  (realpath_root?, realpath_rec): removed

Sat Oct 11 10:19:39 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* lib/monitor.rb: handle exceptions correctly. Thanks, Gennady
	  Bystritsky.

Fri Oct 10 07:50:54 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (is_defined): inheritance line adjustment as like as
	  rb_call_super().

Fri Oct 10 01:19:00 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): add
	  optional argument to specify the DirectoryString type
	  (ASN1::UTF8STRING by default). RFC3280 deprecates PrintableString
	  for DirectoryString, and strongly requires to use UTF8String for
	  all certificates issued after December, 31 2003.

	* ext/openssl/lib/openssl/x509.rb (X509::Name::parse): ditto.

Thu Oct  9 23:50:21 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_start_0): prevent thread from GC.
	  [ruby-dev:21572]

Thu Oct  9 19:11:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_start_0): non-volatile should be restored from
	  volatile.

Thu Oct  9 17:43:36 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (proc_save_safe_level, proc_get_safe_level,
	  proc_set_safe_level): save/restore safe level 1..4.

Thu Oct  9 16:33:23 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (r_object0): remove unnecessary iv restoration for
	  USRMARSHAL. [ruby-dev:21582]

	* marshal.c (w_object): dump generic instance variables from
	  a string from '_dump'.

	* variable.c (rb_generic_ivar_table): return 0 if obj's FL_EXIVAR
	  is not set.

	* time.c (time_dump): copy instance variables to dumped string, to
	  be included in the marshaled data.

	* bignum.c (rb_big2ulong): add range check to ensure round trip.

Thu Oct  9 15:45:27 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* pack.c (uv_to_utf8): change message to "out of range", since
	  negative values are not "too big". [ruby-dev:21567]

Thu Oct  9 14:05:38 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_set_end_proc, rb_exec_end_proc): restore safe level.
	  [ruby-dev:21557]

Thu Oct  9 10:51:04 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_yield_0): no error if block is empty.

Thu Oct  9 06:43:33 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (localjump_error): id should be ID.

	* eval.c (rb_eval): nd_rval is set in copy_node_scope().

	* eval.c (rb_yield_0): unused variable.

	* eval.c (rb_yield_0): nothing to do for empty node.

	* eval.c (call_end_proc, proc_invoke): adjust backtrace in END.
	  [ruby-dev:21551]

	* eval.c (rb_thread_start_0): set the value by break as the result.
	  [ruby-dev:21552]

	* eval.c (rb_thread_start_0, rb_thread_raise, rb_callcc): save
	  variables across THREAD_SAVE_CONTEXT.

Thu Oct  9 12:05:46 2003  Eric Sunshine  <sunshine@sunshineco.com>

	* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
	  had become unbuildable; enhanced --enable-fat-binary option so that
	  it accepts a list of desired architectures (rather than assuming a
	  fixed list), or defaults to a platform-appropriate list if user does
	  not provide an explicit list; made the default list of architectures
	  for MAB (fat binary) more comprehensive; now uses -fno-common even
	  when building the interpreter (in addition to using it for
	  extensions), thus allowing the interpreter to be embedded into a
	  plugin module of an external project (in addition to allowing
	  embedding directly into an application); added checks for
	  <netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
	  ensures that -I/usr/local/include is employed when extensions'
	  extconf.rb scripts invoke have_header() since extension checks on
	  NextStep and OpenStep will fail without it if the desired resource
	  resides in the /usr/local tree; fixed formatting of --help message.

	* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
	  invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
	  (see configure's --enable-fat-binary option); added rule for new
	  missing/getcwd.c.

	* defines.h: fixed endian handling during MAB build (see configure's
	  --enable-fat-binary option) to ensure that all portions of the
	  project see the correct WORDS_BIGENDIAN value (some extension modules
	  were getting the wrong endian setting); added missing constants
	  GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
	  and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
	  define in NeXT section.

	* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
	  NextStep since, on some installations, this value always resolves
	  uselessly to zero.

	* dln.c: added error reporting to NextStep extension loader since the
	  previous behavior of failing silently was not useful; now ensures
	  that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
	  for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
	  on Rhapsody since this header lacks multiple-include protection,
	  which resulted in "redefinition" compilation errors.

	* main.c: also create hard reference to objc_msgSend() on NeXT
	  platforms (in addition to Apple platforms).

	* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
	  makefiles so that extensions can be built MAB (see configure's
	  --enable-fat-binary option); also utilize XCFLAGS in cc_command()
	  (but not cpp_command() because MAB flags are incompatible with
	  direct invocation of `cpp').

	* ext/curses/extconf.rb: now additionally checks for presence of these
	  curses functions which are not present on NextStep or Openstep:
	  bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
	  setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
	  wscrl(), wsetscrreg()

	* ext/curses/curses.c: added appropriate #ifdef's for additional set of
	  curses functions now checked by extconf.rb; fixed curses_bkgd() and
	  window_bkgd() to correctly return boolean result rather than numeric
	  result; fixed window_getbkgd() to correctly signal an error by
	  returning nil rather than -1.

	* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
	  pointers before invoking rb_tainted_str_new2() upon fields extracted
	  from `struct passwd' and `struct group' since null pointers in some
	  fields are common on NextStep/OpenStep (especially so for the
	  `pw_comment' field) and rb_tainted_str_new2() throws an exception
	  when it receives a null pointer.

	* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
	  platforms such as NextStep and OpenStep which lack strdup().

	* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
	  gethostbyaddr(), and gethostbyname() from (const char*) to non-const
	  (char*) for older platforms such as NextStep and OpenStep.

	* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
	  platforms such as NextStep and OpenStep which lack strdup(); include
	  <netinet/in_systm.h> if present for NextStep and OpenStep; cast first
	  argument of gethostbyaddr() and getservbyname() from (const char*) to
	  non-const (char*) for older platforms.

	* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
	  platforms such as NextStep and OpenStep which lack strdup().

Wed Oct  8 22:19:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit.rb: removed installation instructions.

	* lib/test/unit/ui/testrunnermediator.rb: moved the run flag to a more
	  central location.

	* lib/test/unit.rb: ditto.

	* lib/test/unit.rb: extracted the running code in to AutoRunner.

	* lib/test/unit/autorunner.rb: added.

	* lib/test/unit/collector/objectspace.rb: extracted common test
	  collection functionality in to a module.

	* lib/test/unit/collector.rb: ditto; added.

	* test/testunit/collector/test_objectspace.rb: ditto.

	* lib/test/unit/collector/dir.rb: added. Supports collecting tests out
	  of a directory structure.

	* test/testunit/collector/test_dir.rb: added.

	* test/runner.rb: simplified to use the new capabilities.

Tue Oct  7 15:23:09 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_beginendblock.rb: add tests for nested BEGIN/END.

	* test/ruby/beginmainend.rb: add tests for nested BEGIN/END.

	* test/ruby/endblockwarn.rb: new file added to test of END-in-method
	  warning.

Tue Oct  7 12:23:47 2003  Tanaka Akira  <akr@m17n.org>

	* ext/fcntl/fcntl.c (Init_fcntl): define Fcntl::O_ACCMODE.

	* ext/socket/extconf.rb: useless assignment removed.

Tue Oct  7 09:13:24 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ruby/test_beginendblock.rb (test_endinmethod): END{} is now
	  allowed in eval.

Tue Oct  7 04:15:25 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (stmt): should not expand mrhs if lhs is solely starred.

Tue Oct  7 02:57:53 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (stmt): rhs of multiple assignment should not be
	  expanded using "to_a". [ruby-dev:21527]

Tue Oct  7 01:42:34 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): use appropriate
	  free function for ASN1_OBJECT.

	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_sn): add new function for
	  ASN1::ObjectId#sn; it returns short name text representation of OID.

	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_ln): add new function for
	  ASN1::ObjectId#ln; it returns long name text representation of OID.

	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_oid): add new function for
	  ASN1::ObjectId#oid; it returns numerical representation of OID.

Mon Oct  6 22:59:46 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/csv.rb (IOReader, BasicWriter): call binmode when a given IO
	  respond_to?(:binmode).  record separator was wrong when you gave
	  text mode IO to Reader.parse and Writer.generate.

	* test/csv/test_csv.rb: add tests for above change.

Sun Oct  5 23:27:09 2003  Tanaka Akira  <akr@m17n.org>

	* ext/socket/extconf.rb: check recvmsg even if sendmsg is exists.

	* ext/socket/socket.c (thread_read_select): restored.

Mon Oct  6 16:23:38 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (w_object): wrong method name in the message.

Mon Oct  6 16:02:05 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (stmt): END in method should cause warning.
	  [ruby-dev:21519]

Mon Oct  6 15:17:23 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_iterator.rb (test_block_argument_without_paren):
	  added. (follows sample/test.rb)

Mon Oct  6 11:57:06 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: added
	  test for eval-ed BEGIN END order.

Mon Oct  6 09:19:54 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): should pass "weak" value to next level.
	  [ruby-dev:21496]

	* eval.c (proc_alloc): should not use cached object if klass is
	  different. [ruby-talk:83685]

Sun Oct  5 23:27:09 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb: version information is added in document.

Sun Oct  5 23:07:03 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_f_END): block should be given.  [ruby-dev:21497]

Sun Oct  5 22:51:23 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/ext/openssl/extconf.rb: add check for some engine functions
	  unavailable in OpenSSL-0.9.6.

	* lib/ext/openssl/ossl_engine.c: ditto.

Sun Oct  5 17:56:30 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): fix evaluation order.  [ruby-list:38431]

Sun Oct  5 15:05:06 2003  akira yamada  <akira@ruby-lang.org>

	* test/uri/*: translated RUNIT to Test::Unit.

Sun Oct  5 14:37:39 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/xsd/datatypes.rb: Rational -> Decimal string bug fix.

	* test/soap/marshal/test_marshal.rb: ditto.

	* test/soap/calc/test_calc_cgi.rb: add Config::CONFIG["EXEEXT"] to
	  RUBYBIN.

Sun Oct  5 13:47:22 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: add tests
	  about scope, order and allowed syntax.

Sun Oct  5 11:54:29 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/envutil.rb: added.  split "rubybin" from test_system.rb.

	* test/ruby/test_system.rb: use envutil.rb

	* test/ruby/test_beginendblock.rb: added.

	* test/ruby/beginmainend.rb: added.  used in test_beginendblock.rb.

Sun Oct  5 11:23:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* test/testunit/runit/test_testresult.rb: removed some unnecessary
	  cruft.

Sun Oct  5 11:14:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/rubyunit.rb: aliasing TestCase into the top level is
	  problematic.

	* lib/runit/assert.rb: fixed a couple of bugs caused by recent
	  refactoring in Test::Unit.

	* test/testunit/runit/*: added.

Sun Oct  5 10:55:29 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/open-uri.rb (URI::Generic#find_proxy): no_proxy support did not
	  work.  [ruby-dev:21484]

Sun Oct  5 09:52:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: will use pp for output if available.
	  Can be disabled by setting Assertions.use_pp = false.

	* test/testunit/test_assertions.rb: made a small change to exception
	  formatting.

Sun Oct  5 07:42:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: made small improvements to assertion
	  messages. Deprecated Assertions#assert_not_nil; use #assert instead.

	* test/testunit/test_assertions.rb: ditto.

	* test/testunit/util/test_procwrapper.rb: use #assert instead of
	  #assert_not_nil.

Sun Oct  5 04:10:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: refactored message building.

Sun Oct  5 03:40:22 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.h: global symbols should be declared
	  as external.

Sun Oct  5 03:03:20 2003  akira yamada  <akira@ruby-lang.org>

	* test/ruby/test_exception.rb (test_else): added.

Sun Oct  5 02:12:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: changed assertion messages to rely more
	  heavily on #inspect. Added backtrace filtering for exceptions in
	  assertion messages.

	* test/testunit/test_assertions.rb: ditto.

Sun Oct  5 02:12:00 2003  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>

	* lib/drb/acl.rb, lib/drb/ssl.rb: added.

	* lib/drb/drb.rb: exit from a thread using 'break'.

Sat Oct  4 21:49:14 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* gc.c (Init_stack): the type of space is changed to unsigned int
	  from double.  [ruby-dev:21483]

Sat Oct  4 17:52:59 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/netHttpClient.rb: follow http-access2.  hosts which matches
	  ENV['no_proxy'] or ENV['NO_PROXY'] are not proxyed.
	  - [,:] separated. ("ruby-lang.org:rubyist.net")
	  - no regexp. (give "ruby-lang.org", not "*.ruby-lang.org")
	  - if you want specify host by IP address, give full address.
	    ("192.168.1.1, 192.168.1.2")

	* lib/soap/rpc/cgistub.rb: return "Status: XXX MMM" line.

	* test/runner.rb: give testsuite name.

Sat Oct  4 15:16:02 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): instance variable dump do not cause error
	  for objects that cannot be dumped, if they traversed from
	  marshal_dump.  they are just ignored.

	* gc.c (Init_stack): cast "space" (doble value) into unsigned
	  int.  should run on PowerPC.

	* eval.c (rb_eval): should not execute else part if any exception
	  is caught. [ruby-dev:21482]

	* parse.y (f_args): should allow unparenthesized block argument.

	* parse.y (f_rest_arg): should allow unparenthesized rest
	  argument.

Sat Oct  4 14:59:51 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (initialize): raise ArgumentError if argument has
	  '\0' character.
	  (relative_path_from): new method.
	  (each_entry): new method for replacement of dir_foreach.
	  (foreach, foreachline, dir_foreach, chdir): obsoleted.

Sat Oct  4 12:58:48 2003  akira yamada  <akira@ruby-lang.org>

	* test/uri/* (6 files): added.

Sat Oct  4 12:44:45 2003  akira yamada  <akira@ruby-lang.org>

	* lib/uri/ftp.rb, lib/uri/mailto.rb: renamed to #to_s from #to_str.

Sat Oct  4 07:33:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/testsuite.rb: changed #<< to return self, and added
	  #delete.

	* test/testunit/test_testsuite.rb: ditto. Also slightly refactored
	  #test_size.

	* lib/test/unit/collector/objectspace.rb: collector now preserves the
	  hierarchy of suites.

	* test/testunit/collector/test_objectspace.rb: ditto.

Sat Oct  4 04:48:49 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/rubyext.c: default keys handled.

	* ext/syck/syck.h: lowered default buffer size to 16k for increased
	  performance.

	* test/yaml: checkin of basic unit tests.

Sat Oct  4 04:24:19 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/extconf.rb: add check for X509V3_set_nconf.

	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):
	  cannot implement if X509V3_set_nconf doesn't exist.

Sat Oct  4 02:12:44 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/xsd/datatypes.rb: dump sign by itself.  under the problematic
	  platform, sprintf("%+.10g", -0.0) => +0.  sigh.

	* sample/wsdl/amazon/*: update schema ver2 to ver3.

Sat Oct  4 01:33:46 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb (initialize): duplicate and freeze argument.
	  (to_s): return duplicated string.
	  (children): new method.
	  (each_line): new alias to foreachline.

Fri Oct  3 16:13:19 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_asn1.c: add DER encoder and decoder.

	* ext/openssl/ossl_asn1.h: add OpenSSL::ASN1 module.

	* ext/openssl/ossl.c (Init_openssl): call Init_ossl_asn1.

	* ext/openssl/extconf.rb: check if X509_ATTRIBUTE has field "single".

	* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): accept
	  DER encoded data argument.

	* ext/openssl/ossl_x509attr.c (ossl_x509attr_get_value): return
	  DER encoded data in OpenSSL::ASN1 types.

Fri Oct  3 13:02:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit.rb: refactored to use optparse.

	* lib/test/unit.rb: added support for selecting the output
	  level from the command-line.

	* lib/test/unit.rb: added a command-line switch to stop processing
	  the command-line, allowing arguments to be passed to tests.

	* lib/test/unit.rb: changed the method for specifying a runner or a
	  filter from the command-line.

	* lib/test/unit/collector/objectspace.rb: fixed a bug causing all
	  tests to be excluded when the filter was set to an empty array.

	* test/testunit/collector/test_objectspace.rb: ditto.

Fri Oct  3 08:14:32 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support
	  'class ::Foo' syntax. [ruby-talk:83514]

Fri Oct  3 08:01:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: added a default message for #assert,
	  #assert_block, and #flunk.

	* test/testunit/test_assertions.rb: ditto.

	* lib/test/unit/failure.rb: failures now show a better trace of where
	  they occurred.

	* test/testunit/test_failure.rb: ditto (added).

	* lib/test/unit/testcase.rb: ditto.

	* test/testunit/test_testcase.rb: ditto.

	* lib/test/unit/util/backtracefilter.rb: added.

	* test/testunit/util/test_backtracefilter.rb: added.

	* lib/test/unit/error.rb: changed to use BacktraceFilter and improved
	  output.

	* test/testunit/test_error.rb: ditto.

Thu Oct  2 20:33:49 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_failure_initialize): conform with
	  orthodox initialization method.

	* ext/iconv/iconv.c (iconv_fail): initialize exception instance
	  from the class, and do not share instance variables with the
	  others.  [ruby-dev:21470]

Thu Oct  2 18:20:27 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* time.c (Init_Time): define initialize.  [ruby-dev:21469]

Thu Oct  2 17:39:38 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_engine.c: add a new module OpenSSL::Engine.
	  it supports OpenSSL hardware cryptographic engine interface.

	* ext/openssl/ossl_engine.h: ditto.

	* ext/openssl/MANIFEST: add ossl_engine.c and ossl_engine.h.

	* ext/openssl/extconf.rb: add check for openssl/engine.h.

	* ext/openssl/ossl.c: call Init_ossl_engine().

	* ext/openssl/ossl.h: include openssl/engine.h.

	* ext/openssl/ossl_pkey_{rsa,dsa,dh}.c: check if underlying
	  EVP_PKEY referes engine.

Thu Oct  2 17:22:37 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_load): restore instance variables (if any) before
	  loading from marshaled data.

Thu Oct  2 14:19:15 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (iconv_fail): now yield erred substring, and
	  set error object to $!.

	* ext/iconv/iconv.c (iconv_convert): error handler block should
	  return appended part and the rest.  if rest is nil, the
	  conversion stops.

Thu Oct  2 12:00:18 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* variable.c (rb_const_defined_0): look up constants in Object as
	  well.  [ruby-dev:21458]

	* test/ruby/test_defined.rb (TestDefined::test_defined): test for
	  constants.

Thu Oct  2 11:17:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/assertions.rb: should not capture an
	  AssertionFailedError unless explicitly requested.

	* test/testunit/test_assertions.rb: ditto.

	* test/testunit/collector/test_objectspace.rb: fixed a test failure
	  caused by methods being returned in different orders on different
	  platforms by moving test sorting from TestSuite into the locations
	  where suites are constructed. [ruby-talk:83156]

	* lib/test/unit/testcase.rb: ditto.

	* lib/test/unit/testsuite.rb: ditto.

	* lib/test/unit/collector/objectspace.rb: ditto.

Thu Oct  2 03:25:01 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* eval.c (rb_thread_raise): prototype; avoid VC++ warning.

Thu Oct  2 01:37:34 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* time.c (time_mdump): new marshal dumper. _dump is still
	  available for compatibility.

	* time.c (time_mload): new marshal loader.

	* marshal.c (w_object): preserve instance variables for objects
	  with marshal_dump.

	* marshal.c (r_object0): restore instance variables before calling
	  marshal_load.

	* error.c (rb_warn_m): always return nil.

Thu Oct  2 01:32:46 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_block_given_p): real required condition is
	  ruby_frame->prev->iter == ITER_CUR.

	* eval.c (rb_block_given_p): ditto.

	* eval.c (block_pass): update ruby_frame->iter only when previous
	  value is ITER_NOT.

Thu Oct  2 01:02:35 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_const_defined_at): should exclude constants from
	  Object when TYPE(klass) == T_MODULE *and* exclude is on.
	  [ruby-dev:21458]

	* variable.c (rb_const_get_0): do not lookup constants from Object
	  when TYPE(klass) == T_MODULE *and* exclude is on.

Thu Oct  2 00:21:11 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/logger/test_logger.rb: unlinking file before close causes
	  problem under win32 box.

	* lib/xsd/datatypes.rb(XSDFloat, XSDDouble): add +/- sign explicitly
	  when stringified and embedded into XML instance.  Ruby's sprintf may
	  format -0.0 as "0.0" (no minus sign) depending on underlying C
	  sprintf implementation.

	* test/xsd/test_xsd.rb, test/soap/test_basetype.rb: follow above change.

	* test/soap/calc/*: give httpd config param "CGIInterpreter".
	  "/usr/bin/env ruby" thing does not work under non-Unix boxes.

Sat Oct  2 00:42:20 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (r_byte): retrieve pointer from string value for each
	  time.  [ruby-dev:24404]

	* marshal.c (r_bytes0): ditto.

	* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]

	* io.c (io_read): should freeze all reading buffer.
	  [ruby-dev:24400]

	* string.c (rb_str_sum): should use bignums when bits is greater
	  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]

	* eval.c (specific_eval): defer pointer retrieval to prevent
	  unsafe sourcefile string modification.  [ruby-dev:24382]

	* string.c (rb_str_sum): wrong cast caused wrong result.
	  [ruby-dev:24385]

	* enum.c (enum_sort_by): hide temporary array from
	  ObjectSpace.each_object.  [ruby-dev:24386]

	* string.c (rb_str_sum): check was done with false pointer.
	  [ruby-dev:24383]

	* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]

Thu Oct  2 00:25:21 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* signal.c (ruby_signal_name): adjust to the prototype.

	* process.c (pst_inspect): ditto.

	* ext/etc/etc.c (etc_getgrent, Init_etc): typo.

Wed Oct  1 20:49:41 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* gc.c (heaps): manage slots and limits together.  [ruby-dev:21453]

	* gc.c (add_heap): should not clear heaps slot even if realloc()
	  failed.

Wed Oct  1 20:36:49 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* MANIFEST: add wince/mkconfig_wce.rb.

Wed Oct  1 17:22:33 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/etc/etc.c: add new functions: setpwent, getpwent, endpwent,
	  setgrent, getgrent, endgrent.

	* ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.

Wed Oct  1 17:01:30 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_load): Object scope had priority over required file
	  scope.  [ruby-dev:21415]

Wed Oct  1 14:09:53 2003  Takaaki Uematsu  <uema2x@jcom.home.ne.jp>

	* wince/mkconfig_wce.rb: sorry, forget to commit.

Wed Oct  1 10:08:42 2003  Takaaki Uematsu  <uema2x@jcom.home.ne.jp>

	* wince/setup.mak: add sigmarionIII SDK support.

	* wince/Makefile.sub: ditto.

	* wince/mkexports.rb: fix linker error in SH4.

	* wince/mkconfig_wce.rb: camouflage RUBY_PLATFORM for compiling ext.

Wed Oct  1 08:02:52 2003  Takaaki Uematsu  <uema2x@jcom.home.ne.jp>

	* wince/time_wce.c (time): add zero check.

Tue Sep 30 16:11:05 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* Makefile.in: copy lex.c from $(srcdir) if it's not the current
	  directory.  [ruby-dev:21437]

Tue Sep 30 11:29:23 2003  Tanaka Akira  <akr@m17n.org>

	* process.c (pst_inspect): describe stopped process "stopped".

Tue Sep 30 09:31:56 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/runner.rb: glob for directories.

Tue Sep 30 09:11:43 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): while/until should not capture break unless
	  they are destination of the break.

Tue Sep 30 03:12:02 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb (finish): revert to 1.93.

	* lib/net/pop.rb (finish): revert to 1.60.

	* lib/net/smtp.rb (finish): revert to 1.67.

	* lib/net/http.rb (do_start): ensure to close socket if failed to
	  start session.

	* lib/net/pop.rb (do_start): ditto.

	* lib/net/smtp.rb (do_start): ditto.

	* lib/net/smtp.rb: SMTP#started? wrongly returned false always.

Tue Sep 30 02:54:49 2003  Minero Aoki  <aamine@loveruby.net>

	* test/ruby/test_iterator.rb: new test
	  test_break__nested_loop[123].

Mon Sep 29 23:39:13 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb (finish): does not raise IOError even if
	  !started?, to allow closing socket which was opened before
	  session started.

	* lib/net/pop.rb (finish): ditto.

	* lib/net/smtp.rb (finish): ditto.

Mon Sep 29 19:06:51 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* ext/win32ole/extconf.rb: add windows.h checking.
	  (ruby-bugs:PR#1185)

Mon Sep 29 16:18:30 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb: check if the given logdevice object respond_to :write
	  and :close, not is_a? IO.  duck duck.

	* test/logger/test_logger.rb: self IO.pipe reading/writing may be
	  locked by the flood.  use tempfile.

	* lib/wsdl/xmlSchema/data.rb: wrong constant reference.

Mon Sep 29 16:11:23 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: clean up temporary symlink.
	  Patched by NaHi.  [ruby-dev:21420]

Mon Sep 29 11:16:55 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_thread_atfork): wrong format specifier.
	  [ruby-dev:21428]

	* process.c (pst_inspect): better description.

Mon Sep 29 02:31:44 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/utils.rb (Utils::su): use setgid and setuid to
	  set real and effective IDs. and setup group access list by
	  initgroups.

Sun Sep 28 11:14:19 2003  Koji Arai  <jca02266@nifty.ne.jp>

	* ext/digest/digest.c (Init_digest): `copy_object' was deprecated.
	  `initialize_copy' should be defined.

	* ext/stringio/stringio.c (Init_stringio): ditto.

Sat Sep 27 18:25:13 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/xsd/charset.rb: XSD::Charset.is_ces did return always true under
	  $KCODE = "NONE" environment.  check added.

	* test/xsd/test_xsd.rb: add tests for above fix.

Sat Sep 27 15:58:50 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/rpc/cgistub.rb: make logging severity threshold higher.

	* lib/soap/rpc/standaloneServer.rb: defer WEBrick server start to give
	  a chance to reset logging severity threshold.

	* test/soap/calc/test_*, test/soap/helloworld/test_helloworld.rb: run
	  silent.

Sat Sep 27 09:44:18 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/test_fileutils.rb: clear all errors on Windows.
	  [ruby-dev:21417]

	* test/fileutils/test_nowrite.rb: ditto.

Mon Sep 27 09:14:03 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* array.c (rb_ary_delete): comparison may change the capacity.
	  [ruby-dev:24348]

	* array.c (rb_ary_fill): fill should honor length argument.
	  [ruby-dev:24346]

	* array.c (rb_ary_replace): should not use ptr from shared array.
	  [ruby-dev:24345]

	* ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.
	  [ruby-talk:113807]

Sat Sep 27 04:57:07 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_file.rb: new file.  only asserts unlink-before-close
	  behaviour now.

	* test/soap/marshal/test_digraph.rb: should close before unlink.
	  unlink-before-close pattern is not needed here.

Sat Sep 27 03:32:37 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/soap/*, test/wsdl/*, test/xsd/*: move TestCase classes into
	  each module namespace.  TestMarshal in
	  test/soap/marshal/test_marshal.rb crashed with
	  test/ruby/test_marshal.rb.

Sat Sep 27 01:30:59 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/socket/socket.c (ruby_connect): on win32, type of the 4th
	  argument of getsockopt is char *.

Fri Sep 26 18:35:40 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/resolv-replace.rb: 1.8 compliance.  [ruby-talk:82946]

Fri Sep 26 17:39:27 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_marshal.rb: add test for ruby's objects.

Fri Sep 26 09:52:44 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* defines.h (flush_register_windows): use volatile only for gcc on
	  Solaris.  [ruby-dev:21403]

	* lib/mkmf.rb (xsystem): use system directly to honor shell meta
	  charaters.

Fri Sep 26 00:10:13 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/README: updated.

Thu Sep 25 17:48:10 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/openssl/ossl.c (ossl_buf2str): fix type of 1st argument for
	  rb_protect.

	* ext/openssl/ossl_hmac.c (ossl_hmac_digest): should return meaningful
	  value.

Thu Sep 25 09:00:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/ostruct.rb: Added OpenStruct#==.

	* test/ostruct/test_ostruct.rb: Added.

Thu Sep 25 07:55:26 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/win32ole/win32ole.c, ext/openssl/ossl_pkey_dsa.c,
	  ext/openssl/ossl_pkey_rsa.c, ext/bigdecimal/bigdecimal.h: must
	  not use C++ or C99 style comment yet.  (ruby-bugs:PR#1184)

Thu Sep 25 00:23:22 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* MANIFEST: add SOAP4R.

Thu Sep 25 00:13:15 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/soap/* (29 files): SOAP4R added.

	* lib/wsdl/* (42 files): WSDL4R added.

	* lib/xsd/* (12 files): XSD4R added.

	* test/soap/* (16 files): added.

	* test/wsdl/* (2 files): added.

	* test/xsd/* (3 files): added.

	* sample/soap/* (27 files): added.

	* sample/wsdl/* (13 files): added.

Wed Sep 24 02:08:11 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpservlet/cgihandler.rb: conform to mswin32.
	  [ruby-talk:82735], [ruby-talk:82748], [ruby-talk:82818]

Tue Sep 23 23:10:16 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb: add Logger#<<(msg) for writing msg without any
	  formatting.

	* test/logger/test_logger.rb: ditto.

Tue Sep 23 20:47:51 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* error.c (rb_warn_m): should not warn if -W0 is specified.
	  [ruby-talk:82675]

Mon Sep 22 21:28:57 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* MANIFEST: updated.

Mon Sep 22 19:22:26 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* configure.in (AC_CHECK_FUNCS): add setuid and setgid.

Mon Sep 22 12:34:55 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* util.c (ruby_strtod): skip preceding zeros before counting
	  digits in the mantissa. (ruby-bugs:PR#1181)

Sun Sep 21 04:12:36 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): the argument
	  should be a String.

	* ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): ditt.

	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): ditto.

	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.

	* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.

Sat Sep 20 11:49:05 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb: typo fixed.

	* test/logger/test_logger.rb: new file.

Fri Sep 19 11:39:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* test/testunit/*: Added.

	* lib/test/unit.rb: Documentation update.

	* lib/test/unit/ui/console/testrunner.rb (TestRunner#initialize):
	  Ditto.

	* lib/test/unit.rb: Factored out an ObjectSpace collector.

	* lib/test/unit/collector/objectspace.rb: Ditto.

	* sample/testunit/*: Added.

Fri Sep 19 01:00:48 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/log.rb (BasicLog#log): get rid of as ineffectual
	  condition.

	* lib/webrick/log.rb (BasicLog#format): add "\n" to message.

Thu Sep 18 22:43:20 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): should push PROT_PCALL tag for orphans.

	* eval.c (proc_invoke): should update "result" for orphans.

Thu Sep 18 20:33:03 2003  Tietew  <tietew-ml-ruby-list@tietew.net>

	* parse.y (str_xquote): do not prepend escapes in
	  backqoute literals.  [ruby-list:38409]

Thu Sep 18 20:30:17 2003  Tanaka Akira  <akr@m17n.org>

	* lib/pathname.rb: update document.

Thu Sep 18 15:27:05 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/logger.rb: new file.  Logger, formerly called devel-logger or
	  Devel::Logger.

	* sample/logger/*: new file.  samples of logger.rb.

Wed Sep 17 23:41:45 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (localjump_destination): should not raise ThreadError
	  exception for "break". [ruby-dev:21348]

	* eval.c (proc_invoke): use result instead of prot_tag->retval.
	  retval is no longer propagated to the ancestors.

Wed Sep 17 20:34:00 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (tokadd_string, parse_string, yylex): escaped terminator
	  is now interpreted as is.  [ruby-talk:82206]

Wed Sep 17 18:52:36 2003  Minero Aoki  <aamine@loveruby.net>

	* test/fileutils/fileassertions.rb: new file.

	* test/fileutils/test_fileutils.rb: new file.

	* test/fileutils/test_nowrite.rb: new file.

Wed Sep 17 18:51:02 2003  Minero Aoki  <aamine@loveruby.net>

	* test/strscan/test_stringscanner.rb: require test/unit.

Wed Sep 17 18:35:34 2003  Minero Aoki  <aamine@loveruby.net>

	* test/strscan/test_stringscanner.rb: new file.

Wed Sep 17 18:03:30 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl: all files are reviewed to simplify and avoid memory leak.

	* ext/openssl/extconf.rb: add check for assert.h.

	* ext/openssl/ossl.c (ossl_buf2str): new function to convert
	  C buffer to String and free buffer.

	* ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert
	  Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.

	* ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new
	  functions to convert object to DER string.

	* ext/openssl/ossl.h: ditto.

	* ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert
	  BIO to String object and free BIO.

	* ext/openssl/ossl_bio.h: ditto.

	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".

	* ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.

	* ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.

	* ext/openssl/ossl_x509ext.c (create_ext_from_array): removed
	  and reimplement in openssl/x509.rb.

	* ext/openssl/ossl_x509attr.c: reimplemented and disable some
	  method temporarily. this class doesn't work fine without ASN.1
	  data support;-) I'll rewrite in near future.

	* ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off
	  unused code.

	* ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.

Tue Sep 16 22:25:06 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/csv/test_csv.rb: add negative tests of row_sep.

Tue Sep 16 18:02:36 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* regex.c (re_compile_pattern): should not translate character
	  class range edge. [ruby-list:38393]

Tue Sep 16 16:47:56 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* MANIFEST: add test/csv/mac.csv.

	* win32/Makefile.sub, bcc32/Makefile.sub (test): add phony NUL target.

Mon Sep 15 19:02:52 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/csv.rb: add extra pamameter to specify row(record) separater
	  character.  To parse Mac's CR separated CSV, do like this.
	    CSV.open("mac.csv", "r", ?,, ?\r) { |row| p row.to_a }
	  The 3rd parameter in this example ?, is for column separater and the
	  4th ?\r is for row separater.  Row separater is nil by default.  Nil
	  separater means "\r\n" or "\n".

	* test/csv/test_csv.rb: add tests for above feature.

	* test/csv/mac.csv: added.  Sample CR separated CSV file.

Fri Sep 12 22:41:48 2003  Michal Rokos  <m.rokos@sh.cvut.cz>

	* ext/openssl/ossl.c: move ASN.1 stuff to ossl_asn1.[ch]

	* ext/openssl/ossl.c: move BIO stuff to ossl_bio.[ch]

	* ext/openssl/ossl_asn1.[ch]: new files

	* ext/openssl/ossl_bio.[ch]: new files

Fri Sep 12 12:30:41 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* intern.h (rb_disable_super, rb_enable_super): replace with dummy
	  expressions instead of prototypes.  the functions remain yet for
	  binary compatibility.  [ruby-talk:81758]

Fri Sep 12 12:09:54 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* bignum.c (rb_big_and): convert argument using 'to_int'.

	* bignum.c (rb_big_or): ditto.

	* bignum.c (rb_big_xor): ditto.

Fri Sep 12 07:06:14 2003  David Black  <dblack@superlink.net>

	* lib/scanf.rb: Took out useless @matched_item variable; some small
	  refactoring.

Thu Sep 11 08:43:44 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_require): allow "require" on $SAFE>0, if feature
	  name is not tainted.

	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::stream):
	  Supports StringIO.

Wed Sep 10 22:47:30 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.h: add a workaround for win32 platform.
	  libeay32.dll doesn't export functions defined in conf_api.h.

	* ext/openssl/ossl_config.c (ossl_config_initialize): ditto.

	* ext/openssl/ossl_config.c (ossl_config_add_value): ditto.

	* ext/openssl/ossl_config.c (set_conf_section_i): should check
	  if the argument is Array.

Wed Sep 10 22:41:54 2003  Tietew  <tietew@tietew.net>

	* eval.c (win32_get_exception_list): avoid VC7 warning.
	  [ruby-win32:577]

Tue Sep  9 10:39:51 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (struct tag): dst should be VALUE.

Tue Sep  9 10:39:51 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (localjump_destination): stop at the scope where the current
	  block was created.  [ruby-dev:21353]

Tue Sep  9 05:17:04 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_config.rb: avoid compile error in OpenSSL-0.9.6.

Tue Sep  9 02:41:35 2003  Michal Rokos  <m.rokos@sh.cvut.cz>

	* ext/openssl/ossl_config.c: Refine compatibility.

Tue Sep  9 01:50:45 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httpserver.rb (HTTPServer#access_log): add "\n" to
	  the message.

	* lib/webrick/log.rb (BasicLog#log): add "\n" only if needed.

Mon Sep  8 22:15:33 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tk/lib/multi-tk.rb: modify security check at creating
	  a new interpreter

Mon Sep  8 20:00:12 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb, lib/optparse/version.rb: search also all
	  capital versions.

Mon Sep  8 19:26:33 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl.h: include openssl/conf.h and openssl/conf_api.h.

	* ext/openssl/ossl_config.c: refine all with backward compatibility.

	* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().

	* ext/openssl/ossl_x509.c: added new constants under X509 module.
	  DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,
	  DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.

	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free
	  the members of the struct. it's left to GC.

	* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.

	* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):
	  add attr readers: issuer_certificate, subject_certificate,
	  subject_request, crl and config.

Mon Sep  8 18:26:41 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/accesslog.rb (AccessLog::setup_params): use req.port
	  instead of config[:Port] or req.request_uri.port.

	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): ditto.

	* lib/webrick/httpservlet/filehandler.rb (FileHandler#dir_list): ditto.

	* lib/webrick/config.rb: :Listen option never be used.

	* lib/webrick/server.rb (GenericServer#initialize): don't use :Listen
	  option and add warning message.

	* lib/webrick/log.rb (BasicLog#<<): shortcut of log(INFO, ...).

	* lib/webrick/httpserver.rb (HTTPServer#accesslog): use << for logging.

Sun Sep  7 16:08:28 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (lib_mainloop_core): fixed signal-trap bug

	* ext/tk/lib/*.rb : Ruby/Tk works at $SAFE == 4

Sat Sep  6 02:26:34 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_*.rb: assert_same, assert_match, and so on.

Sat Sep  6 18:45:46 2003  Mauricio Fernandez  <batsman.geo@yahoo.com>

	* parse.y (assignable): call rb_compile_error(), not rb_bug().
	  [ruby-core:01523]

Sat Sep  6 17:40:41 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ruby_missing.c: rid of unnecessary backward
	  compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from
	  all sources.

	* ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.

	* ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.

	* ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.

	* ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.

Sat Sep  6 01:23:22 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (CreateChild): need to quote cmd if RUBYSHELL is set.

	* win32/win32.c (CreateChild): fix condition about whether to call
	  shell or not.

Sat Sep  6 00:36:20 2003  Nobuyoshi Nakada  <nobu.nokada@softhome.net>

	* Makefile.in (test): phony target.

	* lib/mkmf.rb (have_library, find_library): configure by library
	  name.

	* lib/optparse.rb (OptionParser#order, #permute, #parse): allow an
	  array as argument.

	* test/ruby/test_*.rb: moved invariants to left side in
	  assert_equal, and use assert_nil, assert_raises and so on.

	* win32/win32.c (isInternalCmd): distinguish command.com and
	  cmd.exe.

	* win32/win32.c (make_cmdvector): a character just after wildcard
	  was ignored.  [ruby-core:01518]

Fri Sep  5 20:27:08 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_*.rb: replace 'assert(a == b)' with assert_equal(a, b)'

Fri Sep  5 18:00:51 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse.

	* ext/openssl/ossl_digest.c: add ossl_digest_new().

	* ext/openssl/ossl_digest.h: ditto.

	* ext/openssl/ossl_cipher.c: add ossl_cipher_new().

	* ext/openssl/ossl_cipher.h: ditto.

Fri Sep  5 15:32:04 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): should not
	  search delimiter forward if found in backward.

Fri Sep  5 13:32:48 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/runner.rb: arguments should be keys.

Fri Sep  5 12:09:55 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* test/ruby/test_system.rb (test_system): check existence of ruby
	  interpreter.

Fri Sep  5 11:32:17 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/optparse.rb (--version): fix assignment/reference order.

	* lib/optparse.rb (OptionParser#help): new; OptionParser#to_s may
	  be deprecated in future.

	* lib/optparse/version.rb (OptionParser#show_version): hide Object.

	* test/runner.rb: fix optparse usage.

	* test/runner.rb: glob all testsuits if no tests given.

Fri Sep  5 10:42:58 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/runner.rb: added.  gets testcases from command line and runs it.

	* test/ruby/test_gc.rb: remove useless part which was for dumping test
	  result.

Fri Sep  5 09:28:59 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby/test_gc.rb: added.  splitter.rb which I made to split
	  sample/test.rb into test/ruby/test_* kindly removed GC test (the
	  last section in the original test) to reduce things to be worried.

Fri Sep  5 03:00:04 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* test/ruby/test_iterator.rb (test_block_in_arg): add no block
	  given tests.

	* test/ruby/test_iterator.rb (test_ljump): uncomment LocalJumpError
	  test.

Fri Sep  5 01:10:11 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/ruby: tests for ruby itself.

	* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases.
	  some tests could not be translates...  search '!!' mark to see it.

	* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'.  test
	  runner should set load path correctly.

Fri Sep  5 01:03:59 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/csv/test_csv.rb: close opened files for CSV::IOBuf explicitly.
	  opened file cannot be removed under win32 box.

Thu Sep  4 23:59:40 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* parse.y (tokadd_string): newlines have no special meanings in
	  %w/%W, otherwise they are ignored only when interpolation is
	  enabled.  [ruby-dev:21325]

Thu Sep  4 19:38:25 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* ext/io/wait/.cvsignore: added.

	* ext/openssl/.cvsignore: added.

Thu Sep  4 19:28:24 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* sample/openssl: added.  Sample of standard distribution library
	  should be locate in sample/{module_name}/*.

	* ext/openssl/sample/*: removed.  move to sample/openssl/*.

Thu Sep  4 18:02:15 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/csv/test_csv.rb: use remove_const to reduce warnings.  use
	  Dir.tmpdir to locate working files.

Thu Sep  4 17:41:31 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is
	  valid delimiter.

	* misc/ruby-mode.el (ruby-here-doc-end-match): must quote
	  arbitrary string to use as regexp.

	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not
	  call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'
	  matched.

Thu Sep  4 15:40:07 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test/csv/test_csv.rb: run on test/unit original layer.

Thu Sep  4 12:54:50 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/token.c: headerless documents with root-level spacing now
	  honored.

Thu Sep  4 00:06:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (mark_frame_adj): need to adjust argv pointer if using
	  system's alloca. [ruby-core:01503]

Wed Sep  3 21:33:20 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* test: add test directory.  Test::Unit aware testcases and needed
	  files should be located in this directory.  dir/file name convention;
	    test/{module_name}/test_{testcase_name}.rb
	    test/{module_name}/{needed_files}
	  someday, someone will write testrunner which searches test_*.rb and
	  run testcases automatically.

	* test/csv/*: add testcase for lib/csv.rb.

Wed Sep  3 01:37:09 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* io.c (rb_f_gets): should call next_argv() before type check
	  current_file. [ruby-list:38336]

Tue Sep  2 20:37:15 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): warning
	  for skipping server verification.

Tue Sep  2 23:36:57 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (proc_invoke): should retrieve retval when pcall is true.

Tue Sep  2 14:09:20 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* ext/socket/extconf.rb: check s6_addr8 in in6_addr (Tru64 UNIX).
	  the patch is submitted by nmu <nmu@users.sourceforge.jp>.

	* ext/socket/getaddrinfo.c (getaddrinfo): should use in6_addr8 on
	  some platforms.

	* ext/socket/getnameinfo.c (getnameinfo): ditto.

Tue Sep  2 14:02:19 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception

	* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
	  bug fix and improvement of font control

Tue Sep  2 09:51:36 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): should not handle exceptions within rescue
	  argument.  [ruby-talk:80804]

Tue Sep  2 00:44:37 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* re.c (rb_memsearch): fix overrun.  [ruby-talk:80759]

Tue Sep  2 00:41:27 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/iconv/iconv.c (map_charset): use lower case keys.

	* ext/iconv/iconv.c (iconv_fail): just yield error and return the
	  result if a block is given.

	* ext/iconv/iconv.c (iconv_convert): yield error and append the
	  result if a block is given.

	* ext/iconv/charset_alias.rb (charset_alias): optional third
	  argument.

	* ext/iconv/charset_alias.rb (charset_alias): use CP932 instead of
	  SHIFT_JIS on cygwin.

Mon Sep  1 18:34:25 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval): make tail recursion in ELSE clause of
	  RESCUE a jump.

Mon Sep  1 18:00:02 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (aref_args): forgot to call NEW_SPLAT(). reported by
	  Dave Butcher.

	* eval.c (Init_Thread): protect thgroup_default.  suggested by Guy
	  Decoux in [ruby-talk:80623]

Mon Sep  1 16:59:10 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_thread_switch): add RESTORE_EXIT; exit by another
	  thread termination.

	* eval.c (rb_thread_start_0): should not error_print() within
	  terminated thread, because $stderr used by it might be
	  overriden now.  [ruby-dev:21280]

Sun Aug 31 22:46:55 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* eval.c (TAG_DST()): take no argument.

	* process.c (p_gid_sw_ensure): return VALUE.

Sun Aug 31 22:27:10 2003  Hidetoshi NAGAI  <nagai@dumbo.ai.kyutech.ac.jp>

	* process.c (p_gid_sw_ensure): lack of function type

Sun Aug 31 12:25:06 2003  Nobuyoshi Nakada  <nobu.nokada@softhome.net>

	* lib/optparse.rb: --version takes an optional argument; "all" or
	  a list of package names.

Sun Aug 31 10:17:02 2003  Tadayoshi Funaba  <tadf@dotrb.org>

	* lib/date/format.rb: yyyy/mm is not an acceptable format.

	* lib/time.rb: follow above.

Sat Aug 30 14:25:43 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_iter_break): should not call TAG_JUMP directly.

Sat Aug 30 03:58:21 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (struct BLOCK): remove BLOCKTAG, use scope instead.

	* eval.c (POP_TAG): no longer propagate retval.  retval is now set
	  directly by localjump_destination().

	* eval.c (localjump_destination): new function to cast
	  return/break local jump.

	* eval.c (rb_yield_0): stop TAG_RETURN/TAG_BREAK escaping.

Fri Aug 29 22:35:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* bigdecimal.c *.html: The 2nd arg. for add,sub,mult, and div is 0,
	  then result will be the same as +,-,*,/ respectively.

Fri Aug 29 17:30:15 2003  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>

	* process.c: bug fix

	* process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}

	* process.c: deny handling IDs during evaluating the block given to
	  the Process::{UID,GID}.switch method

	* ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP

	* ext/tcltklib/tcltklib.c : can create a interpreter without Tk

	* ext/tcltklib/tcltklib.c : bug fix on handling exceptions

	* ext/tcltklib/MANUAL.euc : modify

	* ext/tk/lib/tk.rb : freeze some core modules

	* ext/tk/lib/multi-tk.rb : more secure

	* ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the
	  Tk's list

	* ext/tk/lib/tk.rb: improve accessibility of TkVariable object

	* ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,
	  ext/tk/lib/tktext.rb : fix bug of font handling

	* ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts

Thu Aug 28 22:07:12 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_autoload_load): call const_missing if autoloading
	  constant is not defined to allow hook.

	* eval.c (rb_eval): use rb_const_get_from() instead of
	  rb_const_get_at().

	* eval.c (is_defined): forgot to check NODE_COLON3.

Thu Aug 28 17:30:24 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* variable.c (rb_const_get_0): should check constants defined in
	  included modules, if klass is Object. [ruby-talk:79302]

	* numeric.c (check_uint): check should be done using UINT_MAX, not
	  INT_MAX. this fix is submitted by Lyle Johnson
	  <lyle@knology.net> in [ruby-core:01486]

Thu Aug 28 05:02:52 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (singleton): typo fixed (ruby-bugs-ja:PR#562)

Thu Aug 28 02:37:45 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_eval): *a = [1,2] now assigns [[1,2]] to a.
	  consistent with *a = [1], which set [[1]] to a.

	* node.h: merge NODE_RESTARY to NODE_SPLAT.

	* parse.y: rules simplified a bit by removing NODE_RESTARY.

	* sample/test.rb: updated for new assignment behavior.

Wed Aug 27 22:33:24 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* error.c (rb_bug): should not use other methods; this function is
	  not for ordinary use.  [ruby-dev:21259]

Wed Aug 27 15:07:57 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/smtp.rb (check_response): AUTH CRAM-MD5 returns 334
	  response. [ruby-list:38279]

Wed Aug 27 05:10:15 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* win32/win32.c (map_errno): support winsock error.

	* win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid,
	  kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime):
	  pass errno to map_errno().

	* win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind,
	  rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,
	  rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,
	  rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,
	  rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,
	  rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,
	  rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport,
	  rb_w32_fclose, rb_w32_close): use map_errno().

	* win32/win32.h: add winsock errors.

Tue Aug 26 23:53:23 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* lib/ostruct.rb (OpenStruct::method_missing): prohibit modifying
	  frozen OpenStruct. [ruby-talk:80214]

Tue Aug 26 20:03:50 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* lib/mkmf.rb (create_tmpsrc): add the hook for source.
	  [ruby-list:38122]

Tue Aug 26 15:59:53 2003  why the lucky stiff  <why@ruby-lang.org>

	* implicit.c (syck_type_id_to_taguri): corrected detection of
	  x-private types.

Sun Aug 24 01:02:48 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* file.c (file_expand_path): performance improvement.
	  [ruby-talk:79748]

Sat Aug 23 23:41:16 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* file.c (rb_file_s_expand_path): avoid calling rb_scan_args() for
	  apparent cases. [ruby-talk:79748]

Sat Aug 23 18:56:53 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just
	  resize a string, rb_str_cat() disallows NULL.  [ruby-dev:21237]

Sat Aug 23 16:48:41 2003  Keiju Ishitsuka  <keiju@ishitsuka.com>

	* lib/irb/ruby-lex.rb: bug fix for "foo" !~ /bar/. [ruby-talk:79942]

Sat Aug 23 15:59:58 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_eval, rb_iterate, block_pass): reduce PUSH/POP_TAG and
	  EXEC_TAG() for retry.  [ruby-dev:21216]

Sat Aug 23 02:32:33 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_yield_splat): should check if "values" is array.

	* enum.c (each_with_index_i): typo.

Fri Aug 22 17:07:05 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* enum.c (inject_i): use rb_yield_values.

	* enum.c (each_with_index_i): ditto.

	* eval.c (rb_yield_splat): new function to call "yield *values".

	* string.c (rb_str_scan): use rb_yield_splat().

Fri Aug 22 06:13:22 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/rubyext.c: refactoring of the transfer method
	  dispatch.  added yaml_org_handler for faster dispatch of
	  transfers to base types.

	* lib/yaml/rubytypes.rb: removed handling of builtins from
	  Ruby library.

	* ext/syck/token.c: quoted and block scalars are now implicit !str

	* ext/syck/implicit.c: empty string detected as !null.

Fri Aug 22 01:00:31 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (block_pass): improve passing current block.

Fri Aug 22 00:13:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c: Int. overflow bug in multiplication
	  fixed, and VpNmlz() speed up.

Wed Aug 20 16:44:49 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/socket/socket.c (ruby_connect): many systems seem to have
	  a problem in select() after EINPROGRESS.  [ruby-list:38080]

Wed Aug 20 01:31:17 2003  why the lucky stiff  <why@ruby-lang.org>

	* ext/syck/syck.h: Parser definition problems on HP-UX.
	  [ruby-talk:79389]

	* ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak.

	* ext/syck/syck.s (syck_io_file_read): Bad arguments to fread.

	* ext/syck/rubyext.c: Tainting issues.

Tue Aug 19 23:20:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c .h .html: to_s("+") implemented.

	* ext/bigdecimal/lib/bigdecimal/math.rb: E implemented.

Tue Aug 19 07:47:09 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/ssl.rb: new file; SSL/TLS enhancement for GenericServer.

	* lib/webrick/https.rb: SSLSocket handling is moved to webrick/ssl.rb.

	* lib/webrick/compat.rb (File::fnmatch): remove old migration code.

	* lib/webrick/httpserver.rb (HTTPServer#run): ditto.

	* lib/webrick/server.rb (GenericServer#listen): the body of this
	  method is pull out as Utils::create_lisnteners.

	* lib/webrick/utils.rb (Utils::create_lisnteners): new method.

	* lib/webrick/server.rb (GenericServer#start): should rescue
	  unknown errors. and refine comments.

	* ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): should close
	  socket if SSLSocket raises error.

Tue Aug 19 11:19:33 2003  Shugo Maeda  <shugo@ruby-lang.org>

	* io.c (next_argv): should not call GetOpenFile() if rb_stdout is
	  not a IO (T_FILE).

Tue Aug 19 07:47:09 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/ossl_ssl.c: sync_close is moved to SSLSocket as
	  a builtin.

	* ext/openssl/lib/openssl/buffering.rb (Buffering#close): ditto.

	* ext/openssl/lib/openssl/buffering.rb (Buffering#puts): should
	  add a return to the tails of each line.

	* ext/openssl/lib/openssl/ssl.rb: new class OpenSSL::SSL::SSLServer.

	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): use sync_close.

	* ext/openssl/sample/echo_svr.rb: use SSLServer.

	* ext/openssl/sample/echo_cli.rb: add example of SSLSocket#sync_close.

Tue Aug 19 01:24:34 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): Mac OS X standard
	  headers are inconsistent at this macro.  [ruby-core:01432]

	* ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks.

	* ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers
	  winspool.h

	* instruby.rb: make list at first instead of iterator.
	  [ruby-talk:79347]

Mon Aug 18 11:23:11 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* dir.c (glob_helper): preserve raw order for **.

Sun Aug 17 23:39:55 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.

Sun Aug 17 17:10:03 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/ssl.rb (SSLSocket#sync_close=): add a
	  method to specify if the underlying IO will be closed in
	  SSLSocket#close.

	* ext/openssl/lib/openssl/buffering.rb: add forwarders to
	  setsockopt, getsockopt and fcntl.

	* ext/openssl/lib/net/protocols.rb: enable sync for SSLSocket.

Sun Aug 17 11:32:04 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): should not force to remake Makefile when
	  installation and so on.

Sat Aug 16 23:58:18 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* marshal.c (w_symbol, w_object): get rid of warnings.

	* re.c (rb_memsearch): ditto.

	* time.c (time_dump): ditto.

	* ext/extmk.rb (extmake): not continue making when extconf.rb
	  failed.

	* ext/openssl/extconf.rb: check __VA_ARGS__ macro more precisely.

	* ext/openssl/ossl.h: remove version.h dependency.

	* ext/openssl/ruby_missing.h: ditto.

	* lib/mkmf.rb (pkg_config): use --libs output except with
	  only-L for other options.  [ruby-list:38099]

	* lib/mkmf.rb (create_makefile): separate rule for static
	  library from shared object.

	* win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub:
	  define exec_prefix and libdir.

Fri Aug 15 23:15:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c .h: Bug in combination of limit & div
	  method fixed.

	* ext/bigdecimal/lib/bigdecimal/math.rb: atan() & sqrt() added.

Fri Aug 15 12:01:43 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* configure.in (HUGE_ST_INO): check whether struct stat.st_ino
	  is larger than long.  [ruby-dev:21194]
	  http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html

	* error.c (syserr_eqq): errno might exceed Fixnum limit.

	* error.c (Init_Exception): moved base initialization from
	  init_syserr().

	* inits.c (rb_call_inits): postpone initializing errnos until
	  Bignum is available.

Fri Aug 15 12:01:43 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let
	  keyname() and so on be declared.

	* ext/curses/curses.c (curses_resizeterm, window_resize):
	  arguments conflicted with macros in term.h.

	* ext/curses/curses.c (Curses module methods): ensure
	  initialized.  [ruby-dev:21191]

Fri Aug 15 02:08:53 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* gc.c (id2ref): recycle check should be done by klass == 0.
	  [ruby-core:01408]

Fri Aug 15 01:34:23 2003  Michal Rokos  <m.rokos@sh.cvut.cz>

	* ext/openssl/ossl_pkey.c: move generate_cb here

	* ext/openssl/ossl_pkey_{dh|dsa|rsa}.c: adapt to this cb

	* ext/openssl/openssl_missing.[ch]: add (0.9.6x, x<j) missing BN funcs

	* ext/openssl/ossl_bn.c: use supplied funcs from openssl_missing.c

Fri Aug 15 00:38:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c: Bug in div method fixed.

	* ext/bigdecimal/lib/bigdecimal/math.rb: Newly added.

	* ext/bigdecimal/sample/pi.rb: Changed so as to use math.rb.

Thu Aug 14 21:19:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (Init_Thread): Continuation#[] added.  [ruby-talk:79028]

Thu Aug 14 20:03:34 2003  Masaki Suketa  <masaki.suketa@nifty.ne.jp>

	* ext/win32ole/win32ole.c (OLE_FREE): should not call
	  ole_message_loop.

	* ext/win32ole/win32ole.c (ole_event_free): ditto.

	* ext/win32ole/win32ole.c (ole_initialize): stop calling
	  OleUninitialize at exit.

Thu Aug 14 11:27:37 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* gc.c (rb_data_object_alloc): check type of 1st argument.
	  [ruby-dev:21192]

Thu Aug 14 00:21:14 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.

	* parse.y (lhs): ditto.

	* parse.y (yylex): should return tCOLON3 right after kCLASS.
	  [ruby-talk:78918]

	* error.c (exc_initialize): was converting argument to string too
	  eagerly.  Only check was needed. [ruby-talk:78958]

Wed Aug 13 23:31:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal/bigdecimal.c .h .html: Ambiguity of
	  BigDecimal::limit removed.

Wed Aug 13 19:21:34 2003  Christian Neukirchen  <chneukirchen@yahoo.de>

	* lib/webrick/https.rb (HTTPServer#run): should set syncing-mode
	  to SSLSocket. [ruby-talk:78919]

Wed Aug 13 18:13:49 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (POP_BLOCK): turn on BLOCK_LEFT flag when leaving block.

	* eval.c (proc_invoke): unpack return/break destination when block
	  is already left.

Wed Aug 13 15:58:31 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* object.c (rb_class_s_alloc): add function prototype to avoid VC++
	  warning.

Wed Aug 13 13:50:59 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/Win32API/Win32API.c (Win32API_initialize): should pass some
	  class to first argument of Data_Wrap_Struct(). (ruby-bugs:PR#1109)

Tue Aug 12 16:55:11 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* Makefile.in: static link libraries to LIBRUBY_SO with static linked
	  ext.  [ruby-dev:21157]

	* ext/extmk.rb (extmake): sort extension library initialization order.

	* ext/extmk.rb (extmake): compact $extlibs.

Tue Aug 12 02:48:56 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (THREAD_SAVE_CONTEXT): should explicitly turn off the
	  flag before calling getcontext(2).

	* eval.c (struct thread): add member to save backing store on
	  IA64. (ruby-bugs PR1086)

	* eval.c (thread_mark): mark IA64 backing store region.

	* eval.c (thread_free): free saved IA64 backing store.

	* eval.c (rb_thread_save_context): save IA64 backing store as well.

	* eval.c (rb_thread_restore_context): restore IA64 backing store.

	* eval.c (THREAD_ALLOC): initialize IA64 members.

Mon Aug 11 22:31:50 2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

	* lib/debug.rb(debug_command): inspection command should inspect
	  resulting value even if it's nil.  [ruby-dev:21180] by OMAE, jun
	  <jun66j5@ybb.ne.jp>.

	* lib/debug.rb(debug_command): incomplete regexp.

Mon Aug 11 17:33:07 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call_super): do not use rb_block_given_p() for
	  check. [ruby-talk:78656]

	* eval.c (BEGIN_CALLARGS): push ITER_NOT only when ITER_PRE.

Sun Aug 10 10:43:05 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* ext/openssl/lib/openssl/buffering.rb: increase BLOCK_SIZE
	  from 1k to 16k bytes. [ruby-talk:78603]

	* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): enable
	  partial write to allow interruption in SSLSocket#write.

Sun Aug 10 00:34:16 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* cygwin/GNUmakefile: remove unnecessary '--drive-name=$(CC)'
	  for ccache.

Sat Aug  9 10:36:21 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* marshal.c (w_object): do not dump generic instance variable when
	  marshal_dump is defined.

Sat Aug  9 00:35:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal.c: F style output(like 1234.56789) implemented
	  to to_s method.
	* ext/bigdecimal_??.html: F style output(like 1234.56789)
	  implemented to to_s method.

Fri Aug  8 12:33:17 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* bcc32/Makefile.sub: rubyw.exe should be a Windows GUI program.
	  add the -aa option to WLDFLAGS.

Fri Aug  8 11:29:26 2003  Koji Arai  <jca02266@nifty.ne.jp>

	* marshal.c (w_object): should set `c_arg' at first.

Fri Aug  8 03:22:28 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org>

	* lib/webrick/httputils.rb (FormData#list): should not take
	  a side effect for the receiver.

Thu Aug  7 14:40:37 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* cygwin/GNUmakefile: better --disbale-shared option support.

	* cygwin/GNUmakefile: add forwarding DLL target for cygwin.

Thu Aug  7 14:21:05 2003  Corinna Vinschen  <vinschen@redhat.com>

	* configure.in: Fix Cygwin specific naming of libraries to
	  be net distribution compliant. (ruby-bugs:PR#1077)
	  cygwin-ruby18.dll -> cygruby18.dll

Thu Aug  7 12:51:38 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_at_exit): should not be called without a block.
	  block_given check added.

Thu Aug  7 06:46:06 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_call0): forgot to pop ruby_class.

	* eval.c (rb_call0): update ruby_class as well as ruby_cref.
	  (ruby-bugs-ja:PR#540)

Thu Aug  7 04:52:50 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_yield_0): remove ruby_frame->cbase and unify to
	  ruby_cref.  [ruby-talk:78141]

Thu Aug  7 04:19:15 2003  Akinori MUSHA  <knu@iDaemons.org>

	* gc.c: FreeBSD/ia64's mcontext_t is a bit different from that of
	  Linux/ia64.  This makes gc.c compile but miniruby coredumps for
	  the moment.

Thu Aug  7 00:15:00 2003  Shigeo Kobayashi  <shigek@ruby-lang.org>

	* ext/bigdecimal.c: Comparison results adjusted to Float's.
	* ext/bigdecimal.c: Use rb_num_coerce_????(x,y) instead of own.

Wed Aug  6 22:58:00 2003  Nathaniel Talbott  <ntalbott@ruby-lang.org>

	* lib/test/unit/testcase.rb: Added equality checking.
	* lib/test/unit/testsuite.rb: Added equality checking.
	* lib/test/unit/assertions.rb: Fixed a warning.

Wed Aug  6 17:28:10 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* ext/extmk.rb (extmake): pass LIBPATH to make ruby.  [ruby-dev:21137]

	* ext/extmk.rb (extmake): set library name as source file name in
	  Init_ext().  [ruby-dev:21137]

	* lib/mkmf.rb (Logging::postpone): postpone logging messages after
	  heading message as the result of the block.

	* lib/mkmf.rb (macro_defined?): append newline to src unless ended
	  with it.

	* lib/mkmf.rb (have_library): treat nil function name as "main".
	  (ruby-bugs:PR#1083)

	* lib/mkmf.rb (pkg_config): should append additional libraries to
	  $libs but not $LIBS.  [ruby-dev:21137]

	* ext/io/wait/extconf.rb: check DOSISH macro instead of platform.

	* ext/digest/sha1/extconf.rb: have_library already appends library
	  name.

Wed Aug  6 17:23:57 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c: initialize /* OK */ variables by Qnil to stop warnings.

Wed Aug  6 04:58:32 2003  NAKAMURA Usaku  <usa@ruby-lang.org>

	* ext/Setup*: add io/wait and openssl.

Wed Aug  6 01:13:38 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* eval.c (rb_f_autoload): use ruby_cbase instead of ruby_class.

	* eval.c (rb_f_autoload_p): ditto.

	* class.c (rb_mod_init_copy): no longer implements independent
	  clone and dup methods.  override "initialize_copy" instead.
	  [ruby-core:01352]

	* object.c (rb_class_s_alloc): define Class allocation function.
	  this makes Classes to follow clone framework that uses
	  initialize_copy.

	* object.c (rb_class_initialize): separate instantiation and
	  initialization.

	* object.c (rb_obj_alloc): prohibit instantiation from
	  uninitialized class.

	* object.c (rb_class_superclass): check uninitialized class.

	* array.c (rb_ary_fill): wrong index processing with block.  this
	  fix was done by Koji Arai <JCA02266@nifty.ne.jp> [ruby-list:38029]

	* marshal.c (w_object): should preserve generic ivar for nil,
	  true, false, symbols, and fixnums.

	* marshal.c (w_uclass): base_klass check should be done after
	  rb_class_real().

Wed Aug  6 01:18:50 2003  Minero Aoki  <aamine@loveruby.net>

	* lib/net/http.rb: update document.

	* lib/net/pop.rb: ditto.

	* lib/net/protocol.rb: ditto.

Wed Aug  6 00:48:37 2003  Koji Arai  <jca02266@nifty.ne.jp>

	* marshal.c (w_object): should recommend marshal_dump rather than
	  _dump_data.

Tue Aug  5 17:58:57 2003  WATANABE Hirofumi  <eban@ruby-lang.org>

	* lib/fileutils.rb (install): should preserve timestamp only.

Tue Aug  5 17:31:59 2003  Ian Macdonald  <ian@caliban.org>

	* lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir):
	  simple typo.

Tue Aug  5 15:47:34 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org>

	* eval.c (rb_load): should preserve current source file/line.

Tue Aug  5 10:04:42 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* string.c (str_new4): ptr may refer null_str.

Mon Aug  4 17:25:18 2003  Yukihiro Matsumoto  <matz@ruby-lang.org>

	* stable version 1.8.0 released.

For the changes before 1.8.0, see doc/ChangeLog-1.8.0

Local variables:
add-log-time-format: (lambda ()
  (let* ((time (current-time))
	 (system-time-locale "C")
	 (diff (+ (cadr time) 32400))
	 (lo (% diff 65536))
	 (hi (+ (car time) (/ diff 65536))))
  (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))
indent-tabs-mode: t
tab-width: 8
end:
		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS

	    How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
You can redistribute it and/or modify it under either the terms of the GPL
version 2 (see the file GPL), or the conditions below:

  1. You may make and give away verbatim copies of the source form of the
     software without restriction, provided that you duplicate all of the
     original copyright notices and associated disclaimers.

  2. You may modify your copy of the software in any way, provided that
     you do at least ONE of the following:

       a) place your modifications in the Public Domain or otherwise
          make them Freely Available, such as by posting said
	  modifications to Usenet or an equivalent medium, or by allowing
	  the author to include your modifications in the software.

       b) use the modified software only within your corporation or
          organization.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  3. You may distribute the software in object code or binary form,
     provided that you do at least ONE of the following:

       a) distribute the binaries and library files of the software,
	  together with instructions (in the manual page or equivalent)
	  on where to get the original distribution.

       b) accompany the distribution with the machine-readable source of
	  the software.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  4. You may modify and include the part of the software into any other
     software (possibly commercial).  But some files in the distribution
     are not written by the author, so that they are not under these terms.

     For the list of those files and their copying conditions, see the
     file LEGAL.

  5. The scripts and library files supplied as input to or produced as 
     output from the software do not automatically fall under the
     copyright of the software, but belong to whomever generated them, 
     and may be sold commercially, and may be aggregated with this
     software.

  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     PURPOSE.
.\" README.EXT.ja -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995

Ruby�γ�ĥ�饤�֥��κ����������ޤ���

1������μ�

C���ѿ�ˤϷ������ꡤ�ǡ����ˤϷ�������ޤ��󡥤Ǥ����顤��
�Ȥ��Хݥ��󥿤�int���ѿ���������ȡ������ͤ����Ȥ��Ƽ�
�갷���ޤ����դ�Ruby���ѿ�ˤϷ����ʤ����ǡ����˷��������
�������ΰ㤤�Τ��ᡤC��Ruby���ߤ��Ѵ����ʤ���С����ߤ���
�ǡ����򥢥������Ǥ��ޤ���

Ruby�Υǡ�����VALUE�Ȥ���C�η���ɽ������ޤ���VALUE���Υǡ�
���Ϥ��Υǡ��������פ�ʬ���ΤäƤ��ޤ������Υǡ��������פ�
�����Τϥǡ���(���֥�������)�μºݤι�¤���̣���Ƥ��ơ�Ruby
�Υ��饹�ȤϤޤ���ä���ΤǤ���

VALUE����C�ˤȤäư�̣�Τ���ǡ�������Ф�����ˤ�

 (1) VALUE�Υǡ��������פ��Τ�
 (2) VALUE��C�Υǡ������Ѵ�����

��ξ���ɬ�פǤ���(1)��˺���ȴְ�ä��ǡ������Ѵ����Ԥ��
�ơ��ǰ��ץ���बcore dump���ޤ���

1.1 �ǡ���������

Ruby�ˤϥ桼�����Ȥ���ǽ���Τ���ʲ��Υ����פ�����ޤ���

	T_NIL		nil
	T_OBJECT	�̾�Υ��֥�������
	T_CLASS		���饹
	T_MODULE	�⥸�塼��
	T_FLOAT		��ư�������
	T_STRING	ʸ����
	T_REGEXP	����ɽ��
	T_ARRAY		����
	T_FIXNUM	Fixnum(31bit����)
	T_HASH		Ϣ������
	T_STRUCT	(Ruby��)��¤��
	T_BIGNUM	¿��Ĺ����
	T_FILE		�����
	T_TRUE		��
	T_FALSE		��
	T_DATA		�ǡ���
	T_SYMBOL	����ܥ�

����¾���������Ѥ���Ƥ���ʲ��Υ����פ�����ޤ���

	T_ICLASS
	T_MATCH
	T_UNDEF
	T_VARMAP
	T_SCOPE
	T_NODE

�ۤȤ�ɤΥ����פ�C�ι�¤�ΤǼ������Ƥ��ޤ���

1.2 VALUE�Υǡ��������פ���å�����

ruby.h�Ǥ�TYPE()�Ȥ����ޥ���������Ƥ��ơ�VALUE�Υǡ���
�����פ��Τ뤳�Ȥ�����ޤ���TYPE()�ޥ���Ͼ�ǾҲ𤷤�T_XXXX
�η����������֤��ޤ���VALUE�Υǡ��������פ˱����ƽ������
���ˤϡ�TYPE()���ͤ�ʬ��뤳�Ȥˤʤ�ޤ���

  switch (TYPE(obj)) {
    case T_FIXNUM:
      /* FIXNUM�� */
      break;
    case T_STRING:
      /* ʸ����ν�� */
      break;
    case T_ARRAY:
      /* ����� */
      break;
    default:
      /* �㳰��ȯ�������� */
      rb_raise(rb_eTypeError, "not valid value");
      break;
  }

����ȥǡ��������פ���å����ơ��������ʤ�����㳰��ȯ����
��ؿ��Ѱդ���Ƥ��ޤ���

  void Check_Type(VALUE value, int type)

���δؿ��value��type��̵����С��㳰��ȯ�������ޤ��������
����Ϳ����줿VALUE�Υǡ��������פ����������ɤ��������å���
�뤿��ˤϡ����δؿ��Ȥ��ޤ���

FIXNUM��NIL�˴ؤ��ƤϤ���®��Ƚ�̥ޥ����Ѱդ���Ƥ��ޤ���

  FIXNUM_P(obj)
  NIL_P(obj)

1.3 VALUE��C�Υǡ������Ѵ�����

�ǡ��������פ�T_NIL, T_FALSE, T_TRUE�Ǥ������ǡ����Ϥ��줾
��nil, false, true�Ǥ������Υǡ��������פΥ��֥������ȤϤҤ�
�Ĥ��Ĥ���¸�ߤ��ޤ���

�ǡ��������פ�T_FIXNUM�λ��������31bit�Υ������������
����FIXNUM��C�������Ѵ����뤿��ˤϥޥ����FIX2INT()�פ��
���ޤ������줫�顤FIXNUM�˸¤餺Ruby�Υǡ��������Ѵ�����
��NUM2INT()�פȤ����ޥ�������ޤ������Υޥ���ϥǡ�������
�פΥ����å�̵���ǻȤ��ޤ�(������Ѵ��Ǥ��ʤ����ˤ��㳰��
ȯ������)��Ʊ�ͤ˥����å�̵���ǻȤ����Ѵ��ޥ����double��
���Ф���NUM2DBL()�פ�����ޤ���

char* ����Ф���硢version 1.6 ����Ǥϡ�STR2CSTR()�פ�
�����ޥ����ȤäƤ��ޤ������������ to_str() �ˤ����ۤ�
���Ѵ���̤� GC ������ǽ�������뤿�ᡢversion 1.7 �ʹߤǤ�
obsolete �Ȥʤꡢ����� StringValue() �� StringValuePtr()
��Ȥ�����侩���Ƥ��ޤ���StringValue(var) �� var �� String
 �Ǥ���в��⤻���������Ǥʤ���� var �� var.to_str() �η�̤�
�֤�������ޥ���StringValuePtr(var) ��Ʊ�ͤ� var ���֤�����
�Ƥ��� var ��ʸ����ɽ�����Ф��� char* ���֤��ޥ���Ǥ���var ��
���Ƥ�ľ���֤��������������Τǡ�var �� lvalue �Ǥ���ɬ�פ�
����ޤ���

����ʳ��Υǡ��������פ��б�����C�ι�¤�Τ�����ޤ����б���
�빽¤�ΤΤ���VALUE�Ϥ��Τޤޥ��㥹��(���Ѵ�)����й�¤�Τ�
�ݥ��󥿤��Ѵ��Ǥ��ޤ���

��¤�Τϡ�struct RXxxxx�פȤ���̾����ruby.h��������Ƥ���
�����㤨��ʸ����ϡ�struct RString�פǤ����ºݤ˻Ȥ���ǽ����
����Τ�ʸ��������󤯤餤���Ȼפ��ޤ���

ruby.h�ǤϹ�¤�Τإ��㥹�Ȥ���ޥ�����RXXXXX()��(������ʸ
���ˤ������)�Ȥ���̾�����󶡤���Ƥ��ޤ�(��: RSTRING())��

�㤨�С�ʸ����str��Ĺ������뤿��ˤϡ�RSTRING(str)->len�פ�
����ʸ����str��char*�Ȥ�����뤿��ˤϡ�RSTRING(str)->ptr��
�Ȥ��ޤ�������ξ��ˤϡ����줾���RARRAY(ary)->len�ס�
��RARRAY(ary)->ptr�פȤʤ�ޤ���

Ruby�ι�¤�Τ�ľ�ܥ������������˵���Ĥ��ʤ���Фʤ�ʤ���
�Ȥϡ������ʸ����ι�¤�Τ���Ȥϻ��Ȥ������ǡ�ľ���ѹ���
�ʤ����ȤǤ���ľ���ѹ�������硤���֥������Ȥ����Ƥ������
�Ȥ�ʤ��ʤäơ��פ�̥Х��θ����ˤʤ�ޤ���

1.4 C�Υǡ�����VALUE���Ѵ�����

VALUE�μºݤι�¤��

  * FIXNUM��

    1bit�����եȤ��ơ�LSB��Ω�Ƥ롥

  * ����¾�Υݥ��󥿤ξ��

    ���Τޤ�VALUE�˥��㥹�Ȥ��롥

�ȤʤäƤ��ޤ�����äơ�LSB����å������VALUE��FIXNUM����
�����狼��櫓�Ǥ�(�ݥ��󥿤�LSB��Ω�äƤ��ʤ����Ȥ��ꤷ��
����)��

�Ǥ����顤FIXNUM�ʳ���Ruby�Υ��֥������Ȥι�¤�Τ�ñ��VALUE
�˥��㥹�Ȥ�������VALUE���Ѵ�����ޤ�����������Ǥ�դι�¤
�Τ�VALUE�˥��㥹�Ƚ����櫓�ǤϤ���ޤ��󡥥��㥹�Ȥ����
��Ruby���ΤäƤ��빽¤��(ruby.h��������Ƥ���struct RXxxx
�Τ��)�����Ǥ���

FIXNUM�˴ؤ��Ƥ��Ѵ��ޥ�����ͳ����ɬ�פ�����ޤ���C�����
����VALUE���Ѵ�����ޥ���ϰʲ��Τ�Τ�����ޤ���ɬ�פ˱���
�ƻȤ�ʬ���Ƥ���������

  INT2FIX()	��Ȥ����31bit����˼��ޤ뼫��������
  INT2NUM()	Ǥ�դ�����VALUE��

INT2NUM()�����FIXNUM���ϰϤ˼��ޤ�ʤ���硤Bignum���Ѵ�
���Ƥ���ޤ�(���������٤�)��

1.5 Ruby�Υǡ��������

�����Ҥ٤��̤ꡤRuby�ι�¤�Τ򥢥��������������Ƥι�����
�Ԥ����Ȥϴ�����ޤ��󡥤ǡ�Ruby�Υǡ���������ˤ�
Ruby���Ѱդ��Ƥ���ؿ���Ѥ��Ƥ���������

�����ǤϤ�äȤ�Ȥ���Ǥ���ʸ�������������/�����
���ؿ�򤢤��ޤ�(����ǤϤʤ��Ǥ�)��

 ʸ������Ф���ؿ�

  rb_str_new(const char *ptr, long len)

    ������Ruby��ʸ���������롥

  rb_str_new2(const char *ptr)

    C��ʸ���󤫤�Ruby��ʸ���������롥���δؿ�ε�ǽ��
    rb_str_new(ptr, strlen(ptr))��Ʊ��Ǥ��롥

  rb_tainted_str_new(const char *ptr, long len)

    �����ޡ������ղä��줿������Ruby��ʸ���������롥����
    ����Υǡ����˴�Ť�ʸ����ˤϱ����ޡ������ղä����٤�
    �Ǥ��롥

  rb_tainted_str_new2(const char *ptr)

    C��ʸ���󤫤����ޡ������ղä��줿Ruby��ʸ���������롥

  rb_str_cat(VALUE str, const char *ptr, long len)

    Ruby��ʸ����str��len�Х��Ȥ�ʸ����ptr���ɲä��롥

 ������Ф���ؿ�

  rb_ary_new()

    ��Ǥ�0�����������롥

  rb_ary_new2(long len)

    ��Ǥ�0�����������롥len���ʬ���ΰ�򤢤餫������
    ��ƤƤ�����

  rb_ary_new3(long n, ...)

    ����ǻ��ꤷ��n��Ǥ�ޤ����������롥

  rb_ary_new4(long n, VALUE *elts)

    �����Ϳ����n��Ǥ����������롥

  rb_ary_push(VALUE ary, VALUE val)
  rb_ary_pop(VALUE ary)
  rb_ary_shift(VALUE ary)
  rb_ary_unshift(VALUE ary, VALUE val)

    Array��Ʊ̾�Υ᥽�åɤ�Ʊ��Ư���򤹤�ؿ���1�����ɬ��
    ����Ǥʤ���Фʤ�ʤ���

2��Ruby�ε�ǽ��Ȥ�

���Ū��Ruby�ǽ񤱤뤳�Ȥ�C�Ǥ�񤱤ޤ���Ruby���Τ�Τ�C�ǵ�
�Ҥ���Ƥ����Ǥ����顤����Ȥ���������ʤ�Ǥ����ɡ�������
��Ruby�γ�ĥ�˻Ȥ����Ȥ�¿��������ͽ¬����뵡ǽ���濴�˾�
�𤷤ޤ���

2.1 Ruby�˵�ǽ���ɲä���

Ruby���󶡤���Ƥ���ؿ��Ȥ���Ruby���󥿥ץ꥿�˿�������ǽ
���ɲä��뤳�Ȥ��Ǥ��ޤ���Ruby�Ǥϰʲ��ε�ǽ���ɲä���ؿ�
�󶡤���Ƥ��ޤ���

 * ���饹���⥸�塼��
 * �᥽�åɡ��ðۥ᥽�åɤʤ�
 * ���

�ǤϽ�˾Ҳ𤷤ޤ���

2.1.1 ���饹/�⥸�塼����

���饹��⥸�塼��������뤿��ˤϡ��ʲ��δؿ��Ȥ��ޤ���

  VALUE rb_define_class(const char *name, VALUE super)
  VALUE rb_define_module(const char *name)

�����δؿ�Ͽ����������줿���饹��⥸�塼����֤��ޤ���
�᥽�åɤ��������ˤ������ͤ�ɬ�פʤΤǡ��ۤȤ�ɤξ��
������ͤ��ѿ�˳�Ǽ���Ƥ���ɬ�פ�����Ǥ��礦��

���饹��⥸�塼���¾�Υ��饹������˥ͥ��Ȥ�����������
�ϰʲ��δؿ��Ȥ��ޤ���

  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
  VALUE rb_define_module_under(VALUE outer, const char *name)

2.1.2 �᥽�å�/�ðۥ᥽�å���

�᥽�åɤ��ðۥ᥽�åɤ�������ˤϰʲ��δؿ��Ȥ��ޤ���

  void rb_define_method(VALUE klass, const char *name, 
		        VALUE (*func)(), int argc)

  void rb_define_singleton_method(VALUE object, const char *name, 
			          VALUE (*func)(), int argc)


ǰ�Τ���������ȡ��ðۥ᥽�åɡפȤϡ���������Υ��֥�����
�Ȥ��Ф��Ƥ���ͭ���ʥ᥽�åɤǤ���Ruby�ǤϤ褯Smalltalk�ˤ�
���륯�饹�᥽�åɤȤ��ơ����饹���Ф����ðۥ᥽�åɤ��Ȥ��
�ޤ���

�����δؿ�� argc�Ȥ��������C�δؿ���Ϥ������ο�(��
����)����ޤ���argc��0�ʾ�λ��ϴؿ�˰����Ϥ�����ο���
̣���ޤ���16�İʾ�ΰ���ϻȤ��ޤ���(�����פ�ޤ����͡���
��ʤ�)���ºݤδؿ�ˤ��Ƭ�ΰ���Ȥ���self��Ϳ�����ޤ���
�ǡ����ꤷ������1¿�������Ĥ��Ȥˤʤ�ޤ���

argc����λ��ϰ���ο�ǤϤʤ�����������ꤷ�����Ȥˤʤ�ޤ���
argc��-1�λ��ϰ��������������Ϥ���ޤ���argc��-2�λ��ϰ�
���Ruby������Ȥ����Ϥ���ޤ���

�᥽�åɤ�������ؿ�Ϥ⤦��Ĥ���ޤ����ҤȤĤ�private��
���åɤ�������ؿ�ǡ������rb_define_method()��Ʊ���Ǥ���

  void rb_define_private_method(VALUE klass, const char *name, 
				VALUE (*func)(), int argc)

private�᥽�åɤȤϴؿ���Ǥ����ƤӽФ����Ȥν���ʤ��᥽��
�ɤǤ���

�⤦�ҤȤĤϥ⥸�塼��ؿ���������ΤǤ����⥸�塼��ؿ�
�Ȥϥ⥸�塼����ðۥ᥽�åɤǤ��ꡤƱ����private�᥽�åɤ�
�⤢���ΤǤ�����򤢤����Math�⥸�塼���sqrt()�ʤɤ�����
���ޤ������Υ᥽�åɤ�

  Math.sqrt(4)

�Ȥ��������Ǥ�

  include Math
  sqrt(4)

�Ȥ��������Ǥ�Ȥ��ޤ����⥸�塼��ؿ��������ؿ�ϰʲ���
�̤�Ǥ���

  void rb_define_module_function(VALUE module, const char *name, 
		                 VALUE (*func)(), int argc)

�ؿ�Ū�᥽�å�(Kernel�⥸�塼���private method)�������뤿
��δؿ�ϰʲ����̤�Ǥ���

  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)


�᥽�åɤ���̾�������뤿��δؿ�ϰʲ����̤�Ǥ���

  void rb_define_alias(VALUE module, const char* new, const char* old);

���饹�᥽�å�allocate����������������ꤹ�뤿��δؿ��
�ʲ����̤�Ǥ���

  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));
  void rb_undef_alloc_func(VALUE klass);

func�ϥ��饹���Ȥ��Ƽ�����äơ������������Ƥ�줿����
�����󥹤��֤��ʤ��ƤϤʤ�ޤ��󡣤��Υ��󥹥��󥹤ϡ������
�������ʤɤ�ޤޤʤ����Ǥ������ֶ��פΤޤޤˤ��Ƥ������ۤ�
���褤�Ǥ��礦��

2.1.3 �����

��ĥ�饤�֥�꤬ɬ�פ����Ϥ��餫���������Ƥ���������ɤ�
�Ǥ��礦������������ؿ����Ĥ���ޤ���

  void rb_define_const(VALUE klass, const char *name, VALUE val)
  void rb_define_global_const(const char *name, VALUE val)

���Ԥ�����Υ��饹/�⥸�塼���°���������������Ρ���
�Ԥϥ����Х�������������ΤǤ���

2.2 Ruby�ε�ǽ��C����ƤӽФ�

���ˡ�1.5 Ruby�Υǡ��������٤ǰ���Ҳ𤷤��褦�ʴؿ��
�Ȥ��С�Ruby�ε�ǽ��¸����Ƥ���ؿ��ľ�ܸƤӽФ����Ȥ�����
�ޤ���

# ���Τ褦�ʴؿ�ΰ��ɽ�Ϥ��ޤΤȤ�����ޤ��󡥥�������
# �뤷���ʤ��Ǥ��͡�

����ʳ��ˤ�Ruby�ε�ǽ��ƤӽФ��ˡ�Ϥ����Ĥ�����ޤ���

2.2.1 Ruby�Υץ�����eval����

C����Ruby�ε�ǽ��ƤӽФ���äȤ��ñ���ˡ�Ȥ��ơ�ʸ�����
Ϳ����줿Ruby�Υץ�����ɾ������ʲ��δؿ����ޤ���

  VALUE rb_eval_string(const char *str)

����ɾ���ϸ��ߤδĶ��ǹԤ��ޤ����Ĥޤꡤ���ߤΥ������ѿ�
�ʤɤ���Ѥ��ޤ���

2.2.2 ID�ޤ��ϥ���ܥ�

C����ʸ������ͳ������Ruby�Υ᥽�åɤ�ƤӽФ����Ȥ�Ǥ���
����������ˡ�Ruby���󥿥ץ꥿��ǥ᥽�åɤ��ѿ�̾����ꤹ��
���˻Ȥ��Ƥ���ID�ˤĤ��������Ƥ����ޤ��礦��

ID�Ȥ��ѿ�̾���᥽�å�̾��ɽ������Ǥ���Ruby�Ǥ�ID���б�����
���֥������ȤȤ��ƥ���ܥ�(Symbol)�����ꡤ

 :���̻�

�ǥ��������Ǥ��ޤ���C���餳��������뤿��ˤϴؿ�

  rb_intern(const char *name)

��Ȥ��ޤ���Ruby������Ȥ���Ϳ����줿����ܥ�(�ޤ���ʸ��
��)��ID���Ѵ�����ˤϰʲ��δؿ��Ȥ��ޤ���

  rb_to_id(VALUE symbol)

ID���饷��ܥ����뤿��ˤϰʲ��Υޥ����Ȥ��ޤ���

  VALUE ID2SYM(ID id)

����ܥ뤫��ID����뤿��ˤϰʲ��Υޥ����Ȥ��ޤ���

  ID SYM2ID(VALUE symbol)

2.2.3 C����Ruby�Υ᥽�åɤ�ƤӽФ�

C����ʸ������ͳ������Ruby�Υ᥽�åɤ�ƤӽФ�����ˤϰʲ�
�δؿ��Ȥ��ޤ���

  VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)

���δؿ�ϥ��֥�������recv��mid�ǻ��ꤵ���᥽�åɤ�Ƥӽ�
���ޤ�������¾�˰���λ���λ�����㤦�ʲ��δؿ�⤢��ޤ���

  VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
  VALUE rb_apply(VALUE recv, ID mid, VALUE args)

apply�ˤϰ���Ȥ���Ruby�������Ϳ���ޤ���

2.2.4 �ѿ�/���򻲾�/��������

C����ؿ��Ȥäƻ��ȡ������Ǥ���Τϡ������󥹥�����
��Ǥ�������ѿ�ϰ���Τ�Τ�C������ѿ�Ȥ��ƥ��������Ǥ�
�ޤ����������ѿ�򻲾Ȥ����ˡ�ϸ������Ƥ��ޤ���

���֥������ȤΥ��󥹥����ѿ�򻲾ȡ���������ؿ�ϰʲ�����
��Ǥ���

  VALUE rb_ivar_get(VALUE obj, ID id)
  VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)

id��rb_intern()��������Τ�ȤäƤ���������

���򻲾Ȥ���ˤϰʲ��δؿ��ȤäƤ���������

  VALUE rb_const_get(VALUE obj, ID id)

���򿷤��������뤿��ˤϡ�2.1.3 ������٤ǾҲ�
��Ƥ���ؿ��ȤäƤ���������

3��Ruby��C�Ȥξ���ͭ

C�����Ruby�δ֤Ǿ����ͭ�����ˡ�ˤĤ��Ʋ�⤷�ޤ���

3.1 C���黲�ȤǤ���Ruby�����

�ʲ���Ruby������C�Υ�٥뤫�黲�ȤǤ��ޤ���

  Qtrue
  Qfalse

    �����͡�Qfalse��C����Ǥ⵶�Ȥߤʤ���ޤ�(�Ĥޤ�0)��

  Qnil

    C���줫�鸫����nil�ס�

3.2 C��Ruby�Ƕ�ͭ���������ѿ�

C��Ruby������ѿ��Ȥäƾ����ͭ�Ǥ��ޤ�����ͭ�Ǥ������
�ѿ�ˤϤ����Ĥ��μ��ब����ޤ������Τʤ��Ǥ�äȤ��ɤ��Ȥ�
���Ȼפ���Τ�rb_define_variable()�Ǥ���

  void rb_define_variable(const char *name, VALUE *var)

���δؿ��Ruby��C�ȤǶ�ͭ��������ѿ�������ޤ����ѿ�̾��
`$'�ǻϤޤ�ʤ����ˤϼ�ưŪ���ɲä���ޤ��������ѿ���ͤ���
������ȼ�ưŪ��Ruby���б������ѿ���ͤ��Ѥ��ޤ���

�ޤ�Ruby¦����Ϲ����Ǥ��ʤ��ѿ�⤢��ޤ�������read only��
�ѿ�ϰʲ��δؿ�������ޤ���

  void rb_define_readonly_variable(const char *name, VALUE *var)

������ѿ��¾��hook��Ĥ�������ѿ�����Ǥ��ޤ���hook�դ�
������ѿ�ϰʲ��δؿ���Ѥ��������ޤ���hook�դ�����ѿ��
�ͤλ��Ȥ�����hook�ǹԤ�ɬ�פ�����ޤ���

  void rb_define_hooked_variable(const char *name, VALUE *var,
				 VALUE (*getter)(), void (*setter)())

���δؿ��C�δؿ�ˤ�ä�hook�ΤĤ���줿����ѿ��������
�����ѿ���Ȥ��줿���ˤϴؿ�getter�����ѿ���ͤ����åȤ���
�����ˤϴؿ�setter���ƤФ�롥hook����ꤷ�ʤ�����getter��
setter��0����ꤷ�ޤ���

# getter��setter��0�ʤ��rb_define_variable()��Ʊ���ˤʤ롥

���줫�顤C�δؿ�ˤ�äƼ¸������Ruby������ѿ��������
�ؿ����ޤ���

  void rb_define_virtual_variable(const char *name,
				  VALUE (*getter)(), void (*setter)())

���δؿ�ˤ�ä������줿Ruby������ѿ���Ȥ��줿���ˤ�
getter�����ѿ���ͤ����åȤ��줿���ˤ�setter���ƤФ�ޤ���

getter��setter�λ��ͤϰʲ����̤�Ǥ���

  (*getter)(ID id, void *data, struct global_entry* entry);
  (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);

3.3 C�Υǡ�����Ruby���֥������Ȥˤ���

C������������줿�ǡ���(��¤��)��Ruby�Υ��֥������ȤȤ���
��갷��������礬���ꤨ�ޤ������Τ褦�ʾ��ˤϡ�Data�Ȥ���
Ruby���֥������Ȥ�C�ι�¤��(�ؤΥݥ���)�򤯤�ळ�Ȥ�Ruby
���֥������ȤȤ��Ƽ�갷����褦�ˤʤ�ޤ���

Data���֥������Ȥ�����ƹ�¤�Τ�Ruby���֥������Ȥ˥��ץ���
�����뤿��ˤϡ��ʲ��Υޥ����Ȥ��ޤ���

  Data_Wrap_Struct(klass, mark, free, ptr)

���Υޥ��������ͤ�������줿Data���֥������ȤǤ���

klass�Ϥ���Data���֥������ȤΥ��饹�Ǥ���ptr�ϥ��ץ��벽����
C�ι�¤�ΤؤΥݥ��󥿤Ǥ���mark�Ϥ��ι�¤�Τ�Ruby�Υ��֥���
���Ȥؤλ��Ȥ������˻Ȥ��ؿ�Ǥ������Τ褦�ʻ��Ȥ�ޤޤʤ�
���ˤ�0����ꤷ�ޤ���

# ���Τ褦�ʻ��Ȥϴ�����ޤ���

free�Ϥ��ι�¤�Τ��⤦���פˤʤä����˸ƤФ��ؿ�Ǥ�������
�ؿ�����١������쥯������ƤФ�ޤ������줬-1�ξ��ϡ�ñ
��˳������ޤ���

C�ι�¤�Τγ����Data���֥������Ȥ������Ʊ���˹Ԥ��ޥ����
���ưʲ��Τ�Τ��󶡤���Ƥ��ޤ���

  Data_Make_Struct(klass, type, mark, free, sval)

���Υޥ��������ͤ�������줿Data���֥������ȤǤ���

klass, mark, free��Data_Wrap_Struct��Ʊ��Ư���򤷤ޤ���type
�ϳ����Ƥ�C��¤�Τη��Ǥ��������Ƥ�줿��¤�Τ��ѿ�sval
���������ޤ��������ѿ�η��� (type*) �Ǥ���ɬ�פ�����ޤ���

Data���֥������Ȥ���ݥ��󥿤���Ф��Τϰʲ��Υޥ�����Ѥ�
�ޤ���

  Data_Get_Struct(obj, type, sval)

C�ι�¤�ΤؤΥݥ��󥿤��ѿ�sval���������ޤ���

������Data�λȤ���Ϥ���ä�ʬ����ˤ����Τǡ����������
����򻲾Ȥ��Ƥ���������

4������ - dbm�ѥå���������

�����ޤǤ����ǤȤꤢ������ĥ�饤�֥��Ϻ���Ϥ��Ǥ���
Ruby��ext�ǥ��쥯�ȥ�ˤ��Ǥ˴ޤޤ�Ƥ���dbm�饤�֥������
�����ʳ�Ū�������ޤ���

(1) �ǥ��쥯�ȥ����

  % mkdir ext/dbm

Ruby 1.1�����Ǥ�դΥǥ��쥯�ȥ�ǥ����ʥߥå��饤�֥����
�뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ�����Ruby���Ū�˥�󥯤������
��Ruby��Ÿ�������ǥ��쥯�ȥ�β���ext�ǥ��쥯�ȥ����˳�ĥ
�饤�֥���ѤΥǥ��쥯�ȥ����ɬ�פ�����ޤ���̾����Ŭ���
����ǹ����ޤ���

(2) �߷פ���

�ޤ�������ʤ�Ǥ����ɡ��ɤ�������ǽ��¸����뤫�ɤ����ޤ���
�פ���ɬ�פ�����ޤ����ɤ�ʥ��饹��Ĥ��뤫�����Υ��饹�ˤ�
�ɤ�ʥ᥽�åɤ����뤫�����饹���󶡤������ʤɤˤĤ���߷�
���ޤ���

(3) C�����ɤ��

��ĥ�饤�֥�����ΤȤʤ�C����Υ�������񤭤ޤ���C����Υ���
�����ҤȤĤλ��ˤϡ֥饤�֥��̾.c�פ�֤��ɤ��Ǥ��礦��C
����Υ�������ʣ��ξ��ˤϵդˡ֥饤�֥��̾.c�פȤ����ե�
����̾���򤱤�ɬ�פ�����ޤ������֥������ȥե�����ȥ⥸�塼
�����������Ū����������֥饤�֥��̾.o�פȤ����ե�����
�Ȥ����ͤ��뤫��Ǥ���

Ruby�ϳ�ĥ�饤�֥�����ɤ����ˡ�Init_�饤�֥��̾�פ�
�����ؿ��ưŪ�˼¹Ԥ��ޤ���dbm�饤�֥��ξ���Init_dbm��
�Ǥ������δؿ����ǥ��饹���⥸�塼�롤�᥽�åɡ����ʤɤ�
����Ԥ��ޤ���dbm.c��������Ѥ��ޤ���

--
Init_dbm()
{
    /* DBM���饹�������� */
    cDBM = rb_define_class("DBM", rb_cObject);
    /* DBM��Enumerate�⥸�塼��򥤥󥯥롼�ɤ��� */
    rb_include_module(cDBM, rb_mEnumerable);

    /* DBM���饹�Υ��饹�᥽�å�open(): �����C������Ǽ����� */
    rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);

    /* DBM���饹�Υ᥽�å�close(): ����Ϥʤ� */
    rb_define_method(cDBM, "close", fdbm_close, 0);
    /* DBM���饹�Υ᥽�å�[]: �����1�� */
    rb_define_method(cDBM, "[]", fdbm_fetch, 1);
		:

    /* DBM�ǡ������Ǽ���륤�󥹥����ѿ�̾�Τ����ID */
    id_dbm = rb_intern("dbm");
}
--

DBM�饤�֥���dbm�Υǡ������б����륪�֥������Ȥˤʤ�Ϥ���
�����顤C�������dbm��Ruby������˼����ɬ�פ�����ޤ���


dbm.c�Ǥ�Data_Make_Struct��ʲ��Τ褦�˻ȤäƤ��ޤ���

--
struct dbmdata {
    int  di_size;
    DBM *di_dbm;
};


obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
--

�����Ǥ�dbmstruct��¤�ΤؤΥݥ��󥿤�Data�˥��ץ��벽���Ƥ�
�ޤ���DBM*��ľ�ܥ��ץ��벽���ʤ��Τ�close()�������ν�����
���ƤΤ��ȤǤ���

Data���֥������Ȥ���dbmstruct��¤�ΤΥݥ��󥿤���Ф�����
�˰ʲ��Υޥ����ȤäƤ��ޤ���

--
#define GetDBM(obj, dbmp) {\
    Data_Get_Struct(obj, struct dbmdata, dbmp);\
    if (dbmp->di_dbm == 0) closed_dbm();\
}
--

����ä�ʣ���ʥޥ���Ǥ������פ����dbmdata��¤�ΤΥݥ���
�μ��Ф��ȡ�close����Ƥ��뤫�ɤ����Υ����å���ޤȤ�Ƥ�
�����Ǥ���

DBM���饹�ˤϤ�������᥽�åɤ�����ޤ�����ʬ�ह���3�����
����μ����������ޤ����ҤȤĤϰ���ο����Τ�Τǡ����
���Ƥ�delete�᥽�åɤ�����ޤ���delete�᥽�åɤ������Ƥ���
fdbm_delete()�Ϥ��Τ褦�ˤʤäƤ��ޤ���

--
static VALUE
fdbm_delete(obj, keystr)
    VALUE obj, keystr;
{
	:
}
--

����ο����Υ����פ���1����self����2����ʹߤ��᥽�å�
�ΰ���Ȥʤ�ޤ���

����ο�����Τ�Τ�C������Ǽ������Τ�Ruby������Ǽ���
���ΤȤ�����ޤ���dbm�饤�֥�����ǡ�C������Ǽ�������
��DBM�Υ��饹�᥽�åɤǤ���open()�Ǥ�������������Ƥ����
��fdbm_s_open()�Ϥ����ʤäƤ��ޤ���

--
static VALUE
fdbm_s_open(argc, argv, klass)
    int argc;
    VALUE *argv;
    VALUE klass;
{
	:
    if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
	mode = 0666;		/* default value */
    }
	:
}
--

���Υ����פδؿ����1����Ϳ����줿����ο���2����Ϳ��
��줿�������äƤ�������ˤʤ�ޤ���self����3����Ȥ���Ϳ
�����ޤ���

���������Ϳ����줿������Ϥ��뤿��δؿ�open()�Ǥ�Ȥ�
��Ƥ���rb_scan_args()�Ǥ�����3����˻��ꤷ���ե����ޥåȤ�
��������4�ѿ�ʹߤ˻��ꤷ���ѿ���ͤ�������Ƥ���ޤ�������
�ե����ޥåȤϡ���1ʸ���ܤ���ά�Ǥ��ʤ�����ο���2ʸ���ܤ�
��ά�Ǥ�����ο���3ʸ���ܤ��б������̵꤬�����ޤ�ΰ�
����뤫�ɤ����򼨤�"*"�Ǥ���2ʸ���ܤ�3ʸ���ܤϾ�ά�Ǥ���
����dbm.c����Ǥϡ��ե����ޥåȤ�"11"�Ǥ����顤����Ϻ���1��
�ǡ�2�Ĥޤǵ������Ȥ�����̣�ˤʤ�ޤ�����ά����Ƥ�����
�ѿ���ͤ�nil(C����Υ�٥�Ǥ�Qnil)�ˤʤ�ޤ���

Ruby������ǰ���������Τ�indexes������ޤ�������Ϥ�
���Ǥ���

--
static VALUE
fdbm_indexes(obj, args)
    VALUE obj, args;
{
	:
}
--

��1�����self����2�����Ruby������Ǥ���

** ��ջ���

Ruby�ȶ�ͭ�Ϥ��ʤ���Ruby�Υ��֥������Ȥ��Ǽ�����ǽ���Τ���
C������ѿ�ϰʲ��δؿ��Ȥä�Ruby���󥿥ץ꥿���ѿ��¸��
�򶵤��Ƥ����Ƥ����������Ǥʤ���GC�ǥȥ�֥�򵯤����ޤ���

  void rb_global_variable(VALUE *var)

(4) extconf.rb���Ѱդ���

Makefile������ο����ˤʤ�extconf.rb�Ȥ����ե��������
�ޤ���extconf.rb�ϥ饤�֥��Υ���ѥ����ɬ�פʾ��Υ�����
���ʤɤ�Ԥ����Ȥ���Ū�Ǥ����ޤ���

  require 'mkmf'

��extconf.rb���Ƭ���֤��ޤ���extconf.rb����Ǥϰʲ���Ruby��
���Ȥ����Ȥ�����ޤ���

  have_library(lib, func): �饤�֥���¸�ߥ����å�
  have_func(func, header): �ؿ��¸�ߥ����å�
  have_header(header): �إå��ե������¸�ߥ����å�
  create_makefile(target): Makefile�����

�ʲ����ѿ��Ȥ����Ȥ��Ǥ��ޤ���

  $CFLAGS: ����ѥ������ɲ�Ū�˻��ꤹ��ե饰(-O�ʤ�)
  $CPPFLAGS: �ץ�ץ��å����ɲ�Ū�˻��ꤹ��ե饰(-I��-D�ʤ�)
  $LDFLAGS: ��󥯻����ɲ�Ū�˻��ꤹ��ե饰(-L�ʤ�)
  $objs: ��󥯤���륪�֥������ȥե�����̾�Υꥹ��

���֥������ȥե�����Υꥹ�Ȥϡ��̾�ϥ������ե�����򸡺���
�Ƽ�ưŪ���������ޤ�����make������ǥ������������褦��
�������Ū�˻��ꤹ��ɬ�פ�����ޤ���

�饤�֥��򥳥�ѥ��뤹���郎·�鷺�����Υ饤�֥��򥳥�
�ѥ��뤷�ʤ����ˤ�create_makefile��ƤФʤ����Makefile���
�����줺������ѥ����Ԥ��ޤ���

(5) depend���Ѱդ���

�⤷���ǥ��쥯�ȥ��depend�Ȥ����ե����뤬¸�ߤ���С�
Makefile����¸�ط�����å����Ƥ���ޤ���

  % gcc -MM *.c > depend

�ʤɤǺ�뤳�Ȥ�����ޤ������ä�»��̵���Ǥ��礦��

(6) Makefile�������

Makefile��ºݤ�������뤿��ˤ�

  ruby extconf.rb

�Ȥ��ޤ���extconf.rb�� require 'mkmf' �ιԤ��ʤ����ˤϥ��顼
�ˤʤ�ޤ��Τǡ�������ɲä���

  ruby -r mkmf extconf.rb

�Ȥ��Ƥ���������

site_ruby �ǥ��쥯�ȥ�Ǥʤ���
vendor_ruby �ǥ��쥯�ȥ�˥��󥹥ȡ��뤹����ˤ�
�ʲ��Τ褦�� --vendor ���ץ�����ä��Ƥ���������

  ruby extconf.rb --vendor

�ǥ��쥯�ȥ��ext�ʲ����Ѱդ������ˤ�Ruby���Τ�make�λ���
��ưŪ��Makefile����������ޤ��Τǡ����Υ��ƥåפ����פǤ���

(7) make����

ưŪ��󥯥饤�֥����������ˤϤ��ξ��make���Ƥ�����
����ɬ�פǤ���� make install �ǥ��󥹥ȡ��뤵��ޤ���

ext�ʲ��˥ǥ��쥯�ȥ���Ѱդ������ϡ�Ruby�Υǥ��쥯�ȥ��
make��¹Ԥ����Makefile�������make��ɬ�פˤ�äƤϤ��Υ�
���塼���Ruby�ؤΥ�󥯤ޤǼ�ưŪ�˼¹Ԥ��Ƥ���ޤ���
extconf.rb��񤭴�����ʤɤ���Makefile�κ������ɬ�פʻ��Ϥ�
��Ruby�ǥ��쥯�ȥ��make���Ƥ���������

��ĥ�饤�֥���make install��Ruby�饤�֥��Υǥ��쥯�ȥ��
���˥��ԡ�����ޤ����⤷��ĥ�饤�֥��ȶ�Ĵ���ƻȤ�Ruby�ǵ�
�Ҥ��줿�ץ���ब���ꡤRuby�饤�֥����֤��������ˤϡ�
��ĥ�饤�֥���ѤΥǥ��쥯�ȥ�β��� lib �Ȥ����ǥ��쥯�ȥ�
���ꡤ������ ��ĥ�� .rb �Υե�������֤��Ƥ�����Ʊ���˥���
���ȡ��뤵��ޤ���

(8) �ǥХå�

�ޤ����ǥХå����ʤ���ư���ʤ��Ǥ��礦�͡�ext/Setup�˥ǥ���
���ȥ�̾��񤯤��Ū�˥�󥯤���ΤǥǥХå����Ȥ���褦�ˤ�
��ޤ�������ʬ����ѥ��뤬�٤��ʤ�ޤ����ɡ�

(9) �Ǥ�������

��Ϥ��ä���Ȥ��ʤꡤ������������ʤꡤ���ʤꡤ����ͳ�ˤ�
�Ȥ�����������Ruby�κ�Ԥϳ�ĥ�饤�֥��˴ؤ��ư�ڤθ����
��ĥ���ޤ���

Appendix A. Ruby�Υ����������ɤ�ʬ��

Ruby�Υ������Ϥ����Ĥ���ʬ�ह�뤳�Ȥ�����ޤ������Τ�������
���饤�֥�����ʬ�ϴ���Ū�˳�ĥ�饤�֥���Ʊ�������ˤʤ�
�Ƥ��ޤ��������Υ������Ϻ��ޤǤ����ǤۤȤ�����Ǥ����
�פ��ޤ���

Ruby�������

  class.c
  error.c
  eval.c
  gc.c
  object.c
  parse.y
  variable.c

�桼�ƥ���ƥ��ؿ�

  dln.c
  regex.c
  st.c
  util.c

Ruby���ޥ�ɤμ��

  dmyext.c
  inits.c
  main.c
  ruby.c
  version.c

���饹�饤�֥��

  array.c
  bignum.c
  compar.c
  dir.c
  enum.c
  file.c
  hash.c
  io.c
  marshal.c
  math.c
  numeric.c
  pack.c
  prec.c
  process.c
  random.c
  range.c
  re.c
  signal.c
  sprintf.c
  string.c
  struct.c
  time.c

Appendix B. ��ĥ�Ѵؿ��ե����

C���줫��Ruby�ε�ǽ����Ѥ���API�ϰʲ����̤�Ǥ��롥

** ��

VALUE

  Ruby���֥������Ȥ�ɽ�����뷿��ɬ�פ˱����ƥ��㥹�Ȥ����Ѥ��롥
  �Ȥ߹��߷���ɽ������C�η���ruby.h�˵��Ҥ��Ƥ���R�ǻϤޤ빽¤
  �ΤǤ��롥VALUE���򤳤��˥��㥹�Ȥ��뤿���R�ǻϤޤ빽¤��
  ̾�����ʸ���ˤ���̾���Υޥ����Ѱդ���Ƥ��롥

** �ѿ����

Qnil

  ���: nil���֥�������

Qtrue

  ���: true���֥�������(���Υǥե������)

Qfalse

  ���: false���֥�������

** C�ǡ����Υ��ץ��벽

Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)

  C��Ǥ�դΥݥ��󥿤򥫥ץ��벽����Ruby���֥������Ȥ��֤�����
  �Υݥ��󥿤�Ruby���饢����������ʤ��ʤä�����free�ǻ��ꤷ��
  �ؿ�ƤФ�롥�ޤ������Υݥ��󥿤λؤ��ǡ�����¾��Ruby����
  �������Ȥ�ؤ��Ƥ����硤mark�˻��ꤹ��ؿ�ǥޡ�������ɬ��
  �����롥

Data_Make_Struct(klass, type, mark, free, sval)

  type���Υ����malloc�����ѿ�sval����������塤����򥫥ץ�
  �벽�����ǡ������֤��ޥ���

Data_Get_Struct(data, type, sval)

  data����type���Υݥ��󥿤���Ф��ѿ�sval���������ޥ���

** �������å�

TYPE(value)
FIXNUM_P(value)
NIL_P(value)
void Check_Type(VALUE value, int type)
void Check_SafeStr(VALUE value)

** ���Ѵ�

FIX2INT(value)
INT2FIX(i)
NUM2INT(value)
INT2NUM(i)
NUM2DBL(value)
rb_float_new(f)
StringValue(value)
StringValuePtr(value)
StringValueCStr(value)
rb_str_new2(s)

** ���饹/�⥸�塼����

VALUE rb_define_class(const char *name, VALUE super)

  super�Υ��֥��饹�Ȥ��ƿ�����Ruby���饹�������롥

VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)

  super�Υ��֥��饹�Ȥ��ƿ�����Ruby���饹��������module��
  ���Ȥ��������롥

VALUE rb_define_module(const char *name)

  ������Ruby�⥸�塼��������롥

VALUE rb_define_module_under(VALUE module, const char *name)

  ������Ruby�⥸�塼���������module�����Ȥ��������롥

void rb_include_module(VALUE klass, VALUE module)

  �⥸�塼��򥤥󥯥롼�ɤ��롥class�����Ǥ�module�򥤥�
  �롼�ɤ��Ƥ����ˤϲ��⤷�ʤ�(¿�ť��󥯥롼�ɤζػ�)��

void rb_extend_object(VALUE object, VALUE module)

  ���֥������Ȥ�⥸�塼��(��������Ƥ���᥽�å�)�dz�ĥ���롥

** ����ѿ���

void rb_define_variable(const char *name, VALUE *var)

  Ruby��C�ȤǶ�ͭ���륰���Х��ѿ�������롥�ѿ�̾��`$'��
  �Ϥޤ�ʤ����ˤϼ�ưŪ���ɲä���롥name�Ȥ���Ruby�μ��̻�
  �Ȥ��Ƶ�����ʤ�ʸ��(�㤨��` ')��ޤ���ˤ�Ruby�ץ���
  �फ��ϸ����ʤ��ʤ롥

void rb_define_readonly_variable(const char *name, VALUE *var)

  Ruby��C�ȤǶ�ͭ����read only�Υ����Х��ѿ�������롥
  read only�Ǥ��뤳�Ȱʳ���rb_define_variable()��Ʊ����

void rb_define_virtual_variable(const char *name,
				VALUE (*getter)(), void (*setter)())

  �ؿ�ˤ�äƼ¸������Ruby�ѿ�������롥�ѿ���Ȥ��줿
  ���ˤ�getter�����ѿ���ͤ����åȤ��줿���ˤ�setter���ƤФ�
  �롥

void rb_define_hooked_variable(const char *name, VALUE *var,
			       VALUE (*getter)(), void (*setter)())

  �ؿ�ˤ�ä�hook�ΤĤ���줿�����Х��ѿ�������롥�ѿ�
  �����Ȥ��줿���ˤ�getter�����ؿ���ͤ����åȤ��줿���ˤ�
  setter���ƤФ�롥getter��setter��0����ꤷ�����ˤ�hook��
  ���ꤷ�ʤ��Τ�Ʊ�����ˤʤ롥

void rb_global_variable(VALUE *var)

  GC�Τ��ᡤRuby�ץ���फ��ϥ�����������ʤ���, Ruby����
  �������Ȥ�ޤ�����ѿ��ޡ������롥

** ���

void rb_define_const(VALUE klass, const char *name, VALUE val)

  ���������롥

void rb_define_global_const(const char *name, VALUE val)

  ������������롥

     rb_define_const(rb_cObject, name, val)

  ��Ʊ����̣��

** �᥽�å���

rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

  �᥽�åɤ������롥argc��self�������ο�argc��-1�λ�, 
  �ؿ�ˤϰ���ο�(self��ޤޤʤ�)����1����, ������������2
  ����Ȥ�������Ϳ������(��3�����self)��argc��-2�λ�, 
  ��1����self, ��2����args(args�ϰ����ޤ�Ruby������)��
  ����������Ϳ�����롥
 
rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

  private�᥽�åɤ������롥�����rb_define_method()��Ʊ����

rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)

  �ðۥ᥽�åɤ������롥�����rb_define_method()��Ʊ����

rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)

  argc, argv������Ϳ����줿�����ʬ�򤹤롥fmt��ɬ�ܰ���ο�, 
  �ղð���ο�, �Ĥ�ΰ�����뤫����ꤹ��ʸ�����, "��
  ��*"�Ȥ��������Ǥ��롥 2 ���ܤο��"*"�Ϥ��줾���ά��
  ǽ�Ǥ��롥ɬ�ܰ����Ĥ�ʤ�����0����ꤹ�롥��3�����
  �ߤ��ѿ�ؤΥݥ��󥿤�, ���������Ǥ������ѿ�˳�Ǽ����롥
  �ղð�����б�������Ϳ�����Ƥ��ʤ������ѿ��Qnil��
  �������롥

** Ruby�᥽�åɸƤӽФ�

VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)

  �᥽�åɸƤӽФ���ʸ���󤫤�mid����뤿��ˤ�rb_intern()��
  �Ȥ���

VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)

  �᥽�åɸƤӽФ��������argc, argv�������Ϥ���

VALUE rb_eval_string(const char *str)

  ʸ�����Ruby������ץȤȤ��ƥ���ѥ��롦�¹Ԥ��롥

ID rb_intern(const char *name)

  ʸ������б�����ID���֤���

char *rb_id2name(ID id)

  ID���б�����ʸ������֤�(�ǥХå���)��

char *rb_class2name(VALUE klass)

  ���饹��̾�����֤�(�ǥХå���)�����饹��̾������ʤ����ˤ�, 
  ����̤ä�̾����ĥ��饹��̾�����֤���

int rb_respond_to(VALUE obj, ID id)

  obj��id�Ǽ������᥽�åɤ�Ĥ��ɤ������֤���

** ���󥹥����ѿ�

VALUE rb_iv_get(VALUE obj, const char *name)

  obj�Υ��󥹥����ѿ���ͤ���롥`@'�ǻϤޤ�ʤ����󥹥���
  ���ѿ�� Ruby�ץ���फ�饢�������Ǥ��ʤ��ֱ��줿�ץ���
  �������ѿ�ˤʤ롥������ʸ����̾����ĥ��饹(�ޤ���
  �⥸�塼��)�Υ��󥹥����ѿ�Ȥ��Ƽ������Ƥ��롥

VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)

  obj�Υ��󥹥����ѿ��val�˥��åȤ��롥

** ���湽¤

VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)

  func2��֥�å��Ȥ�����ꤷ, func1�򥤥ƥ졼���Ȥ��ƸƤ֡� 
  func1�ˤ� arg1������Ȥ����Ϥ���, func2�ˤ���1����˥��ƥ졼
  ������Ϳ����줿��, ��2�����arg2���Ϥ���롥
 
VALUE rb_yield(VALUE val)

  val���ͤȤ��ƥ��ƥ졼���֥�å���ƤӽФ���

VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)

  �ؿ�func1��arg1���˸ƤӽФ���func1�μ¹�����㳰��ȯ��
  �������ˤ� func2��arg2���Ȥ��ƸƤ֡�����ͤ��㳰��ȯ��
  ���ʤ��ä�����func1�������, �㳰��ȯ���������ˤ�func2����
  ���ͤǤ��롥

VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, void (*func2)(), VALUE arg2)

  �ؿ�func1��arg1���Ȥ��Ƽ¹Ԥ�, �¹Խ�λ��(���Ȥ��㳰��
  ȯ�����Ƥ�) func2��arg2���Ȥ��Ƽ¹Ԥ��롥����ͤ�func1
  ������ͤǤ���(�㳰��ȯ�������������ʤ�)��

** �㳰�����顼

void rb_warning(const char *fmt, ...)

  rb_verbose����ɸ�२�顼���Ϥ˷ٹ�����ɽ�����롥�����
  printf()��Ʊ����

void rb_raise(rb_eRuntimeError, const char *fmt, ...)

  RuntimeError�㳰��ȯ�������롥�����printf()��Ʊ����

void rb_raise(VALUE exception, const char *fmt, ...)

  exception�ǻ��ꤷ���㳰��ȯ�������롥fmt�ʲ��ΰ����
  printf()��Ʊ����

void rb_fatal(const char *fmt, ...)

  ��̿Ū�㳰��ȯ�������롥�̾���㳰����ϹԤʤ�줺, ���󥿡�
  �ץ꥿����λ����(������ensure�ǻ��ꤵ�줿�����ɤϽ�λ����
  �¹Ԥ����)��

void rb_bug(const char *fmt, ...)

  ���󥿡��ץ꥿�ʤɥץ����ΥХ��Ǥ���ȯ������Ϥ��Τʤ�
  �����λ��Ƥ֡����󥿡��ץ꥿�ϥ�������פ�ľ���˽�λ���롥
  �㳰����ϰ�ڹԤʤ��ʤ���

** Ruby�ν������¹�

Ruby�򥢥ץꥱ���������������ˤϰʲ��Υ��󥿥ե�����
��Ȥ����̾�γ�ĥ�饤�֥��ˤ�ɬ�פʤ���

void ruby_init()

  Ruby���󥿥ץ꥿�ν�����Ԥʤ���

void ruby_options(int argc, char **argv)

  Ruby���󥿥ץ꥿�Υ��ޥ�ɥ饤���ν����Ԥʤ���

void ruby_run()

  Ruby���󥿥ץ꥿��¹Ԥ��롥

void ruby_script(char *name)

  Ruby�Υ�����ץ�̾($0)����ꤹ�롥


Appendix C. extconf.rb�ǻȤ���ؿ��

extconf.rb����Ǥ���Ѳ�ǽ�ʥ���ѥ��������å��δؿ�ϰ�
�����̤�Ǥ��롥

have_macro(macro, headers)

  �إå��ե�����header�򥤥󥯥롼�ɤ��ƥޥ���macro������
  ��Ƥ��뤫�ɤ��������å����롥�ޥ���������Ƥ���true
  ���֤���

have_library(lib, func)

  �ؿ�func�������Ƥ���饤�֥��lib��¸�ߤ���å����롥
  �饤�֥�꤬¸�ߤ�����true���֤���

find_library(lib, func, path...)

  �ؿ�func�������Ƥ���饤�֥��lib��¸�ߤ� -Lpath ���ɲ�
  ���ʤ������å����롥�饤�֥�꤬���դ��ä�����true���֤���

have_func(func, header)

  �إå��ե�����header�򥤥󥯥롼�ɤ��ƴؿ�func��¸�ߤ����
  �����롥func��ɸ��Ǥϥ�󥯤���ʤ��饤�֥����Τ�ΤǤ�
  ���ˤ���have_library�Ǥ��Υ饤�֥�����å����Ƥ���
  �����ؿ�¸�ߤ���true���֤���

have_var(var, header)

  �إå��ե�����header�򥤥󥯥롼�ɤ����ѿ�var��¸�ߤ����
  �����롥var��ɸ��Ǥϥ�󥯤���ʤ��饤�֥����Τ�ΤǤ�
  ���ˤ���have_library�Ǥ��Υ饤�֥�����å����Ƥ���
  �����ѿ�¸�ߤ���true���֤���

have_header(header)

  �إå��ե������¸�ߤ���å����롥�إå��ե����뤬¸�ߤ�
  ��true���֤���

find_header(header, path...)

  �إå��ե�����header��¸�ߤ� -Ipath ���ɲä��ʤ������å�
  ���롥�إå��ե����뤬���դ��ä�����true���֤���

have_struct_member(type, member, header)

  �إå��ե�����header�򥤥󥯥롼�ɤ��Ʒ�type�˥���member
  ��¸�ߤ��뤫����å����롥type��������Ƥ��ơ�member��
  ���Ĥ���true���֤���

have_type(type, header, opt)

  �إå��ե�����header�򥤥󥯥롼�ɤ��Ʒ�type��¸�ߤ��뤫��
  �����å����롥type��������Ƥ���true���֤���

check_sizeof(type, header)

  �إå��ե�����header�򥤥󥯥롼�ɤ��Ʒ�type��charñ�̥���
  ����Ĵ�٤롥type��������Ƥ������Υ��������֤�������
  ��Ƥ��ʤ��Ȥ���nil���֤���

create_makefile(target)

  ��ĥ�饤�֥���Ѥ�Makefile������롥���δؿ��ƤФʤ���
  �Ф��Υ饤�֥��ϥ���ѥ��뤵��ʤ���target�ϥ⥸�塼��̾
  ��ɽ����

find_executable(command, path)

  ���ޥ��command��File::PATH_SEPARATOR�Ƕ�ڤ�줿�ѥ�̾��
  �ꥹ��path����õ����path��nil�ޤ��Ͼ�ά���줿���ϡ��Ķ�
  �ѿ�PATH���ͤ���Ѥ��롥�¹Բ�ǽ�ʥ��ޥ�ɤ����Ĥ��ä����
  �ϥѥ���ޤ�ե�����̾�����Ĥ���ʤ��ä�����nil���֤���

with_config(withval[, default=nil])

  ���ޥ�ɥ饤����--with-<withval>�ǻ��ꤵ�줿���ץ�����ͤ���롥

enable_config(config, *defaults)
disable_config(config, *defaults)

  ���ޥ�ɥ饤����--enable-<config>�ޤ���
  --disable-<config>�ǻ��ꤵ�줿�����ͤ���롥
  --enable-<config>�����ꤵ��Ƥ�������true��
  --disable-<config>�����ꤵ��Ƥ�������false���֤���
  �ɤ������ꤵ��Ƥ��ʤ����ϡ��֥�å��Ĥ��ǸƤӽФ���Ƥ������
  *defaults��yield������̡��֥�å��ʤ��ʤ�*defaults���֤���

dir_config(target[, default_dir])
dir_config(target[, default_include, default_lib])

  ���ޥ�ɥ饤����--with-<target>-dir, --with-<target>-include,
  --with-<target>-lib�Τ����줫�ǻ��ꤵ���ǥ��쥯�ȥ��
  $CFLAGS �� $LDFLAGS ���ɲä��롥--with-<target>-dir=/path��
  --with-<target>-include=/path/include --with-<target>-lib=/path/lib
  ������Ǥ��롥�ɲä��줿 include �ǥ��쥯�ȥ�� lib �ǥ��쥯�ȥ��
  ������֤��� ([include_dir, lib_dir])

pkg_config(pkg)

  pkg-config���ޥ�ɤ���ѥå�����pkg�ξ������롥 
  pkg-config�μºݤΥ��ޥ��̾�ϡ�--with-pkg-config���ޥ��
  �饤�󥪥ץ����ǻ����ǽ��

/*
 * Local variables:
 * fill-column: 60
 * end:
 */
		  GNU LESSER GENERAL PUBLIC LICENSE
		       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

		  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.
  
  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

			    NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

		     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


$BK\%W%m%0%i%`$O%U%j!<%=%U%H%&%'%"$G$9!%(BGPL(the GNU General
Public License)$B$^$?$O0J2<$K<($9>r7o$GK\%W%m%0%i%`$r:FG[I[$G(B
$B$-$^$9!%(BGPL$B$K$D$$$F$O(BGPL$B%U%!%$%k$r;2>H$7$F2<$5$$!%(B

  1. $BJ#@=$O@)8B$J$/<+M3$G$9!%(B

  2. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!<%9$r(B
     $B<+M3$KJQ99$G$-$^$9!%(B

     (a) $B%M%C%H%K%e!<%:$K%]%9%H$7$?$j!$:n<T$KJQ99$rAwIU$9$k(B
         $B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B

     (b) $BJQ99$7$?K\%W%m%0%i%`$r<+J,$N=jB0$9$kAH?%FbIt$@$1$G(B
         $B;H$&!%(B

     (c) $BJQ99E@$rL@<($7$?$&$(!$%=%U%H%&%'%"$NL>A0$rJQ99$9$k!%(B
         $B$=$N%=%U%H%&%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B
         $B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!<(B
         $B%9$NF~<jK!$rL@<($9$k!%(B

     (d) $B$=$NB>$NJQ99>r7o$r:n<T$H9g0U$9$k!%(B

  3. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B
     $B%k$7$?%*%V%8%'%/%H%3!<%I$d<B9T7A<0$G$bG[I[$G$-$^$9!%(B

     (a) $B%P%$%J%j$r<u$1<h$C$??M$,%=!<%9$rF~<j$G$-$k$h$&$K!$(B
         $B%=!<%9$NF~<jK!$rL@<($9$k!%(B

     (b) $B5!3#2DFI$J%=!<%9%3!<%I$rE:IU$9$k!%(B

     (c) $BJQ99$r9T$C$?%P%$%J%j$OL>A0$rJQ99$7$?$&$(!$%*%j%8%J(B
         $B%k$N%=!<%9%3!<%I$NF~<jK!$rL@<($9$k!%(B

     (d) $B$=$NB>$NG[I[>r7o$r:n<T$H9g0U$9$k!%(B

  4. $BB>$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l<+M3$G$9!%$?(B
     $B$@$7!$K\%W%m%0%i%`$K4^$^$l$kB>$N:n<T$K$h$k%3!<%I$O!$$=(B
     $B$l$>$l$N:n<T$N0U8~$K$h$k@)8B$,2C$($i$l$k>l9g$,$"$j$^$9!%(B

     $B$=$l$i%U%!%$%k$N0lMw$H$=$l$>$l$NG[I[>r7o$J$I$KIU$$$F$O(B
     LEGAL$B%U%!%$%k$r;2>H$7$F$/$@$5$$!%(B

  5. $BK\%W%m%0%i%`$X$NF~NO$H$J$k%9%/%j%W%H$*$h$S!$K\%W%m%0%i(B
     $B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n<T$G$O$J$/!$$=$l$>(B
     $B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B
     $BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B

  6. $BK\%W%m%0%i%`$OL5J]>Z$G$9!%:n<T$OK\%W%m%0%i%`$r%5%]!<%H(B
     $B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`<+?H$N%P%0$"$k$$$OK\%W(B
     $B%m%0%i%`$N<B9T$J$I$+$iH/@8$9$k$$$+$J$kB;32$KBP$7$F$b@U(B
     $BG$$r;}$A$^$;$s!%(B
# coding: UTF-8

=== 1.8.29 / 2013-11-23

Bug fixes:

* Fixed installation when the LANG environment variable is empty.
* Added DigiCert High Assurance EV Root CA to the default SSL certificates for
  cloudfront.

=== 1.8.28 / 2013-10-08

Bug fixes:

* Added the Verisign Class 3 Public Primary Certification Authority G5
  certificate and its intermediary to follow the s3.amazonaws.com certificate
  change.  Fixes #665 by emeyekayee.  Fixes #671 by jonforums.
* Remove redundant built-in certificates not needed for https://rubygems.org
  Fixes #654 by Vít Ondruch.
* Added test for missing certificates for https://s3.amazonaws.com or
  https://rubygems.org.  Pull request #673 by Hannes Georg.

=== 1.8.27 / 2013-09-24

Security fixes:

* RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
  backtracking in Gem::Version validation.  See CVE-2013-4363 for full details
  including vulnerable APIs.  Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
  1.8.23.2 (for Ruby 1.9.3).

=== 1.8.26 / 2013-09-09

Security fixes:

* RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
  backtracking in Gem::Version validation.  See CVE-2013-4287 for full details
  including vulnerable APIs.  Fixed versions include 2.0.8, 1.8.26 and
  1.8.23.1 (for Ruby 1.9.3).  Issue #626 by Damir Sharipov.

Bug fixes:

* Fixed editing of a Makefile with 8-bit characters.  Fixes #181

=== 1.8.25 / 2013-01-24

* 6 bug fixes:

  * Added 11627 to setup bin_file location to protect against errors. Fixes #328 by ConradIrwin
  * Specification#ruby_code didn't handle Requirement with multiple
  * Fix error on creating a Version object with a frozen string.
  * Fix incremental index updates
  * Fix missing load_yaml in YAML-related requirement.rb code.
  * Manually backport encoding-aware YAML gemspec

=== 1.8.24 / 2012-04-27

* 1 bug fix:

  * Install the .pem files properly. Fixes #320
  * Remove OpenSSL dependency from the http code path

=== 1.8.23 / 2012-04-19

This release increases the security used when RubyGems is talking to
an https server. If you use a custom RubyGems server over SSL, this
release will cause RubyGems to no longer connect unless your SSL cert
is globally valid.

You can configure SSL certificate usage in RubyGems through the
:ssl_ca_cert and :ssl_verify_mode options in ~/.gemrc and /etc/gemrc.
The recommended way is to set :ssl_ca_cert to the CA certificate for
your server or a certificate bundle containing your CA certification.

You may also set :ssl_verify_mode to 0 to completely disable SSL
certificate checks, but this is not recommended.


* 2 security fixes:
  * Disallow redirects from https to http
  * Turn on verification of server SSL certs

* 1 minor feature:
  * Add --clear-sources to fetch

* 2 bug fixes:
  * Use File.identical? to check if two files are the same.
  * Fixed init_with warning when using psych

=== 1.8.22 / 2012-04-13

* 4 bug fixes:

  * Workaround for psych/syck YAML date parsing issue
  * Don't trust the encoding of ARGV. Fixes #307
  * Quiet default warnings about missing spec variables
  * Read a binary file properly (windows fix)

=== 1.8.21 / 2012-03-22

* 2 bug fixes:

  * Add workaround for buggy yaml output from 1.9.2
  * Force 1.9.1 to remove it's prelude code. Fixes #305

=== 1.8.20 / 2012-03-21

* 4 bug fixes:

  * Add --force to `gem build` to skip validation. Fixes #297
  * Gracefully deal with YAML::PrivateType objects in Marshal'd gemspecs
  * Treat the source as a proper url base. Fixes #304
  * Warn when updating the specs cache fails. Fixes #300

=== 1.8.19 / 2012-03-14

* 3 bug fixes:

  * Handle loading psych vs syck properly. Fixes #298
  * Make sure Date objects don't leak in via Marshal
  * Perform Date => Time coercion on yaml loading. Fixes #266

=== 1.8.18 / 2012-03-11

* 4 bug fixes:

  * Use Psych API to emit more compatible YAML
  * Download and write inside `gem fetch` directly. Fixes #289
  * Honor sysconfdir on 1.8. Fixes #291
  * Search everywhere for a spec for `gem spec`. Fixes #288
  * Fix Gem.all_load_path. Fixes #171

=== 1.8.17 / 2012-02-17

* 2 minor enhancements:

  * Add MacRuby to the list of special cases for platforms (ferrous26)
  * Add a default for where to install rubygems itself

* 3 bug fixes:

  * Fixed gem loading issue caused by dependencies not resolving.
  * Fixed umask error when stdlib is required and unresolved dependencies exist.
  * Shebang munging would only take one arg after the cmd
  * Define SUCKAGE better, ie only MRI 1.9.2
  * Propagate env-shebang to the pristine command if set for install.

=== 1.8.16 / 2012-02-12

* 3 bug fixes:

  * Fix gem specification loading when encoding is not UTF-8. #146
  * Allow group writable if umask allows it already.
  * Uniquify the spec list based on directory order priority

=== 1.8.15 / 2012-01-06

* 1 bug fix:

  * Don't eager load yaml, it creates a bad loop. Fixes #256

=== 1.8.14 / 2012-01-05

* 2 bug fixes:

  * Ignore old/bad cache data in Version
  * Make sure our YAML workarounds are loaded properly. Fixes #250.

=== 1.8.13 / 2011-12-21

* 1 bug fix:

  * Check loaded_specs properly when trying to satisfy a dep

* 2 minor enhancements:

  * Remove using #loaded_path? for performance
  * Remove Zlib workaround for Windows build.

=== 1.8.12 / 2011-12-02

* Bug fix:
  * Handle more cases where Syck's DefaultKey showed up in requirements
    and wasn't cleaned out.

=== 1.8.11 / 2011-10-03

* Bug fix:
  * Deprecate was moved to Gem::Deprecate to stop polluting the top-level
    namespace.

=== 1.8.10 / 2011-08-25

RubyGems 1.8.10 contains a security fix that prevents malicious gems from
executing code when their specification is loaded.  See
https://github.com/rubygems/rubygems/pull/165 for details.

* 5 bug fixes:

  * RubyGems escapes strings in ruby-format specs using #dump instead of #to_s
    and %q to prevent code injection.  Issue #165 by Postmodern
  * RubyGems attempt to activate the psych gem now to obtain bugfixes from
    psych.
  * Gem.dir has been restored to the front of Gem.path.  Fixes remaining
    problem with Issue #115
  * Fixed Syck DefaultKey infecting ruby-format specifications.
  * `gem uninstall a b` no longer stops if gem "a" is not installed.

=== 1.8.9 / 2011-08-23

* Bug fixes:

  * Fixed uninstalling multiple gems using `gem uninstall`
  * Gem.use_paths splatted to take multiple paths!  Issue #148

=== 1.8.8 / 2011-08-11

* Bug fix:
  * The encoding of a gem's YAML spec is now UTF-8.  Issue #149

=== 1.8.7 / 2011-08-04

* Bug fixes:
  * Added missing require for `gem uninstall --format-executable`
  * The correct name of the executable being uninstalled is now displayed with
    --format-executable
  * Fixed `gem unpack uninstalled_gem` default version picker
  * RubyGems no longer claims a nonexistent gem can be uninstalled
  * `gem which` no longer claims directories are requirable files
  * `gem cleanup` continues cleaning up gems if one can't be uninstalled due
    to permissions.  Issue #82
  * Gem repository directories are no longer created world-writable.  Patch by
    Sakuro OZAWA.  Ruby Bug #4930

=== 1.8.6 / 2011-07-25

* 1 minor enhancement:

  * Add autorequires and delay startup of RubyGems until require is called.
    See Ruby bug #4962

* 9 bug fixes:

  * Restore behavior of Gem::Specification#loaded?  Ruby Bug #5032
  * Clean up SourceIndex.add_specs to not be so damn noisy. (tadman)
  * Added missing APPLE_GEM_HOME in paths.
  * Extend YAML::Syck::DefaultKey fixing to `marshal_dump` as well.
  * Fix #29216: check correct bin_dir in check_that_user_bin_dir_is_in_path.
  * Revert Gem.latest_load_paths to working order (PathSupport revert).
  * Restore normalization of GEM_HOME.
  * Handle the Syck DefaultKey problem once and for all.
  * Fix SystemStackError occurring with "gem list -r -a" on 1.9.

=== 1.8.5 / 2011-05-31

* 2 minor enhancement:

  * The -u option to 'update local source cache' is official deprecated.
  * Remove has_rdoc deprecations from Specification.

* 2 bug fixes:

  * Handle bad specs more gracefully.
  * Reset any Gem paths changed in the installer.

=== 1.8.4 / 2011-05-25

* 1 minor enhancement:

  * Removed default_executable deprecations from Specification.

=== 1.8.3 / 2011-05-19

* 4 bug fixes:

  * Fix independent testing of test_gem_package_tar_output.  Ruby Bug #4686 by
    Shota Fukumori
  * Fix test failures for systems with separate ruby versions.  Ruby Bug #3808
    by Jeremy Evans
  * Fixed some bad calls left behind after rolling out some refactorings.
  * Syck has a parse error on (good) times output from Psych. (dazuma, et al)

=== 1.8.2 / 2011-05-11

* 2 minor enhancements:

  * Moved #outdated from OutdatedCommand to Specification (for Isolate).
  * Print out a warning about missing executables.

* 3 bug fixes:

  * Added missing requires to fix various upgrade issues.
  * `gem pristine` respects multiple gem repositories.
  * setup.rb now execs with --disable-gems when possible

=== 1.8.1 / 2011-05-05

* 1 minor enhancement:

  * Added Gem::Requirement#specific? and Gem::Dependency#specific?

* 4 bug fixes:

  * Typo on Indexer rendered it useless on Windows
  * gem dep can fetch remote dependencies for non-latest gems again.
  * gem uninstall with multiple versions no longer crashes with ArgumentError
  * Always use binary mode for File.open to keep Windows happy

=== 1.8.0 / 2011-04-34

This release focused on properly encapsulating functionality.  Most of this
work focused on moving functionality out of Gem::SourceIndex and
Gem::GemPathSearcher into Gem::Specification where it belongs.

After installing RubyGems 1.8.0 you will see deprecations when loading your
exsting gems.  Run `gem pristine --all --no-extensions` to regenerate your
gem specifications safely.

Currently RubyGems does not save the build arguments used to build gems with
extensions.  You will need to run `gem pristine gem_with_extension --
--build-arg` to regenerate a gem with an extension where it requires special
build arguments.

* 24(+) Deprecations (WOOT!):

  * DependencyList.from_source_index deprecated the source_index argument.
  * Deprecated Dependency.new(/regex/).
  * Deprecated Gem.searcher.
  * Deprecated Gem.source_index and Gem.available?
  * Deprecated Gem: activate_dep, activate_spec, activate,
    report_activate_error, and required_location.
  * Deprecated Gem::all_partials
  * Deprecated Gem::cache_dir
  * Deprecated Gem::cache_gem
  * Deprecated Gem::default_system_source_cache_dir
  * Deprecated Gem::default_user_source_cache_dir
  * Deprecated Platform#empty?
  * Deprecated Specification.cache_gem
  * Deprecated Specification.installation_path
  * Deprecated Specification.loaded, loaded?, and loaded=
  * Deprecated all of Gem::SourceIndex.
  * Deprecated all of Gem::GemPathSearcher.
  * Deprecated Gem::Specification#default_executable.

* 2 major enhancements:

  * Gem::SourceIndex functionality has been moved to Gem::Specification.
    Gem::SourceIndex is completely disconnected from Gem::Specification
  * Refactored GemPathSearcher entirely out. RIPMF

* 41 minor enhancements:

  * Added CommandManager#unregister_command
  * Added Dependency#matching_specs + to_specs.
  * Added Dependency#to_spec
  * Added Gem.pre_reset_hook/s and post_reset_hook/s.
  * Added GemCommand.reset to reinitialize the singleton
  * Added Specification#activate.
  * Added Specification#activated, activated=, and activated?
  * Added Specification#base_dir.
  * Added Specification#bin_dir and bin_file.
  * Added Specification#cache_dir and cache_file. Aliased cache_gem.
  * Added Specification#doc_dir and ri_dir.
  * Added Specification#find(name_or_dep, *requirements).
  * Added Specification#gem_dir and gems_dir.
  * Added Specification#spec_dir and spec_file.
  * Added Specification.add_spec, add_specs, and remove_spec.
  * Added Specification.all=. If you use this, we will light you on fire.
  * Added Specification.all_names.
  * Added Specification.dirs and dirs=. dirs= resets.
  * Added Specification.find_all_by_name(name, *reqs)
  * Added Specification.latest_specs. SO TINY!
  * Added TestCase#all_spec_names to help clean up tests
  * Added TestCase#assert_path_exists and refute_path_exists. Will move to
    minitest.
  * Gem.sources no longer tries to load sources gem. Only uses default_sources.
  * Installer no longer accepts a source_index option.
  * More low-level integration.
  * Removed Gem::FileOperations since it is a dummy class
  * Removed a comment because I am dumb
  * Removed pkgs/sources/lib/sources.rb
  * Revamped indexer to mostly not use SourceIndex (legacy index requires it).
  * Rewrote our last functional test suite to be happy and fast
  * RubyGems is now under the Ruby License or the MIT license
  * Specification#== now only checks name, version, and platform.
  * Specification#authors= now forcefully flattens contents (bad rspec! no
    cookie!)
  * Specification#eql? checks all fields.
  * Specification#installation_path no longer raises if it hasn't been
    activated.
  * Specification#validate now ensures that authors is not empty.
  * TestCase.util_setup_spec_fetcher no longer returns a SourceIndex.
  * Uninstaller no longer passes around SourceIndex instances
  * Warn on loading bad spec array values (ntlm-http gem has nil in its cert
    chain)
  * `gem pristine` now accepts --no-executables to skip restoring gems with
    extensions.
  * `gem pristine` can now restore multiple gems.

* 6 bug fixes:

  * DependencyInstaller passed around a source_index instance but used
    Gem.source_index.
  * Fixed Platform#== and #hash so instances may be used as hash keys.
  * Fixed broken Specification#original_platform. It should never be nil.
  * Gem::Text#format_text now strips trailing whitespace
  * Normalize LOAD_PATH with File.expand_path
  * `gem build` errors should exit 1.
  * `gem pristine` can now restore non-latest gems where the cached gem was
    removed.

=== 1.7.1 / 2011-03-32

* 1 bug fix:
  * Fixed missing file in Manifest.txt.  (Also a bug in hoe was fixed where
    `rake check_manifest` showing a diff would not exit with an error.)

=== 1.7.0 / 2011-03-32

* 16 Deprecations (woot!)
  * Deprecated Gem.all_load_paths, latest_load_paths, promote_load_path, and
    cache.
  * Deprecated RemoteFetcher#open_uri_or_path.
  * Deprecated SourceIndex#all_gems.
  * Deprecated SourceIndex#initialize(hash_of_specs).
  * Deprecated SourceIndex.from_installed_gems, from_gems_in, and
    load_specification.
  * Deprecated Specification#has_rdoc, default_executable, and
    test_suite_file(=).
  * Deprecated Specification#has_rdoc= and default_executable=

* 26 minor enhancements:
  * Added stupid simple deprecation module.
  * Added --spec option to `gem unpack` to output a gem's original metadata
  * Added packaging option to Specification#validate
  * Gem.bin_path requires the exec_name argument.
  * Read from cached specs if fetch fails for some reason
  * Refactored Specification#assign_defaults into #initialize.
  * RemoteFetcher#fetch_path now dispatches dynamically to 'fetch_<uri.schema>'
  * Removed Specification @@gather.
  * Removed Specification.attribute.
  * Removed Specification.attribute_alias_singular.
  * Removed Specification.attribute_defaults.
  * Removed Specification.attributes
  * Removed Specification.overwrite_accessor.
  * Removed Specification.read_only.
  * Removed Specification.required_attribute.
  * Removed Specification::SPECIFICATION_VERSION_HISTORY and turned into rdoc
  * Removed blanket rescue in default_executable. Hope it doesn't blow up! :P
  * Removed nearly all metaprogramming from Specification. Yay for
    attr_accessor!
  * SourceIndex#initialize changed to prefer an array of spec dirs, defaulting
    to none.
  * SourceIndex.new is now the preferred way to create SourceIndex instances.
    *gasp*
  * Specification#validate now checks that array attribs are indeed arrays.
  * Specification.default_value is now an instance method.
  * Switched Specification::TODAY to be proper midnight @ UTC
  * Update Gem::RemoteFetcher\'s User-Agent to handle RUBY_ENGINE and
    RUBY_REVISION when patchlevel is -1
  * UpdateCommand#gems_to_update now returns (name, version) pairs.
  * UpdateCommand#which_to_update now takes an optional system argument.

* 11 bug fixes:
  * Added missing remote fetcher require to pristine command (aarnell)
  * Building gems now checks to ensure all required fields are non-nil
  * Fix option parser when summary is nil.
  * Fixed `gem contents` to work with the lightweight specifications
  * Fixed `gem update --system x.y.z` where x.y.z == latest version. (MGPalmer)
  * Fixed gem contents sorting and tests. (MGPalmer)
  * Fixed intermittant problem in `gem fetch` with --platform specified (quix)
  * Fixed lightweight specifications so `gem rdoc` will generate proper
    documentation
  * MockGemUI#terminate_interaction should not raise Gem::SystemExitException.
    (MGPalmer)
  * RubyGems now raises a better error for broken .gem files.  Bug #29067 by
    Elias Baixas
  * `gem update` now uniq's command line arguments.

=== 1.6.2 / 2011-03-08

Bug Fixes:

* require of an activated gem could cause activation conflicts.  Fixes
  Bug #29056 by Dave Verwer.
* `gem outdated` now works with up-to-date prerelease gems.

=== 1.6.1 / 2011-03-03

Bug Fixes:

* Installation no longer fails when a dependency from a version that won't be
  installed is unsatisfied.
* README.rdoc now shows how to file tickets and get help.  Pull Request #40 by
  Aaron Patterson.
* Gem files are cached correctly again.  Patch #29051 by Mamoru Tasaka.
* Tests now pass with non-022 umask.  Patch #29050 by Mamoru Tasaka.

=== 1.6.0 / 2011-02-29

4 Deprecations:

* RubyGems no longer requires 'thread'.  Rails < 3 will need to add require
  'thread' to their applications.
* Gem.cache is deprecated.  Use Gem.source_index.
* RbConfig.datadir is deprecated.  Use Gem.datadir.
* Gem::LoadError#version_requirements has been removed.  Use
  Gem::LoadError#requirement.

2 Major Enhancements:

* Rewrote how Gem::activate (gem and require) resolves dependencies.
* Gem::LoadError#version_requirement has been removed. Use
  Gem::LoadError#requirement.

17 Minor Enhancments:

* Added --key to `gem push` for setting alternate API keys.
* Added --format-executable support to gem uninstall.
* Added Gem::DependencyList#clear.
* Added Gem::DependencyList#remove_specs_unsatisfied_by
* Added Gem.latest_spec_for, latest_version_for, and latest_rubygems_version.
* Added Gem::Dependency#merge which merges requirements for two
  dependencies.
* Added Gem::TestCase#util_spec for faster tests.
* Added Gem::Specification#dependent_specs.
* Added Gem::TestCase#new_spec and Gem::TestCase#install_specs.
* Added flag to include prerelease gems in Gem::SourceIndex#latest_specs.
* Gem.cache_dir always references the proper cache dir. 
  Pass true to support a user path.
* Gem.cache_gem, given a filename always references the cache gem.
  Pass true to support a user path.
* Added Gem::Specification#conflicts
* Removed rdoc gem/require from test_case.rb.
* Rubygems will no longer let you push if you're using beta or unreleased
  rubygems.
* Save RAM / GC churn by removing spec.files and rdoc options from
  locally cached gem specifications.
* SpecFetcher.fetch_spec can now take a string source_uri.

10 Bug Fixes:

* Added missing require of Gem::RemoteFetcher to the unpack command.
* RubyGems now completely removes a previous install when reinstalling.
* Fixed Gem::Installer#generate_bin to only chmod files that exist.
* Fixed handling of Windows style file:/// uris.
* Fixed requires in tests. (shota)
* Fixed script generation on Windows.
* Fixed test issues if you have older rubygems installed.
* Gem::DependencyInstaller tests use Gem::Security, add the missing require.
* Gem::Security used FileUtils but didn't require it.  Reported by Elia Schito.
* Gem::Uninstaller now respects --format-executable.

=== 1.5.3 / 2011-02-26

Bug Fixes:

* Fix for a bug in Syck which causes install failures for gems packaged with
  Psych.  Bug #28965 by Aaron Patterson.

=== 1.5.2 / 2011-02-10

Bug Fixes:

* Fixed <tt>gem update --system</tt>.  RubyGems can now update itself again.

=== 1.5.1 / 2011-02-09

==== NOTE: `gem update --system` is broken. See UPGRADING.rdoc.

Minor Enhancement:

* Added ability to do gem update --system X.Y.Z.

Bug Fixes:

* Scrub !!null YAML from 1.9.2 (install and build).
* Added missing requires for user_interaction.
* Wrote option processing tests for gem update.
* Updated upgrading doco for new gem update --system option.
* Fixed SilentUI for cygwin; try /dev/null first then fall back to NUL.
* RubyGems now enforces ruby 1.8.7 or newer.

=== 1.5.0 / 2011-01-31

==== NOTE: `gem update --system` is broken. See UPGRADING.rdoc.

Major Enhancements:

* Finally fixed all known 1.9.x issues. Upgrading is now possible!
* Merged huge 1.3.7/ruby-core changes to master.

Minor Enhancements:

* Added UPGRADING.rdoc to help deal with 1.9 issues.
* Gem::Format now gives better errors for corrupt gem files and includes paths
* Pre-install hooks can now abort gem installation by returning false
* Move shareable TestCase classes to lib/ to help plugin authors with tests.
* Add post-build hooks that can cancel the gem install
* Always require custom_require now that require_gem is gone
* Added GemInstaller accessors for @options so plugins can reference them.
* Optimized Gem.find_files. ~10% faster than 1.4.2. ~40% faster than ruby 1.9.
* Gem::SilentUI now behaves like Gem::StreamUI for asking questions.  Patch by
  Erik Hollensbe.

Bug Fixes:

* `gem update` was implicitly doing --system.
* 1.9.3: Fixed encoding errors causing gem installs to die during rdoc phase.
* Add RubyForge URL to README. Closes #28825
* 1.9.3: Use chdir {} when building extensions to prevent warnings. Fixes #4337
* 1.9.2: Fix circular require warning.
* Make requiring openssl even lazier at request of NaHi
* `gem unpack` will now download the gem if it is not in the cache. Patch by
  Erik Hollensbe.
* rubygems-update lists its development dependencies again

=== 1.4.2 / 2011-01-06

Bug fixes:

* Gem::Versions: "1.b1" != "1.b.1", but "1.b1" eql? "1.b.1". Fixes gem indexing.
* Fixed Gem.find_files.
* Removed otherwise unused #find_all_dot_rb. Only 6 days old and hella buggy.

=== 1.4.1 / 2010-12-31

Since apparently nobody reads my emails, blog posts or the README:

DO NOT UPDATE RUBYGEMS ON RUBY 1.9! See UPGRADING.rdoc for details.

Bug fix:

* Specification#load was untainting a frozen string (via `gem build *.spec`)

=== 1.4.0 / 2010-12-30

NOTE: In order to better maintain rubygems and to get it in sync with
the world (eg, 1.9's 1.3.7 is different from our 1.3.7), rubygems is
switching to a 4-6 week release schedule. This release is the
precursor to that process and as such may be a bit on the wild side!
You have been warned!

NOTE: We've switched to git/github. See README.rdoc for details.

New features:

* Added --launch option to `gem server`. (gthiesfeld)
* Added fuzzy name matching on install failures. (gstark/presidentbeef)
* Allow searching w/ file extensions: gem which fileutils.rb
* Progress indicator during download (Ryan Melton)
* Speed up Gem::Version#<=> by 2-3x in common cases. (raggi)
* --source is now additive with your current sources.
  Use --clear-sources first to maintain previous behavior.

Bug fixes:

* Dependency "~>"s now respect lower-bound prerelease versions.
* Ensure the gem directories exist on download.
* Expand Windows user home candidates for Ruby 1.8. Bug #28371 & #28494
* Fix find_files to order by version.
* Fix ivar typo. [Josh Peek]
* Normalized requires and made many of them lazy.
  Do not depend on rubygems to require stdlib stuff for you. (raggi/tmm1)
* Treat 1.0.a10 like 1.0.a.10 for sorting, etc. Fixes #27903. (dchelimsky)

=== 1.3.7 / 2010-05-13

NOTE:

http://rubygems.org is now the default source for downloading gems.

You may have sources set via ~/.gemrc, so you should replace
http://gems.rubyforge.org with http://rubygems.org

http://gems.rubyforge.org will continue to work for the forseeable future.

New features:

* `gem` commands
  * `gem install` and `gem fetch` now report alternate platforms when a
    matching one couldn't be found.
  * `gem contents` --prefix is now the default as specified in --help.  Bug
    #27211 by Mamoru Tasaka.
  * `gem fetch` can fetch of old versions again.  Bug #27960 by Eric Hankins.
  * `gem query` and friends output now lists platforms.  Bug #27856 by Greg
    Hazel.
  * `gem server` now allows specification of multiple gem dirs for
    documentation.  Bug #27573 by Yuki Sonoda.
  * `gem unpack` can unpack gems again.  Bug #27872 by Timothy Jones.
  * `gem unpack` now unpacks remote gems.
  * --user-install is no longer the default.  If you really liked it, see
    Gem::ConfigFile to learn how to set it by default.  (This change was made
    in 1.3.6)
* RubyGems now has platform support for IronRuby.  Patch #27951 by Will Green.

Bug fixes:

* Require rubygems/custom_require if --disable-gem was set.  Bug #27700 by
  Roger Pack.
* RubyGems now protects against exceptions being raised by plugins.
* rubygems/builder now requires user_interaction.  Ruby Bug #1040 by Phillip
  Toland.
* Gem::Dependency support #version_requirements= with a warning.  Fix for old
  Rails versions.  Bug #27868 by Wei Jen Lu.
* Gem::PackageTask depends on the package dir like the other rake package
  tasks so dependencies can be hooked up correctly.

=== 1.3.6 / 2010-02-17

New features:

* `gem` commands
  * Added `gem push` and `gem owner` for interacting with modern/Gemcutter
    sources
  * `gem dep` now supports --prerelease.
  * `gem fetch` now supports --prerelease.
  * `gem server` now supports --bind.  Patch #27357 by Bruno Michel.
  * `gem rdoc` no longer overwrites built documentation.  Use --overwrite
    force rebuilding.  Patch #25982 by Akinori MUSHA.
* Captial letters are now allowed in prerelease versions.

Bug fixes:

* Development deps are no longer added to rubygems-update gem so older
  versions can update sucessfully.
* Installer bugs:
  * Prerelease gems can now depend on non-prerelease gems.
  * Development dependencies are ignored unless explicitly needed.  Bug #27608
    by Roger Pack.
* `gem` commands
  * `gem which` now fails if no paths were found.  Adapted patch #27681 by
    Caio Chassot.
  * `gem server` no longer has invalid markup.  Bug #27045 by Eric Young.
  * `gem list` and friends show both prerelease and regular gems when
    --prerelease --all is given
* Gem::Format no longer crashes on empty files.  Bug #27292 by Ian Ragsdale.
* Gem::GemPathSearcher handles nil require_paths. Patch #27334 by Roger Pack.
* Gem::RemoteFetcher no longer copies the file if it is where we want it.
  Patch #27409 by Jakub Šťastný.

Deprecation Notices:

* lib/rubygems/timer.rb has been removed.
* Gem::Dependency#version_requirements is deprecated and will be removed on or
  after August 2010.
* Bulk index update is no longer supported.
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.

=== 1.3.5 / 2009-07-21

Bug fixes:

* Fix use of prerelease gems.
* Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.

Deprecation Notices:

* Bulk index update is no longer supported (the code currently remains, but not
  the tests)
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.

=== 1.3.4 / 2009-05-03

Bug Fixes:

* Fixed various warnings
* Gem::ruby_version works correctly for 1.8 branch and trunk
* Prerelease gems now show up in `gem list` and can be used
* Fixed option name for `gem setup --format-executable`
* RubyGems now matches Ruby > 1.9.1 gem paths
* Gem::RemoteFetcher#download now works for explicit Windows paths across
  drives.  Bug #25882 by Lars Christensen
* Fix typo in Gem::Requirement#parse.  Bug #26000 by Mike Gunderloy.

Deprecation Notices:

* Bulk index update is no longer supported (the code currently remains, but not
  the tests)
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.

=== 1.3.3 / 2009-05-04

New Features:

* `gem server` allows port names (from /etc/services) with --port.
* `gem server` now has search that jumps to RDoc.  Patch #22959 by Vladimir
  Dobriakov.
* `gem spec` can retrieve single fields from a spec (like `gem spec rake
  authors`).
* Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true)
* RDoc is now generated regardless of Gem::Specification#has_rdoc?

Bug Fixes:

* `gem clean` now cleans up --user-install gems.  Bug #25516 by Brett
  Eisenberg.
* Gem.bin_path now escapes paths with spaces.
* Rake extension builder uses explicit correctly loads rubygems when invoking
  rake.
* Prerelease versions now match "~>" correctly.  Patch #25759 by Yossef
  Mendelssohn.
* Check bindir for executables, not root when validating.  Bug reported by
  David Chelimsky.
* Remove Time.today, no way to override it before RubyGems loads.  Bug #25564
  by Emanuele Vicentini
* Raise Gem::Exception for #installation_path when not installed.  Bug #25741
  by Daniel Berger.
* Don't raise in Gem::Specification#validate when homepage is nil.  Bug #25677
  by Mike Burrows.
* Uninstall executables from the correct directory.  Bug #25555 by Brett
  Eisenberg.
* Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem.  Bug
  reported by Alf Mikula.

Deprecation Notices:

* Gem::manage_gems has been removed.
* Time::today has been removed early.  There was no way to make it warn and be
  easy to override with user code.

=== 1.3.2 / 2009-04-15

Select New Features:

* RubyGems now loads plugins from rubygems_plugin.rb in installed gems.
  This can be used to add commands (See Gem::CommandManager) or add
  install/uninstall hooks (See Gem::Installer and Gem::Uninstaller).
* Gem::Version now understands prerelease versions using letters. (eg.
  '1.2.1.b')  Thanks to Josh Susser, Alex Vollmer and Phil Hagelberg.
* RubyGems now includes a Rake task for creating gems which replaces rake's
  Rake::GemPackageTask.  See Gem::PackageTask.
* Gem::find_files now returns paths in $LOAD_PATH.
* Added Gem::promote_load_path for use with Gem::find_files
* Added Gem::bin_path to make finding executables easier.  Patch #24114 by
  James Tucker.
* Various improvements to build arguments for installing gems.
* `gem contents` added --all and --no-prefix.
* Gem::Specification
  * #validate strips directories and errors on not-files.
  * #description no longer removes newlines.
  * #name must be a String.
  * FIXME and TODO are no longer allowed in various fields.
  * Added support for a license attribute.  Feature #11041 (partial).
  * Removed Gem::Specification::list, too much process growth.  Bug #23668 by
    Steve Purcell.
* `gem generate_index`
  * Can now generate an RSS feed.
  * Modern indicies can now be updated incrementally.
  * Legacy indicies can be updated separately from modern.

Select Bugs Fixed:

* Better gem activation error message. Patch #23082.
* Kernel methods are now private.  Patch #20801 by James M. Lawrence.
* Fixed various usability issues with `gem check`.
* `gem update` now rescues InstallError and continues.  Bug #19268 by Gabriel
  Wilkins.
* Allow 'https', 'file' as a valid schemes for --source.  Patch #22485.
* `gem install`
  * Now removes existing path before installing.  Bug #22837.
  * Uses Gem::bin_path in executable stubs to work around Kernel#load bug in
    1.9.
  * Correctly handle build args (after --) via the API.  Bug #23210.
* --user-install
  * `gem install --no-user-install` now works.  Patch #23573 by Alf Mikula.
  * `gem uninstall` can now uninstall from ~/.gem.  Bug #23760 by Roger Pack.
* setup.rb
  * Clarify RubyGems RDoc installation location.  Bug #22656 by Gian Marco
    Gherardi.
  * Allow setup to run from read-only location.  Patch #21862 by Luis Herrera.
  * Fixed overwriting ruby executable when BASERUBY was not set.  Bug #24958
    by Michael Soulier.
  * Ensure we're in a RubyGems dir when installing.
  * Deal with extraneous quotation mark when autogenerating .bat file on MS
    Windows.  Bug #22712.

Deprecation Notices:

* Gem::manage_gems has been removed.
* Time::today will be removed in RubyGems 1.4.

Special thanks to Chad Wooley for backwards compatibility testing and Luis
Lavena and Daniel Berger for continuing windows support.

=== 1.3.1 / 2008-10-28

Bugs fixed:

* Disregard ownership of ~ under Windows while creating ~/.gem.  Fixes
  issues related to no uid support under Windows.
* Fix requires for Gem::inflate, Gem::deflate, etc.
* Make Gem.dir respect :gemhome value from config.  (Note: this feature may be
  removed since it is hard to implement on 1.9.)
* Kernel methods are now private.  Patch #20801 by James M. Lawrence.
* Gem::location_of_caller now behaves on Windows.  Patch by Daniel Berger.
* Silence PATH warning.

Deprecation Notices:

* Gem::manage_gems will be removed on or after March 2009.

=== 1.3.0 / 2008-09-25

New features:

* RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if
  stdout is not a TTY, except with --both.
* Added Gem.find_files, allows a gem to discover features provided by other
  gems.
* Added pre/post (un)install hooks for packagers of RubyGems.  (Not for gems
  themselves).
* RubyGems now installs gems into ~/.gem if GEM_HOME is not writable.  Use
  --no-user-install command-line switch to disable this behavior.
* Fetching specs for update now uses If-Modified-Since requests.
* RubyGems now updates the ri cache when the rdoc gem is installed and
  documentation is generated.

Deprecation Notices:

* Gem::manage_gems now warns when called.  It will be removed on or after March
  2009.

Bugs Fixed:

* RubyGems 1.3.0+ now updates when no previous rubygems-update is installed.
  Bug #20775 by Hemant Kumar.
* RubyGems now uses the regexp we already have for `gem list --installed`.  Bug
  #20876 by Nick Hoffman.
* Platform is now forced to Gem::Platform::RUBY when nil or blank in the
  indexer.  Fixes various uninstallable gems.
* Handle EINVAL on seek.  Based on patch in bug #20791 by Neil Wilson.
* Fix HTTPS support.  Patch #21072 by Alex Arnell.
* RubyGems now loads all cache files even if latest has been loaded.  Bug
  #20776 by Uwe Kubosch.
* RubyGems checks for support of development dependencies for #to_ruby.  Bug
  #20778 by Evan Weaver.
* Now specifications from the future can be loaded.
* Binary script uninstallation fixed.  Bug #21234 by Neil Wilson.
* Uninstallation with -i fixed.  Bug #20812 by John Clayton.
* Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks
  get called.  Bug #21242 by Neil Wilson.
* Gem.ruby now properly escaped on windows.  Fixes problem with extension
  compilation.
* `gem lock --strict` works again.  Patch #21814 by Sven Engelhardt.
* Platform detection for Solaris was improved.  Patch #21911 by Bob Remeika.

Other Changes Include:

* `gem help install` now describes _version_ argument to executable stubs
* `gem help environment` describes environment variables and ~/.gemrc and
  /etc/gemrc
* On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment
* Rakefile
  * If the SETUP_OPTIONS environment variable is set, pass its contents as
    arguments to setup.rb
* lib/rubygems/platform.rb
  * Remove deprecated constant warnings and really deprecate them.  (WIN32,
    etc).
* lib/rubygems/remote_fetcher.rb
  * Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable.
* lib/rubygems/source_index.rb
  * Deprecate options to 'search' other than Gem::Dependency instances and
    issue warning until November 2008.
* setup.rb
  * --destdir folder structure now built using Pathname, so it works for
    Windows platforms.
* test/*
  * Fixes to run tests when under test/rubygems/.  Patch by Yusuke ENDOH
    [ruby-core:17353].
* test/test_ext_configure_builder.rb
  * Locale-free patch by Yusuke Endoh [ruby-core:17444].

=== 1.2.0 / 2008-06-21

New features:

* RubyGems no longer performs bulk updates and instead only fetches the gemspec
  files it needs.  Alternate sources will need to upgrade to RubyGems 1.2 to
  allow RubyGems to take advantage of the new metadata updater.  If a pre 1.2
  remote source is in the sources list, RubyGems will revert to the bulk update
  code for compatibility.
* RubyGems now has runtime and development dependency types.  Use
  #add_development_dependency and #add_runtime_dependency.  All typeless
  dependencies are considered to be runtime dependencies.
* RubyGems will now require rubygems/defaults/operating_system.rb and
  rubygems/defaults/#{RBX_ENGINE}.rb if they exist.  This allows packagers and
  ruby implementers to add custom behavior to RubyGems via these files.  (If
  the RubyGems API is insufficient, please suggest improvements via the
  RubyGems list.)
* /etc/gemrc (and windows equivalent) for global settings
* setup.rb now handles --vendor and --destdir for packagers
* `gem stale` command that lists gems by last access time

Bugs Fixed:

* File modes from gems are now honored, patch #19737
* Marshal Gem::Specification objects from the future can now be loaded.
* A trailing / is now added to remote sources when missing, bug #20134
* Gems with legacy platforms will now be correctly uninstalled, patch #19877
* `gem install --no-wrappers` followed by `gem install --wrappers` no longer
  overwrites executables
* `gem pristine` now forces reinstallation of gems, bug #20387
* RubyGems gracefully handles ^C while loading .gemspec files from disk, bug
  #20523
* Paths are expanded in more places, bug #19317, bug #19896
* Gem::DependencyInstaller resets installed gems every install, bug #19444
* Gem.default_path is now honored if GEM_PATH is not set, patch #19502

Other Changes Include:

* setup.rb
  * stub files created by RubyGems 0.7.x and older are no longer removed.  When
    upgrading from these ancient versions, upgrade to 1.1.x first to clean up
    stubs.
  * RDoc is no longer required until necessary, patch #20414
* `gem server`
  * Now completely matches the output of `gem generate_index` and
    has correct content types
  * Refreshes from source directories for every hit.  The server will no longer
    need to be restarted after installing gems.
* `gem query --details` and friends now display author, homepage, rubyforge url
  and installed location
* `gem install` without -i no longer reinstalls dependencies if they are in
  GEM_PATH but not in GEM_HOME
* Gem::RemoteFetcher now performs persistent connections for HEAD requests,
  bug #7973

=== 1.1.1 / 2008-04-11

Bugs Fixed:

* Gem.prefix now returns non-nil only when RubyGems was installed outside
  sitelibdir or libdir.
* The `gem server` gem list now correctly links to gem details.
* `gem update --system` now passes --no-format-executable to setup.rb.
* Gem::SourceIndex#refresh! now works with multiple gem repositories.
* Downloaded gems now go into --install-dir's cache directory.
* Various fixes to downloading gem metadata.
* `gem install --force` now ignores network errors too.
* `gem pristine` now rebuilds extensions.
* `gem update --system` now works on virgin Apple ruby.
* Gem::RemoteFetcher handles Errno::ECONNABORTED.
* Printing of release notes fixed.

=== 1.1.0 / 2008-03-29

New features:

* RubyGems now uses persistent connections on index updates.  Index updates are
  much faster now.
* RubyGems only updates from a latest index by default, cutting candidate gems
  for updates to roughly 1/4 (at present).  Index updates are even faster
  still.
  * `gem list -r` may only show the latest version of a gem, add --all to see
    all gems.
* `gem spec` now extracts specifications from .gem files.
* `gem query --installed` to aid automation of checking for gems.

Bugs Fixed:

* RubyGems works with both Config and RbConfig now.
* Executables are now cleaned upon uninstall.
* You can now uninstall from a particular directory.
* Updating from non-default sources fixed.
* Executable stubs now use ruby install name in shebang.
* `gem unpack` checks every directory in Gem.path now.
* `gem install` now exits with non-zero exit code when appropriate.
* `gem update` only updates gems that need updates.
* `gem update` doesn't force remote-only updates.
* `gem update` handles dependencies properly when updating.
* Gems are now loaded in Gem.path order.
* Gem stub scripts on windows now work outside Gem.bindir.
* `gem sources -r` now works without network access.

Other Changes Include:

* RubyGems now requires Ruby > 1.8.3.
* Release notes are now printed upon installation.
* `gem env path` now prints a usable path.
* `gem install` reverts to local-only installation upon network error.
* Tar handling code refactoring and cleanup.
* Gem::DependencyInstaller's API has changed.

For a full list of changes to RubyGems, see the ChangeLog file.

=== 1.0.1 / 2007-12-20

Bugs Fixed:

* Installation on Ruby 1.8.3 through 1.8.5 fixed
* `gem build` on 1.8.3 fixed

Other Changes Include:

* Since RubyGems 0.9.5, RubyGems is no longer supported on Ruby 1.8.2 or older,
  this is official in RubyGems 1.0.1.

=== 1.0.0 / 2007-12-20

Major New Features Include:

* RubyGems warns about various problems with gemspecs during gem building
* More-consistent versioning for the RubyGems software

Other Changes Include:

* Fixed various bugs and problems with installing gems on Windows
* Fixed using `gem server` for installing gems
* Various operations are even more verbose with --verbose
* Built gems are now backwards compatible with 0.9.4
* Improved detection of RUBYOPT loading rubygems
* `ruby setup.rb` now has a --help option
* Gem::Specification#bindir is now respected on installation
* Executable stubs can now be installed to match ruby's name, so if ruby is
  installed as 'ruby18', foo_exec will be installed as 'foo_exec18'
* `gem unpack` can now unpack into a specific directory with --target
* OpenSSL is no longer required by default

Deprecations and Deletions:

* Kernel#require_gem has been removed
* Executables without a shebang will not be wrapped in a future version, this
  may cause such executables to fail to operate on installation
* Gem::Platform constants other than RUBY and CURRENT have been removed
* Gem::RemoteInstaller was removed
* Gem::Specification#test_suite_file and #test_suite_file= are deprecated in
  favor of #test_file and #test_file=
* Gem::Specification#autorequire= has been deprecated
* Time::today will be removed in a future version

=== 0.9.5 / 2007-11-19

Major New Features Include:

* Platform support
* Automatic installation of platform gems
* New bandwidth and memory friendlier index file format
* "Offline" mode (--no-update-sources)
* Bulk update threshold can be specified (-B, --bulk-threshold)
* New `gem fetch` command
* `gem` now has "really verbose" output when you specify -v
* Improved stubs and `gem.bat` on mswin, including better compatiblity
  with the One-Click Installer.

Other Changes Include:

* Time::today is deprecated and will be removed at a future date
* Gem::manage_gems is deprecated and will be removed at a future date
* `gem install --include-dependencies` (-y) is now deprecated since it is the
  default, use --ignore-dependencies to turn off automatic dependency
  installation
* Multi-version diamond dependencies only are installed once
* Processing a YAML bulk index update takes less memory
* `gem install -i` makes sure all depenencies are installed
* `gem update --system` reinstalls into the prefix it was originally installed
  in
* `gem update --system` respects --no-rdoc and --no-ri flags
* HTTP basic authentication support for proxies
* Gem::Specification#platforms should no longer be a String, use
  Gem::Platform::CURRENT when building binary gems instead
* `gem env` has more diagnostic information
* require 'rubygems' loads less code
* sources.gem is gone, RubyGems now uses built-in defaults
* `gem install --source` will no longer add --source by default, use `gem
  sources --add` to make it a permanent extra source
* `gem query` (list) no longer prints details by default
* Exact gem names are matched in various places
* mkrf extensions are now supported
* A gem can depend on a specific RubyGems version
* `gem_server` is now `gem server`
* `gemlock` is now `gem lock`
* `gem_mirror` is now `gem mirror`
* `gemwhich` is now `gem which`
* `gemri` is no longer included with RubyGems
* `index_gem_repository.rb` is now `gem generate_index`
* `gem` performs more validation of parameters
* Custom rdoc styles are now supported
* Gem indexer no longer removes quick index during index creation
* Kernel#require only rescues a LoadError for the file being required now
* `gem dependencies` can now display some information for remote gems
* Updating RubyGems now works with RUBYOPT=-rubygems

Special thanks to:

* Daniel Berger
* Luis Lavena
* Tom Copeland
* Wilson Bilkovich

=== 0.9.4 / 2007-05-23

If you are experiencing problems with the source index (e.g. strange
"No Method" errors), or problems with zlib (e.g. "Buffer Error"
messsage), we recommend upgrading to RubyGems 0.9.4.

Bug Fixes Include:

* Several people have been experiencing problems with no method errors
  on the source index cache.  The source index cache is now a bit more
  self healing.  Furthermore, if the source index cache is
  irreparable, then it is automatically dropped and reloaded.
* The source cache files may now be dropped with the "gem sources
  --clear-all" command.  (This command may require root is the system
  source cache is in a root protected area).
* Several sub-commands were accidently dropped from the "gem" command.
  These commands have been restored.

=== 0.9.3 / 2007-05-10

Bug Fixes Include:

The ZLib library on Windows will occasionally complains about a buffer error
when unpacking gems.  The Gems software has a workaround for that problem, but
the workaround was only enabled for versions of ZLib 1.2.1 or earlier.  We
have received several reports of the error occuring with ZLib 1.2.3, so we
have permanently enabled the work around on all versions.

=== 0.9.2 / 2007-02-05

Bug Fixes Include:

* The "unpack" command now works properly.
* User name and password are now passed properly to the authenticating
  proxy when downloading gems.

=== 0.9.1 / 2007-01-16

See ChangeLog

=== 0.9.0 / 2006-06-28

Finally, the much anticipated RubyGems version 0.9.0 is now available.
This release includes a number of new features and bug fixes.  The
number one change is that we can now download the gem index
incrementally.  This will greatly speed up the gem command when only a
few gems are out of date.

Major Enhancments include:

* The gem index is now downloaded incrementally, only updating entries
  that are out of date.  If more than 50 entries are out of date, we
  revert back to a bulk download.
* Several patches related to allowing RubyGems to work with
  authenticating proxies (from Danie Roux and Anatol Pomozov).  Just
  put the user and password in the proxy URL (e.g. -p
  http://user:password@proxy.address.com:8080) or use the
  HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables.
* The gem unpack command can now accept a file path rather than just a
  install gem name.
* Both RI and RDOC documents are now generated by default.
* A gemri command is included to read gem RI docs (only needed for
  Ruby 1.8.4 or earlier).

Minor enhancements include:

* Verison 0.0.0 is now a valid gem version.
* Better detection of missing SSL functionality.
* SSL is not required if the security policy does not require
  signature checking.
* Rake built extensions are now supported (Tilman Sauerbeck).
* Several autorequire bug fixes.
* --traceback is now an alias for --backtrace (I can never remember
  which one it is).
* SAFE=1 compatibility fixes.
* .rbw is now a supported suffix for RubyGem's custom require.
* Several Ruby 1.9 compatibility fixes (Eric Hodel).

Bug Fixes:

* Added dashes to gemspecs generated in Ruby 1.8.3.  This solves some
  cross-Ruby version compatibility issues.
* Fixed bug where the wrong executables could be uninstalled (Eric
  Hodel).
* Fixed bug where gem unpack occasionally unpacked the wrong gem.
* Fixed bug where a fatal error occured when permissions on .gemrc
  were too restrictive (reported by Luca Pireddu).
* Fixed prefix handling for native expressions (patch by Aaron Patterson).
* Fixed several Upgrade => Update typos.

=== 0.8.11 / 2005-07-13

* -y is a synonym for --include-dependencies.
* Better handling of errors in the top level rescue clause.
* Package list command (e.g. gem inspect GEM).
* .gemrc now allows cvsrc-like options to set defaults per subcommand.
* The autorequire gem spec field will now accept a list.
* Substituted Time for Date in specs, increasing performance
  dramatically.
* Fixed reported bug of gem directories ending in "-" (reported by
  Erik Hatcher).
* Fixed but in installer that caused dependency installation to not
  work.
* Added Paul Duncan's gem signing patch.
* Added Mark Hubbart's Framework patch (for better integration with OS
  X).
* Added David Glasser's install-from-mirror patch.
* Additional internal structural cleanup and test reorganization.

=== 0.8.10 / 2005-03-27

* In multi-user environments, it is common to supply mulitple versions of gems
  (for example Rails), allowing individual users to select the version of the
  gem they desire.  This allows a user to be insulated from updates to that
  gem.  RubyGems 0.8.10 fixes a problem where gems could occasionally become
  confused about the current versions of libraries selected by the user.
* The other annoying bug is that if there are any existing rubygems-update gems
  installed, then the "gem update --system" command will download a new
  update, but install the latest update prior to the download.

=== 0.8.9

Never released

=== 0.8.8 / 2005-03-14

* Moved the master definition of class Requirement back under version.
  Kept the body of Requirement under Gem.

=== 0.8.7 / 2005-03-14

Even though it has only been a few weeks since that last release,
there are quite a number of new features in 0.8.7.  A complete list of
new features will be given below, but here is a summary of the hot
items.

* The bug that prevented some users from installing rails has been
  squashed.  A big thanks to Bill Guindon (aGorilla) for helping track
  that one down.

There are several new commands available on the gem command:

* gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of
  gem.  If the gem name is omitted, the entire repository is cleaned.
* gem dependency GEMNAME -- Show the dependencies for the named gems.
  This is really helpful when trying to figure out what gem needs what
  other gem.

There changes to the existing commands as well.

* gem uninstall is much smarter about removing gems from the
  repository.  Lists of gems are now uninstalled in proper dependency
  order (ie. if A depends on B, A is uninstalled first).  Also,
  warnings about broken dependencies occur only when removing the
  *last* gem that supports a dependency is removed.

Both gem install and gem uninstall support some new command line
options that can reduce the amount of yes/no queries given the user.
For install we have:

* --ignore-dependencies -- Only install requests gems, no
  dependendecies are automatically installed.
* --include-dependencies -- Automatically install dependencies,
  without confirmation.

For gem uninstall, the new options are:

* --all -- Uninstall all matching gems without confirmation.
* --ignore-dependencies -- Uninstall, even if dependencies are broken.
* --executables -- Remove executables without confirmation

Under general cleanup, gems will not, by default, run RDoc on packages
that do not have the RDoc flag set.

And finally there is a new library file 'gemconfigure' to aid in
writing version sensitive applications (without undue dependencies on
RubyGems); and 'gemwhich', a short script to locate libraries in the
file system.  You can read more about them here:

* gemconfigure: http://docs.rubygems.org/read/chapter/4#page73
* gemwhich: http://docs.rubygems.org/read/chapter/17

=== 0.8.6 / 2005-02-27

* Fixed a small bug with shebang construction

=== 0.8.5 / 2005-02-26

Do you know how you used to dread getting the following message while
installing gems?

  Updating Gem source index for: http://gems.rubyforge.org

It could take up to 30 seconds (on my machine, even worse on others) for
that crazy source index to update.

This latest release of RubyGems speeds that wait time up considerably.
The following table gives the following times for installing RedCloth
with a required source index update on three system we had available to
us.  No RDoc generation was included in the following times.

  RubyGems    Linux         Mac OSX      Windows
  0.8.4       33 secs       73 secs      58 secs
  0.8.5        8 secs       14 secs      21 secs

The new caching code is at least 3x faster than previous versions.  Woo
Hoo!

=== 0.8.4 / 2005-01-01

* Rubygems 0.8.3's installer was broken unless you already had an older
  version of RubyGems installed.  That's fixed.
* Change in the way Gem::Specification internally deals with lazy attributes
  and defaults, bringing (with some loadpath_manager changes) a fairly
  significant increase in speed.
* Support for lower-cased Gem file names (for you, Paul Duncan :)
* Erik Veenstra's patch for making Gem versions sortable.

=== 0.8.3 / 2004-12-07

No real earth shattering news here, but there were a number of really
annoying issues involving other libraries that RubyGems depends upon.
0.8.3 contains some workarounds for these issues.  In particular:

* Added workaround for the null byte in Dir string issue. (see
  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702).
  (Thanks to Mauricio Fernández for the quick response on this one).
* Added workaround for old version of Zlib on windows that caused
  Ruwiki to fail to install. (see
  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770)
* Added workaround for large YAML file issues.  (We dynamically cut
  down the size of the source index YAML file and seem to have worked
  around immediate issues.

There has been some minor usability enhancements and changes ...

* A user specific source index cache can be used when the site-wide
  cache is unwritable (i.e. because you are running as a non-admin).
  This *greatly* speeds up gem commands run in non-admin mode when the
  site-wide cache is out of date.
* The gem command now used an HTTP HEAD command to detect if the
  server's source index needs to be downloaed.
* gem check gemname --test will run unit tests on installed gems that
  have unit tests.
* Multiple gem names are allowed on the gem install command line.
  This means you can do:
  
    gem install rake rails needle postgres-pr pimki
  
  (Ok, you get the idea)
* Multiple authors my be specified in a Gem spec.
* Switched to using setup.rb (rather than a custom install script) for
  the installation of RubyGems itself.  If you have installed RubyGems
  before, double check the installation instructions and make sure you
  use setup.rb instead of install.rb.
* Ryan Davis has provided a patch so you can use an env variable
  (GEM_SKIP), to tell loadpath_manager not to load gems of those
  names.  This was useful for him while testing libs that he had in
  development.

=== 0.8.1 / 2004-09-17

* Quick release to capture some bug fixes.

=== 0.8.0 / 2004-09-15

* Remove need for library stubs.  Set the RUBYOPT environment variable to
  include "rrubygems", and a normal require will find gem files.  Continue to
  use 'require_gem gem_name, version' to specify gem versions.
* Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array.
* Generates rdoc by default on installs.
* Adopted tar/gzip file format, thanks to Mauricio Fernandez.
* "gem rdoc" allows generation of rdoc after gem installation (will add a "gem
  test"
* Application stubs can now accept an optional parameter of _VERSION_ that will
  run an arbitrary version of the application requested.
* Various bug fixes
* Various platform-independency improvements
* "gem spec --all" displays spec info for all installed version of a given gem.
* Dynamic caching of sources
* Support for user-definable sources on the command line (thanks Assaph Mehr)
* More intelligent support for platform-dependent gems.  Use Platform::CURRENT
  when building a gem to set its platform to the one you're building on.
  Installation displays a choice of platform-dependent gems, allowing the user
  to pick.
* Added "gem unpack" for "unpacking" a gem to the current directory

=== 0.7.0 / 2004-07-09

See ChangeLog

=== 0.6.1 / 2004-06-08

See ChangeLog

=== 0.6.0 / 2004-06-08

* Collapse output of --search and --list (and gem_server) operations so that
  each gem is listed only once, with each of its versions listed on the same
  line.
* bin/gem: new --upgrade-all option allows one to upgrade every installed gem
* new #required_ruby_version attribute added to gem specification for
  specifying a dependency on which version of ruby the gem needs.  Format it
  accepts is the same as the Gem::Version::Requirement format:
  
    spec.required_ruby_version = "> 1.8.0"
* --install-stub defaults to true, so library stubs are created

=== 0.5.0 / 2004-06-06

* Jim added the ability to specify version constraints to avoid API
  incompatibilities.  This has been the subject of much debate for the past
  couple of months, with many ideas and code contributed by Eivind Eklund and
  Mauricio Fernandez.  The following set of assertions shows how it works:
  
    assert_inadequate("1.3", "~> 1.4")
    assert_adequate(  "1.4", "~> 1.4")
    assert_adequate(  "1.5", "~> 1.4")
    assert_inadequate("2.0", "~> 1.4") # This one is key--the new operator
				       # disallows major version number
				       # differences.
* Group gem search output when multiple versions exist for a given gem:
  
    activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5)
      Implements the ActiveRecord pattern for ORM.
* Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for
  people who have, for example, README.rdoc in their distributions.  Add to
  gemspec via: spec.extra_rdoc_files = ["list", "of", "files"].  Ruby files are
  automatically included.
* Some small bug fixes

=== 0.4.0 / 2004-05-30

* Minor bug fixes including Windows compatability issues

=== 0.3.0 / 2004-04-30

* Cleanup of command-line arguments and handling.  Most commands accept a
  --local or --remote modifier.
* Creation of Application Gems (packages that include executable programs).
  See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information
  on how to use it.
* Basic functionality for installing binary gems from source (:extensions
  property of gem specification holds an array of paths to extconf.rb files to
  be used for compilation)
* Install library "stub" allowing a normal 'require' to work (which then does
  the rubygems require and 'require_gem'
* --run-tests runs the test suite specified by the "test_suite_file" property
  of a gem specification
* HTTP Proxy support works.  Rewrite of HTTP code.
* Unit and functional tests added (see Rakefile).
* Prompt before remote-installing dependencies during gem installation.
* Config file for storing preferences for 'gem' command usage.
* Generally improved error messages (still more work to do)
* Rearranged gem directory structure for cleanliness.

=== 0.2.0 / 2004-03-14

* Initial public release

= RubyGems

* http://rubygems.org
* http://docs.rubygems.org
* http://help.rubygems.org
* http://github.com/rubygems
* http://rubyforge.org/projects/rubygems

== DESCRIPTION

RubyGems is a package management framework for Ruby.

This gem is an update for the RubyGems software. You must have an
installation of RubyGems before this update can be applied.

See Gem for information on RubyGems (or `ri Gem`)

To upgrade to the latest RubyGems, run:

  $ gem update --system  # you might need to be an administrator or root

See UPGRADING.rdoc for more details and alternative instructions.

-----

If you don't have RubyGems installed, your can still do it manually:

* Download from: https://rubygems.org/pages/download
* Unpack into a directory and cd there
* Install with: ruby setup.rb  # you may need admin/root privilege

For more details and other options, see:

  ruby setup.rb --help

== GETTING HELP

=== Support Requests

Are you unsure of how to use RubyGems?  Do you think you've found a bug and
you're not sure?  If that is the case, the best place for you is to file a
support request at {help.rubygems.org}[http://help.rubygems.org].

=== Filing Tickets

You're sure you've found a bug!  But where do you let us know?  The best place
for letting the RubyGems team know about bugs you've found is {on the rubygems
tracker at rubyforge}[http://rubyforge.org/tracker/?group_id=126].

=== Bundler Compatibility

See http://gembundler.com/compatibility for known issues.
Copyright (c) Chad Fowler, Rich Kilmer, Jim Weirich and others.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
Weirich and others.  You can redistribute it and/or modify it under
either the terms of the MIT license (see the file MIT.txt), or the
conditions below:

1. You may make and give away verbatim copies of the source form of the
   software without restriction, provided that you duplicate all of the
   original copyright notices and associated disclaimers.

2. You may modify your copy of the software in any way, provided that
   you do at least ONE of the following:

   a. place your modifications in the Public Domain or otherwise
      make them Freely Available, such as by posting said
      modifications to Usenet or an equivalent medium, or by allowing
      the author to include your modifications in the software.

   b. use the modified software only within your corporation or
      organization.

   c. give non-standard executables non-standard names, with
      instructions on where to get the original software distribution.

   d. make other distribution arrangements with the author.

3. You may distribute the software in object code or executable
   form, provided that you do at least ONE of the following:

   a. distribute the executables and library files of the software,
      together with instructions (in the manual page or equivalent)
      on where to get the original distribution.

   b. accompany the distribution with the machine-readable source of
      the software.

   c. give non-standard executables non-standard names, with
      instructions on where to get the original software distribution.

   d. make other distribution arrangements with the author.

4. You may modify and include the part of the software into any other
   software (possibly commercial).  But some files in the distribution
   are not written by the author, so that they are not under these terms.

   For the list of those files and their copying conditions, see the
   file LEGAL.

5. The scripts and library files supplied as input to or produced as
   output from the software do not automatically fall under the
   copyright of the software, but belong to whomever generated them,
   and may be sold commercially, and may be aggregated with this
   software.

6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE.

--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the header corresponding to <tt>field</tt>.
- !ruby/struct:SM::Flow::P 
  body: Matching is case-insensitive.
full_name: Mail#[]
is_singleton: false
name: "[]"
params: (field)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The Mail class represents an internet mail message (as per RFC822, RFC2822) with headers and a body.
constants: []

full_name: Mail
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: body
- !ruby/object:RI::MethodSummary 
  name: header
name: Mail
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new Mail where <tt>f</tt> is either a stream which responds to gets(), or a path to a file. If <tt>f</tt> is a path it will be opened.
- !ruby/struct:SM::Flow::P 
  body: "The whole message is read so it can be made available through the #header, #[] and #body methods."
- !ruby/struct:SM::Flow::P 
  body: The &quot;From &quot; line is ignored if the mail is in mbox format.
full_name: Mail::new
is_singleton: true
name: new
params: (f)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the message body as an Array of lines
full_name: Mail#body
is_singleton: false
name: body
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the headers as a Hash.
full_name: Mail#header
is_singleton: false
name: header
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns two elements array array containing the objects in <em>enum</em> that gives the minimum and maximum values respectively from the given block.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.minmax_by {|x| x.length }   #=&gt; [&quot;dog&quot;, &quot;albatross&quot;]\n"
full_name: Enumerable#minmax_by
is_singleton: false
name: minmax_by
params: |
  enum.minmax_by {| obj| block }   => [min, max]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing all elements of <em>enum</em> for which <em>block</em> is not <tt>false</tt> (see also <tt>Enumerable#reject</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).find_all {|i|  i % 3 == 0 }   #=&gt; [3, 6, 9]\n"
full_name: Enumerable#find_all
is_singleton: false
name: find_all
params: |
  enum.find_all {| obj | block }  => array
  enum.select   {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Drops first n elements from <em>enum</em>, and returns rest elements in an array.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.drop(3)             # =&gt; [4, 5, 0]\n"
full_name: Enumerable#drop
is_singleton: false
name: drop
params: |
  enum.drop(n)               => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object in <em>enum</em> with the maximum value. The first form assumes all objects implement <tt>Comparable</tt>; the second uses the block to return <em>a &lt;=&gt; b</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.max                                  #=&gt; &quot;horse&quot;\n   a.max {|a,b| a.length &lt;=&gt; b.length }   #=&gt; &quot;albatross&quot;\n"
full_name: Enumerable#max
is_singleton: false
name: max
params: |
  enum.max                   => obj
  enum.max {|a,b| block }    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the items in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..7).to_a                       #=&gt; [1, 2, 3, 4, 5, 6, 7]\n   { 'a'=&gt;1, 'b'=&gt;2, 'c'=&gt;3 }.to_a   #=&gt; [[&quot;a&quot;, 1], [&quot;b&quot;, 2], [&quot;c&quot;, 3]]\n"
full_name: Enumerable#to_a
is_singleton: false
name: to_a
params: |
  enum.to_a      =>    array
  enum.entries   =>    array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the items in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..7).to_a                       #=&gt; [1, 2, 3, 4, 5, 6, 7]\n   { 'a'=&gt;1, 'b'=&gt;2, 'c'=&gt;3 }.to_a   #=&gt; [[&quot;a&quot;, 1], [&quot;b&quot;, 2], [&quot;c&quot;, 3]]\n"
full_name: Enumerable#entries
is_singleton: false
name: entries
params: |
  enum.to_a      =>    array
  enum.entries   =>    array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares each entry in <em>enum</em> with <em>value</em> or passes to <em>block</em>. Returns the index for the first for which the evaluated value is non-false. If no object matches, returns <tt>nil</tt>
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).find_index  {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; nil\n   (1..100).find_index {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; 34\n   (1..100).find_index(50)                                #=&gt; 49\n"
full_name: Enumerable#find_index
is_singleton: false
name: find_index
params: |
  enum.find_index(value)            => int or nil
  enum.find_index {| obj | block }  => int or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing all elements of <em>enum</em> for which <em>block</em> is not <tt>false</tt> (see also <tt>Enumerable#reject</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).find_all {|i|  i % 3 == 0 }   #=&gt; [3, 6, 9]\n"
full_name: Enumerable#select
is_singleton: false
name: select
params: |
  enum.find_all {| obj | block }  => array
  enum.select   {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts any arguments to arrays, then merges elements of <em>enum</em> with corresponding elements from each argument. This generates a sequence of <tt>enum#size</tt> <em>n</em>-element arrays, where <em>n</em> is one more that the count of arguments. If the size of any argument is less than <tt>enum#size</tt>, <tt>nil</tt> values are supplied. If a block given, it is invoked for each output array, otherwise an array of arrays is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ 4, 5, 6 ]\n   b = [ 7, 8, 9 ]\n\n   (1..3).zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n   &quot;cat\\ndog&quot;.zip([1])   #=&gt; [[&quot;cat\\n&quot;, 1], [&quot;dog&quot;, nil]]\n   (1..3).zip            #=&gt; [[1], [2], [3]]\n"
full_name: Enumerable#zip
is_singleton: false
name: zip
params: |
  enum.zip(arg, ...)                   => array
  enum.zip(arg, ...) {|arr| block }    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: "   enum.reduce(initial, sym) =&gt; obj\n   enum.reduce(sym)          =&gt; obj\n   enum.reduce(initial) {| memo, obj | block }  =&gt; obj\n   enum.reduce          {| memo, obj | block }  =&gt; obj\n"
- !ruby/struct:SM::Flow::P 
  body: Combines all elements of <em>enum</em> by applying a binary operation, specified by a block or a symbol that names a method or operator.
- !ruby/struct:SM::Flow::P 
  body: If you specify a block, then for each element in <em>enum&lt;i&gt; the block is passed an accumulator value (&lt;i&gt;memo</em>) and the element. If you specify a symbol instead, then each element in the collection will be passed to the named method of <em>memo</em>. In either case, the result becomes the new value for <em>memo</em>. At the end of the iteration, the final value of <em>memo</em> is the return value fo the method.
- !ruby/struct:SM::Flow::P 
  body: If you do not explicitly specify an <em>initial</em> value for <em>memo</em>, then uses the first element of collection is used as the initial value of <em>memo</em>.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "   # Sum some numbers\n   (5..10).reduce(:+)                            #=&gt; 45\n   # Same using a block and inject\n   (5..10).inject {|sum, n| sum + n }            #=&gt; 45\n   # Multiply some numbers\n   (5..10).reduce(1, :*)                         #=&gt; 151200\n   # Same using a block\n   (5..10).inject(1) {|product, n| product * n } #=&gt; 151200\n   # find the longest word\n   longest = %w{ cat sheep bear }.inject do |memo,word|\n      memo.length &gt; word.length ? memo : word\n   end\n   longest                                       #=&gt; &quot;sheep&quot;\n"
full_name: Enumerable#reduce
is_singleton: false
name: reduce
params: |
  enum.inject(initial, sym) => obj
  enum.inject(sym)          => obj
  enum.inject(initial) {| memo, obj | block }  => obj
  enum.inject          {| memo, obj | block }  => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if any member of <em>enum</em> equals <em>obj</em>. Equality is tested using <tt>==</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   IO.constants.include? &quot;SEEK_SET&quot;          #=&gt; true\n   IO.constants.include? &quot;SEEK_NO_FURTHER&quot;   #=&gt; false\n"
full_name: Enumerable#include?
is_singleton: false
name: include?
params: |
  enum.include?(obj)     => true or false
  enum.member?(obj)      => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array for all elements of <em>enum</em> for which <em>block</em> is false (see also <tt>Enumerable#find_all</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).reject {|i|  i % 3 == 0 }   #=&gt; [1, 2, 4, 5, 7, 8, 10]\n"
full_name: Enumerable#reject
is_singleton: false
name: reject
params: |
  enum.reject {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each element of the collection to the given block. The method returns <tt>true</tt> if the block ever returns a value other than <tt>false</tt> or <tt>nil</tt>. If the block is not given, Ruby adds an implicit block of <tt>{|obj| obj}</tt> (that is <tt>any?</tt> will return <tt>true</tt> if at least one of the collection members is not <tt>false</tt> or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   %w{ ant bear cat}.any? {|word| word.length &gt;= 3}   #=&gt; true\n   %w{ ant bear cat}.any? {|word| word.length &gt;= 4}   #=&gt; true\n   [ nil, true, 99 ].any?                             #=&gt; true\n"
full_name: Enumerable#any?
is_singleton: false
name: any?
params: |
  enum.any? [{|obj| block } ]   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns two elements array which contains the minimum and the maximum value in the enumerable. The first form assumes all objects implement <tt>Comparable</tt>; the second uses the block to return <em>a &lt;=&gt; b</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.minmax                                  #=&gt; [&quot;albatross&quot;, &quot;horse&quot;]\n   a.minmax {|a,b| a.length &lt;=&gt; b.length }   #=&gt; [&quot;dog&quot;, &quot;albatross&quot;]\n"
full_name: Enumerable#minmax
is_singleton: false
name: minmax
params: |
  enum.minmax                   => [min,max]
  enum.minmax {|a,b| block }    => [min,max]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each slice of &lt;n&gt; elements. If no block is given, returns an enumerator.
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "    (1..10).each_slice(3) {|a| p a}\n    # outputs below\n    [1, 2, 3]\n    [4, 5, 6]\n    [7, 8, 9]\n    [10]\n"
full_name: Enumerable#enum_slice
is_singleton: false
name: enum_slice
params: |
  e.each_slice(n) {...}
  e.each_slice(n)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each element of the collection to the given block. The method returns <tt>true</tt> if the block returns <tt>true</tt> exactly once. If the block is not given, <tt>one?</tt> will return <tt>true</tt> only if exactly one of the collection members is true.
- !ruby/struct:SM::Flow::VERB 
  body: "   %w{ant bear cat}.one? {|word| word.length == 4}   #=&gt; true\n   %w{ant bear cat}.one? {|word| word.length &gt; 4}    #=&gt; false\n   %w{ant bear cat}.one? {|word| word.length &lt; 4}    #=&gt; false\n   [ nil, true, 99 ].one?                            #=&gt; false\n   [ nil, true, false ].one?                         #=&gt; true\n"
full_name: Enumerable#one?
is_singleton: false
name: one?
params: |
  enum.one? [{|obj| block }]   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of every element in <em>enum</em> for which <tt>Pattern === element</tt>. If the optional <em>block</em> is supplied, each matching element is passed to it, and the block's result is stored in the output array.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..100).grep 38..44   #=&gt; [38, 39, 40, 41, 42, 43, 44]\n   c = IO.constants\n   c.grep(/SEEK/)         #=&gt; [&quot;SEEK_END&quot;, &quot;SEEK_SET&quot;, &quot;SEEK_CUR&quot;]\n   res = c.grep(/SEEK/) {|v| IO.const_get(v) }\n   res                    #=&gt; [2, 0, 1]\n"
full_name: Enumerable#grep
is_singleton: false
name: grep
params: |
  enum.grep(pattern)                   => array
  enum.grep(pattern) {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object in <em>enum</em> that gives the maximum value from the given block.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.max_by {|x| x.length }   #=&gt; &quot;albatross&quot;\n"
full_name: Enumerable#max_by
is_singleton: false
name: max_by
params: |
  enum.max_by {| obj| block }   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each array of consecutive &lt;n&gt; elements. If no block is given, returns an enumerator.a
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "    (1..10).each_cons(3) {|a| p a}\n    # outputs below\n    [1, 2, 3]\n    [2, 3, 4]\n    [3, 4, 5]\n    [4, 5, 6]\n    [5, 6, 7]\n    [6, 7, 8]\n    [7, 8, 9]\n    [8, 9, 10]\n"
full_name: Enumerable#each_cons
is_singleton: false
name: each_cons
params: |
  each_cons(n) {...}
  each_cons(n)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with two arguments, the item and its index, for each item in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   hash = Hash.new\n   %w(cat dog wombat).each_with_index {|item, index|\n     hash[item] = index\n   }\n   hash   #=&gt; {&quot;cat&quot;=&gt;0, &quot;wombat&quot;=&gt;2, &quot;dog&quot;=&gt;1}\n"
full_name: Enumerable#enum_with_index
is_singleton: false
name: enum_with_index
params: |
  enum.each_with_index {|obj, i| block }  -> enum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object in <em>enum</em> that gives the minimum value from the given block.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.min_by {|x| x.length }   #=&gt; &quot;dog&quot;\n"
full_name: Enumerable#min_by
is_singleton: false
name: min_by
params: |
  enum.min_by {| obj| block }   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each slice of &lt;n&gt; elements. If no block is given, returns an enumerator.
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "    (1..10).each_slice(3) {|a| p a}\n    # outputs below\n    [1, 2, 3]\n    [4, 5, 6]\n    [7, 8, 9]\n    [10]\n"
full_name: Enumerable#each_slice
is_singleton: false
name: each_slice
params: |
  e.each_slice(n) {...}
  e.each_slice(n)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Makes a set from the enumerable object with given arguments. Needs to +require &quot;set&quot;+ to use this method.
full_name: Enumerable#to_set
is_singleton: false
name: to_set
params: (klass = Set, *args, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes elements to the block until the block returns nil or false, then stops iterating and returns an array of all prior elements.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.take_while {|i| i &lt; 3 }   # =&gt; [1, 2]\n"
full_name: Enumerable#take_while
is_singleton: false
name: take_while
params: |
  enum.take_while {|arr| block }   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a hash, which keys are evaluated result from the block, and values are arrays of elements in <em>enum</em> corresponding to the key.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..6).group_by {|i| i%3}   #=&gt; {0=&gt;[3, 6], 1=&gt;[1, 4], 2=&gt;[2, 5]}\n"
full_name: Enumerable#group_by
is_singleton: false
name: group_by
params: |
  enum.group_by {| obj | block }  => a_hash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (result, item)
comment: 
full_name: Enumerable#inject
is_singleton: false
name: inject
params: (init) {|result, item| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if any member of <em>enum</em> equals <em>obj</em>. Equality is tested using <tt>==</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   IO.constants.include? &quot;SEEK_SET&quot;          #=&gt; true\n   IO.constants.include? &quot;SEEK_NO_FURTHER&quot;   #=&gt; false\n"
full_name: Enumerable#member?
is_singleton: false
name: member?
params: |
  enum.include?(obj)     => true or false
  enum.member?(obj)      => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each element of the collection to the given block. The method returns <tt>true</tt> if the block never returns <tt>true</tt> for all elements. If the block is not given, <tt>none?</tt> will return <tt>true</tt> only if none of the collection members is true.
- !ruby/struct:SM::Flow::VERB 
  body: "   %w{ant bear cat}.none? {|word| word.length == 5}  #=&gt; true\n   %w{ant bear cat}.none? {|word| word.length &gt;= 4}  #=&gt; false\n   [].none?                                          #=&gt; true\n   [nil].none?                                       #=&gt; true\n   [nil,false].none?                                 #=&gt; true\n"
full_name: Enumerable#none?
is_singleton: false
name: none?
params: |
  enum.none? [{|obj| block }]   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each element of the collection to the given block. The method returns <tt>true</tt> if the block never returns <tt>false</tt> or <tt>nil</tt>. If the block is not given, Ruby adds an implicit block of <tt>{|obj| obj}</tt> (that is <tt>all?</tt> will return <tt>true</tt> only if none of the collection members are <tt>false</tt> or <tt>nil</tt>.)
- !ruby/struct:SM::Flow::VERB 
  body: "   %w{ ant bear cat}.all? {|word| word.length &gt;= 3}   #=&gt; true\n   %w{ ant bear cat}.all? {|word| word.length &gt;= 4}   #=&gt; false\n   [ nil, true, 99 ].all?                             #=&gt; false\n"
full_name: Enumerable#all?
is_singleton: false
name: all?
params: |
  enum.all? [{|obj| block } ]   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the number of items in <em>enum</em>, where #size is called if it responds to it, otherwise the items are counted through enumeration. If an argument is given, counts the number of items in <em>enum</em>, for which equals to <em>item</em>. If a block is given, counts the number of elements yielding a true value."
- !ruby/struct:SM::Flow::VERB 
  body: "   ary = [1, 2, 4, 2]\n   ary.count             # =&gt; 4\n   ary.count(2)          # =&gt; 2\n   ary.count{|x|x%2==0}  # =&gt; 3\n"
full_name: Enumerable#count
is_singleton: false
name: count
params: |
  enum.count                   => int
  enum.count(item)             => int
  enum.count {| obj | block }  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first element, or the first <tt>n</tt> elements, of the enumerable. If the enumerable is empty, the first form returns <tt>nil</tt>, and the second form returns an empty array.
full_name: Enumerable#first
is_singleton: false
name: first
params: |
  enum.first      -> obj or nil
  enum.first(n)   -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each entry in <em>enum</em> to <em>block</em>. Returns the first for which <em>block</em> is not <tt>false</tt>. If no object matches, calls <em>ifnone</em> and returns its result when it is specified, or returns <tt>nil</tt>
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).detect  {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; nil\n   (1..100).detect {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; 35\n"
full_name: Enumerable#find
is_singleton: false
name: find
params: |
  enum.detect(ifnone = nil) {| obj | block }  => obj or nil
  enum.find(ifnone = nil)   {| obj | block }  => obj or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array with the results of running <em>block</em> once for every element in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..4).collect {|i| i*i }   #=&gt; [1, 4, 9, 16]\n   (1..4).collect { &quot;cat&quot;  }   #=&gt; [&quot;cat&quot;, &quot;cat&quot;, &quot;cat&quot;, &quot;cat&quot;]\n"
full_name: Enumerable#map
is_singleton: false
name: map
params: |
  enum.collect {| obj | block }  => array
  enum.map     {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the next object in the enumerator, and move the internal position forward. When the position reached at the end, internal position is rewinded then StopIteration is raised.
- !ruby/struct:SM::Flow::P 
  body: Note that enumeration sequence by next method does not affect other non-external enumeration methods, unless underlying iteration methods itself has side-effect, e.g. IO#each_line.
- !ruby/struct:SM::Flow::P 
  body: "Caution: Calling this method causes the &quot;generator&quot; library to be loaded."
full_name: Enumerable::Enumerator#next
is_singleton: false
name: next
params: |
  e.next   => object

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A class which provides a method `each' to be used as an Enumerable object.
constants: []

full_name: Enumerable::Enumerator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __generator
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_with_index
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: with_index
name: Enumerator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each elements with an index, which start from 0. If no block is given, returns an enumerator.
full_name: Enumerable::Enumerator#with_index
is_singleton: false
name: with_index
params: |
  e.with_index {|(*args), idx| ... }
  e.with_index

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Enumerable::Enumerator#__generator
is_singleton: false
name: __generator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rewinds the enumeration sequence by the next method.
full_name: Enumerable::Enumerator#rewind
is_singleton: false
name: rewind
params: |
  e.rewind   => e

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Enumerable::Enumerator object, which is to be used as an Enumerable object using the given object's given method with the given arguments.
- !ruby/struct:SM::Flow::P 
  body: Use of this method is discouraged. Use Kernel#enum_for() instead.
full_name: Enumerable::Enumerator::new
is_singleton: true
name: new
params: |
  Enumerable::Enumerator.new(obj, method = :each, *args)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block using the object and the method specified in the first place. If no block is given, returns self.
full_name: Enumerable::Enumerator#each
is_singleton: false
name: each
params: |
  enum.each {...}

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each elements with an index, which start from 0. If no block is given, returns an enumerator.
full_name: Enumerable::Enumerator#each_with_index
is_singleton: false
name: each_with_index
params: |
  e.with_index {|(*args), idx| ... }
  e.with_index

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array with the results of running <em>block</em> once for every element in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..4).collect {|i| i*i }   #=&gt; [1, 4, 9, 16]\n   (1..4).collect { &quot;cat&quot;  }   #=&gt; [&quot;cat&quot;, &quot;cat&quot;, &quot;cat&quot;, &quot;cat&quot;]\n"
full_name: Enumerable#collect
is_singleton: false
name: collect
params: |
  enum.collect {| obj | block }  => array
  enum.map     {| obj | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with two arguments, the item and its index, for each item in <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   hash = Hash.new\n   %w(cat dog wombat).each_with_index {|item, index|\n     hash[item] = index\n   }\n   hash   #=&gt; {&quot;cat&quot;=&gt;0, &quot;wombat&quot;=&gt;2, &quot;dog&quot;=&gt;1}\n"
full_name: Enumerable#each_with_index
is_singleton: false
name: each_with_index
params: |
  enum.each_with_index {|obj, i| block }  -> enum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns two arrays, the first containing the elements of <em>enum</em> for which the block evaluates to true, the second containing the rest.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..6).partition {|i| (i&amp;1).zero?}   #=&gt; [[2, 4, 6], [1, 3, 5]]\n"
full_name: Enumerable#partition
is_singleton: false
name: partition
params: |
  enum.partition {| obj | block }  => [ true_array, false_array ]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> for each element of <em>enum</em> repeatedly <em>n</em> times or forever if none or nil is given. If a non-positive number is given or the collection is empty, does nothing. Returns nil if the loop has finished without getting interrupted.
- !ruby/struct:SM::Flow::P 
  body: Enumerable#cycle saves elements in an internal array so changes to <em>enum</em> after the first pass have no effect.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]\n   a.cycle {|x| puts x }  # print, a, b, c, a, b, c,.. forever.\n   a.cycle(2) {|x| puts x }  # print, a, b, c, a, b, c.\n"
full_name: Enumerable#cycle
is_singleton: false
name: cycle
params: |
  enum.cycle {|obj| block }
  enum.cycle(n) {|obj| block }

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Drops elements up to, but not including, the first element for which the block returns nil or false and returns an array containing the remaining elements.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.drop_while {|i| i &lt; 3 }   # =&gt; [3, 4, 5, 0]\n"
full_name: Enumerable#drop_while
is_singleton: false
name: drop_while
params: |
  enum.drop_while {|arr| block }   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sorts <em>enum</em> using a set of keys generated by mapping the values in <em>enum</em> through the given block.
- !ruby/struct:SM::Flow::VERB 
  body: "   %w{ apple pear fig }.sort_by {|word| word.length}\n                #=&gt; [&quot;fig&quot;, &quot;pear&quot;, &quot;apple&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: The current implementation of <tt>sort_by</tt> generates an array of tuples containing the original collection element and the mapped value. This makes <tt>sort_by</tt> fairly expensive when the keysets are simple
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'benchmark'\n   include Benchmark\n\n   a = (1..100000).map {rand(100000)}\n\n   bm(10) do |b|\n     b.report(&quot;Sort&quot;)    { a.sort }\n     b.report(&quot;Sort by&quot;) { a.sort_by {|a| a} }\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   user     system      total        real\n   Sort        0.180000   0.000000   0.180000 (  0.175469)\n   Sort by     1.980000   0.040000   2.020000 (  2.013586)\n"
- !ruby/struct:SM::Flow::P 
  body: However, consider the case where comparing the keys is a non-trivial operation. The following code sorts some files on modification time using the basic <tt>sort</tt> method.
- !ruby/struct:SM::Flow::VERB 
  body: "   files = Dir[&quot;*&quot;]\n   sorted = files.sort {|a,b| File.new(a).mtime &lt;=&gt; File.new(b).mtime}\n   sorted   #=&gt; [&quot;mon&quot;, &quot;tues&quot;, &quot;wed&quot;, &quot;thurs&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: "This sort is inefficient: it generates two new <tt>File</tt> objects during every comparison. A slightly better technique is to use the <tt>Kernel#test</tt> method to generate the modification times directly."
- !ruby/struct:SM::Flow::VERB 
  body: "   files = Dir[&quot;*&quot;]\n   sorted = files.sort { |a,b|\n     test(?M, a) &lt;=&gt; test(?M, b)\n   }\n   sorted   #=&gt; [&quot;mon&quot;, &quot;tues&quot;, &quot;wed&quot;, &quot;thurs&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: This still generates many unnecessary <tt>Time</tt> objects. A more efficient technique is to cache the sort keys (modification times in this case) before the sort. Perl users often call this approach a Schwartzian Transform, after Randal Schwartz. We construct a temporary array, where each element is an array containing our sort key along with the filename. We sort this array, and then extract the filename from the result.
- !ruby/struct:SM::Flow::VERB 
  body: "   sorted = Dir[&quot;*&quot;].collect { |f|\n      [test(?M, f), f]\n   }.sort.collect { |f| f[1] }\n   sorted   #=&gt; [&quot;mon&quot;, &quot;tues&quot;, &quot;wed&quot;, &quot;thurs&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: This is exactly what <tt>sort_by</tt> does internally.
- !ruby/struct:SM::Flow::VERB 
  body: "   sorted = Dir[&quot;*&quot;].sort_by {|f| test(?M, f)}\n   sorted   #=&gt; [&quot;mon&quot;, &quot;tues&quot;, &quot;wed&quot;, &quot;thurs&quot;]\n"
full_name: Enumerable#sort_by
is_singleton: false
name: sort_by
params: |
  enum.sort_by {| obj | block }    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object in <em>enum</em> with the minimum value. The first form assumes all objects implement <tt>Comparable</tt>; the second uses the block to return <em>a &lt;=&gt; b</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w(albatross dog horse)\n   a.min                                  #=&gt; &quot;albatross&quot;\n   a.min {|a,b| a.length &lt;=&gt; b.length }   #=&gt; &quot;dog&quot;\n"
full_name: Enumerable#min
is_singleton: false
name: min
params: |
  enum.min                    => obj
  enum.min {| a,b | block }   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns first n elements from <em>enum</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.take(3)             # =&gt; [1, 2, 3]\n"
full_name: Enumerable#take
is_singleton: false
name: take
params: |
  enum.take(n)               => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the items in <em>enum</em> sorted, either according to their own <tt>&lt;=&gt;</tt> method, or by using the results of the supplied block. The block should return -1, 0, or +1 depending on the comparison between <em>a</em> and <em>b</em>. As of Ruby 1.8, the method <tt>Enumerable#sort_by</tt> implements a built-in Schwartzian Transform, useful when key computation or comparison is expensive..
- !ruby/struct:SM::Flow::VERB 
  body: "   %w(rhea kea flea).sort         #=&gt; [&quot;flea&quot;, &quot;kea&quot;, &quot;rhea&quot;]\n   (1..10).sort {|a,b| b &lt;=&gt; a}   #=&gt; [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n"
full_name: Enumerable#sort
is_singleton: false
name: sort
params: |
  enum.sort                     => array
  enum.sort {| a, b | block }   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes each entry in <em>enum</em> to <em>block</em>. Returns the first for which <em>block</em> is not <tt>false</tt>. If no object matches, calls <em>ifnone</em> and returns its result when it is specified, or returns <tt>nil</tt>
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).detect  {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; nil\n   (1..100).detect {|i| i % 5 == 0 and i % 7 == 0 }   #=&gt; 35\n"
full_name: Enumerable#detect
is_singleton: false
name: detect
params: |
  enum.detect(ifnone = nil) {| obj | block }  => obj or nil
  enum.find(ifnone = nil)   {| obj | block }  => obj or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Traverses <em>enum</em> in reverse order.
full_name: Enumerable#reverse_each
is_singleton: false
name: reverse_each
params: |
  enum.reverse_each {|item| block } 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates the given block for each array of consecutive &lt;n&gt; elements. If no block is given, returns an enumerator.a
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "    (1..10).each_cons(3) {|a| p a}\n    # outputs below\n    [1, 2, 3]\n    [2, 3, 4]\n    [3, 4, 5]\n    [4, 5, 6]\n    [5, 6, 7]\n    [6, 7, 8]\n    [7, 8, 9]\n    [8, 9, 10]\n"
full_name: Enumerable#enum_cons
is_singleton: false
name: enum_cons
params: |
  each_cons(n) {...}
  each_cons(n)

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Enumerable</tt> mixin provides collection classes with several traversal and searching methods, and with the ability to sort. The class must provide a method <tt>each</tt>, which yields successive members of the collection. If <tt>Enumerable#max</tt>, <tt>#min</tt>, or <tt>#sort</tt> is used, the objects in the collection must also implement a meaningful <tt>&lt;=&gt;</tt> operator, as these methods rely on an ordering between members of the collection.
constants: []

full_name: Enumerable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: all?
- !ruby/object:RI::MethodSummary 
  name: any?
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: count
- !ruby/object:RI::MethodSummary 
  name: cycle
- !ruby/object:RI::MethodSummary 
  name: detect
- !ruby/object:RI::MethodSummary 
  name: drop
- !ruby/object:RI::MethodSummary 
  name: drop_while
- !ruby/object:RI::MethodSummary 
  name: each_cons
- !ruby/object:RI::MethodSummary 
  name: each_slice
- !ruby/object:RI::MethodSummary 
  name: each_with_index
- !ruby/object:RI::MethodSummary 
  name: entries
- !ruby/object:RI::MethodSummary 
  name: enum_cons
- !ruby/object:RI::MethodSummary 
  name: enum_slice
- !ruby/object:RI::MethodSummary 
  name: enum_with_index
- !ruby/object:RI::MethodSummary 
  name: find
- !ruby/object:RI::MethodSummary 
  name: find_all
- !ruby/object:RI::MethodSummary 
  name: find_index
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: grep
- !ruby/object:RI::MethodSummary 
  name: group_by
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: inject
- !ruby/object:RI::MethodSummary 
  name: inject
- !ruby/object:RI::MethodSummary 
  name: map
- !ruby/object:RI::MethodSummary 
  name: max
- !ruby/object:RI::MethodSummary 
  name: max_by
- !ruby/object:RI::MethodSummary 
  name: member?
- !ruby/object:RI::MethodSummary 
  name: min
- !ruby/object:RI::MethodSummary 
  name: min_by
- !ruby/object:RI::MethodSummary 
  name: minmax
- !ruby/object:RI::MethodSummary 
  name: minmax_by
- !ruby/object:RI::MethodSummary 
  name: none?
- !ruby/object:RI::MethodSummary 
  name: one?
- !ruby/object:RI::MethodSummary 
  name: partition
- !ruby/object:RI::MethodSummary 
  name: reduce
- !ruby/object:RI::MethodSummary 
  name: reject
- !ruby/object:RI::MethodSummary 
  name: reverse_each
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: sort
- !ruby/object:RI::MethodSummary 
  name: sort_by
- !ruby/object:RI::MethodSummary 
  name: take
- !ruby/object:RI::MethodSummary 
  name: take_while
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_set
- !ruby/object:RI::MethodSummary 
  name: zip
name: Enumerable
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "call-seq:"
- !ruby/struct:SM::Flow::VERB 
  body: "  e.rewind   =&gt; e\n"
- !ruby/struct:SM::Flow::P 
  body: Rewinds the enumeration sequence by the next method.
constants: []

full_name: StopIteration
includes: []

instance_methods: []

name: StopIteration
superclass: IndexError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if any thread has terminated.
full_name: ThreadsWait#finished?
is_singleton: false
name: finished?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: thread
comment: 
- !ruby/struct:SM::Flow::P 
  body: Waits until all specified threads have terminated. If a block is provided, it is executed for each thread termination.
full_name: ThreadsWait::all_waits
is_singleton: true
name: all_waits
params: (*threads) {|thread| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Specifies the threads that this object will wait for, but does not actually wait.
full_name: ThreadsWait#join_nowait
is_singleton: false
name: join_nowait
params: (*threads)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: th if block_given?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Waits until all of the specified threads are terminated. If a block is supplied for the method, it is executed for each thread termination.
- !ruby/struct:SM::Flow::P 
  body: Raises exceptions in the same manner as <tt>next_wait</tt>.
full_name: ThreadsWait#all_waits
is_singleton: false
name: all_waits
params: () {|th if block_given?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Waits until any of the specified threads has terminated, and returns the one that does.
- !ruby/struct:SM::Flow::P 
  body: If there is no thread to wait, raises <tt>ErrNoWaitingThread</tt>. If <tt>nonblock</tt> is true, and there is no terminated thread, raises <tt>ErrNoFinishedThread</tt>.
full_name: ThreadsWait#next_wait
is_singleton: false
name: next_wait
params: (nonblock = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if there are no threads to be synchronized.
full_name: ThreadsWait#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a ThreadsWait object, specifying the threads to wait on. Non-blocking.
full_name: ThreadsWait::new
is_singleton: true
name: new
params: (*threads)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns the array of threads in the wait queue.
  name: threads
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_waits
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class watches for termination of multiple threads. Basic functionality (wait until specified threads have terminated) can be accessed through the class method ThreadsWait::all_waits. Finer control can be gained using instance methods.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  ThreadsWait.all_wait(thr1, thr2, ...) do |t|\n    STDERR.puts &quot;Thread #{t} has terminated.&quot;\n  end\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RCS_ID
  value: "'-$Id: thwait.rb,v 1.3 1998/06/26 03:19:34 keiju Exp keiju $-'"
full_name: ThreadsWait
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_waits
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: finished?
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: join_nowait
- !ruby/object:RI::MethodSummary 
  name: next_wait
name: ThreadsWait
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Waits for specified threads to terminate, and returns when one of the threads terminated.
full_name: ThreadsWait#join
is_singleton: false
name: join
params: (*threads)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Handles the magic of delegation through __getobj__.
full_name: Delegator#method_missing
is_singleton: false
name: method_missing
params: (m, *args, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Delegator is an abstract class used to build delegator pattern objects from subclasses. Subclasses should redefine __getobj__. For a concrete implementation, see SimpleDelegator.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: IgnoreBacktracePat
  value: "%r\"\\A#{Regexp.quote(__FILE__)}:\\d+:in `\""
full_name: Delegator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __getobj__
- !ruby/object:RI::MethodSummary 
  name: marshal_dump
- !ruby/object:RI::MethodSummary 
  name: marshal_load
- !ruby/object:RI::MethodSummary 
  name: method_missing
- !ruby/object:RI::MethodSummary 
  name: respond_to?
name: Delegator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reinitializes delegation from a serialized object.
full_name: Delegator#marshal_load
is_singleton: false
name: marshal_load
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pass in the <em>obj</em> to delegate method calls to. All methods supported by <em>obj</em> will be delegated to.
full_name: Delegator::new
is_singleton: true
name: new
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Checks for a method provided by this the delegate object by fowarding the call through __getobj__.
full_name: Delegator#respond_to?
is_singleton: false
name: respond_to?
params: (m, include_private = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method must be overridden by subclasses and should return the object method calls are being delegated to.
full_name: Delegator#__getobj__
is_singleton: false
name: __getobj__
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Serialization support for the object returned by __getobj__.
full_name: Delegator#marshal_dump
is_singleton: false
name: marshal_dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Accepts an incoming connection using accept(2) after O_NONBLOCK is set for the underlying file descriptor. It returns an accepted UNIXSocket for the incoming connection.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     serv = UNIXServer.new(&quot;/tmp/sock&quot;)\n     begin\n       sock = serv.accept_nonblock\n     rescue Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::ECONNABORTED, Errno::EPROTO, Errno::EINTR\n       IO.select([serv])\n       retry\n     end\n     # sock is an accepted socket.\n"
- !ruby/struct:SM::Flow::P 
  body: Refer to Socket#accept for the exceptions that may be thrown if the call to UNIXServer#accept_nonblock fails.
- !ruby/struct:SM::Flow::P 
  body: UNIXServer#accept_nonblock may raise any error corresponding to accept(2) failure, including Errno::EAGAIN.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: UNIXServer#accept
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Socket#accept
  type: :BULLET
full_name: UNIXServer#accept_nonblock
is_singleton: false
name: accept_nonblock
params: |
  unixserver.accept_nonblock => unixsocket

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: UNIXServer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept_nonblock
- !ruby/object:RI::MethodSummary 
  name: listen
name: UNIXServer
superclass: UNIXSocket
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Listens for connections, using the specified <tt>int</tt> as the backlog. A call to <em>listen</em> only applies if the <tt>socket</tt> is of type SOCK_STREAM or SOCK_SEQPACKET.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameter
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>backlog</tt> - the maximum length of the queue for pending connections.
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example 1
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     include Socket::Constants\n     socket = Socket.new( AF_INET, SOCK_STREAM, 0 )\n     sockaddr = Socket.pack_sockaddr_in( 2200, 'localhost' )\n     socket.bind( sockaddr )\n     socket.listen( 5 )\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example 2 (listening on an arbitary port, unix-based systems only):"
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     include Socket::Constants\n     socket = Socket.new( AF_INET, SOCK_STREAM, 0 )\n     socket.listen( 1 )\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Unix-based Exceptions
- !ruby/struct:SM::Flow::P 
  body: On unix based systems the above will work because a new <tt>sockaddr</tt> struct is created on the address ADDR_ANY, for an arbitrary port number as handed off by the kernel. It will not work on Windows, because Windows requires that the <tt>socket</tt> is bound by calling <em>bind</em> before it can <em>listen</em>.
- !ruby/struct:SM::Flow::P 
  body: If the <em>backlog</em> amount exceeds the implementation-dependent maximum queue length, the implementation's maximum queue length will be used.
- !ruby/struct:SM::Flow::P 
  body: "On unix-based based systems the following system exceptions may be raised if the call to <em>listen</em> fails:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EBADF - the <em>socket</em> argument is not a valid file descriptor
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EDESTADDRREQ - the <em>socket</em> is not bound to a local address, and the protocol does not support listening on an unbound socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <em>socket</em> is already connected
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOTSOCK - the <em>socket</em> argument does not refer to a socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EOPNOTSUPP - the <em>socket</em> protocol does not support listen
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EACCES - the calling process does not have approriate privileges
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <em>socket</em> has been shut down
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOBUFS - insufficient resources are available in the system to complete the call
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Windows Exceptions
- !ruby/struct:SM::Flow::P 
  body: "On Windows systems the following system exceptions may be raised if the call to <em>listen</em> fails:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENETDOWN - the network is down
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EADDRINUSE - the socket's local address is already in use. This usually occurs during the execution of <em>bind</em> but could be delayed if the call to <em>bind</em> was to a partially wildcard address (involving ADDR_ANY) and if a specific address needs to be commmitted at the time of the call to <em>listen</em>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINPROGRESS - a Windows Sockets 1.1 call is in progress or the service provider is still processing a callback function
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <tt>socket</tt> has not been bound with a call to <em>bind</em>.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EISCONN - the <tt>socket</tt> is already connected
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EMFILE - no more socket descriptors are available
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOBUFS - no buffer space is available
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOTSOC - <tt>socket</tt> is not a socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EOPNOTSUPP - the referenced <tt>socket</tt> is not a type that supports the <em>listen</em> method
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: listen manual pages on unix-based systems
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: listen function in Microsoft's Winsock functions reference
  type: :BULLET
full_name: UNIXServer#listen
is_singleton: false
name: listen
params: |
  socket.listen( int ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLList#add
is_singleton: false
name: add
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLList::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: ACL::ACLList
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: match
name: ACLList
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLList#match
is_singleton: false
name: match
params: (addr)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: "[\"2.0.0\"]"
- !ruby/object:RI::Constant 
  comment: 
  name: DENY_ALLOW
  value: "0"
- !ruby/object:RI::Constant 
  comment: 
  name: ALLOW_DENY
  value: "1"
full_name: ACL
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: allow_addr?
- !ruby/object:RI::MethodSummary 
  name: allow_socket?
- !ruby/object:RI::MethodSummary 
  name: install_list
name: ACL
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL#allow_socket?
is_singleton: false
name: allow_socket?
params: (soc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL#install_list
is_singleton: false
name: install_list
params: (list)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL#allow_addr?
is_singleton: false
name: allow_addr?
params: (addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::new
is_singleton: true
name: new
params: (list=nil, order = DENY_ALLOW)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLEntry#dot_pat_str
is_singleton: false
name: dot_pat_str
params: (str)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: ACL::ACLEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dot_pat
- !ruby/object:RI::MethodSummary 
  name: dot_pat_str
- !ruby/object:RI::MethodSummary 
  name: match
name: ACLEntry
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLEntry#dot_pat
is_singleton: false
name: dot_pat
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLEntry::new
is_singleton: true
name: new
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ACL::ACLEntry#match
is_singleton: false
name: match
params: (addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wakes up all threads waiting for this lock.
full_name: ConditionVariable#broadcast
is_singleton: false
name: broadcast
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wakes up the first thread in line waiting for this lock.
full_name: ConditionVariable#signal
is_singleton: false
name: signal
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new ConditionVariable
full_name: ConditionVariable::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: ConditionVariable objects augment class Mutex. Using condition variables, it is possible to suspend while in the middle of a critical section until a resource becomes available.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'thread'\n\n  mutex = Mutex.new\n  resource = ConditionVariable.new\n\n  a = Thread.new {\n    mutex.synchronize {\n      # Thread 'a' now needs the resource\n      resource.wait(mutex)\n      # 'a' can now have the resource\n    }\n  }\n\n  b = Thread.new {\n    mutex.synchronize {\n      # Thread 'b' has finished using the resource\n      resource.signal\n    }\n  }\n"
constants: []

full_name: ConditionVariable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: broadcast
- !ruby/object:RI::MethodSummary 
  name: signal
- !ruby/object:RI::MethodSummary 
  name: wait
name: ConditionVariable
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Releases the lock held in <tt>mutex</tt> and waits; reacquires the lock on wakeup.
full_name: ConditionVariable#wait
is_singleton: false
name: wait
params: (mutex)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <tt>Integer</tt> equal to <em>int</em> + 1.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.next      #=&gt; 2\n   (-1).next   #=&gt; 0\n"
full_name: Integer#next
is_singleton: false
name: next
params: |
  int.next    => integer
  int.succ    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>int</em> is an odd number.
full_name: Integer#odd?
is_singleton: false
name: odd?
params: |
  int.odd? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <em>lowest common multiple</em> (LCM) of the two arguments (<tt>self</tt> and <tt>other</tt>).
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  6.lcm 7        # -&gt; 42\n  6.lcm 9        # -&gt; 18\n"
full_name: Integer#lcm
is_singleton: false
name: lcm
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#to_i
is_singleton: false
name: to_i
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: from_prime_division
- !ruby/object:RI::MethodSummary 
  name: induced_from
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Integer</tt> is the basis for the two concrete classes that hold whole numbers, <tt>Bignum</tt> and <tt>Fixnum</tt>.
constants: []

full_name: Integer
includes: 
- !ruby/object:RI::IncludedModule 
  name: Precision
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ceil
- !ruby/object:RI::MethodSummary 
  name: chr
- !ruby/object:RI::MethodSummary 
  name: denominator
- !ruby/object:RI::MethodSummary 
  name: denominator
- !ruby/object:RI::MethodSummary 
  name: downto
- !ruby/object:RI::MethodSummary 
  name: even?
- !ruby/object:RI::MethodSummary 
  name: floor
- !ruby/object:RI::MethodSummary 
  name: gcd
- !ruby/object:RI::MethodSummary 
  name: gcd
- !ruby/object:RI::MethodSummary 
  name: gcd2
- !ruby/object:RI::MethodSummary 
  name: gcdlcm
- !ruby/object:RI::MethodSummary 
  name: integer?
- !ruby/object:RI::MethodSummary 
  name: lcm
- !ruby/object:RI::MethodSummary 
  name: lcm
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: numerator
- !ruby/object:RI::MethodSummary 
  name: numerator
- !ruby/object:RI::MethodSummary 
  name: odd?
- !ruby/object:RI::MethodSummary 
  name: ord
- !ruby/object:RI::MethodSummary 
  name: pred
- !ruby/object:RI::MethodSummary 
  name: prime_division
- !ruby/object:RI::MethodSummary 
  name: round
- !ruby/object:RI::MethodSummary 
  name: succ
- !ruby/object:RI::MethodSummary 
  name: times
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_int
- !ruby/object:RI::MethodSummary 
  name: to_r
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: upto
name: Integer
superclass: Numeric
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <em>greatest common denominator</em> of the two numbers (<tt>self</tt> and <tt>n</tt>).
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  72.gcd 168           # -&gt; 24\n  19.gcd 36            # -&gt; 1\n"
- !ruby/struct:SM::Flow::P 
  body: The result is positive, no matter the sign of the arguments.
full_name: Integer#gcd
is_singleton: false
name: gcd
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer::from_prime_division
is_singleton: true
name: from_prime_division
params: (pd)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates block <em>int</em> times, passing in values from zero to <em>int</em> - 1.
- !ruby/struct:SM::Flow::VERB 
  body: "   5.times do |i|\n     print i, &quot; &quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   0 1 2 3 4\n"
full_name: Integer#times
is_singleton: false
name: times
params: |
  int.times {|i| block }     => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates <em>block</em>, passing in integer values from <em>int</em> up to and including <em>limit</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   5.upto(10) { |i| print i, &quot; &quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   5 6 7 8 9 10\n"
full_name: Integer#upto
is_singleton: false
name: upto
params: |
  int.upto(limit) {|i| block }     => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a Rational representation of this integer.
full_name: Integer#to_r
is_singleton: false
name: to_r
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <tt>Integer</tt> equal to <em>int</em> + 1.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.next      #=&gt; 2\n   (-1).next   #=&gt; 0\n"
full_name: Integer#succ
is_singleton: false
name: succ
params: |
  int.next    => integer
  int.succ    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns <tt>true</tt>.
full_name: Integer#integer?
is_singleton: false
name: integer?
params: |
  int.integer? -> true

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer#prime_division
is_singleton: false
name: prime_division
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates <em>block</em>, passing decreasing values from <em>int</em> down to and including <em>limit</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   5.downto(1) { |n| print n, &quot;.. &quot; }\n   print &quot;  Liftoff!\\n&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   5.. 4.. 3.. 2.. 1..   Liftoff!\n"
full_name: Integer#downto
is_singleton: false
name: downto
params: |
  int.downto(limit) {|i| block }     => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the GCD <em>and</em> the LCM (see #gcd and #lcm) of the two arguments (<tt>self</tt> and <tt>other</tt>). This is more efficient than calculating them separately."
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  6.gcdlcm 9     # -&gt; [3, 18]\n"
full_name: Integer#gcdlcm
is_singleton: false
name: gcdlcm
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the ASCII character represented by the receiver's value.
- !ruby/struct:SM::Flow::VERB 
  body: "   65.chr    #=&gt; &quot;A&quot;\n   ?a.chr    #=&gt; &quot;a&quot;\n   230.chr   #=&gt; &quot;\\346&quot;\n"
full_name: Integer#chr
is_singleton: false
name: chr
params: |
  int.chr    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <tt>Integer</tt> equal to <em>int</em> - 1.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.pred      #=&gt; 0\n   (-1).pred   #=&gt; -2\n"
full_name: Integer#pred
is_singleton: false
name: pred
params: |
  int.pred    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#to_int
is_singleton: false
name: to_int
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer#numerator
is_singleton: false
name: numerator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#ceil
is_singleton: false
name: ceil
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#truncate
is_singleton: false
name: truncate
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the int itself.
- !ruby/struct:SM::Flow::VERB 
  body: "   ?a.ord    #=&gt; 97\n"
- !ruby/struct:SM::Flow::P 
  body: This method is intended for compatibility to character constant in Ruby 1.9. For example, ?a.ord returns 97 both in 1.8 and 1.9.
full_name: Integer#ord
is_singleton: false
name: ord
params: |
  int.ord    => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer#denominator
is_singleton: false
name: denominator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>int</em> is an even number.
full_name: Integer#even?
is_singleton: false
name: even?
params: |
  int.even? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#floor
is_singleton: false
name: floor
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Integer#gcd2
is_singleton: false
name: gcd2
params: (int)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <em>int</em> is already an <tt>Integer</tt>, all these methods simply return the receiver.
full_name: Integer#round
is_singleton: false
name: round
params: |
  int.to_i      => int
  int.to_int    => int
  int.floor     => int
  int.ceil      => int
  int.round     => int
  int.truncate  => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert <tt>obj</tt> to an Integer.
full_name: Integer::induced_from
is_singleton: true
name: induced_from
params: |
  Integer.induced_from(obj)    =>  fixnum, bignum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: nodes
comment: 
- !ruby/struct:SM::Flow::P 
  body: "The iterator version of the #strongly_connected_components method. <tt><em>obj</em>.each_strongly_connected_component</tt> is similar to <tt><em>obj</em>.strongly_connected_components.each</tt>, but modification of <em>obj</em> during the iteration may lead to unexpected results."
- !ruby/struct:SM::Flow::P 
  body: "#each_strongly_connected_component returns <tt>nil</tt>."
full_name: TSort#each_strongly_connected_component
is_singleton: false
name: each_strongly_connected_component
params: ( {|nodes| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: nodes
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over strongly connected component in the subgraph reachable from <em>node</em>.
- !ruby/struct:SM::Flow::P 
  body: Return value is unspecified.
- !ruby/struct:SM::Flow::P 
  body: "#each_strongly_connected_component_from doesn't call #tsort_each_node."
full_name: TSort#each_strongly_connected_component_from
is_singleton: false
name: each_strongly_connected_component_from
params: (node, id_map={}, stack=[]) {|nodes| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: TSort implements topological sorting using Tarjan's algorithm for strongly connected components.
- !ruby/struct:SM::Flow::P 
  body: TSort is designed to be able to be used with any object which can be interpreted as a directed graph.
- !ruby/struct:SM::Flow::P 
  body: TSort requires two methods to interpret an object as a graph, tsort_each_node and tsort_each_child.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: tsort_each_node is used to iterate for all nodes over a graph.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: tsort_each_child is used to iterate for child nodes of a given node.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: The equality of nodes are defined by eql? and hash since TSort uses Hash internally.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: A Simple Example
- !ruby/struct:SM::Flow::P 
  body: "The following example demonstrates how to mix the TSort module into an existing class (in this case, Hash). Here, we're treating each key in the hash as a node in the graph, and so we simply alias the required #tsort_each_node method to Hash's #each_key method. For each key in the hash, the associated value is an array of the node's child nodes. This choice in turn leads to our implementation of the required #tsort_each_child method, which fetches the array of child nodes and then iterates over that array using the user-supplied block."
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'tsort'\n\n  class Hash\n    include TSort\n    alias tsort_each_node each_key\n    def tsort_each_child(node, &amp;block)\n      fetch(node).each(&amp;block)\n    end\n  end\n\n  {1=&gt;[2, 3], 2=&gt;[3], 3=&gt;[], 4=&gt;[]}.tsort\n  #=&gt; [3, 2, 1, 4]\n\n  {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}.strongly_connected_components\n  #=&gt; [[4], [2, 3], [1]]\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: A More Realistic Example
- !ruby/struct:SM::Flow::P 
  body: "A very simple `make' like tool can be implemented as follows:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'tsort'\n\n  class Make\n    def initialize\n      @dep = {}\n      @dep.default = []\n    end\n\n    def rule(outputs, inputs=[], &amp;block)\n      triple = [outputs, inputs, block]\n      outputs.each {|f| @dep[f] = [triple]}\n      @dep[triple] = inputs\n    end\n\n    def build(target)\n      each_strongly_connected_component_from(target) {|ns|\n        if ns.length != 1\n          fs = ns.delete_if {|n| Array === n}\n          raise TSort::Cyclic.new(&quot;cyclic dependencies: #{fs.join ', '}&quot;)\n        end\n        n = ns.first\n        if Array === n\n          outputs, inputs, block = n\n          inputs_time = inputs.map {|f| File.mtime f}.max\n          begin\n            outputs_time = outputs.map {|f| File.mtime f}.min\n          rescue Errno::ENOENT\n            outputs_time = nil\n          end\n          if outputs_time == nil ||\n             inputs_time != nil &amp;&amp; outputs_time &lt;= inputs_time\n            sleep 1 if inputs_time != nil &amp;&amp; inputs_time.to_i == Time.now.to_i\n            block.call\n          end\n        end\n      }\n    end\n\n    def tsort_each_child(node, &amp;block)\n      @dep[node].each(&amp;block)\n    end\n    include TSort\n  end\n\n  def command(arg)\n    print arg, &quot;\\n&quot;\n    system arg\n  end\n\n  m = Make.new\n  m.rule(%w[t1]) { command 'date &gt; t1' }\n  m.rule(%w[t2]) { command 'date &gt; t2' }\n  m.rule(%w[t3]) { command 'date &gt; t3' }\n  m.rule(%w[t4], %w[t1 t3]) { command 'cat t1 t3 &gt; t4' }\n  m.rule(%w[t5], %w[t4 t2]) { command 'cat t4 t2 &gt; t5' }\n  m.build('t5')\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Bugs
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "'tsort.rb' is wrong name because this library uses Tarjan's algorithm for strongly connected components. Although 'strongly_connected_components.rb' is correct but too long."
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 2
  text: References
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: R.
    body: E. Tarjan, &quot;Depth First Search and Linear Graph Algorithms&quot;,
  type: :UPPERALPHA
- !ruby/struct:SM::Flow::P 
  body: <em>SIAM Journal on Computing</em>, Vol. 1, No. 2, pp. 146-160, June 1972.
constants: []

full_name: TSort
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_strongly_connected_component
- !ruby/object:RI::MethodSummary 
  name: each_strongly_connected_component_from
- !ruby/object:RI::MethodSummary 
  name: strongly_connected_components
- !ruby/object:RI::MethodSummary 
  name: tsort
- !ruby/object:RI::MethodSummary 
  name: tsort_each
- !ruby/object:RI::MethodSummary 
  name: tsort_each_child
- !ruby/object:RI::MethodSummary 
  name: tsort_each_node
name: TSort
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: 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.
full_name: TSort#strongly_connected_components
is_singleton: false
name: strongly_connected_components
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: node
comment: 
- !ruby/struct:SM::Flow::P 
  body: Should be implemented by a extended class.
- !ruby/struct:SM::Flow::P 
  body: "#tsort_each_node is used to iterate for all nodes over a graph."
full_name: TSort#tsort_each_node
is_singleton: false
name: tsort_each_node
params: ( {|node| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: node
comment: 
- !ruby/struct:SM::Flow::P 
  body: "The iterator version of the #tsort method. <tt><em>obj</em>.tsort_each</tt> is similar to <tt><em>obj</em>.tsort.each</tt>, but modification of <em>obj</em> during the iteration may lead to unexpected results."
- !ruby/struct:SM::Flow::P 
  body: "#tsort_each returns <tt>nil</tt>. If there is a cycle, TSort::Cyclic is raised."
full_name: TSort#tsort_each
is_singleton: false
name: tsort_each
params: ( {|node| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: TSort::Cyclic
includes: []

instance_methods: []

name: Cyclic
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: child
comment: 
- !ruby/struct:SM::Flow::P 
  body: Should be implemented by a extended class.
- !ruby/struct:SM::Flow::P 
  body: "#tsort_each_child is used to iterate for child nodes of <em>node</em>."
full_name: TSort#tsort_each_child
is_singleton: false
name: tsort_each_child
params: (node) {|child| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a topologically sorted array of nodes. The array is sorted from children to parents, i.e. the first element has no child and the last node has no parent.
- !ruby/struct:SM::Flow::P 
  body: If there is a cycle, TSort::Cyclic is raised.
full_name: TSort#tsort
is_singleton: false
name: tsort
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate the html as normal, then wrap it in a help project
full_name: Generators::CHMGenerator#generate
is_singleton: false
name: generate
params: (info)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invoke the windows help compiler to compiler the project
full_name: Generators::CHMGenerator#compile_project
is_singleton: false
name: compile_project
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::CHMGenerator::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The project contains the project file, a table of contents and an index
full_name: Generators::CHMGenerator#create_help_project
is_singleton: false
name: create_help_project
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::CHMGenerator#check_for_html_help_workshop
is_singleton: false
name: check_for_html_help_workshop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The project file links together all the various files that go to make up the help.
full_name: Generators::CHMGenerator#create_project_file
is_singleton: false
name: create_project_file
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: HHC_PATH
  value: "\"c:/Program Files/HTML Help Workshop/hhc.exe\""
full_name: Generators::CHMGenerator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_for_html_help_workshop
- !ruby/object:RI::MethodSummary 
  name: compile_project
- !ruby/object:RI::MethodSummary 
  name: create_contents_and_index
- !ruby/object:RI::MethodSummary 
  name: create_help_project
- !ruby/object:RI::MethodSummary 
  name: create_project_file
- !ruby/object:RI::MethodSummary 
  name: generate
name: CHMGenerator
superclass: HTMLGenerator
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The contents is a list of all files and modules. For each we include as sub-entries the list of methods they contain. As we build the contents we also build an index file
full_name: Generators::CHMGenerator#create_contents_and_index
is_singleton: false
name: create_contents_and_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Standard generator factory
full_name: Generators::CHMGenerator::for
is_singleton: true
name: for
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#value_hash
is_singleton: false
name: value_hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#parent_name
is_singleton: false
name: parent_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#class_attribute_values
is_singleton: false
name: class_attribute_values
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: path
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wrap a ClassModule context
constants: []

full_name: Generators::HtmlClass
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: build_attribute_list
- !ruby/object:RI::MethodSummary 
  name: class_attribute_values
- !ruby/object:RI::MethodSummary 
  name: http_url
- !ruby/object:RI::MethodSummary 
  name: index_name
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: parent_name
- !ruby/object:RI::MethodSummary 
  name: value_hash
- !ruby/object:RI::MethodSummary 
  name: write_on
name: HtmlClass
superclass: ContextUser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#write_on
is_singleton: false
name: write_on
params: (f)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass::new
is_singleton: true
name: new
params: (context, html_file, prefix, options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#build_attribute_list
is_singleton: false
name: build_attribute_list
params: (section)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlClass#index_name
is_singleton: false
name: index_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the relative file name to store this class in, which is also its url
full_name: Generators::HtmlClass#http_url
is_singleton: false
name: http_url
params: (full_name, prefix)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#gen_an_index
is_singleton: false
name: gen_an_index
params: (collection, title)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: []

constants: []

full_name: Generators::HTMLGeneratorInOne
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: build_class_list
- !ruby/object:RI::MethodSummary 
  name: build_indices
- !ruby/object:RI::MethodSummary 
  name: gen_an_index
- !ruby/object:RI::MethodSummary 
  name: gen_class_index
- !ruby/object:RI::MethodSummary 
  name: gen_file_index
- !ruby/object:RI::MethodSummary 
  name: gen_into
- !ruby/object:RI::MethodSummary 
  name: gen_method_index
- !ruby/object:RI::MethodSummary 
  name: generate
- !ruby/object:RI::MethodSummary 
  name: generate_xml
name: HTMLGeneratorInOne
superclass: HTMLGenerator
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
full_name: Generators::HTMLGeneratorInOne#generate
is_singleton: false
name: generate
params: (info)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Generate:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlFile objects for each TopLevel object.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlClass objects for each first level class or module in the TopLevel objects
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a complete list of all hyperlinkable terms (file, class, module, and method names)
  type: :BULLET
full_name: Generators::HTMLGeneratorInOne#build_indices
is_singleton: false
name: build_indices
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#build_class_list
is_singleton: false
name: build_class_list
params: (from, html_file, class_dir)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#gen_into
is_singleton: false
name: gen_into
params: (list)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#gen_class_index
is_singleton: false
name: gen_class_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#gen_method_index
is_singleton: false
name: gen_method_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGeneratorInOne#gen_file_index
is_singleton: false
name: gen_file_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate all the HTML. For the one-file case, we generate all the information in to one big hash
full_name: Generators::HTMLGeneratorInOne#generate_xml
is_singleton: false
name: generate_xml
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: keys
- !ruby/object:RI::MethodSummary 
  name: reset
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Build a hash of all items that can be cross-referenced. This is used when we output required and included names: if the names appear in this hash, we can generate an html cross reference to the appropriate description. We also use this when parsing comment blocks: any decorated words matching an entry in this list are hyperlinked."
constants: []

full_name: Generators::AllReferences
includes: []

instance_methods: []

name: AllReferences
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::AllReferences::keys
is_singleton: true
name: keys
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::AllReferences::reset
is_singleton: true
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::AllReferences::[]
is_singleton: true
name: "[]"
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::AllReferences::add
is_singleton: true
name: add
params: (name, html_class)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given a sequence of source tokens, mark up the source code to make it look purty.
full_name: Generators::HtmlMethod#markup_code
is_singleton: false
name: markup_code
params: (tokens)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#parent_name
is_singleton: false
name: parent_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod::all_methods
is_singleton: true
name: all_methods
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return a reference to outselves to be used as an href= the form depends on whether we're all in one file or in multiple files
full_name: Generators::HtmlMethod#as_href
is_singleton: false
name: as_href
params: (from_path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#call_seq
is_singleton: false
name: call_seq
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#document_self
is_singleton: false
name: document_self
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: context
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: img_url
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: source_code
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: src_url
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_methods
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: reset
comment: []

constants: []

full_name: Generators::HtmlMethod
includes: 
- !ruby/object:RI::IncludedModule 
  name: MarkUp
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: add_line_numbers
- !ruby/object:RI::MethodSummary 
  name: aliases
- !ruby/object:RI::MethodSummary 
  name: aref
- !ruby/object:RI::MethodSummary 
  name: as_href
- !ruby/object:RI::MethodSummary 
  name: call_seq
- !ruby/object:RI::MethodSummary 
  name: create_source_code_file
- !ruby/object:RI::MethodSummary 
  name: description
- !ruby/object:RI::MethodSummary 
  name: document_self
- !ruby/object:RI::MethodSummary 
  name: find_symbol
- !ruby/object:RI::MethodSummary 
  name: index_name
- !ruby/object:RI::MethodSummary 
  name: markup_code
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: params
- !ruby/object:RI::MethodSummary 
  name: parent_name
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: section
- !ruby/object:RI::MethodSummary 
  name: singleton
- !ruby/object:RI::MethodSummary 
  name: visibility
name: HtmlMethod
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#path
is_singleton: false
name: path
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#visibility
is_singleton: false
name: visibility
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#find_symbol
is_singleton: false
name: find_symbol
params: (symbol, method=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#params
is_singleton: false
name: params
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#aref
is_singleton: false
name: aref
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod::reset
is_singleton: true
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod::new
is_singleton: true
name: new
params: (context, html_class, options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#singleton
is_singleton: false
name: singleton
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: we rely on the fact that the first line of a source code listing has
- !ruby/struct:SM::Flow::VERB 
  body: "   # File xxxxx, line dddd\n"
full_name: Generators::HtmlMethod#add_line_numbers
is_singleton: false
name: add_line_numbers
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#aliases
is_singleton: false
name: aliases
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#index_name
is_singleton: false
name: index_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#section
is_singleton: false
name: section
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#description
is_singleton: false
name: description
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlMethod#create_source_code_file
is_singleton: false
name: create_source_code_file
params: (code_body)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Name of sub-direcories that hold file and class/module descriptions
  name: FILE_DIR
  value: "\"files\""
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_DIR
  value: "\"classes\""
- !ruby/object:RI::Constant 
  comment: 
  name: CSS_NAME
  value: "\"rdoc-style.css\""
full_name: Generators
includes: []

instance_methods: []

name: Generators
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a list of HtmlMethod objects for each method in the corresponding context object. If the @options.show_all variable is set (corresponding to the <tt>--all</tt> option, we include all methods, otherwise just the public ones.
full_name: Generators::ContextUser#collect_methods
is_singleton: false
name: collect_methods
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build a summary list of all the methods in this context
full_name: Generators::ContextUser#build_method_summary_list
is_singleton: false
name: build_method_summary_list
params: (path_prefix="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (i.name)
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Build a list from an array of <em>Htmlxxx</em> items. Look up each in the AllReferences hash: if we find a corresponding entry, we generate a hyperlink to it, otherwise just output the name. However, some names potentially need massaging. For example, you may require a Ruby file without the .rb extension, but the file names we know about may have it. To deal with this, we pass in a block which performs the massaging, returning an array of alternative names to match"
full_name: Generators::ContextUser#potentially_referenced_list
is_singleton: false
name: potentially_referenced_list
params: (array) {|i.name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return a reference to outselves to be used as an href= the form depends on whether we're all in one file or in multiple files
full_name: Generators::ContextUser#as_href
is_singleton: false
name: as_href
params: (from_path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#diagram_reference
is_singleton: false
name: diagram_reference
params: (diagram)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#build_requires_list
is_singleton: false
name: build_requires_list
params: (context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#document_self
is_singleton: false
name: document_self
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build the structured list of classes and modules contained in this context.
full_name: Generators::ContextUser#build_class_list
is_singleton: false
name: build_class_list
params: (level, from, section, infile=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#aref_to
is_singleton: false
name: aref_to
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a symbol in ourselves or our parent
full_name: Generators::ContextUser#find_symbol
is_singleton: false
name: find_symbol
params: (symbol, method=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser::new
is_singleton: true
name: new
params: (context, options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build an array of arrays of method details. The outer array has up to six entries, public, private, and protected for both class methods, the other for instance methods. The inner arrays contain a hash for each method
full_name: Generators::ContextUser#build_method_detail_list
is_singleton: false
name: build_method_detail_list
params: (section)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: context
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A Context is built by the parser to represent a container: contexts hold classes, modules, methods, require lists and include lists. ClassModule and TopLevel are the context objects we process here"
constants: []

full_name: Generators::ContextUser
includes: 
- !ruby/object:RI::IncludedModule 
  name: MarkUp
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_table_of_sections
- !ruby/object:RI::MethodSummary 
  name: aref_to
- !ruby/object:RI::MethodSummary 
  name: as_href
- !ruby/object:RI::MethodSummary 
  name: build_alias_summary_list
- !ruby/object:RI::MethodSummary 
  name: build_class_list
- !ruby/object:RI::MethodSummary 
  name: build_constants_summary_list
- !ruby/object:RI::MethodSummary 
  name: build_include_list
- !ruby/object:RI::MethodSummary 
  name: build_method_detail_list
- !ruby/object:RI::MethodSummary 
  name: build_method_summary_list
- !ruby/object:RI::MethodSummary 
  name: build_requires_list
- !ruby/object:RI::MethodSummary 
  name: collect_methods
- !ruby/object:RI::MethodSummary 
  name: diagram_reference
- !ruby/object:RI::MethodSummary 
  name: document_self
- !ruby/object:RI::MethodSummary 
  name: find_symbol
- !ruby/object:RI::MethodSummary 
  name: href
- !ruby/object:RI::MethodSummary 
  name: potentially_referenced_list
- !ruby/object:RI::MethodSummary 
  name: url
name: ContextUser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#build_include_list
is_singleton: false
name: build_include_list
params: (context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: convenience method to build a hyperlink
full_name: Generators::ContextUser#href
is_singleton: false
name: href
params: (link, cls, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::ContextUser#url
is_singleton: false
name: url
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: create table of contents if we contain sections
full_name: Generators::ContextUser#add_table_of_sections
is_singleton: false
name: add_table_of_sections
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build a list of aliases for which we couldn't find a corresponding method
full_name: Generators::ContextUser#build_alias_summary_list
is_singleton: false
name: build_alias_summary_list
params: (section)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build a list of constants
full_name: Generators::ContextUser#build_constants_summary_list
is_singleton: false
name: build_constants_summary_list
params: (section)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: We need to record the html path of our caller so we can generate correct relative paths for any hyperlinks that we find
full_name: Generators::HyperlinkHtml::new
is_singleton: true
name: new
params: (from_path, context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "And we're invoked with a potential external hyperlink mailto: just gets inserted. http: links are checked to see if they reference an image. If so, that image gets inserted using an &lt;img&gt; tag. Otherwise a conventional &lt;a href&gt; is used. We also support a special type of hyperlink, link:, which is a reference to a local file whose path is relative to the --op directory."
full_name: Generators::HyperlinkHtml#handle_special_HYPERLINK
is_singleton: false
name: handle_special_HYPERLINK
params: (special)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Generate a hyperlink for url, labeled with text. Handle the special cases for img: and link: described under handle_special_HYPEDLINK"
full_name: Generators::HyperlinkHtml#gen_url
is_singleton: false
name: gen_url
params: (url, text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: HEre's a hypedlink where the label is different to the URL
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;label&gt;[url]\n"
full_name: Generators::HyperlinkHtml#handle_special_TIDYLINK
is_singleton: false
name: handle_special_TIDYLINK
params: (special)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Subclass of the SM::ToHtml class that supports looking up words in the AllReferences list. Those that are found (like AllReferences in this comment) will be hyperlinked
constants: []

full_name: Generators::HyperlinkHtml
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: gen_url
- !ruby/object:RI::MethodSummary 
  name: handle_special_CROSSREF
- !ruby/object:RI::MethodSummary 
  name: handle_special_HYPERLINK
- !ruby/object:RI::MethodSummary 
  name: handle_special_TIDYLINK
name: HyperlinkHtml
superclass: SM::ToHtml
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "We're invoked when any text matches the CROSSREF pattern (defined in MarkUp). If we fine the corresponding reference, generate a hyperlink. If the name we're looking for contains no punctuation, we look for it up the module/class chain. For example, HyperlinkHtml is found, even without the Generators:: prefix, because we look for it in module Generators first."
full_name: Generators::HyperlinkHtml#handle_special_CROSSREF
is_singleton: false
name: handle_special_CROSSREF
params: (special)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build a webcvs URL with the given 'url' argument. URLs with a '%s' in them get the file's path sprintfed into them; otherwise they're just catenated together.
full_name: Generators::MarkUp#cvs_url
is_singleton: false
name: cvs_url
params: (url, full_path)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Handle common markup tasks for the various Html classes
constants: []

full_name: Generators::MarkUp
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: cvs_url
- !ruby/object:RI::MethodSummary 
  name: markup
- !ruby/object:RI::MethodSummary 
  name: style_url
name: MarkUp
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a string in markup format into HTML. We keep a cached SimpleMarkup object lying around after the first time we're called per object.
full_name: Generators::MarkUp#markup
is_singleton: false
name: markup
params: (str, remove_para=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Qualify a stylesheet URL; if if <tt>css_name</tt> does not begin with '/' or 'http[s]://', prepend a prefix relative to <tt>path</tt>. Otherwise, return it unmodified.
full_name: Generators::MarkUp#style_url
is_singleton: false
name: style_url
params: (path, css_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#gen_an_index
is_singleton: false
name: gen_an_index
params: (collection, title)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
full_name: Generators::XMLGenerator#generate
is_singleton: false
name: generate
params: (info)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Generate:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlFile objects for each TopLevel object.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlClass objects for each first level class or module in the TopLevel objects
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a complete list of all hyperlinkable terms (file, class, module, and method names)
  type: :BULLET
full_name: Generators::XMLGenerator#build_indices
is_singleton: false
name: build_indices
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#build_class_list
is_singleton: false
name: build_class_list
params: (from, html_file, class_dir)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate XML output as one big file
constants: []

full_name: Generators::XMLGenerator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: build_class_list
- !ruby/object:RI::MethodSummary 
  name: build_indices
- !ruby/object:RI::MethodSummary 
  name: gen_an_index
- !ruby/object:RI::MethodSummary 
  name: gen_class_index
- !ruby/object:RI::MethodSummary 
  name: gen_file_index
- !ruby/object:RI::MethodSummary 
  name: gen_into
- !ruby/object:RI::MethodSummary 
  name: gen_method_index
- !ruby/object:RI::MethodSummary 
  name: generate
- !ruby/object:RI::MethodSummary 
  name: generate_xml
name: XMLGenerator
superclass: HTMLGenerator
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#gen_into
is_singleton: false
name: gen_into
params: (list)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#gen_class_index
is_singleton: false
name: gen_class_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#gen_method_index
is_singleton: false
name: gen_method_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::XMLGenerator#gen_file_index
is_singleton: false
name: gen_file_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate all the HTML. For the one-file case, we generate all the information in to one big hash
full_name: Generators::XMLGenerator#generate_xml
is_singleton: false
name: generate_xml
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Standard generator factory
full_name: Generators::XMLGenerator::for
is_singleton: true
name: for
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::RIGenerator#process_class
is_singleton: false
name: process_class
params: (from_class)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
full_name: Generators::RIGenerator#generate
is_singleton: false
name: generate
params: (toplevels)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::RIGenerator#generate_class_info
is_singleton: false
name: generate_class_info
params: (cls)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::RIGenerator#params_of
is_singleton: false
name: params_of
params: (method)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up a new HTML generator. Basically all we do here is load up the correct output temlate
full_name: Generators::RIGenerator::new
is_singleton: true
name: new
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::RIGenerator#generate_method_info
is_singleton: false
name: generate_method_info
params: (cls_desc, method)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Generators::RIGenerator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: generate
- !ruby/object:RI::MethodSummary 
  name: generate_class_info
- !ruby/object:RI::MethodSummary 
  name: generate_method_info
- !ruby/object:RI::MethodSummary 
  name: markup
- !ruby/object:RI::MethodSummary 
  name: method_list
- !ruby/object:RI::MethodSummary 
  name: params_of
- !ruby/object:RI::MethodSummary 
  name: process_class
- !ruby/object:RI::MethodSummary 
  name: update_or_replace
name: RIGenerator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::RIGenerator#markup
is_singleton: false
name: markup
params: (comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: By default we replace existing classes with the same name. If the --merge option was given, we instead merge this definition into an existing class. We add our methods, aliases, etc to that class, but do not change the class's description.
full_name: Generators::RIGenerator#update_or_replace
is_singleton: false
name: update_or_replace
params: (cls_desc)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generators may need to return specific subclasses depending on the options they are passed. Because of this we create them using a factory
full_name: Generators::RIGenerator::for
is_singleton: true
name: for
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return a list of class and instance methods that we'll be documenting
full_name: Generators::RIGenerator#method_list
is_singleton: false
name: method_list
params: (cls)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#gen_an_index
is_singleton: false
name: gen_an_index
params: (collection, title, template, filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate all the HTML
full_name: Generators::HTMLGenerator#generate_html
is_singleton: false
name: generate_html
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: gen_url
- !ruby/object:RI::MethodSummary 
  name: new
comment: []

constants: []

full_name: Generators::HTMLGenerator
includes: 
- !ruby/object:RI::IncludedModule 
  name: MarkUp
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: build_class_list
- !ruby/object:RI::MethodSummary 
  name: build_indices
- !ruby/object:RI::MethodSummary 
  name: gen_an_index
- !ruby/object:RI::MethodSummary 
  name: gen_class_index
- !ruby/object:RI::MethodSummary 
  name: gen_file_index
- !ruby/object:RI::MethodSummary 
  name: gen_into
- !ruby/object:RI::MethodSummary 
  name: gen_main_index
- !ruby/object:RI::MethodSummary 
  name: gen_method_index
- !ruby/object:RI::MethodSummary 
  name: gen_sub_directories
- !ruby/object:RI::MethodSummary 
  name: generate
- !ruby/object:RI::MethodSummary 
  name: generate_html
- !ruby/object:RI::MethodSummary 
  name: load_html_template
- !ruby/object:RI::MethodSummary 
  name: main_url
- !ruby/object:RI::MethodSummary 
  name: write_style_sheet
name: HTMLGenerator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
full_name: Generators::HTMLGenerator#generate
is_singleton: false
name: generate
params: (toplevels)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Generate:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlFile objects for each TopLevel object.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a list of HtmlClass objects for each first level class or module in the TopLevel objects
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: a complete list of all hyperlinkable terms (file, class, module, and method names)
  type: :BULLET
full_name: Generators::HTMLGenerator#build_indices
is_singleton: false
name: build_indices
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#build_class_list
is_singleton: false
name: build_class_list
params: (from, html_file, class_dir)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See the comments at the top for a description of the directory structure
full_name: Generators::HTMLGenerator#gen_sub_directories
is_singleton: false
name: gen_sub_directories
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#gen_into
is_singleton: false
name: gen_into
params: (list)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up a new HTML generator. Basically all we do here is load up the correct output temlate
full_name: Generators::HTMLGenerator::new
is_singleton: true
name: new
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: convert a target url to one that is relative to a given path
full_name: Generators::HTMLGenerator::gen_url
is_singleton: true
name: gen_url
params: (path, target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Load up the HTML template specified in the options. If the template name contains a slash, use it literally
full_name: Generators::HTMLGenerator#load_html_template
is_singleton: false
name: load_html_template
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write out the style sheet used by the main frames
full_name: Generators::HTMLGenerator#write_style_sheet
is_singleton: false
name: write_style_sheet
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The main index page is mostly a template frameset, but includes the initial page. If the <tt>--main</tt> option was given, we use this as our main page, otherwise we use the first file specified on the command line.
full_name: Generators::HTMLGenerator#gen_main_index
is_singleton: false
name: gen_main_index
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#gen_class_index
is_singleton: false
name: gen_class_index
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#gen_method_index
is_singleton: false
name: gen_method_index
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the url of the main page
full_name: Generators::HTMLGenerator#main_url
is_singleton: false
name: main_url
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HTMLGenerator#gen_file_index
is_singleton: false
name: gen_file_index
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generators may need to return specific subclasses depending on the options they are passed. Because of this we create them using a factory
full_name: Generators::HTMLGenerator::for
is_singleton: true
name: for
params: (options)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: path
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Handles the mapping of a file's information to HTML. In reality, a file corresponds to a <tt>TopLevel</tt> object, containing modules, classes, and top-level methods. In theory it <em>could</em> contain attributes and aliases, but we ignore these for now.
constants: []

full_name: Generators::HtmlFile
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: file_attribute_values
- !ruby/object:RI::MethodSummary 
  name: filename_to_label
- !ruby/object:RI::MethodSummary 
  name: http_url
- !ruby/object:RI::MethodSummary 
  name: index_name
- !ruby/object:RI::MethodSummary 
  name: parent_name
- !ruby/object:RI::MethodSummary 
  name: value_hash
- !ruby/object:RI::MethodSummary 
  name: write_on
name: HtmlFile
superclass: ContextUser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#value_hash
is_singleton: false
name: value_hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#parent_name
is_singleton: false
name: parent_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#file_attribute_values
is_singleton: false
name: file_attribute_values
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#write_on
is_singleton: false
name: write_on
params: (f)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile::new
is_singleton: true
name: new
params: (context, options, file_dir)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#filename_to_label
is_singleton: false
name: filename_to_label
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#index_name
is_singleton: false
name: index_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Generators::HtmlFile#http_url
is_singleton: false
name: http_url
params: (file_dir)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: extract
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: regexp
- !ruby/object:RI::MethodSummary 
  name: split
comment: 
- !ruby/struct:SM::Flow::P 
  body: URI support for Ruby
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Author:"
    body: Akira Yamada &lt;akira@ruby-lang.org&gt;
  - !ruby/struct:SM::Flow::LI 
    label: "Documentation:"
    body: Akira Yamada &lt;akira@ruby-lang.org&gt;, Dmitry V. Sabanin &lt;sdmitry@lrn.ru&gt;
  - !ruby/struct:SM::Flow::LI 
    label: "License:"
    body: Copyright (c) 2001 akira yamada &lt;akira@ruby-lang.org&gt; You can redistribute it and/or modify it under the same term as Ruby.
  - !ruby/struct:SM::Flow::LI 
    label: "Revision:"
    body: "$Id: uri.rb 16038 2008-04-15 09:41:47Z kazu $"
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: See URI for documentation
constants: []

full_name: URI
includes: 
- !ruby/object:RI::IncludedModule 
  name: REGEXP
instance_methods: []

name: URI
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI::split(uri)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+uri+:"
    body: String with URI.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: "Splits the string on following parts and returns array with result:"
- !ruby/struct:SM::Flow::VERB 
  body: "  * Scheme\n  * Userinfo\n  * Host\n  * Port\n  * Registry\n  * Path\n  * Opaque\n  * Query\n  * Fragment\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  p URI.split(&quot;http://www.ruby-lang.org/&quot;)\n  # =&gt; [&quot;http&quot;, nil, &quot;www.ruby-lang.org&quot;, nil, nil, &quot;/&quot;, nil, nil, nil]\n"
full_name: URI::split
is_singleton: true
name: split
params: (uri)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Base class for all URI exceptions.
constants: []

full_name: URI::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: encode
block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI.escape(str [, unsafe])\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+str+:"
    body: String to replaces in.
  - !ruby/struct:SM::Flow::LI 
    label: "+unsafe+:"
    body: Regexp that matches all symbols that must be replaced with codes. By default uses <tt>REGEXP::UNSAFE</tt>. When this argument is a String, it represents a character set.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Escapes the string, replacing all unsafe characters with codes.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  enc_uri = URI.escape(&quot;http://example.com/?a=\\11\\15&quot;)\n  p enc_uri\n  # =&gt; &quot;http://example.com/?a=%09%0D&quot;\n\n  p URI.unescape(enc_uri)\n  # =&gt; &quot;http://example.com/?a=\\t\\r&quot;\n\n  p URI.escape(&quot;@?@!&quot;, &quot;!?&quot;)\n  # =&gt; &quot;@%3F@%21&quot;\n"
full_name: URI::Escape#escape
is_singleton: false
name: escape
params: (str, unsafe = UNSAFE)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: decode
block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI.unescape(str)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+str+:"
    body: Unescapes the string.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  enc_uri = URI.escape(&quot;http://example.com/?a=\\11\\15&quot;)\n  p enc_uri\n  # =&gt; &quot;http://example.com/?a=%09%0D&quot;\n\n  p URI.unescape(enc_uri)\n  # =&gt; &quot;http://example.com/?a=\\t\\r&quot;\n"
full_name: URI::Escape#unescape
is_singleton: false
name: unescape
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: URI::Escape
includes: 
- !ruby/object:RI::IncludedModule 
  name: REGEXP
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: decode
- !ruby/object:RI::MethodSummary 
  name: encode
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: unescape
name: Escape
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #unescape"
full_name: URI::Escape#decode
is_singleton: false
name: decode
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #escape"
full_name: URI::Escape#encode
is_singleton: false
name: encode
params: (str, unsafe = UNSAFE)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port for HTTPS URIs is 443, and the scheme is 'https:' rather than 'http:'. Other than that, HTTPS URIs are identical to HTTP URIs; see URI::HTTP.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: "443"
full_name: URI::HTTPS
includes: []

instance_methods: []

name: HTTPS
superclass: HTTP
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Not a URI.
constants: []

full_name: URI::InvalidURIError
includes: []

instance_methods: []

name: InvalidURIError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #to_mailtext"
full_name: URI::MailTo#to_rfc822text
is_singleton: false
name: to_rfc822text
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates a new URI::MailTo object from components, with syntax checking.
- !ruby/struct:SM::Flow::P 
  body: Components can be provided as an Array or Hash. If an Array is used, the components must be supplied as [to, headers].
- !ruby/struct:SM::Flow::P 
  body: If a Hash is used, the keys are the component names preceded by colons.
- !ruby/struct:SM::Flow::P 
  body: The headers can be supplied as a pre-encoded string, such as &quot;subject=subscribe&amp;cc=address&quot;, or as an Array of Arrays like [['subject', 'subscribe'], ['cc', 'address']]
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'uri'\n\n   m1 = URI::MailTo.build(['joe@example.com', 'subject=Ruby'])\n   puts m1.to_s  -&gt;  mailto:joe@example.com?subject=Ruby\n\n   m2 = URI::MailTo.build(['john@example.com', [['Subject', 'Ruby'], ['Cc', 'jack@example.com']]])\n   puts m2.to_s  -&gt;  mailto:john@example.com?Subject=Ruby&amp;Cc=jack@example.com\n\n   m3 = URI::MailTo.build({:to =&gt; 'listman@example.com', :headers =&gt; [['subject', 'subscribe']]})\n   puts m3.to_s  -&gt;  mailto:listman@example.com?subject=subscribe\n"
full_name: URI::MailTo::build
is_singleton: true
name: build
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#to=
is_singleton: false
name: to=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates a new URI::MailTo object from generic URL components with no syntax checking.
- !ruby/struct:SM::Flow::P 
  body: This method is usually called from URI::parse, which checks the validity of each component.
full_name: URI::MailTo::new
is_singleton: true
name: new
params: (*arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_rfc822text
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the RFC822 e-mail text equivalent of the URL, as a String.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse(&quot;mailto:ruby-list@ruby-lang.org?Subject=subscribe&amp;cc=myaddr&quot;)\n  uri.to_mailtext\n  # =&gt; &quot;To: ruby-list@ruby-lang.org\\nSubject: subscribe\\nCc: myaddr\\n\\n\\n&quot;\n"
full_name: URI::MailTo#to_mailtext
is_singleton: false
name: to_mailtext
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#set_headers
is_singleton: false
name: set_headers
params: (v)
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: E-mail headers set by the URL, as an Array of Arrays
  name: headers
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The primary e-mail address of the URL, as a String
  name: to
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: RFC2368, The mailto URL scheme
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: nil
- !ruby/object:RI::Constant 
  comment: 
  name: COMPONENT
  value: "[ :scheme, :to, :headers ].freeze"
full_name: URI::MailTo
includes: 
- !ruby/object:RI::IncludedModule 
  name: REGEXP
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_headers
- !ruby/object:RI::MethodSummary 
  name: check_to
- !ruby/object:RI::MethodSummary 
  name: headers=
- !ruby/object:RI::MethodSummary 
  name: set_headers
- !ruby/object:RI::MethodSummary 
  name: set_to
- !ruby/object:RI::MethodSummary 
  name: to=
- !ruby/object:RI::MethodSummary 
  name: to_mailtext
- !ruby/object:RI::MethodSummary 
  name: to_rfc822text
- !ruby/object:RI::MethodSummary 
  name: to_s
name: MailTo
superclass: Generic
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#check_to
is_singleton: false
name: check_to
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#set_to
is_singleton: false
name: set_to
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#check_headers
is_singleton: false
name: check_headers
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::MailTo#headers=
is_singleton: false
name: headers=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Create a new URI::HTTP object from components, with syntax checking.
- !ruby/struct:SM::Flow::P 
  body: The components accepted are userinfo, host, port, path, query and fragment.
- !ruby/struct:SM::Flow::P 
  body: The components should be provided either as an Array, or as a Hash with keys formed by preceding the component names with a colon.
- !ruby/struct:SM::Flow::P 
  body: If an Array is used, the components must be passed in the order [userinfo, host, port, path, query, fragment].
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    newuri = URI::HTTP.build({:host =&gt; 'www.example.com',\n      :path&gt; =&gt; '/foo/bar'})\n\n    newuri = URI::HTTP.build([nil, &quot;www.example.com&quot;, nil, &quot;/path&quot;,\n      &quot;query&quot;, 'fragment'])\n"
- !ruby/struct:SM::Flow::P 
  body: Currently, if passed userinfo components this method generates invalid HTTP URIs as per RFC 1738.
full_name: URI::HTTP::build
is_singleton: true
name: build
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Returns the full path for an HTTP request, as required by Net::HTTP::Get.
- !ruby/struct:SM::Flow::P 
  body: If the URI contains a query, the full path is URI#path + '?' + URI#query. Otherwise, the path is simply URI#path.
full_name: URI::HTTP#request_uri
is_singleton: false
name: request_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Create a new URI::HTTP object from generic URI components as per RFC 2396. No HTTP-specific syntax checking (as per RFC 1738) is performed.
- !ruby/struct:SM::Flow::P 
  body: Arguments are <tt>scheme</tt>, <tt>userinfo</tt>, <tt>host</tt>, <tt>port</tt>, <tt>registry</tt>, <tt>path</tt>, <tt>opaque</tt>, <tt>query</tt> and <tt>fragment</tt>, in that order.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    uri = URI::HTTP.new(['http', nil, &quot;www.example.com&quot;, nil, &quot;/path&quot;,\n      &quot;query&quot;, 'fragment'])\n"
full_name: URI::HTTP::new
is_singleton: true
name: new
params: (*arg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The syntax of HTTP URIs is defined in RFC1738 section 3.3.
- !ruby/struct:SM::Flow::P 
  body: Note that the Ruby URI library allows HTTP URLs containing usernames and passwords. This is not legal as per the RFC, but used to be supported in Internet Explorer 5 and 6, before the MS04-004 security update. See &lt;URL:http://support.microsoft.com/kb/834489&gt;.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: "80"
- !ruby/object:RI::Constant 
  comment: 
  name: COMPONENT
  value: "[       :scheme,        :userinfo, :host, :port,        :path,        :query,        :fragment"
full_name: URI::HTTP
includes: 
- !ruby/object:RI::IncludedModule 
  name: OpenURI::OpenRead
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: request_uri
name: HTTP
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI::join(str[, str, ...])\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+str+:"
    body: String(s) to work with
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Joins URIs.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  p URI.join(&quot;http://localhost/&quot;,&quot;main.rbx&quot;)\n  # =&gt; #&lt;URI::HTTP:0x2022ac02 URL:http://localhost/main.rbx&gt;\n"
full_name: URI::join
is_singleton: true
name: join
params: (*str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: URI is valid, bad usage is not.
constants: []

full_name: URI::BadURIError
includes: []

instance_methods: []

name: BadURIError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI::parse(uri_str)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+uri_str+:"
    body: String with URI.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates one of the URI's subclasses instance from the string.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Raises
- !ruby/struct:SM::Flow::P 
  body: URI::InvalidURIError
- !ruby/struct:SM::Flow::VERB 
  body: "  Raised if URI given is not a correct one.\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse(&quot;http://www.ruby-lang.org/&quot;)\n  p uri\n  # =&gt; #&lt;URI::HTTP:0x202281be URL:http://www.ruby-lang.org/&gt;\n  p uri.scheme\n  # =&gt; &quot;http&quot;\n  p uri.host\n  # =&gt; &quot;www.ruby-lang.org&quot;\n"
full_name: URI::parse
is_singleton: true
name: parse
params: (uri)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: URI::Util
includes: []

instance_methods: []

name: Util
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI::regexp([match_schemes])\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+match_schemes+:"
    body: Array of schemes. If given, resulting regexp matches to URIs whose scheme is one of the match_schemes.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Returns a Regexp object which matches to URI-like strings. The Regexp object returned by this method includes arbitrary number of capture group (parentheses). Never rely on it's number.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  # extract first URI from html_string\n  html_string.slice(URI.regexp)\n\n  # remove ftp URIs\n  html_string.sub(URI.regexp(['ftp'])\n\n  # You should not rely on the number of parentheses\n  html_string.scan(URI.regexp) do |*matches|\n    p $&amp;\n  end\n"
full_name: URI::regexp
is_singleton: true
name: regexp
params: (schemes = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port for LDAPS URIs is 636, and the scheme is 'ldaps:' rather than 'ldap:'. Other than that, LDAPS URIs are identical to LDAP URIs; see URI::LDAP.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: "636"
full_name: URI::LDAPS
includes: []

instance_methods: []

name: LDAPS
superclass: LDAP
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: $&
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  URI::extract(str[, schemes][,&amp;blk])\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+str+:"
    body: String to extract URIs from.
  - !ruby/struct:SM::Flow::LI 
    label: "+schemes+:"
    body: Limit URI matching to a specific schemes.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Extracts URIs from a string. If block given, iterates through all matched URIs. Returns nil if block given or array with matches.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;uri&quot;\n\n  URI.extract(&quot;text here http://foo.example.org/bla and here mailto:test@example.com and here also.&quot;)\n  # =&gt; [&quot;http://foo.example.com/bla&quot;, &quot;mailto:test@example.com&quot;]\n"
full_name: URI::extract
is_singleton: true
name: extract
params: (str, schemes = nil, &block) {|$&| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: URI::REGEXP
includes: []

instance_methods: []

name: REGEXP
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Patterns used to parse URI's
constants: []

full_name: URI::REGEXP::PATTERN
includes: []

instance_methods: []

name: PATTERN
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#build_path_query
is_singleton: false
name: build_path_query
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#extensions=
is_singleton: false
name: extensions=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#scope=
is_singleton: false
name: scope=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP::build
is_singleton: true
name: build
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#dn
is_singleton: false
name: dn
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#parse_dn
is_singleton: false
name: parse_dn
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#set_dn
is_singleton: false
name: set_dn
params: (val)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#filter
is_singleton: false
name: filter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#parse_query
is_singleton: false
name: parse_query
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#attributes=
is_singleton: false
name: attributes=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#attributes
is_singleton: false
name: attributes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#scope
is_singleton: false
name: scope
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP::new
is_singleton: true
name: new
params: (*arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#set_filter
is_singleton: false
name: set_filter
params: (val)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#set_extensions
is_singleton: false
name: set_extensions
params: (val)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#extensions
is_singleton: false
name: extensions
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#set_scope
is_singleton: false
name: set_scope
params: (val)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#set_attributes
is_singleton: false
name: set_attributes
params: (val)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#dn=
is_singleton: false
name: dn=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#hierarchical?
is_singleton: false
name: hierarchical?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::LDAP#filter=
is_singleton: false
name: filter=
params: (val)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: LDAP URI SCHEMA (described in RFC2255) ldap://&lt;host&gt;/&lt;dn&gt;[?&lt;attrs&gt;[?&lt;scope&gt;[?&lt;filter&gt;[?&lt;extensions&gt;]]]]
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: "389"
- !ruby/object:RI::Constant 
  comment: 
  name: COMPONENT
  value: "[       :scheme,       :host, :port,       :dn,       :attributes,       :scope,       :filter,       :extensions,     ].freeze"
- !ruby/object:RI::Constant 
  comment: 
  name: SCOPE
  value: "[       SCOPE_ONE = 'one',       SCOPE_SUB = 'sub',       SCOPE_BASE = 'base',     ].freeze"
full_name: URI::LDAP
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: attributes
- !ruby/object:RI::MethodSummary 
  name: attributes=
- !ruby/object:RI::MethodSummary 
  name: build_path_query
- !ruby/object:RI::MethodSummary 
  name: dn
- !ruby/object:RI::MethodSummary 
  name: dn=
- !ruby/object:RI::MethodSummary 
  name: extensions
- !ruby/object:RI::MethodSummary 
  name: extensions=
- !ruby/object:RI::MethodSummary 
  name: filter
- !ruby/object:RI::MethodSummary 
  name: filter=
- !ruby/object:RI::MethodSummary 
  name: hierarchical?
- !ruby/object:RI::MethodSummary 
  name: parse_dn
- !ruby/object:RI::MethodSummary 
  name: parse_query
- !ruby/object:RI::MethodSummary 
  name: scope
- !ruby/object:RI::MethodSummary 
  name: scope=
- !ruby/object:RI::MethodSummary 
  name: set_attributes
- !ruby/object:RI::MethodSummary 
  name: set_dn
- !ruby/object:RI::MethodSummary 
  name: set_extensions
- !ruby/object:RI::MethodSummary 
  name: set_filter
- !ruby/object:RI::MethodSummary 
  name: set_scope
name: LDAP
superclass: Generic
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates a new URI::FTP object from components, with syntax checking.
- !ruby/struct:SM::Flow::P 
  body: The components accepted are <tt>userinfo</tt>, <tt>host</tt>, <tt>port</tt>, <tt>path</tt> and <tt>typecode</tt>.
- !ruby/struct:SM::Flow::P 
  body: The components should be provided either as an Array, or as a Hash with keys formed by preceding the component names with a colon.
- !ruby/struct:SM::Flow::P 
  body: If an Array is used, the components must be passed in the order [userinfo, host, port, path, typecode]
- !ruby/struct:SM::Flow::P 
  body: "If the path supplied is absolute, it will be escaped in order to make it absolute in the URI. Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'uri'\n\n    uri = URI::FTP.build(['user:password', 'ftp.example.com', nil,\n      '/path/file.&gt; zip', 'i'])\n    puts uri.to_s  -&gt;  ftp://user:password@ftp.example.com/%2Fpath/file.zip;type=a\n\n    uri2 = URI::FTP.build({:host =&gt; 'ftp.example.com',\n      :path =&gt; 'ruby/src'})\n    puts uri2.to_s  -&gt;  ftp://ftp.example.com/ruby/src\n"
full_name: URI::FTP::build
is_singleton: true
name: build
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the path from an FTP URI.
- !ruby/struct:SM::Flow::P 
  body: "RFC 1738 specifically states that the path for an FTP URI does not include the / which separates the URI path from the URI host. Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    ftp://ftp.example.com/pub/ruby\n"
- !ruby/struct:SM::Flow::P 
  body: The above URI indicates that the client should connect to ftp.example.com then cd pub/ruby from the initial login directory.
- !ruby/struct:SM::Flow::P 
  body: "If you want to cd to an absolute directory, you must include an escaped / (%2F) in the path. Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    ftp://ftp.example.com/%2Fpub/ruby\n"
- !ruby/struct:SM::Flow::P 
  body: This method will then return &quot;/pub/ruby&quot;
full_name: URI::FTP#path
is_singleton: false
name: path
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::FTP#check_typecode
is_singleton: false
name: check_typecode
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates a new URI::FTP object from generic URL components with no syntax checking.
- !ruby/struct:SM::Flow::P 
  body: Unlike build(), this method does not escape the path component as required by RFC1738; instead it is treated as per RFC2396.
- !ruby/struct:SM::Flow::P 
  body: Arguments are <tt>scheme</tt>, <tt>userinfo</tt>, <tt>host</tt>, <tt>port</tt>, <tt>registry</tt>, <tt>path</tt>, <tt>opaque</tt>, <tt>query</tt> and <tt>fragment</tt>, in that order.
full_name: URI::FTP::new
is_singleton: true
name: new
params: (*arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::FTP#set_typecode
is_singleton: false
name: set_typecode
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::FTP#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::FTP#typecode=
is_singleton: false
name: typecode=
params: (typecode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::FTP::new2
is_singleton: true
name: new2
params: (user, password, host, port, path, typecode = nil, arg_check = true)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: typecode
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new2
comment: 
- !ruby/struct:SM::Flow::P 
  body: FTP URI syntax is defined by RFC1738 section 3.2.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: "21"
- !ruby/object:RI::Constant 
  comment: 
  name: COMPONENT
  value: "[       :scheme,        :userinfo, :host, :port,       :path, :typecode"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Typecode is &quot;a&quot;, &quot;i&quot; or &quot;d&quot;.
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: "&quot;a&quot; indicates a text file (the FTP command was ASCII)"
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: "&quot;i&quot; indicates a binary file (FTP command IMAGE)"
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: "&quot;d&quot; indicates the contents of a directory should be displayed"
    type: :BULLET
  name: TYPECODE
  value: "['a', 'i', 'd'].freeze"
- !ruby/object:RI::Constant 
  comment: 
  name: TYPECODE_PREFIX
  value: "';type='.freeze"
full_name: URI::FTP
includes: 
- !ruby/object:RI::IncludedModule 
  name: OpenURI::OpenRead
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_typecode
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: set_typecode
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: typecode=
name: FTP
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Not a URI component.
constants: []

full_name: URI::InvalidComponentError
includes: []

instance_methods: []

name: InvalidComponentError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#route_from0
is_singleton: false
name: route_from0
params: (oth)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#password
is_singleton: false
name: password
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+oth+:"
    body: URI or String
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Calculates relative path to oth from self
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse('http://my.example.com')\n  p uri.route_to('http://my.example.com/main.rbx?page=1')\n  #=&gt; #&lt;URI::Generic:0x2020c2f6 URL:/main.rbx?page=1&gt;\n"
full_name: URI::Generic#route_to
is_singleton: false
name: route_to
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: absolute
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Checks if URI is an absolute one
full_name: URI::Generic#absolute?
is_singleton: false
name: absolute?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#route_from_path
is_singleton: false
name: route_from_path
params: (src, dst)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_userinfo
is_singleton: false
name: set_userinfo
params: (user, password = nil)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_path
is_singleton: false
name: check_path
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#eql?
is_singleton: false
name: eql?
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_opaque
is_singleton: false
name: set_opaque
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+components+:"
    body: Multiple Symbol arguments defined in URI::HTTP
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Selects specified components from URI
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse('http://myuser:mypass@my.example.com/test.rbx')\n  p uri.select(:userinfo, :host, :path)\n  # =&gt; [&quot;myuser:mypass&quot;, &quot;my.example.com&quot;, &quot;/test.rbx&quot;]\n"
full_name: URI::Generic#select
is_singleton: false
name: select
params: (*components)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#user
is_singleton: false
name: user
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_query
is_singleton: false
name: check_query
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_opaque
is_singleton: false
name: check_opaque
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#default_port
is_singleton: false
name: default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Checks if URI is relative
full_name: URI::Generic#relative?
is_singleton: false
name: relative?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#port=
is_singleton: false
name: port=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares to URI's
full_name: URI::Generic#==
is_singleton: false
name: ==
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_user
is_singleton: false
name: set_user
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_path
is_singleton: false
name: set_path
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::P 
  body: "See #new"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: "Creates a new URI::Generic instance from components of URI::Generic with check. Components are: scheme, userinfo, host, port, registry, path, opaque, query and fragment. You can provide arguments either by an Array or a Hash. See #new for hash keys to use or for order of array items."
full_name: URI::Generic::build
is_singleton: true
name: build
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#query=
is_singleton: false
name: query=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "-"
block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+oth+:"
    body: URI or String
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Calculates relative path from oth to self
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse('http://my.example.com/main.rbx?page=1')\n  p uri.route_from('http://my.example.com')\n  #=&gt; #&lt;URI::Generic:0x20218858 URL:/main.rbx?page=1&gt;\n"
full_name: URI::Generic#route_from
is_singleton: false
name: route_from
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#user=
is_singleton: false
name: user=
params: (user)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+oth+:"
    body: URI or String
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: "Destructive form of #merge"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse(&quot;http://my.example.com&quot;)\n  uri.merge!(&quot;/main.rbx?page=1&quot;)\n  p uri\n  # =&gt;  #&lt;URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1&gt;\n"
full_name: URI::Generic#merge!
is_singleton: false
name: merge!
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#fragment=
is_singleton: false
name: fragment=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_fragment
is_singleton: false
name: set_fragment
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Destructive version of #normalize"
full_name: URI::Generic#normalize!
is_singleton: false
name: normalize!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: replace self by other URI object
full_name: URI::Generic#replace!
is_singleton: false
name: replace!
params: (oth)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+scheme+:"
    body: Protocol scheme, i.e. 'http','ftp','mailto' and so on.
  - !ruby/struct:SM::Flow::LI 
    label: "+userinfo+:"
    body: User name and password, i.e. 'sdmitry:bla'
  - !ruby/struct:SM::Flow::LI 
    label: "+host+:"
    body: Server host name
  - !ruby/struct:SM::Flow::LI 
    label: "+port+:"
    body: Server port
  - !ruby/struct:SM::Flow::LI 
    label: "+registry+:"
    body: "DOC: FIXME!"
  - !ruby/struct:SM::Flow::LI 
    label: "+path+:"
    body: Path on server
  - !ruby/struct:SM::Flow::LI 
    label: "+opaque+:"
    body: "DOC: FIXME!"
  - !ruby/struct:SM::Flow::LI 
    label: "+query+:"
    body: Query data
  - !ruby/struct:SM::Flow::LI 
    label: "+fragment+:"
    body: A part of URI after '#' sign
  - !ruby/struct:SM::Flow::LI 
    label: "+arg_check+:"
    body: Check arguments [false by default]
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Creates a new URI::Generic instance from ``generic'' components without check.
full_name: URI::Generic::new
is_singleton: true
name: new
params: (scheme, userinfo, host, port, registry, path, opaque, query, fragment, arg_check = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#path_query
is_singleton: false
name: path_query
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: +
block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+oth+:"
    body: URI or String
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Merges two URI's.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'uri'\n\n  uri = URI.parse(&quot;http://my.example.com&quot;)\n  p uri.merge(&quot;/main.rbx?page=1&quot;)\n  # =&gt;  #&lt;URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1&gt;\n"
full_name: URI::Generic#merge
is_singleton: false
name: merge
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#split_userinfo
is_singleton: false
name: split_userinfo
params: (ui)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns normalized URI
full_name: URI::Generic#normalize
is_singleton: false
name: normalize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructs String from URI
full_name: URI::Generic#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_password
is_singleton: false
name: check_password
params: (v, user = @user)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Components of the URI in the order.
full_name: URI::Generic::component
is_singleton: true
name: component
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#coerce
is_singleton: false
name: coerce
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_user
is_singleton: false
name: check_user
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets userinfo, argument is string like 'name:pass'
full_name: URI::Generic#userinfo=
is_singleton: false
name: userinfo=
params: (userinfo)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_port
is_singleton: false
name: check_port
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns default port
full_name: URI::Generic::default_port
is_singleton: true
name: default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#password=
is_singleton: false
name: password=
params: (password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#registry=
is_singleton: false
name: registry=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_fragment
is_singleton: false
name: check_fragment
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_scheme
is_singleton: false
name: set_scheme
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "DOC: FIXME!"
full_name: URI::Generic::use_registry
is_singleton: true
name: use_registry
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #merge"
full_name: URI::Generic#+
is_singleton: false
name: +
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#scheme=
is_singleton: false
name: scheme=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_registry
is_singleton: false
name: set_registry
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #absolute?"
full_name: URI::Generic#absolute
is_singleton: false
name: absolute
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #route_from"
full_name: URI::Generic#-
is_singleton: false
name: "-"
params: (oth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#userinfo
is_singleton: false
name: userinfo
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#merge_path
is_singleton: false
name: merge_path
params: (base, rel)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#split_path
is_singleton: false
name: split_path
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_query
is_singleton: false
name: set_query
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#escape_userpass
is_singleton: false
name: escape_userpass
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::P 
  body: "See #new"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: At first, tries to create a new URI::Generic instance using URI::Generic::build. But, if exception URI::InvalidComponentError is raised, then it URI::Escape.escape all URI components and tries again.
full_name: URI::Generic::build2
is_singleton: true
name: build2
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_registry
is_singleton: false
name: check_registry
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#host=
is_singleton: false
name: host=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_password
is_singleton: false
name: set_password
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#path=
is_singleton: false
name: path=
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Checks if URI has a path
full_name: URI::Generic#hierarchical?
is_singleton: false
name: hierarchical?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#component
is_singleton: false
name: component
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_userinfo
is_singleton: false
name: check_userinfo
params: (user, password = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_scheme
is_singleton: false
name: check_scheme
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#component_ary
is_singleton: false
name: component_ary
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#opaque=
is_singleton: false
name: opaque=
params: (v)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: fragment
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: host
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: opaque
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: path
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: query
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: registry
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: scheme
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: build2
- !ruby/object:RI::MethodSummary 
  name: component
- !ruby/object:RI::MethodSummary 
  name: default_port
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: use_registry
comment: 
- !ruby/struct:SM::Flow::P 
  body: Base class for all URI classes. Implements generic URI syntax as per RFC 2396.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_PORT
  value: nil
- !ruby/object:RI::Constant 
  comment: 
  name: COMPONENT
  value: "[       :scheme,        :userinfo, :host, :port, :registry,        :path, :opaque,        :query,        :fragment"
- !ruby/object:RI::Constant 
  comment: 
  name: USE_REGISTRY
  value: "false"
full_name: URI::Generic
includes: 
- !ruby/object:RI::IncludedModule 
  name: URI
- !ruby/object:RI::IncludedModule 
  name: REGEXP
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: absolute
- !ruby/object:RI::MethodSummary 
  name: absolute?
- !ruby/object:RI::MethodSummary 
  name: check_fragment
- !ruby/object:RI::MethodSummary 
  name: check_host
- !ruby/object:RI::MethodSummary 
  name: check_opaque
- !ruby/object:RI::MethodSummary 
  name: check_password
- !ruby/object:RI::MethodSummary 
  name: check_path
- !ruby/object:RI::MethodSummary 
  name: check_port
- !ruby/object:RI::MethodSummary 
  name: check_query
- !ruby/object:RI::MethodSummary 
  name: check_registry
- !ruby/object:RI::MethodSummary 
  name: check_scheme
- !ruby/object:RI::MethodSummary 
  name: check_user
- !ruby/object:RI::MethodSummary 
  name: check_userinfo
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: component
- !ruby/object:RI::MethodSummary 
  name: component_ary
- !ruby/object:RI::MethodSummary 
  name: default_port
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: escape_userpass
- !ruby/object:RI::MethodSummary 
  name: find_proxy
- !ruby/object:RI::MethodSummary 
  name: fragment=
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: hierarchical?
- !ruby/object:RI::MethodSummary 
  name: host=
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: merge
- !ruby/object:RI::MethodSummary 
  name: merge!
- !ruby/object:RI::MethodSummary 
  name: merge0
- !ruby/object:RI::MethodSummary 
  name: merge_path
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: normalize!
- !ruby/object:RI::MethodSummary 
  name: opaque=
- !ruby/object:RI::MethodSummary 
  name: password
- !ruby/object:RI::MethodSummary 
  name: password=
- !ruby/object:RI::MethodSummary 
  name: path=
- !ruby/object:RI::MethodSummary 
  name: path_query
- !ruby/object:RI::MethodSummary 
  name: port=
- !ruby/object:RI::MethodSummary 
  name: query=
- !ruby/object:RI::MethodSummary 
  name: registry=
- !ruby/object:RI::MethodSummary 
  name: relative?
- !ruby/object:RI::MethodSummary 
  name: replace!
- !ruby/object:RI::MethodSummary 
  name: route_from
- !ruby/object:RI::MethodSummary 
  name: route_from0
- !ruby/object:RI::MethodSummary 
  name: route_from_path
- !ruby/object:RI::MethodSummary 
  name: route_to
- !ruby/object:RI::MethodSummary 
  name: scheme=
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: set_fragment
- !ruby/object:RI::MethodSummary 
  name: set_host
- !ruby/object:RI::MethodSummary 
  name: set_opaque
- !ruby/object:RI::MethodSummary 
  name: set_password
- !ruby/object:RI::MethodSummary 
  name: set_path
- !ruby/object:RI::MethodSummary 
  name: set_port
- !ruby/object:RI::MethodSummary 
  name: set_query
- !ruby/object:RI::MethodSummary 
  name: set_registry
- !ruby/object:RI::MethodSummary 
  name: set_scheme
- !ruby/object:RI::MethodSummary 
  name: set_user
- !ruby/object:RI::MethodSummary 
  name: set_userinfo
- !ruby/object:RI::MethodSummary 
  name: split_path
- !ruby/object:RI::MethodSummary 
  name: split_userinfo
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: user
- !ruby/object:RI::MethodSummary 
  name: user=
- !ruby/object:RI::MethodSummary 
  name: userinfo
- !ruby/object:RI::MethodSummary 
  name: userinfo=
name: Generic
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#check_host
is_singleton: false
name: check_host
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns a proxy URI. The proxy URI is obtained from environment variables such as http_proxy, ftp_proxy, no_proxy, etc. If there is no proper proxy, nil is returned.
- !ruby/struct:SM::Flow::P 
  body: Note that capitalized variables (HTTP_PROXY, FTP_PROXY, NO_PROXY, etc.) are examined too.
- !ruby/struct:SM::Flow::P 
  body: "But http_proxy and HTTP_PROXY is treated specially under CGI environment. It's because HTTP_PROXY may be set by Proxy: header. So HTTP_PROXY is not used. http_proxy is not used too if the variable is case insensitive. CGI_HTTP_PROXY can be used instead."
full_name: URI::Generic#find_proxy
is_singleton: false
name: find_proxy
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_host
is_singleton: false
name: set_host
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: URI::Generic#set_port
is_singleton: false
name: set_port
params: (v)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return base and rel. you can modify `base', but can not `rel'.
full_name: URI::Generic#merge0
is_singleton: false
name: merge0
params: (oth)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: And---Returns <tt>false</tt>. <em>obj</em> is always evaluated as it is the argument to a method call---there is no short-circuit evaluation in this case.
full_name: FalseClass#&
is_singleton: false
name: "&"
params: |
  false & obj   => false
  nil & obj     => false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Exclusive Or---If <em>obj</em> is <tt>nil</tt> or <tt>false</tt>, returns <tt>false</tt>; otherwise, returns <tt>true</tt>.
full_name: FalseClass#^
is_singleton: false
name: ^
params: |
  false ^ obj    => true or false
  nil   ^ obj    => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The global value <tt>false</tt> is the only instance of class <tt>FalseClass</tt> and represents a logically false value in boolean expressions. The class provides operators allowing <tt>false</tt> to participate correctly in logical expressions.
constants: []

full_name: FalseClass
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: "|"
name: FalseClass
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "'nuf said..."
full_name: FalseClass#to_s
is_singleton: false
name: to_s
params: |
  false.to_s   =>  "false"

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Or---Returns <tt>false</tt> if <em>obj</em> is <tt>nil</tt> or <tt>false</tt>; <tt>true</tt> otherwise.
full_name: FalseClass#|
is_singleton: false
name: "|"
params: |
  false | obj   =>   true or false
  nil   | obj   =>   true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FalseClass#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Proc</tt> objects are blocks of code that have been bound to a set of local variables. Once bound, the code may be called in different contexts and still access those variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   def gen_times(factor)\n     return Proc.new {|n| n*factor }\n   end\n\n   times3 = gen_times(3)\n   times5 = gen_times(5)\n\n   times3.call(12)               #=&gt; 36\n   times5.call(5)                #=&gt; 25\n   times3.call(times5.call(4))   #=&gt; 60\n"
constants: []

full_name: SystemStackError
includes: []

instance_methods: []

name: SystemStackError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: conj
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Complex conjugate (<tt>z + z.conjugate = 2 * z.real</tt>).
full_name: Complex#conjugate
is_singleton: false
name: conjugate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #arg"
full_name: Complex#angle
is_singleton: false
name: angle
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The imaginary part of a complex number.
  name: image
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The real part of a complex number.
  name: real
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new!
- !ruby/object:RI::MethodSummary 
  name: polar
comment: 
- !ruby/struct:SM::Flow::P 
  body: The complex number class. See complex.rb for an overview.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: <tt>I</tt> is the imaginary number. It exists at point (0,1) on the complex plane.
  name: I
  value: Complex(0,1)
- !ruby/object:RI::Constant 
  comment: 
  name: Unify
  value: "true"
full_name: Complex
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: abs2
- !ruby/object:RI::MethodSummary 
  name: angle
- !ruby/object:RI::MethodSummary 
  name: arg
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: conj
- !ruby/object:RI::MethodSummary 
  name: conjugate
- !ruby/object:RI::MethodSummary 
  name: denominator
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: numerator
- !ruby/object:RI::MethodSummary 
  name: polar
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Complex
superclass: Numeric
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares the absolute values of the two numbers.
full_name: Complex#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a <tt>Complex</tt> number <tt>a</tt>+<tt>b</tt><em>i</em>.
full_name: Complex::new!
is_singleton: true
name: new!
params: (a, b=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Test for numerical equality (<tt>a == a + 0<em>i</em></tt>).
full_name: Complex#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Multiplication with real or complex number.
full_name: Complex#*
is_singleton: false
name: "*"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns &quot;<tt>Complex(<em>real</em>, <em>image</em>)</tt>&quot;.
full_name: Complex#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value <em>and</em> the argument.
full_name: Complex#polar
is_singleton: false
name: polar
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a hash code for the complex number.
full_name: Complex#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raise this complex number to the given (real or complex) power.
full_name: Complex#**
is_singleton: false
name: "**"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Complex::new
is_singleton: true
name: new
params: (a, b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Remainder after division by a real or complex number.
full_name: Complex#%
is_singleton: false
name: "%"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: FIXME
full_name: Complex#numerator
is_singleton: false
name: numerator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Standard string representation of the complex number.
full_name: Complex#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a <tt>Complex</tt> number in terms of <tt>r</tt> (radius) and <tt>theta</tt> (angle).
full_name: Complex::polar
is_singleton: true
name: polar
params: (r, theta)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempts to coerce <tt>other</tt> to a Complex number.
full_name: Complex#coerce
is_singleton: false
name: coerce
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Absolute value (aka modulus): distance from the zero point on the complex plane."
full_name: Complex#abs
is_singleton: false
name: abs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: angle
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Argument (angle from (1,0) on the complex plane).
full_name: Complex#arg
is_singleton: false
name: arg
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Complex#quo
is_singleton: false
name: quo
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Division by real or complex number.
full_name: Complex#/
is_singleton: false
name: /
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: FIXME
full_name: Complex#denominator
is_singleton: false
name: denominator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Addition with real or complex number.
full_name: Complex#+
is_singleton: false
name: +
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Subtraction with real or complex number.
full_name: Complex#-
is_singleton: false
name: "-"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Square of the absolute value.
full_name: Complex#abs2
is_singleton: false
name: abs2
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #conjugate"
full_name: Complex#conj
is_singleton: false
name: conj
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Outputs <tt>obj</tt> to <tt>out</tt> like PP.pp but with no indent and newline.
- !ruby/struct:SM::Flow::P 
  body: PP.singleline_pp returns <tt>out</tt>.
full_name: PP::singleline_pp
is_singleton: true
name: singleline_pp
params: (obj, out=$>)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Outputs <tt>obj</tt> to <tt>out</tt> in pretty printed format of <tt>width</tt> columns in width.
- !ruby/struct:SM::Flow::P 
  body: If <tt>out</tt> is omitted, +$&gt;+ is assumed. If <tt>width</tt> is omitted, 79 is assumed.
- !ruby/struct:SM::Flow::P 
  body: PP.pp returns <tt>out</tt>.
full_name: PP::pp
is_singleton: true
name: pp
params: (obj, out=$>, width=79)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Is #inspect implementation using #pretty_print. If you implement #pretty_print, it can be used as follows."
- !ruby/struct:SM::Flow::VERB 
  body: "  alias inspect pretty_print_inspect\n"
- !ruby/struct:SM::Flow::P 
  body: "However, doing this requires that every class that #inspect is called on implement #pretty_print, or a RuntimeError will be raised."
full_name: PP::ObjectMixin#pretty_print_inspect
is_singleton: false
name: pretty_print_inspect
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: PP::ObjectMixin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: pretty_print_cycle
- !ruby/object:RI::MethodSummary 
  name: pretty_print_inspect
- !ruby/object:RI::MethodSummary 
  name: pretty_print_instance_variables
name: ObjectMixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A default pretty printing method for general objects that are detected as part of a cycle.
full_name: PP::ObjectMixin#pretty_print_cycle
is_singleton: false
name: pretty_print_cycle
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a sorted array of instance variable names.
- !ruby/struct:SM::Flow::P 
  body: "This method should return an array of names of instance variables as symbols or strings as: +[:@a, :@b]+."
full_name: PP::ObjectMixin#pretty_print_instance_variables
is_singleton: false
name: pretty_print_instance_variables
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A default pretty printing method for general objects. It calls #pretty_print_instance_variables to list instance variables."
- !ruby/struct:SM::Flow::P 
  body: "If <tt>self</tt> has a customized (redefined) #inspect method, the result of self.inspect is used but it obviously has no line break hints."
- !ruby/struct:SM::Flow::P 
  body: "This module provides predefined #pretty_print methods for some of the most commonly used built-in classes for convenience."
full_name: PP::ObjectMixin#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns the sharing detection flag as a boolean value. It is false by default.
  name: sharing_detection
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: pp
- !ruby/object:RI::MethodSummary 
  name: singleline_pp
comment: 
constants: []

full_name: PP
includes: 
- !ruby/object:RI::IncludedModule 
  name: PPMethods
instance_methods: []

name: PP
superclass: PrettyPrint
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A convenience method which is same as follows:"
- !ruby/struct:SM::Flow::VERB 
  body: "  group(1, '#&lt;' + obj.class.name, '&gt;') { ... }\n"
full_name: PP::PPMethods#object_group
is_singleton: false
name: object_group
params: (obj) {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: InspectKey
  value: ":__inspect_key__"
full_name: PP::PPMethods
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: comma_breakable
- !ruby/object:RI::MethodSummary 
  name: guard_inspect_key
- !ruby/object:RI::MethodSummary 
  name: object_address_group
- !ruby/object:RI::MethodSummary 
  name: object_group
- !ruby/object:RI::MethodSummary 
  name: pp
- !ruby/object:RI::MethodSummary 
  name: pp_hash
- !ruby/object:RI::MethodSummary 
  name: pp_object
- !ruby/object:RI::MethodSummary 
  name: seplist
name: PPMethods
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds <tt>obj</tt> to the pretty printing buffer using Object#pretty_print or Object#pretty_print_cycle.
- !ruby/struct:SM::Flow::P 
  body: Object#pretty_print_cycle is used when <tt>obj</tt> is already printed, a.k.a the object reference chain has a cycle.
full_name: PP::PPMethods#pp
is_singleton: false
name: pp
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PP::PPMethods#object_address_group
is_singleton: false
name: object_address_group
params: (obj, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: PP::PPMethods#guard_inspect_key
is_singleton: false
name: guard_inspect_key
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: element
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds a separated list. The list is separated by comma with breakable space, by default.
- !ruby/struct:SM::Flow::P 
  body: "#seplist iterates the <tt>list</tt> using <tt>iter_method</tt>. It yields each object to the block given for #seplist. The procedure <tt>separator_proc</tt> is called between each yields."
- !ruby/struct:SM::Flow::P 
  body: If the iteration is zero times, <tt>separator_proc</tt> is not called at all.
- !ruby/struct:SM::Flow::P 
  body: If <tt>separator_proc</tt> is nil or not given, +lambda { comma_breakable }+ is used. If <tt>iter_method</tt> is not given, :each is used.
- !ruby/struct:SM::Flow::P 
  body: For example, following 3 code fragments has similar effect.
- !ruby/struct:SM::Flow::VERB 
  body: "  q.seplist([1,2,3]) {|v| xxx v }\n\n  q.seplist([1,2,3], lambda { comma_breakable }, :each) {|v| xxx v }\n\n  xxx 1\n  q.comma_breakable\n  xxx 2\n  q.comma_breakable\n  xxx 3\n"
full_name: PP::PPMethods#seplist
is_singleton: false
name: seplist
params: (list, sep=nil, iter_method=:each) {|element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PP::PPMethods#pp_object
is_singleton: false
name: pp_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A convenience method which is same as follows:"
- !ruby/struct:SM::Flow::VERB 
  body: "  text ','\n  breakable\n"
full_name: PP::PPMethods#comma_breakable
is_singleton: false
name: comma_breakable
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PP::PPMethods#pp_hash
is_singleton: false
name: pp_hash
params: (obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: PP::SingleLine
includes: 
- !ruby/object:RI::IncludedModule 
  name: PPMethods
instance_methods: []

name: SingleLine
superclass: PrettyPrint::SingleLine
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets a socket option. These are protocol and system specific, see your local sytem documentation for details. The option is returned as a String with the data being the binary value of the socket option.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>level</tt> is an integer, usually one of the SOL_ constants such as Socket::SOL_SOCKET, or a protocol level.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>optname</tt> is an integer, usually one of the SO_ constants, such as Socket::SO_REUSEADDR.
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Examples
- !ruby/struct:SM::Flow::P 
  body: "Some socket options are integers with boolean values, in this case #getsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  optval = sock.getsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR)\n  optval = optval.unpack &quot;i&quot;\n  reuseaddr = optval[0] == 0 ? false : true\n"
- !ruby/struct:SM::Flow::P 
  body: "Some socket options are integers with numeric values, in this case #getsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  optval = sock.getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL)\n  ipttl = optval.unpack(&quot;i&quot;)[0]\n"
- !ruby/struct:SM::Flow::P 
  body: "Option values may be structs. Decoding them can be complex as it involves examining your system headers to determine the correct definition. An example is a +struct linger+, which may be defined in your system headers as:"
- !ruby/struct:SM::Flow::VERB 
  body: "  struct linger {\n    int l_onoff;\n    int l_linger;\n  };\n"
- !ruby/struct:SM::Flow::P 
  body: "In this case #getsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  optval =  sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER)\n  onoff, linger = optval.unpack &quot;ii&quot;\n"
full_name: BasicSocket#getsockopt
is_singleton: false
name: getsockopt
params: " getsockopt(level, optname)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets a socket option. These are protocol and system specific, see your local sytem documentation for details.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>level</tt> is an integer, usually one of the SOL_ constants such as Socket::SOL_SOCKET, or a protocol level.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>optname</tt> is an integer, usually one of the SO_ constants, such as Socket::SO_REUSEADDR.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt>optval</tt> is the value of the option, it is passed to the underlying setsockopt() as a pointer to a certain number of bytes. How this is done depends on the type:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: "Fixnum: value is assigned to an int, and a pointer to the int is passed, with length of sizeof(int)."
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: "true or false: 1 or 0 (respectively) is assigned to an int, and the int is passed as for a Fixnum. Note that <tt>false</tt> must be passed, not <tt>nil</tt>."
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: "String: the string's data and length is passed to the socket."
    type: :BULLET
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Examples
- !ruby/struct:SM::Flow::P 
  body: "Some socket options are integers with boolean values, in this case #setsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)\n"
- !ruby/struct:SM::Flow::P 
  body: "Some socket options are integers with numeric values, in this case #setsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, 255)\n"
- !ruby/struct:SM::Flow::P 
  body: "Option values may be structs. Passing them can be complex as it involves examining your system headers to determine the correct definition. An example is an <tt>ip_mreq</tt>, which may be defined in your system headers as:"
- !ruby/struct:SM::Flow::VERB 
  body: "  struct ip_mreq {\n    struct  in_addr imr_multiaddr;\n    struct  in_addr imr_interface;\n  };\n"
- !ruby/struct:SM::Flow::P 
  body: "In this case #setsockopt could be called like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  optval =  IPAddr.new(&quot;224.0.0.251&quot;) + Socket::INADDR_ANY\n  sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, optval)\n"
full_name: BasicSocket#setsockopt
is_singleton: false
name: setsockopt
params: " setsockopt(level, optname, optval)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: BasicSocket
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: getsockopt
- !ruby/object:RI::MethodSummary 
  name: recv_nonblock
- !ruby/object:RI::MethodSummary 
  name: setsockopt
name: BasicSocket
superclass: IO
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Receives up to <em>maxlen</em> bytes from <tt>socket</tt> using recvfrom(2) after O_NONBLOCK is set for the underlying file descriptor. <em>flags</em> is zero or more of the <tt>MSG_</tt> options. The result, <em>mesg</em>, is the data received.
- !ruby/struct:SM::Flow::P 
  body: "When recvfrom(2) returns 0, Socket#recv_nonblock returns an empty string as data. The meaning depends on the socket: EOF on TCP, empty packet on UDP, etc."
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>maxlen</tt> - the number of bytes to receive from the socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>flags</tt> - zero or more of the <tt>MSG_</tt> options
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "     serv = TCPServer.new(&quot;127.0.0.1&quot;, 0)\n     af, port, host, addr = serv.addr\n     c = TCPSocket.new(addr, port)\n     s = serv.accept\n     c.send &quot;aaa&quot;, 0\n     IO.select([s])\n     p s.recv_nonblock(10) #=&gt; &quot;aaa&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: Refer to Socket#recvfrom for the exceptions that may be thrown if the call to <em>recv_nonblock</em> fails.
- !ruby/struct:SM::Flow::P 
  body: BasicSocket#recv_nonblock may raise any error corresponding to recvfrom(2) failure, including Errno::EAGAIN.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Socket#recvfrom
  type: :BULLET
full_name: BasicSocket#recv_nonblock
is_singleton: false
name: recv_nonblock
params: |
  basicsocket.recv_nonblock(maxlen) => mesg
  basicsocket.recv_nonblock(maxlen, flags) => mesg

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the generator has reached the end.
full_name: Generator#end?
is_singleton: false
name: end?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the element at the current position and moves forward.
full_name: Generator#next
is_singleton: false
name: next
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the generator has not reached the end yet.
full_name: Generator#next?
is_singleton: false
name: next?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Yields an element to the generator.
full_name: Generator#yield
is_singleton: false
name: yield
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rewinds the generator.
full_name: Generator#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new generator either from an Enumerable object or from a block.
- !ruby/struct:SM::Flow::P 
  body: In the former, block is ignored even if given.
- !ruby/struct:SM::Flow::P 
  body: In the latter, the given block is called with the generator itself, and expected to call the <tt>yield</tt> method for each element.
full_name: Generator::new
is_singleton: true
name: new
params: (enum = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: self.next
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rewinds the generator and enumerates the elements.
full_name: Generator#each
is_singleton: false
name: each
params: () {|self.next| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generator converts an internal iterator (i.e. an Enumerable object) to an external iterator.
- !ruby/struct:SM::Flow::P 
  body: Note that it is not very fast since it is implemented using continuations, which are currently slow.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'generator'\n\n  # Generator from an Enumerable object\n  g = Generator.new(['A', 'B', 'C', 'Z'])\n\n  while g.next?\n    puts g.next\n  end\n\n  # Generator from a block\n  g = Generator.new { |g|\n    for i in 'A'..'C'\n      g.yield i\n    end\n\n    g.yield 'Z'\n  }\n\n  # The same result as above\n  while g.next?\n    puts g.next\n  end\n"
constants: []

full_name: Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: current
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: end?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: next?
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: yield
name: Generator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the element at the current position.
full_name: Generator#current
is_singleton: false
name: current
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current index (position) counting from zero.
full_name: Generator#index
is_singleton: false
name: index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current index (position) counting from zero.
full_name: Generator#pos
is_singleton: false
name: pos
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: compat.rb -- cross platform compatibility
- !ruby/struct:SM::Flow::P 
  body: "Author: IPR -- Internet Programming with Ruby -- writers Copyright (c) 2002 GOTOU Yuuzou Copyright (c) 2002 Internet Programming with Ruby writers. All rights reserved."
- !ruby/struct:SM::Flow::P 
  body: "$IPR: compat.rb,v 1.6 2002/10/01 17:16:32 gotoyuzo Exp $"
constants: []

full_name: Errno
includes: []

instance_methods: []

name: Errno
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Errno::ECONNRESET
includes: []

instance_methods: []

name: ECONNRESET
superclass: SystemCallError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Errno::EPROTO
includes: []

instance_methods: []

name: EPROTO
superclass: SystemCallError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Errno::ECONNABORTED
includes: []

instance_methods: []

name: ECONNABORTED
superclass: SystemCallError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Monitors provide means of mutual exclusion for Thread programming. A critical region is created by means of the synchronize method, which takes a block. The condition variables (created with #new_cond) may be used to control the execution of a monitor with #signal and #wait."
- !ruby/struct:SM::Flow::P 
  body: the Monitor class wraps MonitorMixin, and provides aliases
- !ruby/struct:SM::Flow::VERB 
  body: " alias try_enter try_mon_enter\n alias enter mon_enter\n alias exit mon_exit\n"
- !ruby/struct:SM::Flow::P 
  body: to access its methods more concisely.
constants: []

full_name: Monitor
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: []

name: Monitor
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Uses each <em>index</em> to access the matching values, returning an array of the corresponding matches.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138: The Movie&quot;)\n   m.to_a               #=&gt; [&quot;HX1138&quot;, &quot;H&quot;, &quot;X&quot;, &quot;113&quot;, &quot;8&quot;]\n   m.values_at(0, 2, -2)   #=&gt; [&quot;HX1138&quot;, &quot;X&quot;, &quot;113&quot;]\n"
full_name: MatchData#values_at
is_singleton: false
name: values_at
params: |
  mtch.values_at([index]*)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Match Reference---<tt>MatchData</tt> acts as an array, and may be accessed using the normal array indexing techniques. <em>mtch</em>[0] is equivalent to the special variable <tt>$&amp;</tt>, and returns the entire matched string. <em>mtch</em>[1], <em>mtch</em>[2], and so on return the values of the matched backreferences (portions of the pattern between parentheses).
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m[0]       #=&gt; &quot;HX1138&quot;\n   m[1, 2]    #=&gt; [&quot;H&quot;, &quot;X&quot;]\n   m[1..3]    #=&gt; [&quot;H&quot;, &quot;X&quot;, &quot;113&quot;]\n   m[-3, 2]   #=&gt; [&quot;X&quot;, &quot;113&quot;]\n"
full_name: MatchData#[]
is_singleton: false
name: "[]"
params: |
  mtch[i]               => obj
  mtch[start, length]   => array
  mtch[range]           => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements in the match array.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.length   #=&gt; 5\n   m.size     #=&gt; 5\n"
full_name: MatchData#size
is_singleton: false
name: size
params: |
  mtch.length   => integer
  mtch.size     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the array of matches.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.to_a   #=&gt; [&quot;HX1138&quot;, &quot;H&quot;, &quot;X&quot;, &quot;113&quot;, &quot;8&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: Because <tt>to_a</tt> is called when expanding <tt>*</tt><em>variable</em>, there's a useful assignment shortcut for extracting matched fields. This is slightly slower than accessing the fields directly (as an intermediate array is generated).
- !ruby/struct:SM::Flow::VERB 
  body: "   all,f1,f2,f3 = *(/(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;))\n   all   #=&gt; &quot;HX1138&quot;\n   f1    #=&gt; &quot;H&quot;\n   f2    #=&gt; &quot;X&quot;\n   f3    #=&gt; &quot;113&quot;\n"
full_name: MatchData#to_a
is_singleton: false
name: to_a
params: |
  mtch.to_a   => anArray

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a frozen copy of the string passed in to <tt>match</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.string   #=&gt; &quot;THX1138.&quot;\n"
full_name: MatchData#string
is_singleton: false
name: string
params: |
  mtch.string   => str

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>MatchData</tt> is the type of the special variable <tt>$~</tt>, and is the type of the object returned by <tt>Regexp#match</tt> and <tt>Regexp#last_match</tt>. It encapsulates all the results of a pattern match, results normally accessed through the special variables <tt>$&amp;</tt>, <tt>$'</tt>, <tt>$`</tt>, <tt>$1</tt>, <tt>$2</tt>, and so on. <tt>Matchdata</tt> is also known as <tt>MatchingData</tt>.
constants: []

full_name: MatchData
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: begin
- !ruby/object:RI::MethodSummary 
  name: captures
- !ruby/object:RI::MethodSummary 
  name: end
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: offset
- !ruby/object:RI::MethodSummary 
  name: post_match
- !ruby/object:RI::MethodSummary 
  name: pre_match
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: string
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: values_at
name: MatchData
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing match strings for which <em>block</em> gives <tt>true</tt>. MatchData#select will be removed from Ruby 1.9.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138: The Movie&quot;)\n   p m.select{|x| /X/ =~ x}   #=&gt; [&quot;HX1138&quot;, &quot;X&quot;]\n"
full_name: MatchData#select
is_singleton: false
name: select
params: |
  mtch.select{|obj| block}   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the offset of the character immediately following the end of the <em>n</em>th element of the match array in the string.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.end(0)   #=&gt; 7\n   m.end(2)   #=&gt; 3\n"
full_name: MatchData#end
is_singleton: false
name: end
params: |
  mtch.end(n)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a printable version of <em>mtch</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "    puts /.$/.match(&quot;foo&quot;).inspect\n    #=&gt; #&lt;MatchData &quot;o&quot;&gt;\n\n    puts /(.)(.)(.)/.match(&quot;foo&quot;).inspect\n    #=&gt; #&lt;MatchData &quot;foo&quot; 1:&quot;f&quot; 2:&quot;o&quot; 3:&quot;o&quot;&gt;\n\n    puts /(.)(.)?(.)/.match(&quot;fo&quot;).inspect\n    #=&gt; #&lt;MatchData &quot;fo&quot; 1:&quot;f&quot; 2:nil 3:&quot;o&quot;&gt;\n"
full_name: MatchData#inspect
is_singleton: false
name: inspect
params: |
  mtch.inspect   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the portion of the original string after the current match. Equivalent to the special variable <tt>$'</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138: The Movie&quot;)\n   m.post_match   #=&gt; &quot;: The Movie&quot;\n"
full_name: MatchData#post_match
is_singleton: false
name: post_match
params: |
  mtch.post_match   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the array of captures; equivalent to <tt>mtch.to_a[1..-1]</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f1,f2,f3,f4 = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;).captures\n   f1    #=&gt; &quot;H&quot;\n   f2    #=&gt; &quot;X&quot;\n   f3    #=&gt; &quot;113&quot;\n   f4    #=&gt; &quot;8&quot;\n"
full_name: MatchData#captures
is_singleton: false
name: captures
params: |
  mtch.captures   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements in the match array.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.length   #=&gt; 5\n   m.size     #=&gt; 5\n"
full_name: MatchData#length
is_singleton: false
name: length
params: |
  mtch.length   => integer
  mtch.size     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the entire matched string.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.to_s   #=&gt; &quot;HX1138&quot;\n"
full_name: MatchData#to_s
is_singleton: false
name: to_s
params: |
  mtch.to_s   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MatchData#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the offset of the start of the <em>n</em>th element of the match array in the string.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.begin(0)   #=&gt; 1\n   m.begin(2)   #=&gt; 2\n"
full_name: MatchData#begin
is_singleton: false
name: begin
params: |
  mtch.begin(n)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the portion of the original string before the current match. Equivalent to the special variable <tt>$`</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.pre_match   #=&gt; &quot;T&quot;\n"
full_name: MatchData#pre_match
is_singleton: false
name: pre_match
params: |
  mtch.pre_match   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a two-element array containing the beginning and ending offsets of the <em>n</em>th match.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = /(.)(.)(\\d+)(\\d)/.match(&quot;THX1138.&quot;)\n   m.offset(0)   #=&gt; [1, 7]\n   m.offset(4)   #=&gt; [6, 7]\n"
full_name: MatchData#offset
is_singleton: false
name: offset
params: |
  mtch.offset(n)   => array

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RegAnd
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: =~
name: RegAnd
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RegAnd#=~
is_singleton: false
name: =~
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RegAnd::new
is_singleton: true
name: new
params: (re1, re2)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::extend_object
is_singleton: true
name: extend_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: locking methods.
full_name: Sync_m#sync_try_lock
is_singleton: false
name: sync_try_lock
params: (mode = EX)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_shared?
is_singleton: false
name: sync_shared?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::append_features
is_singleton: true
name: append_features
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_extended
is_singleton: false
name: sync_extended
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_unlock
is_singleton: false
name: sync_unlock
params: (m = EX)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: Fail
comment: 
- !ruby/struct:SM::Flow::P 
  body: exceptions
constants: []

full_name: Sync_m::Err
includes: []

instance_methods: []

name: Err
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: Fail
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Message
  value: "\"Thread(%s) not locked.\""
full_name: Sync_m::Err::UnknownLocker
includes: []

instance_methods: []

name: UnknownLocker
superclass: Err
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::Err::UnknownLocker::Fail
is_singleton: true
name: Fail
params: (th)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: Fail
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Message
  value: "\"Unknown lock mode(%s)\""
full_name: Sync_m::Err::LockModeFailer
includes: []

instance_methods: []

name: LockModeFailer
superclass: Err
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::Err::LockModeFailer::Fail
is_singleton: true
name: Fail
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::Err::Fail
is_singleton: true
name: Fail
params: (*opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_try_lock_sub
is_singleton: false
name: sync_try_lock_sub
params: (m)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: accessing
full_name: Sync_m#sync_locked?
is_singleton: false
name: sync_locked?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_ex_count
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_ex_locker
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_mode
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_sh_locker
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_upgrade_waiting
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sync_waiting
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: define_aliases
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RCS_ID
  value: "'-$Header$-'"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: lock mode
  name: UN
  value: ":UN"
- !ruby/object:RI::Constant 
  comment: 
  name: SH
  value: ":SH"
- !ruby/object:RI::Constant 
  comment: 
  name: EX
  value: ":EX"
full_name: Sync_m
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: sync_exclusive?
- !ruby/object:RI::MethodSummary 
  name: sync_extended
- !ruby/object:RI::MethodSummary 
  name: sync_initialize
- !ruby/object:RI::MethodSummary 
  name: sync_lock
- !ruby/object:RI::MethodSummary 
  name: sync_locked?
- !ruby/object:RI::MethodSummary 
  name: sync_shared?
- !ruby/object:RI::MethodSummary 
  name: sync_synchronize
- !ruby/object:RI::MethodSummary 
  name: sync_try_lock
- !ruby/object:RI::MethodSummary 
  name: sync_try_lock_sub
- !ruby/object:RI::MethodSummary 
  name: sync_unlock
name: Sync_m
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Sync_m#sync_synchronize
is_singleton: false
name: sync_synchronize
params: (mode = EX) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m::define_aliases
is_singleton: true
name: define_aliases
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_exclusive?
is_singleton: false
name: sync_exclusive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_lock
is_singleton: false
name: sync_lock
params: (m = EX)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync_m#sync_initialize
is_singleton: false
name: sync_initialize
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#to_re
is_singleton: false
name: to_re
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_plain
is_singleton: false
name: extract_plain
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#width
is_singleton: false
name: width
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#nil_proc
is_singleton: false
name: nil_proc
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_float
is_singleton: false
name: extract_float
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#letter
is_singleton: false
name: letter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier::new
is_singleton: true
name: new
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#mid_match?
is_singleton: false
name: mid_match?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: conversion
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: matched
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: matched_string
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: re_string
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Scanf::FormatSpecifier
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: count_space?
- !ruby/object:RI::MethodSummary 
  name: extract_decimal
- !ruby/object:RI::MethodSummary 
  name: extract_float
- !ruby/object:RI::MethodSummary 
  name: extract_hex
- !ruby/object:RI::MethodSummary 
  name: extract_integer
- !ruby/object:RI::MethodSummary 
  name: extract_octal
- !ruby/object:RI::MethodSummary 
  name: extract_plain
- !ruby/object:RI::MethodSummary 
  name: letter
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: mid_match?
- !ruby/object:RI::MethodSummary 
  name: nil_proc
- !ruby/object:RI::MethodSummary 
  name: skip
- !ruby/object:RI::MethodSummary 
  name: to_re
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: width
name: FormatSpecifier
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_octal
is_singleton: false
name: extract_octal
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#match
is_singleton: false
name: match
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#skip
is_singleton: false
name: skip
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_hex
is_singleton: false
name: extract_hex
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_integer
is_singleton: false
name: extract_integer
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#count_space?
is_singleton: false
name: count_space?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatSpecifier#extract_decimal
is_singleton: false
name: extract_decimal
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString#spec_count
is_singleton: false
name: spec_count
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: last_match_tried
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: last_spec_tried
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: matched_count
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: space
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: string_left
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SPECIFIERS
  value: "'diuXxofeEgsc'"
- !ruby/object:RI::Constant 
  comment: 
  name: REGEX
  value: "/         # possible space, followed by...           (?:\\s*           # percent sign, followed by...             %             # another percent sign, or...               (?:%|                  # optional assignment suppression flag                  \\*?                  # optional maximum field width                  \\d*                    # named character class, ...                    (?:\\[\\[:\\w+:\\]\\]|                    # traditional character class, or...                       \\[[^\\]]*\\]|                    # specifier letter.                       [#{SPECIFIERS}])))|             # or miscellaneous characters               [^%\\s]+/ix"
full_name: Scanf::FormatString
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: last_spec
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: prune
- !ruby/object:RI::MethodSummary 
  name: spec_count
- !ruby/object:RI::MethodSummary 
  name: to_s
name: FormatString
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString::new
is_singleton: true
name: new
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString#last_spec
is_singleton: false
name: last_spec
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString#match
is_singleton: false
name: match
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Scanf::FormatString#prune
is_singleton: false
name: prune
params: (n=matched_count)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Scanf
includes: []

instance_methods: []

name: Scanf
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: in class.c
constants: []

full_name: Data
includes: []

instance_methods: []

name: Data
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: pushd
block_params: ""
comment: 
full_name: Shell#pushdir
is_singleton: false
name: pushdir
params: (path = nil) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell#kill
is_singleton: false
name: kill
params: (sig, command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: popd
block_params: 
comment: 
full_name: Shell#popdir
is_singleton: false
name: popdir
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::AppendFile#input=
is_singleton: false
name: input=
params: (filter)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::AppendFile
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: input=
name: AppendFile
superclass: AppendIO
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::AppendFile::new
is_singleton: true
name: new
params: (sh, to_filename, filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #popdir"
full_name: Shell#popd
is_singleton: false
name: popd
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell#expand_path
is_singleton: false
name: expand_path
params: (path)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Shell::Error
includes: []

instance_methods: []

name: Error
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: Shell#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Echo::new
is_singleton: true
name: new
params: (sh, *strings)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::Echo
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
name: Echo
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: str + rs
comment: 
full_name: Shell::Echo#each
is_singleton: false
name: each
params: (rs = nil) {|str + rs| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::default_record_separator
is_singleton: true
name: default_record_separator
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: cascade
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: command_processor
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Dir related methods
  - !ruby/struct:SM::Flow::P 
    body: Shell#cwd/dir/getwd/pwd Shell#chdir/cd Shell#pushdir/pushd Shell#popdir/popd Shell#mkdir Shell#rmdir
  name: cwd
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: debug
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: debug
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: dir_stack
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: process_controller
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: record_separator
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: system_path
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: umask
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: verbose
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: verbose
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: alias_command
- !ruby/object:RI::MethodSummary 
  name: cd
- !ruby/object:RI::MethodSummary 
  name: debug=
- !ruby/object:RI::MethodSummary 
  name: def_system_command
- !ruby/object:RI::MethodSummary 
  name: default_record_separator
- !ruby/object:RI::MethodSummary 
  name: default_record_separator=
- !ruby/object:RI::MethodSummary 
  name: default_system_path
- !ruby/object:RI::MethodSummary 
  name: default_system_path=
- !ruby/object:RI::MethodSummary 
  name: install_system_commands
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: unalias_command
- !ruby/object:RI::MethodSummary 
  name: undef_system_command
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: "  shell/filter.rb -\n      $Release Version: 0.6.0 $\n      $Revision: 11708 $\n      $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $\n      by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)\n"
- !ruby/struct:SM::Flow::P 
  body: --
constants: []

full_name: Shell
includes: 
- !ruby/object:RI::IncludedModule 
  name: Error
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: cd
- !ruby/object:RI::MethodSummary 
  name: chdir
- !ruby/object:RI::MethodSummary 
  name: debug=
- !ruby/object:RI::MethodSummary 
  name: expand_path
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: jobs
- !ruby/object:RI::MethodSummary 
  name: kill
- !ruby/object:RI::MethodSummary 
  name: popd
- !ruby/object:RI::MethodSummary 
  name: popdir
- !ruby/object:RI::MethodSummary 
  name: pushd
- !ruby/object:RI::MethodSummary 
  name: pushdir
- !ruby/object:RI::MethodSummary 
  name: system_path=
name: Shell
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::Tee
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
name: Tee
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Tee::new
is_singleton: true
name: new
params: (sh, filename)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: l
comment: 
full_name: Shell::Tee#each
is_singleton: false
name: each
params: (rs = nil) {|l| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: cd
block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: If called as iterator, it restores the current directory when the block ends.
full_name: Shell#chdir
is_singleton: false
name: chdir
params: (path = nil) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Glob::new
is_singleton: true
name: new
params: (sh, pattern)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: f+rs
comment: 
full_name: Shell::Glob#each
is_singleton: false
name: each
params: (rs = nil) {|f+rs| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::Glob
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
name: Glob
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #chdir"
full_name: Shell#cd
is_singleton: false
name: cd
params: (path = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::unalias_command
is_singleton: true
name: unalias_command
params: (ali)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::default_system_path=
is_singleton: true
name: default_system_path=
params: (path)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: command
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::SystemCommand
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: active?
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: input=
- !ruby/object:RI::MethodSummary 
  name: kill
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_export
- !ruby/object:RI::MethodSummary 
  name: start_import
- !ruby/object:RI::MethodSummary 
  name: terminate
- !ruby/object:RI::MethodSummary 
  name: wait?
name: SystemCommand
superclass: Filter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#kill
is_singleton: false
name: kill
params: (sig)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#input=
is_singleton: false
name: input=
params: (inp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#start_export
is_singleton: false
name: start_export
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#active?
is_singleton: false
name: active?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#flush
is_singleton: false
name: flush
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#wait?
is_singleton: false
name: wait?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand::new
is_singleton: true
name: new
params: (sh, command, *opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: l
comment: 
full_name: Shell::SystemCommand#each
is_singleton: false
name: each
params: (rs = nil) {|l| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: mes if iterator?
comment: 
- !ruby/struct:SM::Flow::P 
  body: ex)
- !ruby/struct:SM::Flow::VERB 
  body: "   if you wish to output:\n      &quot;shell: job(#{@command}:#{@pid}) close pipe-out.&quot;\n   then\n      mes: &quot;job(%id) close pipe-out.&quot;\n   yorn: Boolean(@shell.debug? or @shell.verbose?)\n"
full_name: Shell::SystemCommand#notify
is_singleton: false
name: notify
params: (*opts, &block) {|mes if iterator?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#terminate
is_singleton: false
name: terminate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#start_import
is_singleton: false
name: start_import
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::SystemCommand#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::install_system_commands
is_singleton: true
name: install_system_commands
params: (pre = "sys_")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#unlink(path)
- !ruby/struct:SM::Flow::VERB 
  body: "  same as:\n    Dir#unlink  (when path is directory)\n    File#unlink (when path is file)\n"
full_name: Shell::CommandProcessor#unlink
is_singleton: false
name: unlink
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #test"
full_name: Shell::CommandProcessor#[]
is_singleton: false
name: "[]"
params: (command, file1, file2=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ProcessCommand#rehash
- !ruby/struct:SM::Flow::VERB 
  body: "  clear command hash table.\n"
full_name: Shell::CommandProcessor#rehash
is_singleton: false
name: rehash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#expand_path(path)
- !ruby/struct:SM::Flow::VERB 
  body: "    path:     String\n    return: String\n  returns the absolute path for &lt;path&gt;\n"
full_name: Shell::CommandProcessor#expand_path
is_singleton: false
name: expand_path
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#append
is_singleton: false
name: append
params: (to, filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::initialize
is_singleton: true
name: initialize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: internal commands
full_name: Shell::CommandProcessor#out
is_singleton: false
name: out
params: (dev = STDOUT, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def sort(*filenames)
- !ruby/struct:SM::Flow::VERB 
  body: "  Sort.new(self, *filenames)\n"
- !ruby/struct:SM::Flow::P 
  body: end
full_name: Shell::CommandProcessor#glob
is_singleton: false
name: glob
params: (pattern)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::alias_map
is_singleton: true
name: alias_map
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_delegate_command_to_shell
- !ruby/object:RI::MethodSummary 
  name: alias_command
- !ruby/object:RI::MethodSummary 
  name: alias_map
- !ruby/object:RI::MethodSummary 
  name: def_builtin_commands
- !ruby/object:RI::MethodSummary 
  name: def_system_command
- !ruby/object:RI::MethodSummary 
  name: initialize
- !ruby/object:RI::MethodSummary 
  name: install_builtin_commands
- !ruby/object:RI::MethodSummary 
  name: install_system_commands
- !ruby/object:RI::MethodSummary 
  name: method_added
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: run_config
- !ruby/object:RI::MethodSummary 
  name: unalias_command
- !ruby/object:RI::MethodSummary 
  name: undef_system_command
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: initialize of Shell and related classes.
  name: NoDelegateMethods
  value: "[\"initialize\", \"expand_path\"]"
full_name: Shell::CommandProcessor
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: append
- !ruby/object:RI::MethodSummary 
  name: cat
- !ruby/object:RI::MethodSummary 
  name: check_point
- !ruby/object:RI::MethodSummary 
  name: concat
- !ruby/object:RI::MethodSummary 
  name: echo
- !ruby/object:RI::MethodSummary 
  name: effect_umask
- !ruby/object:RI::MethodSummary 
  name: expand_path
- !ruby/object:RI::MethodSummary 
  name: find_system_command
- !ruby/object:RI::MethodSummary 
  name: finish_all_jobs
- !ruby/object:RI::MethodSummary 
  name: foreach
- !ruby/object:RI::MethodSummary 
  name: glob
- !ruby/object:RI::MethodSummary 
  name: mkdir
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: out
- !ruby/object:RI::MethodSummary 
  name: rehash
- !ruby/object:RI::MethodSummary 
  name: rmdir
- !ruby/object:RI::MethodSummary 
  name: system
- !ruby/object:RI::MethodSummary 
  name: tee
- !ruby/object:RI::MethodSummary 
  name: test
- !ruby/object:RI::MethodSummary 
  name: transact
- !ruby/object:RI::MethodSummary 
  name: unlink
name: CommandProcessor
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "[]"
block_params: 
comment: 
full_name: Shell::CommandProcessor#test
is_singleton: false
name: test
params: (command, file1, file2=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::unalias_command
is_singleton: true
name: unalias_command
params: (ali)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor.install_system_commands(pre)
- !ruby/struct:SM::Flow::VERB 
  body: "      pre: String - command name prefix\n"
- !ruby/struct:SM::Flow::P 
  body: defines every command which belongs in default_system_path via CommandProcessor.command(). It doesn't define already defined methods twice. By default, &quot;pre_&quot; is prefixes to each method name. Characters that may not be used in a method name are all converted to '_'. Definition errors are just ignored.
full_name: Shell::CommandProcessor::install_system_commands
is_singleton: true
name: install_system_commands
params: (pre = "sys_")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#echo
is_singleton: false
name: echo
params: (*strings)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::new
is_singleton: true
name: new
params: (shell)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#system(command, *opts)
- !ruby/struct:SM::Flow::VERB 
  body: "    command: String\n    opts:      String\n    return:  SystemCommand\n  Same as system() function\n  example:\n    print sh.system(&quot;ls&quot;, &quot;-l&quot;)\n    sh.system(&quot;ls&quot;, &quot;-l&quot;) | sh.head &gt; STDOUT\n"
full_name: Shell::CommandProcessor#system
is_singleton: false
name: system
params: (command, *opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#transact
is_singleton: false
name: transact
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::alias_command
is_singleton: true
name: alias_command
params: (ali, command, *opts, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor.def_builtin_commands(delegation_class, command_specs)
- !ruby/struct:SM::Flow::VERB 
  body: "    delegation_class: Class or Module\n    command_specs: [[command_name, [argument,...]],...]\n       command_name: String\n       arguments:      String\n          FILENAME?? -&gt; expand_path(filename??)\n          *FILENAME?? -&gt; filename??.collect{|f|expand_path(f)}.join(&quot;, &quot;)\n  define command_name(argument,...) as\n      delegation_class.command_name(argument,...)\n"
full_name: Shell::CommandProcessor::def_builtin_commands
is_singleton: true
name: def_builtin_commands
params: (delegation_class, command_specs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: fn
comment: 
- !ruby/struct:SM::Flow::P 
  body: File related commands Shell#foreach Shell#open Shell#unlink Shell#test
- !ruby/struct:SM::Flow::P 
  body: "-"
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#foreach(path, rs)
- !ruby/struct:SM::Flow::VERB 
  body: "    path: String\n    rs:     String - record separator\n    iterator\n  Same as:\n    File#foreach (when path is file)\n    Dir#foreach (when path is directory)\n  path is relative to pwd\n"
full_name: Shell::CommandProcessor#foreach
is_singleton: false
name: foreach
params: (path = nil, *rs) {|fn| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: include run file.
full_name: Shell::CommandProcessor::run_config
is_singleton: true
name: run_config
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#tee
is_singleton: false
name: tee
params: (file)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: mes if iterator?
comment: 
- !ruby/struct:SM::Flow::P 
  body: "%pwd, %cwd -&gt; @pwd"
full_name: Shell::CommandProcessor#notify
is_singleton: false
name: notify
params: (*opts, &block) {|mes if iterator?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::method_added
is_singleton: true
name: method_added
params: (id)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: define default builtin commands
full_name: Shell::CommandProcessor::install_builtin_commands
is_singleton: true
name: install_builtin_commands
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::add_delegate_command_to_shell
is_singleton: true
name: add_delegate_command_to_shell
params: (id)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: private functions
full_name: Shell::CommandProcessor#effect_umask
is_singleton: false
name: effect_umask
params: () {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#concat
is_singleton: false
name: concat
params: (*jobs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor.def_system_command(command, path)
- !ruby/struct:SM::Flow::VERB 
  body: "    command:  String\n    path:       String\n  define 'command()' method as method.\n"
full_name: Shell::CommandProcessor::def_system_command
is_singleton: true
name: def_system_command
params: (command, path = command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#rmdir(*path)
- !ruby/struct:SM::Flow::VERB 
  body: "    path: String\n  same as Dir.rmdir()\n"
full_name: Shell::CommandProcessor#rmdir
is_singleton: false
name: rmdir
params: (*path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#cat
is_singleton: false
name: cat
params: (*filenames)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dir related methods
- !ruby/struct:SM::Flow::P 
  body: Shell#mkdir Shell#rmdir
full_name: Shell::CommandProcessor#mkdir
is_singleton: false
name: mkdir
params: (*path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor::undef_system_command
is_singleton: true
name: undef_system_command
params: (command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #check_point"
full_name: Shell::CommandProcessor#finish_all_jobs
is_singleton: false
name: finish_all_jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::CommandProcessor#find_system_command
is_singleton: false
name: find_system_command
params: (command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: CommandProcessor#open(path, mode)
- !ruby/struct:SM::Flow::VERB 
  body: "    path:     String\n    mode:     String\n    return: File or Dir\n  Same as:\n    File#open (when path is file)\n    Dir#open  (when path is directory)\n  mode has an effect only when path is a file\n"
full_name: Shell::CommandProcessor#open
is_singleton: false
name: open
params: (path, mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: finish_all_jobs
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ProcessCommand#transact
full_name: Shell::CommandProcessor#check_point
is_singleton: false
name: check_point
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::alias_command
is_singleton: true
name: alias_command
params: (ali, command, *opts, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: process management
full_name: Shell#jobs
is_singleton: false
name: jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell#debug=
is_singleton: false
name: debug=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::AppendIO#input=
is_singleton: false
name: input=
params: (filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::AppendIO::new
is_singleton: true
name: new
params: (sh, io, filter)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: class Sort &lt; Cat
- !ruby/struct:SM::Flow::VERB 
  body: "  def initialize(sh, *filenames)\n    super\n  end\n\n  def each(rs = nil)\n    ary = []\n    super{|l|       ary.push l}\n    for l in ary.sort!\n    yield l\n    end\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: end
constants: []

full_name: Shell::AppendIO
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: input=
name: AppendIO
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell#system_path=
is_singleton: false
name: system_path=
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::debug=
is_singleton: true
name: debug=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::default_system_path
is_singleton: true
name: default_system_path
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Shell::BuiltInCommand
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: active?
- !ruby/object:RI::MethodSummary 
  name: wait?
name: BuiltInCommand
superclass: Filter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::BuiltInCommand#active?
is_singleton: false
name: active?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::BuiltInCommand#wait?
is_singleton: false
name: wait?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: mes if iterator?
comment: 
full_name: Shell::notify
is_singleton: true
name: notify
params: (*opts, &block) {|mes if iterator?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#input=
is_singleton: false
name: input=
params: (filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#<
is_singleton: false
name: <
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#>>
is_singleton: false
name: ">>"
params: (to)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter::new
is_singleton: true
name: new
params: (sh)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: l
comment: 
full_name: Shell::Filter#each
is_singleton: false
name: each
params: (rs = nil) {|l| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#+
is_singleton: false
name: +
params: (filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#|
is_singleton: false
name: "|"
params: (filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Filter#>
is_singleton: false
name: ">"
params: (to)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: input
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Filter A method to require
- !ruby/struct:SM::Flow::VERB 
  body: "   each()\n"
constants: []

full_name: Shell::Filter
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: <
- !ruby/object:RI::MethodSummary 
  name: ">"
- !ruby/object:RI::MethodSummary 
  name: ">>"
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: input=
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: "|"
name: Filter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pushdir"
full_name: Shell#pushd
is_singleton: false
name: pushd
params: (path = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::default_record_separator=
is_singleton: true
name: default_record_separator=
params: (rs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: command definitions
full_name: Shell::def_system_command
is_singleton: true
name: def_system_command
params: (command, path = command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#active_job?
is_singleton: false
name: active_job?
params: (job)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#waiting_jobs_exist?
is_singleton: false
name: waiting_jobs_exist?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController::inactivate
is_singleton: true
name: inactivate
params: (pc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#waiting_job?
is_singleton: false
name: waiting_job?
params: (job)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: start a job
full_name: Shell::ProcessController#start_job
is_singleton: false
name: start_job
params: (command = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: schedule a command
full_name: Shell::ProcessController#add_schedule
is_singleton: false
name: add_schedule
params: (command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#active_jobs
is_singleton: false
name: active_jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: kill a job
full_name: Shell::ProcessController#kill_job
is_singleton: false
name: kill_job
params: (sig, command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ref
comment: 
full_name: Shell::ProcessController::each_active_object
is_singleton: true
name: each_active_object
params: () {|ref| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#waiting_jobs
is_singleton: false
name: waiting_jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#active_jobs_exist?
is_singleton: false
name: active_jobs_exist?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: activate
- !ruby/object:RI::MethodSummary 
  name: each_active_object
- !ruby/object:RI::MethodSummary 
  name: inactivate
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: process_controllers_exclusive
comment: 
constants: []

full_name: Shell::ProcessController
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: active_job?
- !ruby/object:RI::MethodSummary 
  name: active_jobs
- !ruby/object:RI::MethodSummary 
  name: active_jobs_exist?
- !ruby/object:RI::MethodSummary 
  name: add_schedule
- !ruby/object:RI::MethodSummary 
  name: jobs
- !ruby/object:RI::MethodSummary 
  name: jobs_exist?
- !ruby/object:RI::MethodSummary 
  name: kill_job
- !ruby/object:RI::MethodSummary 
  name: sfork
- !ruby/object:RI::MethodSummary 
  name: start_job
- !ruby/object:RI::MethodSummary 
  name: terminate_job
- !ruby/object:RI::MethodSummary 
  name: wait_all_jobs_execution
- !ruby/object:RI::MethodSummary 
  name: waiting_job?
- !ruby/object:RI::MethodSummary 
  name: waiting_jobs
- !ruby/object:RI::MethodSummary 
  name: waiting_jobs_exist?
name: ProcessController
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController::new
is_singleton: true
name: new
params: (shell)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: simple fork
full_name: Shell::ProcessController#sfork
is_singleton: false
name: sfork
params: (command, &block) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#jobs
is_singleton: false
name: jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Shell::ProcessController::process_controllers_exclusive
is_singleton: true
name: process_controllers_exclusive
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController#jobs_exist?
is_singleton: false
name: jobs_exist?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: wait for all jobs to terminate
full_name: Shell::ProcessController#wait_all_jobs_execution
is_singleton: false
name: wait_all_jobs_execution
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: terminate a job
full_name: Shell::ProcessController#terminate_job
is_singleton: false
name: terminate_job
params: (command)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::ProcessController::activate
is_singleton: true
name: activate
params: (pc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::cd
is_singleton: true
name: cd
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Concat::new
is_singleton: true
name: new
params: (sh, *jobs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: l
comment: 
full_name: Shell::Concat#each
is_singleton: false
name: each
params: (rs = nil) {|l| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::Concat
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
name: Concat
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::undef_system_command
is_singleton: true
name: undef_system_command
params: (command)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Shell::Cat
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
name: Cat
superclass: BuiltInCommand
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Shell::Cat::new
is_singleton: true
name: new
params: (sh, *filenames)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: l
comment: 
full_name: Shell::Cat#each
is_singleton: false
name: each
params: (rs = nil) {|l| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: TSortTest
includes: []

instance_methods: []

name: TSortTest
superclass: Test::Unit::TestCase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: SortedSet implements a set which elements are sorted in order. See Set.
constants: []

full_name: SortedSet
includes: []

instance_methods: []

name: SortedSet
superclass: Set
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Classes in Ruby are first-class objects---each is an instance of class <tt>Class</tt>.
- !ruby/struct:SM::Flow::P 
  body: "When a new class is created (typically using <tt>class Name ... end</tt>), an object of type <tt>Class</tt> is created and assigned to a global constant (<tt>Name</tt> in this case). When <tt>Name.new</tt> is called to create a new object, the <tt>new</tt> method in <tt>Class</tt> is run by default. This can be demonstrated by overriding <tt>new</tt> in <tt>Class</tt>:"
- !ruby/struct:SM::Flow::VERB 
  body: "   class Class\n      alias oldNew  new\n      def new(*args)\n        print &quot;Creating a new &quot;, self.name, &quot;\\n&quot;\n        oldNew(*args)\n      end\n    end\n\n    class Name\n    end\n\n    n = Name.new\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Creating a new Name\n"
- !ruby/struct:SM::Flow::P 
  body: Classes, modules, and objects are interrelated. In the diagram that follows, the vertical arrows represent inheritance, and the parentheses meta-classes. All metaclasses are instances of the class `Class'.
- !ruby/struct:SM::Flow::VERB 
  body: "                          +------------------+\n                          |                  |\n            Object----&gt;(Object)              |\n             ^  ^        ^  ^                |\n             |  |        |  |                |\n             |  |  +-----+  +---------+      |\n             |  |  |                  |      |\n             |  +-----------+         |      |\n             |     |        |         |      |\n      +------+     |     Module---&gt;(Module)  |\n      |            |        ^         ^      |\n OtherClass--&gt;(OtherClass)  |         |      |\n                            |         |      |\n                          Class----&gt;(Class)  |\n                            ^                |\n                            |                |\n                            +----------------+\n"
constants: []

full_name: Class
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: allocate
- !ruby/object:RI::MethodSummary 
  name: inherited
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: superclass
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: Class
superclass: Module
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the superclass of <em>class</em>, or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.superclass     #=&gt; IO\n   IO.superclass       #=&gt; Object\n   Object.superclass   #=&gt; nil\n"
full_name: Class#superclass
is_singleton: false
name: superclass
params: |
  class.superclass -> a_super_class or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <tt>allocate</tt> to create a new object of <em>class</em>'s class, then invokes that object's <tt>initialize</tt> method, passing it <em>args</em>. This is the method that ends up getting called whenever an object is constructed using .new.
full_name: Class#new
is_singleton: false
name: new
params: |
  class.new(args, ...)    =>  obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new anonymous (unnamed) class with the given superclass (or <tt>Object</tt> if no parameter is given). You can give a class a name by assigning the class object to a constant.
full_name: Class::new
is_singleton: true
name: new
params: |
  Class.new(super_class=Object)   =>    a_class

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Allocates space for a new object of <em>class</em>'s class and does not call initialize on the new instance. The returned object must be an instance of <em>class</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "    klass = Class.new do\n      def initialize(*args)\n        @initialized = true\n      end\n\n      def initialized?\n        @initialized || false\n      end\n    end\n\n    klass.allocate.initialized? #=&gt; false\n"
full_name: Class#allocate
is_singleton: false
name: allocate
params: |
  class.allocate()   =>   obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Class#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Callback invoked whenever a subclass of the current class is created.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "   class Foo\n      def self.inherited(subclass)\n         puts &quot;New subclass: #{subclass}&quot;\n      end\n   end\n\n   class Bar &lt; Foo\n   end\n\n   class Baz &lt; Bar\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "   New subclass: Bar\n   New subclass: Baz\n"
full_name: Class#inherited
is_singleton: false
name: inherited
params: |
  inherited(subclass)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Numeric#divmod</tt>.
full_name: Float#divmod
is_singleton: false
name: divmod
params: |
  flt.divmod(numeric)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if <tt>flt</tt> is less than or equal to <tt>other</tt>.
full_name: Float#<=
is_singleton: false
name: <=
params: |
  flt <= other    =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns float, negated.
full_name: Float#-@
is_singleton: false
name: -@
params: |
  -float   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> only if <em>obj</em> is a <tt>Float</tt> with the same value as <em>flt</em>. Contrast this with <tt>Float#==</tt>, which performs type conversions.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.0.eql?(1)   #=&gt; false\n"
full_name: Float#eql?
is_singleton: false
name: eql?
params: |
  flt.eql?(obj)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns -1, 0, or +1 depending on whether <em>flt</em> is less than, equal to, or greater than <em>numeric</em>. This is the basis for the tests in <tt>Comparable</tt>.
full_name: Float#<=>
is_singleton: false
name: <=>
params: |
  flt <=> numeric   => -1, 0, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>flt</em> truncated to an <tt>Integer</tt>.
full_name: Float#to_i
is_singleton: false
name: to_i
params: |
  flt.to_i       => integer
  flt.to_int     => integer
  flt.truncate   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> only if <em>obj</em> has the same value as <em>flt</em>. Contrast this with <tt>Float#eql?</tt>, which requires <em>obj</em> to be a <tt>Float</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.0 == 1   #=&gt; true\n"
full_name: Float#==
is_singleton: false
name: ==
params: |
  flt == obj   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if <tt>flt</tt> is less than <tt>other</tt>.
full_name: Float#<
is_singleton: false
name: <
params: |
  flt < other    =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new float which is the product of <tt>float</tt> and <tt>other</tt>.
full_name: Float#*
is_singleton: false
name: "*"
params: |
  float * other   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt>, -1, or +1 depending on whether <em>flt</em> is finite, -infinity, or +infinity.
- !ruby/struct:SM::Flow::VERB 
  body: "   (0.0).infinite?        #=&gt; nil\n   (-1.0/0.0).infinite?   #=&gt; -1\n   (+1.0/0.0).infinite?   #=&gt; 1\n"
full_name: Float#infinite?
is_singleton: false
name: infinite?
params: |
  flt.infinite? -> nil, -1, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a hash code for this float.
full_name: Float#hash
is_singleton: false
name: hash
params: |
  flt.hash   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: " flt ** other   =&gt; float\n"
- !ruby/struct:SM::Flow::P 
  body: Raises <tt>float</tt> the <tt>other</tt> power.
full_name: Float#**
is_singleton: false
name: "**"
params: |
  

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>flt</em> is an invalid IEEE floating point number.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = -1.0      #=&gt; -1.0\n   a.nan?        #=&gt; false\n   a = 0.0/0.0   #=&gt; NaN\n   a.nan?        #=&gt; true\n"
full_name: Float#nan?
is_singleton: false
name: nan?
params: |
  flt.nan? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the modulo after division of <tt>flt</tt> by <tt>other</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   6543.21.modulo(137)      #=&gt; 104.21\n   6543.21.modulo(137.24)   #=&gt; 92.9299999999996\n"
full_name: Float#modulo
is_singleton: false
name: modulo
params: |
  flt % other         => float
  flt.modulo(other)   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>flt</em> truncated to an <tt>Integer</tt>.
full_name: Float#to_int
is_singleton: false
name: to_int
params: |
  flt.to_i       => integer
  flt.to_int     => integer
  flt.truncate   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the modulo after division of <tt>flt</tt> by <tt>other</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   6543.21.modulo(137)      #=&gt; 104.21\n   6543.21.modulo(137.24)   #=&gt; 92.9299999999996\n"
full_name: Float#%
is_singleton: false
name: "%"
params: |
  flt % other         => float
  flt.modulo(other)   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Float#dclone
is_singleton: false
name: dclone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the smallest <tt>Integer</tt> greater than or equal to <em>flt</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.2.ceil      #=&gt; 2\n   2.0.ceil      #=&gt; 2\n   (-1.2).ceil   #=&gt; -1\n   (-2.0).ceil   #=&gt; -2\n"
full_name: Float#ceil
is_singleton: false
name: ceil
params: |
  flt.ceil    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing a representation of self. As well as a fixed or exponential form of the number, the call may return ``<tt>NaN</tt>'', ``<tt>Infinity</tt>'', and ``<tt>-Infinity</tt>''.
full_name: Float#to_s
is_singleton: false
name: to_s
params: |
  flt.to_s    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: Float#coerce
is_singleton: false
name: coerce
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value of <em>flt</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (-34.56).abs   #=&gt; 34.56\n   -34.56.abs     #=&gt; 34.56\n"
full_name: Float#abs
is_singleton: false
name: abs
params: |
  flt.abs    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>flt</em> truncated to an <tt>Integer</tt>.
full_name: Float#truncate
is_singleton: false
name: truncate
params: |
  flt.to_i       => integer
  flt.to_int     => integer
  flt.truncate   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new float which is the result of dividing <tt>float</tt> by <tt>other</tt>.
full_name: Float#/
is_singleton: false
name: /
params: |
  float / other   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new float which is the sum of <tt>float</tt> and <tt>other</tt>.
full_name: Float#+
is_singleton: false
name: +
params: |
  float + other   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new float which is the difference of <tt>float</tt> and <tt>other</tt>.
full_name: Float#-
is_singleton: false
name: "-"
params: |
  float + other   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Float#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the largest integer less than or equal to <em>flt</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.2.floor      #=&gt; 1\n   2.0.floor      #=&gt; 2\n   (-1.2).floor   #=&gt; -2\n   (-2.0).floor   #=&gt; -2\n"
full_name: Float#floor
is_singleton: false
name: floor
params: |
  flt.floor   => integer

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: induced_from
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Float</tt> objects represent real numbers using the native architecture's double-precision floating point representation.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ROUNDS
  value: INT2FIX(FLT_ROUNDS)
- !ruby/object:RI::Constant 
  comment: 
  name: RADIX
  value: INT2FIX(FLT_RADIX)
- !ruby/object:RI::Constant 
  comment: 
  name: MANT_DIG
  value: INT2FIX(DBL_MANT_DIG)
- !ruby/object:RI::Constant 
  comment: 
  name: DIG
  value: INT2FIX(DBL_DIG)
- !ruby/object:RI::Constant 
  comment: 
  name: MIN_EXP
  value: INT2FIX(DBL_MIN_EXP)
- !ruby/object:RI::Constant 
  comment: 
  name: MAX_EXP
  value: INT2FIX(DBL_MAX_EXP)
- !ruby/object:RI::Constant 
  comment: 
  name: MIN_10_EXP
  value: INT2FIX(DBL_MIN_10_EXP)
- !ruby/object:RI::Constant 
  comment: 
  name: MAX_10_EXP
  value: INT2FIX(DBL_MAX_10_EXP)
- !ruby/object:RI::Constant 
  comment: 
  name: MIN
  value: rb_float_new(DBL_MIN)
- !ruby/object:RI::Constant 
  comment: 
  name: MAX
  value: rb_float_new(DBL_MAX)
- !ruby/object:RI::Constant 
  comment: 
  name: EPSILON
  value: rb_float_new(DBL_EPSILON)
full_name: Float
includes: 
- !ruby/object:RI::IncludedModule 
  name: Precision
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: -@
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: <
- !ruby/object:RI::MethodSummary 
  name: <=
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ">"
- !ruby/object:RI::MethodSummary 
  name: ">="
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: ceil
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: dclone
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: finite?
- !ruby/object:RI::MethodSummary 
  name: floor
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: infinite?
- !ruby/object:RI::MethodSummary 
  name: modulo
- !ruby/object:RI::MethodSummary 
  name: nan?
- !ruby/object:RI::MethodSummary 
  name: round
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_int
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: zero?
name: Float
superclass: Numeric
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if <tt>flt</tt> is greater than <tt>other</tt>.
full_name: Float#>
is_singleton: false
name: ">"
params: |
  flt > other    =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: As <tt>flt</tt> is already a float, returns <em>self</em>.
full_name: Float#to_f
is_singleton: false
name: to_f
params: |
  flt.to_f   => flt

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>flt</em> is a valid IEEE floating point number (it is not infinite, and <tt>nan?</tt> is <tt>false</tt>).
full_name: Float#finite?
is_singleton: false
name: finite?
params: |
  flt.finite? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if <tt>flt</tt> is greater than or equal to <tt>other</tt>.
full_name: Float#>=
is_singleton: false
name: ">="
params: |
  flt >= other    =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>flt</em> is 0.0.
full_name: Float#zero?
is_singleton: false
name: zero?
params: |
  flt.zero? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Rounds <em>flt</em> to the nearest integer. Equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "   def round\n     return (self+0.5).floor if self &gt; 0.0\n     return (self-0.5).ceil  if self &lt; 0.0\n     return 0\n   end\n\n   1.5.round      #=&gt; 2\n   (-1.5).round   #=&gt; -2\n"
full_name: Float#round
is_singleton: false
name: round
params: |
  flt.round   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert <tt>obj</tt> to a float.
full_name: Float::induced_from
is_singleton: true
name: induced_from
params: |
  Float.induced_from(obj)    =>  float

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when the given argument does not match required format.
constants: []

full_name: InvalidArgument
includes: []

instance_methods: []

name: InvalidArgument
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of threads waiting on the queue.
full_name: Queue#num_waiting
is_singleton: false
name: num_waiting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #length"
full_name: Queue#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
- !ruby/object:RI::AliasName 
  name: enq
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pushes <tt>obj</tt> to the queue.
full_name: Queue#push
is_singleton: false
name: push
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: shift
- !ruby/object:RI::AliasName 
  name: deq
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves data from the queue. If the queue is empty, the calling thread is suspended until data is pushed onto the queue. If <tt>non_block</tt> is true, the thread isn't suspended, and an exception is raised.
full_name: Queue#pop
is_singleton: false
name: pop
params: (non_block=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes all objects from the queue.
full_name: Queue#clear
is_singleton: false
name: clear
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> is the queue is empty.
full_name: Queue#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: Queue#shift
is_singleton: false
name: shift
params: (non_block=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new queue.
full_name: Queue::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class provides a way to synchronize communication between threads.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'thread'\n\n  queue = Queue.new\n\n  producer = Thread.new do\n    5.times do |i|\n      sleep rand(i) # simulate expense\n      queue &lt;&lt; i\n      puts &quot;#{i} produced&quot;\n    end\n  end\n\n  consumer = Thread.new do\n    5.times do |i|\n      value = queue.pop\n      sleep rand(i/2) # simulate expense\n      puts &quot;consumed #{value}&quot;\n    end\n  end\n\n  consumer.join\n"
constants: []

full_name: Queue
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: deq
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: enq
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: num_waiting
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: shift
- !ruby/object:RI::MethodSummary 
  name: size
name: Queue
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: size
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the length of the queue.
full_name: Queue#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #push"
full_name: Queue#enq
is_singleton: false
name: enq
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #push"
full_name: Queue#<<
is_singleton: false
name: "<<"
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: Queue#deq
is_singleton: false
name: deq
params: (non_block=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the quotient <em>and</em> remainder.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(7,4)        # -&gt; Rational(7,4)\n  r.divmod Rational(1,2)   # -&gt; [3, Rational(1,4)]\n"
full_name: Rational#divmod
is_singleton: false
name: divmod
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Standard comparison operator.
full_name: Rational#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #truncate"
full_name: Rational#to_i
is_singleton: false
name: to_i
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Implements the constructor. This method does not reduce to lowest terms or check for division by zero. Therefore #Rational() should be preferred in normal use."
full_name: Rational::new!
is_singleton: true
name: new!
params: (num, den = 1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff this value is numerically equal to <tt>other</tt>.
- !ruby/struct:SM::Flow::P 
  body: "But beware:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(1,2) == Rational(4,8)          # -&gt; true\n  Rational(1,2) == Rational.new!(4,8)     # -&gt; false\n"
- !ruby/struct:SM::Flow::P 
  body: Don't use Rational.new!
full_name: Rational#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the product of this value and <tt>a</tt>.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(3,4)    # -&gt; Rational(3,4)\n  r * 2                # -&gt; Rational(3,2)\n  r * 4                # -&gt; Rational(3,1)\n  r * 0.5              # -&gt; 0.375\n  r * Rational(1,2)    # -&gt; Rational(3,8)\n"
full_name: Rational#*
is_singleton: false
name: "*"
params: (a)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a reconstructable string representation:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(5,8).inspect     # -&gt; &quot;Rational(5, 8)&quot;\n"
full_name: Rational#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>self</tt>.
full_name: Rational#to_r
is_singleton: false
name: to_r
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a hash code for the object.
full_name: Rational#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rational#div
is_singleton: false
name: div
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns this value raised to the given power.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(3,4)    # -&gt; Rational(3,4)\n  r ** 2               # -&gt; Rational(9,16)\n  r ** 2.0             # -&gt; 0.5625\n  r ** Rational(1,2)   # -&gt; 0.866025403784439\n"
full_name: Rational#**
is_singleton: false
name: "**"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reduces the given numerator and denominator to their lowest terms. Use Rational() instead.
full_name: Rational::reduce
is_singleton: true
name: reduce
params: (num, den = 1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method is actually private.
full_name: Rational::new
is_singleton: true
name: new
params: (num, den)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the remainder when this value is divided by <tt>other</tt>.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(7,4)    # -&gt; Rational(7,4)\n  r % Rational(1,2)    # -&gt; Rational(1,4)\n  r % 1                # -&gt; Rational(3,4)\n  r % Rational(1,7)    # -&gt; Rational(1,28)\n  r % 0.26             # -&gt; 0.19\n"
full_name: Rational#%
is_singleton: false
name: "%"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rational#ceil
is_singleton: false
name: ceil
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string representation of the rational number.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(3,4).to_s          #  &quot;3/4&quot;\n  Rational(8).to_s            #  &quot;8&quot;\n"
full_name: Rational#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rational#coerce
is_singleton: false
name: coerce
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value.
full_name: Rational#abs
is_singleton: false
name: abs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_i
block_params: 
comment: 
full_name: Rational#truncate
is_singleton: false
name: truncate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the quotient of this value and <tt>a</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(3,4)    # -&gt; Rational(3,4)\n  r / 2                # -&gt; Rational(3,8)\n  r / 2.0              # -&gt; 0.375\n  r / Rational(1,2)    # -&gt; Rational(3,2)\n"
full_name: Rational#/
is_singleton: false
name: /
params: (a)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the addition of this value and <tt>a</tt>.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(3,4)      # -&gt; Rational(3,4)\n  r + 1                  # -&gt; Rational(7,4)\n  r + 0.5                # -&gt; 1.25\n"
full_name: Rational#+
is_singleton: false
name: +
params: (a)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the difference of this value and <tt>a</tt>. subtracted.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  r = Rational(3,4)    # -&gt; Rational(3,4)\n  r - 1                # -&gt; Rational(-1,4)\n  r - 0.5              # -&gt; 0.25\n"
full_name: Rational#-
is_singleton: false
name: "-"
params: (a)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: denominator
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: numerator
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new!
- !ruby/object:RI::MethodSummary 
  name: reduce
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rational implements a rational class for numbers.
- !ruby/struct:SM::Flow::P 
  body: <em>A rational number is a number that can be expressed as a fraction p/q where p and q are integers and q != 0. A rational number p/q is said to have numerator p and denominator q. Numbers that are not rational are called irrational numbers.</em> (http://mathworld.wolfram.com/RationalNumber.html)
- !ruby/struct:SM::Flow::P 
  body: "To create a Rational Number:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(a,b)             # -&gt; a/b\n  Rational.new!(a,b)        # -&gt; a/b\n"
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(5,6)             # -&gt; 5/6\n  Rational(5)               # -&gt; 5/1\n"
- !ruby/struct:SM::Flow::P 
  body: "Rational numbers are reduced to their lowest terms:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(6,10)            # -&gt; 3/5\n"
- !ruby/struct:SM::Flow::P 
  body: "But not if you use the unusual method &quot;new!&quot;:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational.new!(6,10)       # -&gt; 6/10\n"
- !ruby/struct:SM::Flow::P 
  body: "Division by zero is obviously not allowed:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(3,0)             # -&gt; ZeroDivisionError\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Unify
  value: "true"
full_name: Rational
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: ceil
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: div
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: floor
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: power2
- !ruby/object:RI::MethodSummary 
  name: round
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_r
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: truncate
name: Rational
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Converts the rational to an Integer. Not the <em>nearest</em> integer, the truncated integer. Study the following example carefully:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(+7,4).to_i             # -&gt; 1\n  Rational(-7,4).to_i             # -&gt; -1\n  (-1.75).to_i                    # -&gt; -1\n"
- !ruby/struct:SM::Flow::P 
  body: "In other words:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(-7,4) == -1.75                 # -&gt; true\n  Rational(-7,4).to_i == (-1.75).to_i     # -&gt; true\n"
full_name: Rational#floor
is_singleton: false
name: floor
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts the rational to a Float.
full_name: Rational#to_f
is_singleton: false
name: to_f
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rational#round
is_singleton: false
name: round
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rational#power2
is_singleton: false
name: power2
params: (other)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculate the set of unique abbreviations for a given set of strings.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'abbrev'\n  require 'pp'\n\n  pp Abbrev::abbrev(['ruby', 'rules']).sort\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "  [[&quot;rub&quot;, &quot;ruby&quot;],\n   [&quot;ruby&quot;, &quot;ruby&quot;],\n   [&quot;rul&quot;, &quot;rules&quot;],\n   [&quot;rule&quot;, &quot;rules&quot;],\n   [&quot;rules&quot;, &quot;rules&quot;]]\n"
- !ruby/struct:SM::Flow::P 
  body: Also adds an <tt>abbrev</tt> method to class <tt>Array</tt>.
constants: []

full_name: Abbrev
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: abbrev
name: Abbrev
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given a set of strings, calculate the set of unambiguous abbreviations for those strings, and return a hash where the keys are all the possible abbreviations and the values are the full strings. Thus, given input of &quot;car&quot; and &quot;cone&quot;, the keys pointing to &quot;car&quot; would be &quot;ca&quot; and &quot;car&quot;, while those pointing to &quot;cone&quot; would be &quot;co&quot;, &quot;con&quot;, and &quot;cone&quot;.
- !ruby/struct:SM::Flow::P 
  body: The optional <tt>pattern</tt> parameter is a pattern or a string. Only those input strings matching the pattern, or begging the string, are considered for inclusion in the output hash
full_name: Abbrev#abbrev
is_singleton: false
name: abbrev
params: (words, pattern = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: Interrupt
includes: []

instance_methods: []

name: Interrupt
superclass: SignalException
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return true if we can open a connection to the hostname or IP address <tt>host</tt> on port <tt>service</tt> (which defaults to the &quot;echo&quot; port) waiting up to <tt>timeout</tt> seconds.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ping'\n\n  Ping.pingecho &quot;google.com&quot;, 10, 80\n"
full_name: Ping#pingecho
is_singleton: false
name: pingecho
params: (host, timeout=5, service="echo")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Ping contains routines to test for the reachability of remote hosts. Currently the only routine implemented is pingecho().
- !ruby/struct:SM::Flow::P 
  body: Ping.pingecho uses a TCP echo (not an ICMP echo) to determine if the remote host is reachable. This is usually adequate to tell that a remote host is available to telnet, ftp, or ssh to.
- !ruby/struct:SM::Flow::P 
  body: "Warning: Ping.pingecho may block for a long time if DNS resolution is slow. Requiring 'resolv-replace' allows non-blocking name resolution."
- !ruby/struct:SM::Flow::P 
  body: "Usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ping'\n\n  puts &quot;'jimmy' is alive and kicking&quot; if Ping.pingecho('jimmy', 10)\n"
constants: []

full_name: Ping
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: pingecho
name: Ping
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when there is an argument for a switch which takes no argument.
constants: []

full_name: NeedlessArgument
includes: []

instance_methods: []

name: NeedlessArgument
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Accessor method for elements of the tuple.
full_name: Rinda::Tuple#[]
is_singleton: false
name: "[]"
params: (k)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A tuple is the elementary object in Rinda programming. Tuples may be matched against templates if the tuple and the template are the same size.
constants: []

full_name: Rinda::Tuple
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: hash?
- !ruby/object:RI::MethodSummary 
  name: init_with_ary
- !ruby/object:RI::MethodSummary 
  name: init_with_hash
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: value
name: Tuple
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The number of elements in the tuple.
full_name: Rinda::Tuple#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches item <tt>k</tt> from the tuple.
full_name: Rinda::Tuple#fetch
is_singleton: false
name: fetch
params: (k)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Munges <tt>ary</tt> into a valid Tuple.
full_name: Rinda::Tuple#init_with_ary
is_singleton: false
name: init_with_ary
params: (ary)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Tuple from <tt>ary_or_hash</tt> which must be an Array or Hash.
full_name: Rinda::Tuple::new
is_singleton: true
name: new
params: (ary_or_hash)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the tuple itself
full_name: Rinda::Tuple#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::Tuple#hash?
is_singleton: false
name: hash?
params: (ary_or_hash)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (k, v)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterate through the tuple, yielding the index or key, and the value, thus ensuring arrays are iterated similarly to hashes.
full_name: Rinda::Tuple#each
is_singleton: false
name: each
params: ( {|k, v| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ensures <tt>hash</tt> is a valid Tuple.
full_name: Rinda::Tuple#init_with_hash
is_singleton: false
name: init_with_hash
params: (hash)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when trying to use an expired tuple.
constants: []

full_name: Rinda::RequestExpiredError
includes: []

instance_methods: []

name: RequestExpiredError
superclass: ThreadError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This DRbObjectTemplate matches <tt>ro</tt> if the remote object's drburi and drbref are the same. <tt>nil</tt> is used as a wildcard.
full_name: Rinda::DRbObjectTemplate#===
is_singleton: false
name: ===
params: (ro)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new DRbObjectTemplate that will match against <tt>uri</tt> and <tt>ref</tt>.
full_name: Rinda::DRbObjectTemplate::new
is_singleton: true
name: new
params: (uri=nil, ref=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: <em>Documentation?</em>
constants: []

full_name: Rinda::DRbObjectTemplate
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ===
name: DRbObjectTemplate
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds <tt>tuple</tt>
full_name: Rinda::TupleSpace#write
is_singleton: false
name: write
params: (tuple, sec=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleSpace#create_entry
is_singleton: false
name: create_entry
params: (tuple, sec)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TupleSpace. <tt>period</tt> is used to control how often to look for dead tuples after modifications to the TupleSpace.
- !ruby/struct:SM::Flow::P 
  body: If no dead tuples are found <tt>period</tt> seconds after the last modification, the TupleSpace will stop looking for dead tuples.
full_name: Rinda::TupleSpace::new
is_singleton: true
name: new
params: (period=60)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (template)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads <tt>tuple</tt>, but does not remove it.
full_name: Rinda::TupleSpace#read
is_singleton: false
name: read
params: (tuple, sec=nil) {|template| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns all tuples matching <tt>tuple</tt>. Does not remove the found tuples.
full_name: Rinda::TupleSpace#read_all
is_singleton: false
name: read_all
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Notifies all registered listeners for <tt>event</tt> of a status change of <tt>tuple</tt>.
full_name: Rinda::TupleSpace#notify_event
is_singleton: false
name: notify_event
params: (event, tuple)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes dead tuples.
full_name: Rinda::TupleSpace#keep_clean
is_singleton: false
name: keep_clean
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (template)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Moves <tt>tuple</tt> to <tt>port</tt>.
full_name: Rinda::TupleSpace#move
is_singleton: false
name: move
params: (port, tuple, sec=nil) {|template| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The Tuplespace manages access to the tuples it contains, ensuring mutual exclusion requirements are met.
- !ruby/struct:SM::Flow::P 
  body: The <tt>sec</tt> option for the write, take, move, read and notify methods may either be a number of seconds or a Renewer object.
constants: []

full_name: Rinda::TupleSpace
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: create_entry
- !ruby/object:RI::MethodSummary 
  name: keep_clean
- !ruby/object:RI::MethodSummary 
  name: move
- !ruby/object:RI::MethodSummary 
  name: need_keeper?
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: notify_event
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: read_all
- !ruby/object:RI::MethodSummary 
  name: start_keeper
- !ruby/object:RI::MethodSummary 
  name: take
- !ruby/object:RI::MethodSummary 
  name: write
name: TupleSpace
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Registers for notifications of <tt>event</tt>. Returns a NotifyTemplateEntry. See NotifyTemplateEntry for examples of how to listen for notifications.
- !ruby/struct:SM::Flow::P 
  body: "<tt>event</tt> can be:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "'write':"
    body: A tuple was added
  - !ruby/struct:SM::Flow::LI 
    label: "'take':"
    body: A tuple was taken or moved
  - !ruby/struct:SM::Flow::LI 
    label: "'delete':"
    body: A tuple was lost after being overwritten or expiring
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: The TupleSpace will also notify you of the 'close' event when the NotifyTemplateEntry has expired.
full_name: Rinda::TupleSpace#notify
is_singleton: false
name: notify
params: (event, tuple, sec=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a thread that scans the tuplespace for expired tuples.
full_name: Rinda::TupleSpace#start_keeper
is_singleton: false
name: start_keeper
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes <tt>tuple</tt>
full_name: Rinda::TupleSpace#take
is_singleton: false
name: take
params: (tuple, sec=nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Checks the tuplespace to see if it needs cleaning.
full_name: Rinda::TupleSpace#need_keeper?
is_singleton: false
name: need_keeper?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Rinda error base class
constants: []

full_name: Rinda::RindaError
includes: []

instance_methods: []

name: RindaError
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves <tt>key</tt> from the tuple.
full_name: Rinda::TupleEntry#[]
is_singleton: false
name: "[]"
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A TupleEntry is dead when it is canceled or expired.
full_name: Rinda::TupleEntry#alive?
is_singleton: false
name: alive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The size of the tuple.
full_name: Rinda::TupleEntry#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches <tt>key</tt> from the tuple.
full_name: Rinda::TupleEntry#fetch
is_singleton: false
name: fetch
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Marks this TupleEntry as canceled.
full_name: Rinda::TupleEntry#cancel
is_singleton: false
name: cancel
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns an expiry Time based on <tt>sec</tt> which can be one of:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Numeric:"
    body: <tt>sec</tt> seconds into the future
  - !ruby/struct:SM::Flow::LI 
    label: "+true+:"
    body: the expiry time is the start of 1970 (i.e. expired)
  - !ruby/struct:SM::Flow::LI 
    label: "+nil+:"
    body: it is Tue Jan 19 03:14:07 GMT Standard Time 2038 (i.e. when UNIX clocks will die)
  type: :NOTE
full_name: Rinda::TupleEntry#make_expires
is_singleton: false
name: make_expires
params: (sec=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Has this tuple expired? (true/false).
- !ruby/struct:SM::Flow::P 
  body: "A tuple has expired when its expiry timer based on the <tt>sec</tt> argument to #initialize runs out."
full_name: Rinda::TupleEntry#expired?
is_singleton: false
name: expired?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the canceled status.
full_name: Rinda::TupleEntry#canceled?
is_singleton: false
name: canceled?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a Rinda::Tuple for <tt>ary</tt>.
full_name: Rinda::TupleEntry#make_tuple
is_singleton: false
name: make_tuple
params: (ary)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a TupleEntry based on <tt>ary</tt> with an optional renewer or expiry time <tt>sec</tt>.
- !ruby/struct:SM::Flow::P 
  body: A renewer must implement the <tt>renew</tt> method which returns a Numeric, nil, or true to indicate when the tuple has expired.
full_name: Rinda::TupleEntry::new
is_singleton: true
name: new
params: (ary, sec=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Return the object which makes up the tuple itself: the Array or Hash."
full_name: Rinda::TupleEntry#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a valid argument to make_expires and the renewer or nil.
- !ruby/struct:SM::Flow::P 
  body: Given <tt>true</tt>, <tt>nil</tt>, or Numeric, returns that value and <tt>nil</tt> (no actual renewer). Otherwise it returns an expiry value from calling +it.renew+ and the renewer.
full_name: Rinda::TupleEntry#get_renewer
is_singleton: false
name: get_renewer
params: (it)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reset the expiry time according to <tt>sec_or_renewer</tt>.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+nil+:"
    body: it is set to expire in the far future.
  - !ruby/struct:SM::Flow::LI 
    label: "+false+:"
    body: it has expired.
  - !ruby/struct:SM::Flow::LI 
    label: "Numeric:"
    body: it will expire in that many seconds.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: Otherwise the argument refers to some kind of renewer object which will reset its expiry time.
full_name: Rinda::TupleEntry#renew
is_singleton: false
name: renew
params: (sec_or_renewer)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: expires
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A TupleEntry is a Tuple (i.e. a possible entry in some Tuplespace) together with expiry and cancellation data.
constants: []

full_name: Rinda::TupleEntry
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: alive?
- !ruby/object:RI::MethodSummary 
  name: cancel
- !ruby/object:RI::MethodSummary 
  name: canceled?
- !ruby/object:RI::MethodSummary 
  name: expired?
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: get_renewer
- !ruby/object:RI::MethodSummary 
  name: make_expires
- !ruby/object:RI::MethodSummary 
  name: make_tuple
- !ruby/object:RI::MethodSummary 
  name: renew
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: value
name: TupleEntry
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves a notification. Raises RequestExpiredError when this NotifyTemplateEntry expires.
full_name: Rinda::NotifyTemplateEntry#pop
is_singleton: false
name: pop
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A NotifyTemplateEntry is returned by TupleSpace#notify and is notified of TupleSpace changes. You may receive either your subscribed event or the 'close' event when iterating over notifications.
- !ruby/struct:SM::Flow::P 
  body: See TupleSpace#notify_event for valid notification types.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  ts = Rinda::TupleSpace.new\n  observer = ts.notify 'write', [nil]\n\n  Thread.start do\n    observer.each { |t| p t }\n  end\n\n  3.times { |i| ts.write [i] }\n"
- !ruby/struct:SM::Flow::P 
  body: "Outputs:"
- !ruby/struct:SM::Flow::VERB 
  body: "  ['write', [0]]\n  ['write', [1]]\n  ['write', [2]]\n"
constants: []

full_name: Rinda::NotifyTemplateEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: pop
name: NotifyTemplateEntry
superclass: TemplateEntry
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new NotifyTemplateEntry that watches <tt>place</tt> for +event+s that match <tt>tuple</tt>.
full_name: Rinda::NotifyTemplateEntry::new
is_singleton: true
name: new
params: (place, event, tuple, expires=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: event, tuple
comment: 
- !ruby/struct:SM::Flow::P 
  body: Yields event/tuple pairs until this NotifyTemplateEntry expires.
full_name: Rinda::NotifyTemplateEntry#each
is_singleton: false
name: each
params: ( {|event, tuple| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called by TupleSpace to notify this NotifyTemplateEntry of a new event.
full_name: Rinda::NotifyTemplateEntry#notify
is_singleton: false
name: notify
params: (ev)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds <tt>tuple</tt> to the proxied TupleSpace. See TupleSpace#write.
full_name: Rinda::TupleSpaceProxy#write
is_singleton: false
name: write
params: (tuple, sec=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: TupleSpaceProxy allows a remote Tuplespace to appear as local.
constants: []

full_name: Rinda::TupleSpaceProxy
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: notify
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: read_all
- !ruby/object:RI::MethodSummary 
  name: take
- !ruby/object:RI::MethodSummary 
  name: write
name: TupleSpaceProxy
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TupleSpaceProxy to wrap <tt>ts</tt>.
full_name: Rinda::TupleSpaceProxy::new
is_singleton: true
name: new
params: (ts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads <tt>tuple</tt> from the proxied TupleSpace. See TupleSpace#read.
full_name: Rinda::TupleSpaceProxy#read
is_singleton: false
name: read
params: (tuple, sec=nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads all tuples matching <tt>tuple</tt> from the proxied TupleSpace. See TupleSpace#read_all.
full_name: Rinda::TupleSpaceProxy#read_all
is_singleton: false
name: read_all
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Registers for notifications of event <tt>ev</tt> on the proxied TupleSpace. See TupleSpace#notify
full_name: Rinda::TupleSpaceProxy#notify
is_singleton: false
name: notify
params: (ev, tuple, sec=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Takes <tt>tuple</tt> from the proxied TupleSpace. See TupleSpace#take.
full_name: Rinda::TupleSpaceProxy#take
is_singleton: false
name: take
params: (tuple, sec=nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #match"
full_name: Rinda::TemplateEntry#===
is_singleton: false
name: ===
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ===
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matches this TemplateEntry against <tt>tuple</tt>. See Template#match for details on how a Template matches a Tuple.
full_name: Rinda::TemplateEntry#match
is_singleton: false
name: match
params: (tuple)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A TemplateEntry is a Template together with expiry and cancellation data.
constants: []

full_name: Rinda::TemplateEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: match
name: TemplateEntry
superclass: TupleEntry
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a thread that picks up UDP packets and passes them to do_write for decoding.
full_name: Rinda::RingServer#write_service
is_singleton: false
name: write_service
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extracts the response URI from <tt>msg</tt> and adds it to TupleSpace where it will be picked up by <tt>reply_service</tt> for notification.
full_name: Rinda::RingServer#do_write
is_singleton: false
name: do_write
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Advertises <tt>ts</tt> on the UDP broadcast address at <tt>port</tt>.
full_name: Rinda::RingServer::new
is_singleton: true
name: new
params: (ts, port=Ring_PORT)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A RingServer allows a Rinda::TupleSpace to be located via UDP broadcasts. Service location uses the following steps:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: A RingServer begins listening on the broadcast UDP address.
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: A RingFinger sends a UDP packet containing the DRb URI where it will listen for a reply.
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: The RingServer receives the UDP packet and connects back to the provided DRb URI with the DRb service.
  type: :NUMBER
constants: []

full_name: Rinda::RingServer
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_reply
- !ruby/object:RI::MethodSummary 
  name: do_write
- !ruby/object:RI::MethodSummary 
  name: reply_service
- !ruby/object:RI::MethodSummary 
  name: write_service
name: RingServer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pulls lookup tuples out of the TupleSpace and sends their DRb object the address of the local TupleSpace.
full_name: Rinda::RingServer#do_reply
is_singleton: false
name: do_reply
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a thread that notifies waiting clients from the TupleSpace.
full_name: Rinda::RingServer#reply_service
is_singleton: false
name: reply_service
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A module to implement the Linda distributed computing paradigm in Ruby.
- !ruby/struct:SM::Flow::P 
  body: Rinda is part of DRb (dRuby).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example(s)
- !ruby/struct:SM::Flow::P 
  body: See the sample/drb/ directory in the Ruby distribution, from 1.8.2 onwards.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The default port Ring discovery will use.
  name: Ring_PORT
  value: "7647"
full_name: Rinda
includes: []

instance_methods: []

name: Rinda
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when trying to use a canceled tuple.
constants: []

full_name: Rinda::RequestCanceledError
includes: []

instance_methods: []

name: RequestCanceledError
superclass: ThreadError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #match."
full_name: Rinda::Template#===
is_singleton: false
name: ===
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Matches this template against <tt>tuple</tt>. The <tt>tuple</tt> must be the same size as the template. An element with a <tt>nil</tt> value in a template acts as a wildcard, matching any value in the corresponding position in the tuple. Elements of the template match the <tt>tuple</tt> if the are #== or #===."
- !ruby/struct:SM::Flow::VERB 
  body: "  Template.new([:foo, 5]).match   Tuple.new([:foo, 5]) # =&gt; true\n  Template.new([:foo, nil]).match Tuple.new([:foo, 5]) # =&gt; true\n  Template.new([String]).match    Tuple.new(['hello']) # =&gt; true\n\n  Template.new([:foo]).match      Tuple.new([:foo, 5]) # =&gt; false\n  Template.new([:foo, 6]).match   Tuple.new([:foo, 5]) # =&gt; false\n  Template.new([:foo, nil]).match Tuple.new([:foo])    # =&gt; false\n  Template.new([:foo, 6]).match   Tuple.new([:foo])    # =&gt; false\n"
full_name: Rinda::Template#match
is_singleton: false
name: match
params: (tuple)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Templates are used to match tuples in Rinda.
constants: []

full_name: Rinda::Template
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: match
name: Template
superclass: Tuple
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: An SimpleRenewer allows a TupleSpace to check if a TupleEntry is still alive.
constants: []

full_name: Rinda::SimpleRenewer
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: renew
name: SimpleRenewer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new SimpleRenewer that keeps an object alive for another <tt>sec</tt> seconds.
full_name: Rinda::SimpleRenewer::new
is_singleton: true
name: new
params: (sec=180)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called by the TupleSpace to check if the object is still alive.
full_name: Rinda::SimpleRenewer#renew
is_singleton: false
name: renew
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag::TupleBin#add
is_singleton: false
name: add
params: (tuple)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Rinda::TupleBag::TupleBin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: find
name: TupleBin
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag::TupleBin::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag::TupleBin#delete
is_singleton: false
name: delete
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (x)
comment: 
full_name: Rinda::TupleBag::TupleBin#find
is_singleton: false
name: find
params: (&blk) {|x| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finds all live tuples that match <tt>template</tt>.
full_name: Rinda::TupleBag#find_all
is_singleton: false
name: find_all
params: (template)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag#each_entry
is_singleton: false
name: each_entry
params: (&blk)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add <tt>tuple</tt> to the TupleBag.
full_name: Rinda::TupleBag#push
is_singleton: false
name: push
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finds all tuples in the TupleBag which when treated as templates, match <tt>tuple</tt> and are alive.
full_name: Rinda::TupleBag#find_all_template
is_singleton: false
name: find_all_template
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if the TupleBag to see if it has any expired entries.
full_name: Rinda::TupleBag#has_expires?
is_singleton: false
name: has_expires?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Delete tuples which dead tuples from the TupleBag, returning the deleted tuples.
full_name: Rinda::TupleBag#delete_unless_alive
is_singleton: false
name: delete_unless_alive
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes <tt>tuple</tt> from the TupleBag.
full_name: Rinda::TupleBag#delete
is_singleton: false
name: delete
params: (tuple)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finds a live tuple that matches <tt>template</tt>.
full_name: Rinda::TupleBag#find
is_singleton: false
name: find
params: (template)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag#bin_key
is_singleton: false
name: bin_key
params: (tuple)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: TupleBag is an unordered collection of tuples. It is the basis of Tuplespace.
constants: []

full_name: Rinda::TupleBag
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bin_for_find
- !ruby/object:RI::MethodSummary 
  name: bin_key
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_unless_alive
- !ruby/object:RI::MethodSummary 
  name: each_entry
- !ruby/object:RI::MethodSummary 
  name: find
- !ruby/object:RI::MethodSummary 
  name: find_all
- !ruby/object:RI::MethodSummary 
  name: find_all_template
- !ruby/object:RI::MethodSummary 
  name: has_expires?
- !ruby/object:RI::MethodSummary 
  name: push
name: TupleBag
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::TupleBag#bin_for_find
is_singleton: false
name: bin_for_find
params: (template)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The list of addresses where RingFinger will send query packets.
  name: broadcast_list
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The port that RingFinger will send query packets to.
  name: port
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Contain the first advertised TupleSpace after lookup_ring_any is called.
  name: primary
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: finger
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: primary
- !ruby/object:RI::MethodSummary 
  name: to_a
comment: 
- !ruby/struct:SM::Flow::P 
  body: RingFinger is used by RingServer clients to discover the RingServer's TupleSpace. Typically, all a client needs to do is call RingFinger.primary to retrieve the remote TupleSpace, which it can then begin using.
constants: []

full_name: Rinda::RingFinger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: lookup_ring
- !ruby/object:RI::MethodSummary 
  name: lookup_ring_any
- !ruby/object:RI::MethodSummary 
  name: to_a
name: RingFinger
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Contains all discovered TupleSpaces except for the primary.
full_name: Rinda::RingFinger#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Contains all discovered TupleSpaces except for the primary.
full_name: Rinda::RingFinger::to_a
is_singleton: true
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first advertised TupleSpace.
full_name: Rinda::RingFinger::primary
is_singleton: true
name: primary
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new RingFinger that will look for RingServers at <tt>port</tt> on the addresses in <tt>broadcast_list</tt>.
full_name: Rinda::RingFinger::new
is_singleton: true
name: new
params: (broadcast_list=@@broadcast_list, port=Ring_PORT)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (@primary)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all discovered TupleSpaces starting with the primary.
full_name: Rinda::RingFinger#each
is_singleton: false
name: each
params: () {|@primary| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a singleton RingFinger and looks for a RingServer. Returns the created RingFinger.
full_name: Rinda::RingFinger::finger
is_singleton: true
name: finger
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up RingServers waiting <tt>timeout</tt> seconds. RingServers will be given <tt>block</tt> as a callback, which will be called with the remote TupleSpace.
full_name: Rinda::RingFinger#lookup_ring
is_singleton: false
name: lookup_ring
params: (timeout=5, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first found remote TupleSpace. Any further recovered TupleSpaces can be found by calling <tt>to_a</tt>.
full_name: Rinda::RingFinger#lookup_ring_any
is_singleton: false
name: lookup_ring_any
params: (timeout=5)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::WaitTemplateEntry#cancel
is_singleton: false
name: cancel
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::WaitTemplateEntry#signal
is_singleton: false
name: signal
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::WaitTemplateEntry::new
is_singleton: true
name: new
params: (place, ary, expires=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::WaitTemplateEntry#read
is_singleton: false
name: read
params: (tuple)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: found
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: <em>Documentation?</em>
constants: []

full_name: Rinda::WaitTemplateEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: cancel
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: signal
- !ruby/object:RI::MethodSummary 
  name: wait
name: WaitTemplateEntry
superclass: TemplateEntry
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Rinda::WaitTemplateEntry#wait
is_singleton: false
name: wait
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when a hash-based tuple has an invalid key.
constants: []

full_name: Rinda::InvalidHashTupleKey
includes: []

instance_methods: []

name: InvalidHashTupleKey
superclass: RindaError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: RingProvider uses a RingServer advertised TupleSpace as a name service. TupleSpace clients can register themselves with the remote TupleSpace and look up other provided services via the remote TupleSpace.
- !ruby/struct:SM::Flow::P 
  body: Services are registered with a tuple of the format [:name, klass, DRbObject, description].
constants: []

full_name: Rinda::RingProvider
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: provide
name: RingProvider
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Advertises this service on the primary remote TupleSpace.
full_name: Rinda::RingProvider#provide
is_singleton: false
name: provide
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a RingProvider that will provide a <tt>klass</tt> service running on <tt>front</tt>, with a <tt>description</tt>. <tt>renewer</tt> is optional.
full_name: Rinda::RingProvider::new
is_singleton: true
name: new
params: (klass, front, desc, renewer = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when a switch with mandatory argument has no argument.
constants: []

full_name: MissingArgument
includes: []

instance_methods: []

name: MissingArgument
superclass: ParseError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: list
- !ruby/object:RI::MethodSummary 
  name: trap
comment: 
- !ruby/struct:SM::Flow::P 
  body: Many operating systems allow signals to be sent to running processes. Some signals have a defined effect on the process, while others may be trapped at the code level and acted upon. For example, your process may trap the USR1 signal and use it to toggle debugging, and may use TERM to initiate a controlled shutdown.
- !ruby/struct:SM::Flow::VERB 
  body: "    pid = fork do\n      Signal.trap(&quot;USR1&quot;) do\n        $debug = !$debug\n        puts &quot;Debug now: #$debug&quot;\n      end\n      Signal.trap(&quot;TERM&quot;) do\n        puts &quot;Terminating...&quot;\n        shutdown()\n      end\n      # . . . do some work . . .\n    end\n\n    Process.detach(pid)\n\n    # Controlling program:\n    Process.kill(&quot;USR1&quot;, pid)\n    # ...\n    Process.kill(&quot;USR1&quot;, pid)\n    # ...\n    Process.kill(&quot;TERM&quot;, pid)\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Debug now: true\n    Debug now: false\n   Terminating...\n"
- !ruby/struct:SM::Flow::P 
  body: The list of available signal names and their interpretation is system dependent. Signal delivery semantics may also vary between systems; in particular signal delivery may not always be reliable.
constants: []

full_name: Signal
includes: []

instance_methods: []

name: Signal
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a list of signal names mapped to the corresponding underlying signal numbers.
- !ruby/struct:SM::Flow::P 
  body: "Signal.list #=&gt; {&quot;ABRT&quot;=&gt;6, &quot;ALRM&quot;=&gt;14, &quot;BUS&quot;=&gt;7, &quot;CHLD&quot;=&gt;17, &quot;CLD&quot;=&gt;17, &quot;CONT&quot;=&gt;18, &quot;FPE&quot;=&gt;8, &quot;HUP&quot;=&gt;1, &quot;ILL&quot;=&gt;4, &quot;INT&quot;=&gt;2, &quot;IO&quot;=&gt;29, &quot;IOT&quot;=&gt;6, &quot;KILL&quot;=&gt;9, &quot;PIPE&quot;=&gt;13, &quot;POLL&quot;=&gt;29, &quot;PROF&quot;=&gt;27, &quot;PWR&quot;=&gt;30, &quot;QUIT&quot;=&gt;3, &quot;SEGV&quot;=&gt;11, &quot;STOP&quot;=&gt;19, &quot;SYS&quot;=&gt;31, &quot;TERM&quot;=&gt;15, &quot;TRAP&quot;=&gt;5, &quot;TSTP&quot;=&gt;20, &quot;TTIN&quot;=&gt;21, &quot;TTOU&quot;=&gt;22, &quot;URG&quot;=&gt;23, &quot;USR1&quot;=&gt;10, &quot;USR2&quot;=&gt;12, &quot;VTALRM&quot;=&gt;26, &quot;WINCH&quot;=&gt;28, &quot;XCPU&quot;=&gt;24, &quot;XFSZ&quot;=&gt;25}"
full_name: Signal::list
is_singleton: true
name: list
params: |
  Signal.list => a_hash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Specifies the handling of signals. The first parameter is a signal name (a string such as ``SIGALRM'', ``SIGUSR1'', and so on) or a signal number. The characters ``SIG'' may be omitted from the signal name. The command or block specifies code to be run when the signal is raised. If the command is the string ``IGNORE'' or ``SIG_IGN'', the signal will be ignored. If the command is ``DEFAULT'' or ``SIG_DFL'', the operating system's default handler will be invoked. If the command is ``EXIT'', the script will be terminated by the signal. Otherwise, the given command or block will be run. The special signal name ``EXIT'' or signal number zero will be invoked just prior to program termination. trap returns the previous handler for the given signal.
- !ruby/struct:SM::Flow::VERB 
  body: "    Signal.trap(0, proc { puts &quot;Terminating: #{$$}&quot; })\n    Signal.trap(&quot;CLD&quot;)  { puts &quot;Child died&quot; }\n    fork &amp;&amp; Process.wait\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Terminating: 27461\n    Child died\n    Terminating: 27460\n"
full_name: Signal::trap
is_singleton: true
name: trap
params: |
  Signal.trap( signal, proc ) => obj
  Signal.trap( signal ) {| | block } => obj

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_extend_command
- !ruby/object:RI::MethodSummary 
  name: install_extend_commands
comment: 
- !ruby/struct:SM::Flow::P 
  body: extension support for Context
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CE
  value: ContextExtender
full_name: IRB::ContextExtender
includes: []

instance_methods: []

name: ContextExtender
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ContextExtender::def_extend_command
is_singleton: true
name: def_extend_command
params: (cmd_name, load_file, *aliases)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ContextExtender::install_extend_commands
is_singleton: true
name: install_extend_commands
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb#output_value
is_singleton: false
name: output_value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: back_io
comment: 
full_name: IRB::Irb#suspend_input_method
is_singleton: false
name: suspend_input_method
params: (input_method) {|back_io| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if @signal_status == :IN_LOAD
comment: 
full_name: IRB::Irb#signal_status
is_singleton: false
name: signal_status
params: (status) {|if @signal_status == :IN_LOAD| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: back_workspace
comment: 
full_name: IRB::Irb#suspend_workspace
is_singleton: false
name: suspend_workspace
params: (workspace) {|back_workspace| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: context
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: scanner
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: irb interpriter main routine
constants: []

full_name: IRB::Irb
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: eval_input
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: output_value
- !ruby/object:RI::MethodSummary 
  name: prompt
- !ruby/object:RI::MethodSummary 
  name: signal_handle
- !ruby/object:RI::MethodSummary 
  name: signal_handle
- !ruby/object:RI::MethodSummary 
  name: signal_status
- !ruby/object:RI::MethodSummary 
  name: suspend_context
- !ruby/object:RI::MethodSummary 
  name: suspend_input_method
- !ruby/object:RI::MethodSummary 
  name: suspend_name
- !ruby/object:RI::MethodSummary 
  name: suspend_workspace
name: Irb
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb#prompt
is_singleton: false
name: prompt
params: (prompt, ltype, indent, line_no)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: back_context
comment: 
full_name: IRB::Irb#suspend_context
is_singleton: false
name: suspend_context
params: (context) {|back_context| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: back_path, back_name
comment: 
full_name: IRB::Irb#suspend_name
is_singleton: false
name: suspend_name
params: (path = nil, name = nil) {|back_path, back_name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb::new
is_singleton: true
name: new
params: (workspace = nil, input_method = nil, output_method = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb#signal_handle
is_singleton: false
name: signal_handle
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Irb#eval_input
is_singleton: false
name: eval_input
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::CurrentContext
is_singleton: true
name: CurrentContext
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager
is_singleton: true
name: JobManager
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::rc_file
is_singleton: true
name: rc_file
params: (ext = IRBRC_EXT)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#ppx
is_singleton: false
name: ppx
params: (prefix, *objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#pp
is_singleton: false
name: pp
params: (*objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#print
is_singleton: false
name: print
params: (*opts)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: OutputMethod
- !ruby/struct:SM::Flow::VERB 
  body: "  StdioOutputMethod\n"
constants: []

full_name: IRB::OutputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: foo
- !ruby/object:RI::MethodSummary 
  name: parse_printf_format
- !ruby/object:RI::MethodSummary 
  name: pp
- !ruby/object:RI::MethodSummary 
  name: ppx
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: printn
- !ruby/object:RI::MethodSummary 
  name: puts
name: OutputMethod
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: extend printf
full_name: IRB::OutputMethod#printf
is_singleton: false
name: printf
params: (format, *opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#puts
is_singleton: false
name: puts
params: (*objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "% &lt;\xA5\xD5\xA5\xE9\xA5\xB0&gt; [#0- +] &lt;\xBA\xC7\xBE\xAE\xA5\xD5\xA5\xA3\xA1\xBC\xA5\xEB\xA5\xC9\xC9\xFD&gt; (*|*[1-9][0-9]*\\$|[1-9][0-9]*) &lt;\xC0\xBA\xC5\xD9&gt;.(*|*[1-9][0-9]*\\$|[1-9][0-9]*|)? #&lt;\xC4\xB9\xA4\xB5\xBD\xA4\xC0\xB5\xCA\xB8\xBB\xFA&gt;(hh|h|l|ll|L|q|j|z|t) &lt;\xCA\xD1\xB4\xB9\xBD\xA4\xC0\xB5\xCA\xB8\xBB\xFA&gt;[diouxXeEfgGcsb%]"
full_name: IRB::OutputMethod#parse_printf_format
is_singleton: false
name: parse_printf_format
params: (format, opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#printn
is_singleton: false
name: printn
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::OutputMethod#foo
is_singleton: false
name: foo
params: (format)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: CurrentContext
- !ruby/object:RI::MethodSummary 
  name: CurrentContext
- !ruby/object:RI::MethodSummary 
  name: JobManager
- !ruby/object:RI::MethodSummary 
  name: conf
- !ruby/object:RI::MethodSummary 
  name: delete_caller
- !ruby/object:RI::MethodSummary 
  name: init_config
- !ruby/object:RI::MethodSummary 
  name: init_error
- !ruby/object:RI::MethodSummary 
  name: initialize_tracer
- !ruby/object:RI::MethodSummary 
  name: irb
- !ruby/object:RI::MethodSummary 
  name: irb_abort
- !ruby/object:RI::MethodSummary 
  name: irb_at_exit
- !ruby/object:RI::MethodSummary 
  name: irb_exit
- !ruby/object:RI::MethodSummary 
  name: load_modules
- !ruby/object:RI::MethodSummary 
  name: parse_opts
- !ruby/object:RI::MethodSummary 
  name: print_usage
- !ruby/object:RI::MethodSummary 
  name: rc_file
- !ruby/object:RI::MethodSummary 
  name: rc_file_generators
- !ruby/object:RI::MethodSummary 
  name: run_config
- !ruby/object:RI::MethodSummary 
  name: setup
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: version
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: "  irb/help.rb - print usage module\n      $Release Version: 0.9.5$\n      $Revision: 16857 $\n      $Date: 2008-06-06 17:05:24 +0900 (Fri, 06 Jun 2008) $\n      by Keiju ISHITSUKA(keiju@ishitsuka.com)\n"
- !ruby/struct:SM::Flow::P 
  body: --
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: InputMethod
  - !ruby/struct:SM::Flow::VERB 
    body: "    StdioInputMethod\n    FileInputMethod\n    (ReadlineInputMethod)\n"
  name: STDIN_FILE_NAME
  value: "\"(line)\""
- !ruby/object:RI::Constant 
  comment: 
  name: FEATURE_IOPT_CHANGE_VERSION
  value: "\"1.9.0\""
- !ruby/object:RI::Constant 
  comment: 
  name: IRBRC_EXT
  value: "\"rc\""
full_name: IRB
includes: []

instance_methods: []

name: IRB
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Foreground#execute
is_singleton: false
name: execute
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Foreground
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Foreground
superclass: Nop
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::CurrentWorkingWorkspace
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: CurrentWorkingWorkspace
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::CurrentWorkingWorkspace#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Require
includes: 
- !ruby/object:RI::IncludedModule 
  name: IrbLoader
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Require
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Require#execute
is_singleton: false
name: execute
params: (file_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::PopWorkspace
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: PopWorkspace
superclass: Workspaces
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::PopWorkspace#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Nop#irb
is_singleton: false
name: irb
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Nop::execute
is_singleton: true
name: execute
params: (conf, *opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Nop::new
is_singleton: true
name: new
params: (conf)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Nop#execute
is_singleton: false
name: execute
params: (*opts)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: irb_context
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::ExtendCommand::Nop
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
- !ruby/object:RI::MethodSummary 
  name: irb
name: Nop
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Workspaces#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Workspaces
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Workspaces
superclass: Nop
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::ChangeWorkspace
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: ChangeWorkspace
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::ChangeWorkspace#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Jobs
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Jobs
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Jobs#execute
is_singleton: false
name: execute
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Source
includes: 
- !ruby/object:RI::IncludedModule 
  name: IrbLoader
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Source
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Source#execute
is_singleton: false
name: execute
params: (file_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::IrbCommand#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::IrbCommand
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: IrbCommand
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Help::execute
is_singleton: true
name: execute
params: (context, *names)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
comment: 
constants: []

full_name: IRB::ExtendCommand::Help
includes: []

instance_methods: []

name: Help
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::PushWorkspace
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: PushWorkspace
superclass: Workspaces
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::PushWorkspace#execute
is_singleton: false
name: execute
params: (*obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Load
includes: 
- !ruby/object:RI::IncludedModule 
  name: IrbLoader
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Load
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Load#execute
is_singleton: false
name: execute
params: (file_name, priv = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand
includes: []

instance_methods: []

name: ExtendCommand
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Kill
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Kill
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommand::Kill#execute
is_singleton: false
name: execute
params: (*keys)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::ExtendCommand::Fork
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: execute
name: Fork
superclass: Nop
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: IRB::ExtendCommand::Fork#execute
is_singleton: false
name: execute
params: (&block) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #evaluate"
full_name: IRB::WorkSpace#__evaluate__
is_singleton: false
name: __evaluate__
params: (context, statements, file = __FILE__, line = __LINE__)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: error message manipulator
full_name: IRB::WorkSpace#filter_backtrace
is_singleton: false
name: filter_backtrace
params: (bt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::WorkSpace#evaluate
is_singleton: false
name: evaluate
params: (context, statements, file = nil, line = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: create new workspace. set self to main if specified, otherwise inherit main from TOPLEVEL_BINDING.
full_name: IRB::WorkSpace::new
is_singleton: true
name: new
params: (*main)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: binding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: main
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::WorkSpace
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __evaluate__
- !ruby/object:RI::MethodSummary 
  name: evaluate
- !ruby/object:RI::MethodSummary 
  name: evaluate
- !ruby/object:RI::MethodSummary 
  name: filter_backtrace
name: WorkSpace
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame#top
is_singleton: false
name: top
params: (n = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame::top
is_singleton: true
name: top
params: (n = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame::sender
is_singleton: true
name: sender
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: bottom
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: sender
- !ruby/object:RI::MethodSummary 
  name: top
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: INIT_STACK_TIMES
  value: "3"
- !ruby/object:RI::Constant 
  comment: 
  name: CALL_STACK_OFFSET
  value: "3"
full_name: IRB::Frame
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bottom
- !ruby/object:RI::MethodSummary 
  name: top
- !ruby/object:RI::MethodSummary 
  name: trace_func
name: Frame
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame#bottom
is_singleton: false
name: bottom
params: (n = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Frame#trace_func
is_singleton: false
name: trace_func
params: (event, file, line, id, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: singleton functions
full_name: IRB::Frame::bottom
is_singleton: true
name: bottom
params: (n = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: IRB version method
full_name: IRB::version
is_singleton: true
name: version
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#home_workspace
is_singleton: false
name: home_workspace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#exit
is_singleton: false
name: exit
params: (ret = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#math_mode=
is_singleton: false
name: math_mode=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#main
is_singleton: false
name: main
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#change_workspace
is_singleton: false
name: change_workspace
params: (*_main)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#inspect_mode=
is_singleton: false
name: inspect_mode=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#eval_history=
is_singleton: false
name: eval_history=
params: (no)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#debug?
is_singleton: false
name: debug?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#use_loader=
is_singleton: false
name: use_loader=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_s
block_params: 
comment: 
full_name: IRB::Context#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#irb_level
is_singleton: false
name: irb_level
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#evaluate
is_singleton: false
name: evaluate
params: (line, line_no)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#push_workspace
is_singleton: false
name: push_workspace
params: (*_main)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#history_file=
is_singleton: false
name: history_file=
params: (hist)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#init_save_history
is_singleton: false
name: init_save_history
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#history_file
is_singleton: false
name: history_file
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#debug_level=
is_singleton: false
name: debug_level=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#save_history=
is_singleton: false
name: save_history=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: use_loader?
block_params: 
comment: 
full_name: IRB::Context#use_loader
is_singleton: false
name: use_loader
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#pop_workspace
is_singleton: false
name: pop_workspace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Arguments:"
- !ruby/struct:SM::Flow::VERB 
  body: "  input_method: nil -- stdin or readline\n                String -- File\n                other -- using this as InputMethod\n"
full_name: IRB::Context::new
is_singleton: true
name: new
params: (irb, workspace = nil, input_method = nil, output_method = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: ap_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: auto_indent_mode
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: back_trace_limit
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: debug_level
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: echo
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: eval_history
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: ignore_eof
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: ignore_sigint
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: inspect_mode
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: io
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: irb
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: irb_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: irb_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: irb_path
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: last_value
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: load_modules
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: math_mode
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt_c
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt_i
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt_mode
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt_n
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt_s
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: rc
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: return_format
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: thread
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use_readline
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use_tracer
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: verbose
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: workspace
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: workspace_home
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NOPRINTING_IVARS
  value: "[\"@last_value\"]"
- !ruby/object:RI::Constant 
  comment: 
  name: NO_INSPECTING_IVARS
  value: "[\"@irb\", \"@io\"]"
- !ruby/object:RI::Constant 
  comment: 
  name: IDNAME_IVARS
  value: "[\"@prompt_mode\"]"
full_name: IRB::Context
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set_last_value
- !ruby/object:RI::MethodSummary 
  name: change_workspace
- !ruby/object:RI::MethodSummary 
  name: debug?
- !ruby/object:RI::MethodSummary 
  name: debug_level=
- !ruby/object:RI::MethodSummary 
  name: eval_history=
- !ruby/object:RI::MethodSummary 
  name: evaluate
- !ruby/object:RI::MethodSummary 
  name: exit
- !ruby/object:RI::MethodSummary 
  name: file_input?
- !ruby/object:RI::MethodSummary 
  name: history_file
- !ruby/object:RI::MethodSummary 
  name: history_file=
- !ruby/object:RI::MethodSummary 
  name: home_workspace
- !ruby/object:RI::MethodSummary 
  name: init_save_history
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: inspect?
- !ruby/object:RI::MethodSummary 
  name: inspect?
- !ruby/object:RI::MethodSummary 
  name: inspect_mode=
- !ruby/object:RI::MethodSummary 
  name: irb_level
- !ruby/object:RI::MethodSummary 
  name: main
- !ruby/object:RI::MethodSummary 
  name: math_mode=
- !ruby/object:RI::MethodSummary 
  name: pop_workspace
- !ruby/object:RI::MethodSummary 
  name: prompt_mode=
- !ruby/object:RI::MethodSummary 
  name: prompting?
- !ruby/object:RI::MethodSummary 
  name: push_workspace
- !ruby/object:RI::MethodSummary 
  name: save_history
- !ruby/object:RI::MethodSummary 
  name: save_history=
- !ruby/object:RI::MethodSummary 
  name: set_last_value
- !ruby/object:RI::MethodSummary 
  name: set_last_value
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: use_loader
- !ruby/object:RI::MethodSummary 
  name: use_loader=
- !ruby/object:RI::MethodSummary 
  name: use_loader?
- !ruby/object:RI::MethodSummary 
  name: use_readline=
- !ruby/object:RI::MethodSummary 
  name: use_tracer=
- !ruby/object:RI::MethodSummary 
  name: verbose?
- !ruby/object:RI::MethodSummary 
  name: workspaces
name: Context
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#use_tracer=
is_singleton: false
name: use_tracer=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#prompting?
is_singleton: false
name: prompting?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #inspect"
full_name: IRB::Context#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #set_last_value"
full_name: IRB::Context#_set_last_value
is_singleton: false
name: _set_last_value
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#use_readline=
is_singleton: false
name: use_readline=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #use_loader"
full_name: IRB::Context#use_loader?
is_singleton: false
name: use_loader?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: _set_last_value
block_params: 
comment: 
full_name: IRB::Context#set_last_value
is_singleton: false
name: set_last_value
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#save_history
is_singleton: false
name: save_history
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#inspect?
is_singleton: false
name: inspect?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#prompt_mode=
is_singleton: false
name: prompt_mode=
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#workspaces
is_singleton: false
name: workspaces
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#verbose?
is_singleton: false
name: verbose?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Context#file_input?
is_singleton: false
name: file_input?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: level
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::Notifier::LeveledNotifier
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: notify?
name: LeveledNotifier
superclass: AbstructNotifier
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::LeveledNotifier#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::LeveledNotifier::new
is_singleton: true
name: new
params: (base, level, prefix)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::LeveledNotifier#notify?
is_singleton: false
name: notify?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#ppx
is_singleton: false
name: ppx
params: (prefix, *objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#pp
is_singleton: false
name: pp
params: (*objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#print
is_singleton: false
name: print
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier::new
is_singleton: true
name: new
params: (prefix, base_notifier)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: prefix
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::Notifier::AbstructNotifier
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: exec_if
- !ruby/object:RI::MethodSummary 
  name: notify?
- !ruby/object:RI::MethodSummary 
  name: pp
- !ruby/object:RI::MethodSummary 
  name: ppx
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: printn
- !ruby/object:RI::MethodSummary 
  name: puts
name: AbstructNotifier
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#printf
is_singleton: false
name: printf
params: (format, *opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#puts
is_singleton: false
name: puts
params: (*objs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (@base_notifier)
comment: 
full_name: IRB::Notifier::AbstructNotifier#exec_if
is_singleton: false
name: exec_if
params: () {|@base_notifier| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#notify?
is_singleton: false
name: notify?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::AbstructNotifier#printn
is_singleton: false
name: printn
params: (*opts)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: level_notifier
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: notifiers
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::Notifier::CompositeNotifier
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_notifier
- !ruby/object:RI::MethodSummary 
  name: level=
- !ruby/object:RI::MethodSummary 
  name: level_notifier=
name: CompositeNotifier
superclass: AbstructNotifier
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::CompositeNotifier::new
is_singleton: true
name: new
params: (prefix, base_notifier)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: level=
block_params: 
comment: 
full_name: IRB::Notifier::CompositeNotifier#level_notifier=
is_singleton: false
name: level_notifier=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::CompositeNotifier#def_notifier
is_singleton: false
name: def_notifier
params: (level, prefix = "")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #level_notifier="
full_name: IRB::Notifier::CompositeNotifier#level=
is_singleton: false
name: level=
params: (value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: D_NOMSG
  value: NoMsgNotifier.new
full_name: IRB::Notifier
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_notifier
name: Notifier
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier#def_notifier
is_singleton: false
name: def_notifier
params: (prefix = "", output_method = StdioOutputMethod.new)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::NoMsgNotifier::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::Notifier::NoMsgNotifier
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: notify?
name: NoMsgNotifier
superclass: LeveledNotifier
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Notifier::NoMsgNotifier#notify?
is_singleton: false
name: notify?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: file_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: prompt
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::InputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: readable_atfer_eof?
name: InputMethod
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::InputMethod#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::InputMethod::new
is_singleton: true
name: new
params: (file = STDIN_FILE_NAME)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::InputMethod#readable_atfer_eof?
is_singleton: false
name: readable_atfer_eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::MethodExtender#def_pre_proc
is_singleton: false
name: def_pre_proc
params: (base_method, extend_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::MethodExtender#def_post_proc
is_singleton: false
name: def_post_proc
params: (base_method, extend_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "return #{prefix}#{name}#{postfix}&lt;num&gt;"
full_name: IRB::MethodExtender#new_alias_name
is_singleton: false
name: new_alias_name
params: (name, prefix = "__alias_of__", postfix = "__")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::MethodExtender
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_post_proc
- !ruby/object:RI::MethodSummary 
  name: def_pre_proc
- !ruby/object:RI::MethodSummary 
  name: new_alias_name
name: MethodExtender
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::conf
is_singleton: true
name: conf
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#lc2kconv
is_singleton: false
name: lc2kconv
params: (lang)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#String
is_singleton: false
name: String
params: (mes)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#real_load
is_singleton: false
name: real_load
params: (path, priv)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#gets
is_singleton: false
name: gets
params: (*rs)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: lang
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: JPDefaultLocale
  value: "\"ja\""
- !ruby/object:RI::Constant 
  comment: 
  name: LOCALE_DIR
  value: "\"/lc/\""
full_name: IRB::Locale
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: String
- !ruby/object:RI::MethodSummary 
  name: find
- !ruby/object:RI::MethodSummary 
  name: format
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: lc2kconv
- !ruby/object:RI::MethodSummary 
  name: lc_path
- !ruby/object:RI::MethodSummary 
  name: load
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: real_load
- !ruby/object:RI::MethodSummary 
  name: require
- !ruby/object:RI::MethodSummary 
  name: search_file
name: Locale
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#print
is_singleton: false
name: print
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#load
is_singleton: false
name: load
params: (file, priv=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale::new
is_singleton: true
name: new
params: (locale = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#format
is_singleton: false
name: format
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#find
is_singleton: false
name: find
params: (file , paths = $:)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#lc_path
is_singleton: false
name: lc_path
params: (file = "", lc = @lang)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#search_file
is_singleton: false
name: search_file
params: (path, file)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#printf
is_singleton: false
name: printf
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#puts
is_singleton: false
name: puts
params: (*opts)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#readline
is_singleton: false
name: readline
params: (*rs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::Locale#require
is_singleton: false
name: require
params: (file, priv = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::Abort
includes: []

instance_methods: []

name: Abort
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: "proc{|rc|  rc == \"rc\" ? irbrc : irbrc+rc"
comment: 
- !ruby/struct:SM::Flow::P 
  body: enumerate possible rc-file base name generators
full_name: IRB::rc_file_generators
is_singleton: true
name: rc_file_generators
params: "() {|proc{|rc| rc == \"rc\" ? irbrc : irbrc+rc| ...}"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: aliases = [commands_alias, flag], ...
full_name: IRB::ExtendCommandBundle::def_extend_command
is_singleton: true
name: def_extend_command
params: (cmd_name, cmd_class, load_file = nil, *aliases)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle::extend_object
is_singleton: true
name: extend_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle#irb_require
is_singleton: false
name: irb_require
params: (*opts, &b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle#irb_context
is_singleton: false
name: irb_context
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_extend_command
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: install_extend_commands
- !ruby/object:RI::MethodSummary 
  name: irb_original_method_name
comment: 
- !ruby/struct:SM::Flow::P 
  body: IRB extended command
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: EXCB
  value: ExtendCommandBundle
- !ruby/object:RI::Constant 
  comment: 
  name: NO_OVERRIDE
  value: "0"
- !ruby/object:RI::Constant 
  comment: 
  name: OVERRIDE_PRIVATE_ONLY
  value: "0x01"
- !ruby/object:RI::Constant 
  comment: 
  name: OVERRIDE_ALL
  value: "0x02"
full_name: IRB::ExtendCommandBundle
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: install_alias_method
- !ruby/object:RI::MethodSummary 
  name: irb_context
- !ruby/object:RI::MethodSummary 
  name: irb_exit
- !ruby/object:RI::MethodSummary 
  name: irb_load
- !ruby/object:RI::MethodSummary 
  name: irb_require
name: ExtendCommandBundle
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle::install_extend_commands
is_singleton: true
name: install_extend_commands
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle::irb_original_method_name
is_singleton: true
name: irb_original_method_name
params: (method_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle#irb_load
is_singleton: false
name: irb_load
params: (*opts, &b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: override = {NO_OVERRIDE, OVERRIDE_PRIVATE_ONLY, OVERRIDE_ALL}
full_name: IRB::ExtendCommandBundle#install_alias_method
is_singleton: false
name: install_alias_method
params: (to, from, override = NO_OVERRIDE)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ExtendCommandBundle#irb_exit
is_singleton: false
name: irb_exit
params: (ret = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::print_usage
is_singleton: true
name: print_usage
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: loading modules
full_name: IRB::load_modules
is_singleton: true
name: load_modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioOutputMethod#print
is_singleton: false
name: print
params: (*opts)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::StdioOutputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: print
name: StdioOutputMethod
superclass: OutputMethod
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@CONF default setting"
full_name: IRB::init_config
is_singleton: true
name: init_config
params: (ap_path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::irb_at_exit
is_singleton: true
name: irb_at_exit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::IrbLoader#old
is_singleton: false
name: old
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::IrbLoader#source_file
is_singleton: false
name: source_file
params: (path)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::IrbLoader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: irb_load
- !ruby/object:RI::MethodSummary 
  name: load_file
- !ruby/object:RI::MethodSummary 
  name: old
- !ruby/object:RI::MethodSummary 
  name: search_file_from_ruby_path
- !ruby/object:RI::MethodSummary 
  name: source_file
name: IrbLoader
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::IrbLoader#irb_load
is_singleton: false
name: irb_load
params: (fn, priv = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::IrbLoader#load_file
is_singleton: false
name: load_file
params: (path, priv = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::IrbLoader#search_file_from_ruby_path
is_singleton: false
name: search_file_from_ruby_path
params: (fn)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DOUT
  value: Notifier::def_notifier("SLex::")
- !ruby/object:RI::Constant 
  comment: 
  name: D_WARN
  value: "DOUT::def_notifier(1, \"Warn: \")"
- !ruby/object:RI::Constant 
  comment: 
  name: D_DEBUG
  value: "DOUT::def_notifier(2, \"Debug: \")"
- !ruby/object:RI::Constant 
  comment: 
  name: D_DETAIL
  value: "DOUT::def_notifier(4, \"Detail: \")"
full_name: IRB::SLex
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: create
- !ruby/object:RI::MethodSummary 
  name: def_rule
- !ruby/object:RI::MethodSummary 
  name: def_rules
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: postproc
- !ruby/object:RI::MethodSummary 
  name: preproc
- !ruby/object:RI::MethodSummary 
  name: search
name: SLex
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#def_rules
is_singleton: false
name: def_rules
params: (*tokens, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex::Node#match_io
is_singleton: false
name: match_io
params: (io, op = "")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: if postproc is nil, this node is an abstract node. if postproc is non-nil, this node is a real node.
full_name: IRB::SLex::Node::new
is_singleton: true
name: new
params: (preproc = nil, postproc = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "chrs: String"
- !ruby/struct:SM::Flow::VERB 
  body: "      character array\n      io must have getc()/ungetc(); and ungetc() must be\n      able to be called arbitrary number of times.\n"
full_name: IRB::SLex::Node#match
is_singleton: false
name: match
params: (chrs, op = "")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: postproc
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: preproc
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::SLex::Node
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: create_subnode
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: match_io
- !ruby/object:RI::MethodSummary 
  name: search
name: Node
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex::Node#search
is_singleton: false
name: search
params: (chrs, opt = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex::Node#create_subnode
is_singleton: false
name: create_subnode
params: (chrs, preproc = nil, postproc = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#match
is_singleton: false
name: match
params: (token)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "\e$BMW%A%'%C%/\e(B?"
full_name: IRB::SLex#postproc
is_singleton: false
name: postproc
params: (token)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#create
is_singleton: false
name: create
params: (token, preproc = nil, postproc = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#preproc
is_singleton: false
name: preproc
params: (token, proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#search
is_singleton: false
name: search
params: (token)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::SLex#def_rule
is_singleton: false
name: def_rule
params: (token, preproc = nil, postproc = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioInputMethod#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioInputMethod#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioInputMethod::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioInputMethod#line
is_singleton: false
name: line
params: (line_no)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::StdioInputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: line
- !ruby/object:RI::MethodSummary 
  name: readable_atfer_eof?
name: StdioInputMethod
superclass: InputMethod
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::StdioInputMethod#readable_atfer_eof?
is_singleton: false
name: readable_atfer_eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: initialize tracing function
full_name: IRB::initialize_tracer
is_singleton: true
name: initialize_tracer
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: running config
full_name: IRB::run_config
is_singleton: true
name: run_config
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#main_irb
is_singleton: false
name: main_irb
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: current_job
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: job management class
constants: []

full_name: IRB::JobManager
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: insert
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: irb
- !ruby/object:RI::MethodSummary 
  name: kill
- !ruby/object:RI::MethodSummary 
  name: main_irb
- !ruby/object:RI::MethodSummary 
  name: main_thread
- !ruby/object:RI::MethodSummary 
  name: n_jobs
- !ruby/object:RI::MethodSummary 
  name: search
- !ruby/object:RI::MethodSummary 
  name: switch
- !ruby/object:RI::MethodSummary 
  name: thread
name: JobManager
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#kill
is_singleton: false
name: kill
params: (*keys)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#insert
is_singleton: false
name: insert
params: (irb)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#thread
is_singleton: false
name: thread
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#irb
is_singleton: false
name: irb
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#delete
is_singleton: false
name: delete
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#switch
is_singleton: false
name: switch
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#main_thread
is_singleton: false
name: main_thread
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#n_jobs
is_singleton: false
name: n_jobs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::JobManager#search
is_singleton: false
name: search
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::init_error
is_singleton: true
name: init_error
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::irb_exit
is_singleton: true
name: irb_exit
params: (irb, ret)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ReadlineInputMethod#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ReadlineInputMethod#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ReadlineInputMethod::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ReadlineInputMethod#line
is_singleton: false
name: line
params: (line_no)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::ReadlineInputMethod
includes: 
- !ruby/object:RI::IncludedModule 
  name: Readline
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: line
- !ruby/object:RI::MethodSummary 
  name: readable_atfer_eof?
name: ReadlineInputMethod
superclass: InputMethod
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::ReadlineInputMethod#readable_atfer_eof?
is_singleton: false
name: readable_atfer_eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::delete_caller
is_singleton: true
name: delete_caller
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: initialize config
full_name: IRB::setup
is_singleton: true
name: setup
params: (ap_path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def HistorySavingAbility.create_finalizer
- !ruby/struct:SM::Flow::VERB 
  body: "  proc do\n  if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) &gt; 0\n    if hf = IRB.conf[:HISTORY_FILE]\n      file = File.expand_path(hf)\n    end\n    file = IRB.rc_file(&quot;_history&quot;) unless file\n    open(file, 'w' ) do |f|\n      hist = HISTORY.to_a\n      f.puts(hist[-num..-1] || hist)\n    end\n  end\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: end
full_name: IRB::HistorySavingAbility::extended
is_singleton: true
name: extended
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::HistorySavingAbility#load_history
is_singleton: false
name: load_history
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: extended
comment: 
constants: []

full_name: IRB::HistorySavingAbility
includes: 
- !ruby/object:RI::IncludedModule 
  name: Readline
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: load_history
- !ruby/object:RI::MethodSummary 
  name: save_history
name: HistorySavingAbility
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::HistorySavingAbility#save_history
is_singleton: false
name: save_history
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: invoke multi-irb
full_name: IRB::irb
is_singleton: true
name: irb
params: (file = nil, *main)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: initialize IRB and start TOP_LEVEL irb
full_name: IRB::start
is_singleton: true
name: start
params: (ap_path = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::History#[]
is_singleton: false
name: "[]"
params: (idx)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::History#size
is_singleton: false
name: size
params: (size)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::History#push
is_singleton: false
name: push
params: (no, val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::History#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::History::new
is_singleton: true
name: new
params: (size = 16)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::History
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: size
name: History
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::irb_abort
is_singleton: true
name: irb_abort
params: (irb, exception = Abort)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: option analyzing
full_name: IRB::parse_opts
is_singleton: true
name: parse_opts
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: IRB::LoadAbort
includes: []

instance_methods: []

name: LoadAbort
superclass: Exception
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: file_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: IRB::FileInputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: gets
name: FileInputMethod
superclass: InputMethod
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::FileInputMethod#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::FileInputMethod#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::FileInputMethod::new
is_singleton: true
name: new
params: (file)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: select_message
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ReservedWords
  value: "[       \"BEGIN\", \"END\",       \"alias\", \"and\",        \"begin\", \"break\",        \"case\", \"class\",       \"def\", \"defined\", \"do\",       \"else\", \"elsif\", \"end\", \"ensure\",       \"false\", \"for\",        \"if\", \"in\",        \"module\",        \"next\", \"nil\", \"not\",       \"or\",        \"redo\", \"rescue\", \"retry\", \"return\",       \"self\", \"super\",       \"then\", \"true\",       \"undef\", \"unless\", \"until\",       \"when\", \"while\",       \"yield\",     ]"
- !ruby/object:RI::Constant 
  comment: 
  name: CompletionProc
  value: proc { |input|       bind = IRB.conf[:MAIN_CONTEXT].workspace.binding
- !ruby/object:RI::Constant 
  comment: 
  name: Operators
  value: "[\"%\", \"&\", \"*\", \"**\", \"+\",  \"-\",  \"/\",       \"<\", \"<<\", \"<=\", \"<=>\", \"==\", \"===\", \"=~\", \">\", \">=\", \">>\",       \"[]\", \"[]=\", \"^\",]"
full_name: IRB::InputCompletor
includes: []

instance_methods: []

name: InputCompletor
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IRB::InputCompletor::select_message
is_singleton: true
name: select_message
params: (receiver, message, candidates)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Releases the lock. Returns <tt>nil</tt> if ref wasn't locked.
full_name: Mutex#unlock
is_singleton: false
name: unlock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if this lock is currently held by some thread.
full_name: Mutex#locked?
is_singleton: false
name: locked?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempts to obtain the lock and returns immediately. Returns <tt>true</tt> if the lock was granted.
full_name: Mutex#try_lock
is_singleton: false
name: try_lock
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Mutex implements a simple semaphore that can be used to coordinate access to shared data from multiple concurrent threads.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'thread'\n  semaphore = Mutex.new\n\n  a = Thread.new {\n    semaphore.synchronize {\n      # access shared resource\n    }\n  }\n\n  b = Thread.new {\n    semaphore.synchronize {\n      # access shared resource\n    }\n  }\n"
constants: []

full_name: Mutex
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: exclusive_unlock
- !ruby/object:RI::MethodSummary 
  name: lock
- !ruby/object:RI::MethodSummary 
  name: locked?
- !ruby/object:RI::MethodSummary 
  name: synchronize
- !ruby/object:RI::MethodSummary 
  name: try_lock
- !ruby/object:RI::MethodSummary 
  name: unlock
name: Mutex
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Mutex
full_name: Mutex::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: If the mutex is locked, unlocks the mutex, wakes one waiting thread, and yields in a critical section.
full_name: Mutex#exclusive_unlock
is_singleton: false
name: exclusive_unlock
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempts to grab the lock and waits if it isn't available.
full_name: Mutex#lock
is_singleton: false
name: lock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Obtains a lock, runs the block, and releases the lock when the block completes. See the example under Mutex.
full_name: Mutex#synchronize
is_singleton: false
name: synchronize
params: () {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: TypeError
includes: []

instance_methods: []

name: TypeError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>IO</tt> is the basis for all input and output in Ruby. An I/O stream may be <em>duplexed</em> (that is, bidirectional), and so may use more than one native operating system stream.
- !ruby/struct:SM::Flow::P 
  body: Many of the examples in this section use class <tt>File</tt>, the only standard subclass of <tt>IO</tt>. The two classes are closely associated.
- !ruby/struct:SM::Flow::P 
  body: As used in this section, <em>portname</em> may take any of the following forms.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A plain string represents a filename suitable for the underlying operating system.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string starting with ``<tt>|</tt>'' indicates a subprocess. The remainder of the string following the ``<tt>|</tt>'' is invoked as a process with appropriate input/output channels connected to it.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string equal to ``<tt>|-</tt>'' will create another Ruby instance as a subprocess.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Ruby will convert pathnames between different operating system conventions if possible. For instance, on a Windows system the filename ``<tt>/gumby/ruby/test.rb</tt>'' will be opened as ``<tt>\\gumby\\ruby\\test.rb</tt>''. When specifying a Windows-style filename in a Ruby string, remember to escape the backslashes:"
- !ruby/struct:SM::Flow::VERB 
  body: "   &quot;c:\\gumby\\ruby\\test.rb&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: Our examples here will use the Unix-style forward slashes; <tt>File::SEPARATOR</tt> can be used to get the platform-specific separator character.
- !ruby/struct:SM::Flow::P 
  body: I/O ports may be opened in any one of several different modes, which are shown in this section as <em>mode</em>. The mode may either be a Fixnum or a String. If numeric, it should be one of the operating system specific constants (O_RDONLY, O_WRONLY, O_RDWR, O_APPEND and so on). See man open(2) for more information.
- !ruby/struct:SM::Flow::P 
  body: If the mode is given as a String, it must be one of the values listed in the following table.
- !ruby/struct:SM::Flow::VERB 
  body: "  Mode |  Meaning\n  -----+--------------------------------------------------------\n  &quot;r&quot;  |  Read-only, starts at beginning of file  (default mode).\n  -----+--------------------------------------------------------\n  &quot;r+&quot; |  Read-write, starts at beginning of file.\n  -----+--------------------------------------------------------\n  &quot;w&quot;  |  Write-only, truncates existing file\n       |  to zero length or creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;w+&quot; |  Read-write, truncates existing file to zero length\n       |  or creates a new file for reading and writing.\n  -----+--------------------------------------------------------\n  &quot;a&quot;  |  Write-only, starts at end of file if file exists,\n       |  otherwise creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;a+&quot; |  Read-write, starts at end of file if file exists,\n       |  otherwise creates a new file for reading and\n       |  writing.\n  -----+--------------------------------------------------------\n   &quot;b&quot; |  (DOS/Windows only) Binary file mode (may appear with\n       |  any of the key letters listed above).\n"
- !ruby/struct:SM::Flow::P 
  body: The global constant ARGF (also accessible as $&lt;) provides an IO-like stream which allows access to all files mentioned on the command line (or STDIN if no files are mentioned). ARGF provides the methods <tt>#path</tt> and <tt>#filename</tt> to access the name of the file currently being read.
constants: []

full_name: IOError
includes: []

instance_methods: []

name: IOError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an <tt>Integer</tt> converted from <em>num</em>. It is equivalent to <tt>prec(Integer)</tt>.
full_name: Precision#prec_i
is_singleton: false
name: prec_i
params: |
  num.prec_i  =>  Integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>self</em> into an instance of <em>klass</em>. By default, <tt>prec</tt> invokes
- !ruby/struct:SM::Flow::VERB 
  body: "   klass.induced_from(num)\n"
- !ruby/struct:SM::Flow::P 
  body: and returns its value. So, if <tt>klass.induced_from</tt> doesn't return an instance of <em>klass</em>, it will be necessary to reimplement <tt>prec</tt>.
full_name: Precision#prec
is_singleton: false
name: prec
params: |
  num.prec(klass)   => a_klass

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>Float</tt> converted from <em>num</em>. It is equivalent to <tt>prec(Float)</tt>.
full_name: Precision#prec_f
is_singleton: false
name: prec_f
params: |
  num.prec_f  =>  Float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "call_seq:"
- !ruby/struct:SM::Flow::VERB 
  body: "  included\n"
- !ruby/struct:SM::Flow::P 
  body: When the <tt>Precision</tt> module is mixed-in to a class, this <tt>included</tt> method is used to add our default <tt>induced_from</tt> implementation to the host class.
full_name: Precision::included
is_singleton: true
name: included
params: (p1)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: included
comment: 
- !ruby/struct:SM::Flow::P 
  body: Precision is a mixin for concrete numeric classes with precision. Here, `precision' means the fineness of approximation of a real number, so, this module should not be included into anything which is not a subset of Real (so it should not be included in classes such as <tt>Complex</tt> or <tt>Matrix</tt>).
constants: []

full_name: Precision
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: prec
- !ruby/object:RI::MethodSummary 
  name: prec_f
- !ruby/object:RI::MethodSummary 
  name: prec_i
name: Precision
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: schemas
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Types
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Types
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Types::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Types#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Types#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: base
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: derivetype
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::ComplexContent
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: basetype
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: ComplexContent
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent#basetype
is_singleton: false
name: basetype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexContent#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute#directelement?
is_singleton: false
name: directelement?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute#refelement
is_singleton: false
name: refelement
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute::attr_reader_ref
is_singleton: true
name: attr_reader_ref
params: (symbol)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: arytype
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: default
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: fixed
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: form
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: local_simpletype
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: ref
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: use
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: attr_reader_ref
- !ruby/object:RI::MethodSummary 
  name: attr_reader_ref
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Attribute
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: directelement?
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: refelement
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Attribute
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Attribute#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: AllName
  value: XSD::QName.new(XSD::Namespace, 'all')
- !ruby/object:RI::Constant 
  comment: 
  name: AnnotationName
  value: XSD::QName.new(XSD::Namespace, 'annotation')
- !ruby/object:RI::Constant 
  comment: 
  name: AnyName
  value: XSD::QName.new(XSD::Namespace, 'any')
- !ruby/object:RI::Constant 
  comment: 
  name: AttributeName
  value: XSD::QName.new(XSD::Namespace, 'attribute')
- !ruby/object:RI::Constant 
  comment: 
  name: ChoiceName
  value: XSD::QName.new(XSD::Namespace, 'choice')
- !ruby/object:RI::Constant 
  comment: 
  name: ComplexContentName
  value: XSD::QName.new(XSD::Namespace, 'complexContent')
- !ruby/object:RI::Constant 
  comment: 
  name: ComplexTypeName
  value: XSD::QName.new(XSD::Namespace, 'complexType')
- !ruby/object:RI::Constant 
  comment: 
  name: ElementName
  value: XSD::QName.new(XSD::Namespace, 'element')
- !ruby/object:RI::Constant 
  comment: 
  name: EnumerationName
  value: XSD::QName.new(XSD::Namespace, 'enumeration')
- !ruby/object:RI::Constant 
  comment: 
  name: ExtensionName
  value: XSD::QName.new(XSD::Namespace, 'extension')
- !ruby/object:RI::Constant 
  comment: 
  name: ImportName
  value: XSD::QName.new(XSD::Namespace, 'import')
- !ruby/object:RI::Constant 
  comment: 
  name: IncludeName
  value: XSD::QName.new(XSD::Namespace, 'include')
- !ruby/object:RI::Constant 
  comment: 
  name: LengthName
  value: XSD::QName.new(XSD::Namespace, 'length')
- !ruby/object:RI::Constant 
  comment: 
  name: PatternName
  value: XSD::QName.new(XSD::Namespace, 'pattern')
- !ruby/object:RI::Constant 
  comment: 
  name: RestrictionName
  value: XSD::QName.new(XSD::Namespace, 'restriction')
- !ruby/object:RI::Constant 
  comment: 
  name: SequenceName
  value: XSD::QName.new(XSD::Namespace, 'sequence')
- !ruby/object:RI::Constant 
  comment: 
  name: SchemaName
  value: XSD::QName.new(XSD::Namespace, 'schema')
- !ruby/object:RI::Constant 
  comment: 
  name: SimpleContentName
  value: XSD::QName.new(XSD::Namespace, 'simpleContent')
- !ruby/object:RI::Constant 
  comment: 
  name: SimpleTypeName
  value: XSD::QName.new(XSD::Namespace, 'simpleType')
- !ruby/object:RI::Constant 
  comment: 
  name: UniqueName
  value: XSD::QName.new(XSD::Namespace, 'unique')
- !ruby/object:RI::Constant 
  comment: 
  name: AttributeFormDefaultAttrName
  value: XSD::QName.new(nil, 'attributeFormDefault')
- !ruby/object:RI::Constant 
  comment: 
  name: BaseAttrName
  value: XSD::QName.new(nil, 'base')
- !ruby/object:RI::Constant 
  comment: 
  name: DefaultAttrName
  value: XSD::QName.new(nil, 'default')
- !ruby/object:RI::Constant 
  comment: 
  name: ElementFormDefaultAttrName
  value: XSD::QName.new(nil, 'elementFormDefault')
- !ruby/object:RI::Constant 
  comment: 
  name: FinalAttrName
  value: XSD::QName.new(nil, 'final')
- !ruby/object:RI::Constant 
  comment: 
  name: FixedAttrName
  value: XSD::QName.new(nil, 'fixed')
- !ruby/object:RI::Constant 
  comment: 
  name: FormAttrName
  value: XSD::QName.new(nil, 'form')
- !ruby/object:RI::Constant 
  comment: 
  name: IdAttrName
  value: XSD::QName.new(nil, 'id')
- !ruby/object:RI::Constant 
  comment: 
  name: MaxOccursAttrName
  value: XSD::QName.new(nil, 'maxOccurs')
- !ruby/object:RI::Constant 
  comment: 
  name: MinOccursAttrName
  value: XSD::QName.new(nil, 'minOccurs')
- !ruby/object:RI::Constant 
  comment: 
  name: MixedAttrName
  value: XSD::QName.new(nil, 'mixed')
- !ruby/object:RI::Constant 
  comment: 
  name: NameAttrName
  value: XSD::QName.new(nil, 'name')
- !ruby/object:RI::Constant 
  comment: 
  name: NamespaceAttrName
  value: XSD::QName.new(nil, 'namespace')
- !ruby/object:RI::Constant 
  comment: 
  name: NillableAttrName
  value: XSD::QName.new(nil, 'nillable')
- !ruby/object:RI::Constant 
  comment: 
  name: ProcessContentsAttrName
  value: XSD::QName.new(nil, 'processContents')
- !ruby/object:RI::Constant 
  comment: 
  name: RefAttrName
  value: XSD::QName.new(nil, 'ref')
- !ruby/object:RI::Constant 
  comment: 
  name: SchemaLocationAttrName
  value: XSD::QName.new(nil, 'schemaLocation')
- !ruby/object:RI::Constant 
  comment: 
  name: TargetNamespaceAttrName
  value: XSD::QName.new(nil, 'targetNamespace')
- !ruby/object:RI::Constant 
  comment: 
  name: TypeAttrName
  value: XSD::QName.new(nil, 'type')
- !ruby/object:RI::Constant 
  comment: 
  name: UseAttrName
  value: XSD::QName.new(nil, 'use')
- !ruby/object:RI::Constant 
  comment: 
  name: ValueAttrName
  value: XSD::QName.new(nil, 'value')
full_name: WSDL::XMLSchema
includes: []

instance_methods: []

name: XMLSchema
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleExtension#valid?
is_singleton: false
name: valid?
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleExtension::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleExtension#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleExtension#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: base
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::SimpleExtension
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
- !ruby/object:RI::MethodSummary 
  name: valid?
name: SimpleExtension
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleExtension#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Pattern
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Pattern
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Pattern::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Pattern#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Pattern#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Import#import
is_singleton: false
name: import
params: (location)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Import::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Import#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Import#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: schemalocation
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Import
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Import
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#directelement?
is_singleton: false
name: directelement?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#elementform
is_singleton: false
name: elementform
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: constraint
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: form
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: local_complextype
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: local_simpletype
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: maxoccurs
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: minoccurs
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: nillable
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  name: ref
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: attr_reader_ref
- !ruby/object:RI::MethodSummary 
  name: attr_reader_ref
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Element
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: attributes
- !ruby/object:RI::MethodSummary 
  name: directelement?
- !ruby/object:RI::MethodSummary 
  name: elementform
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: map_as_array?
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: refelement
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Element
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#map_as_array?
is_singleton: false
name: map_as_array?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#attributes
is_singleton: false
name: attributes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element::new
is_singleton: true
name: new
params: (name = nil, type = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#refelement
is_singleton: false
name: refelement
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element::attr_reader_ref
is_singleton: true
name: attr_reader_ref
params: (symbol)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Element#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#content
is_singleton: false
name: content
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#check
is_singleton: false
name: check
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: extension
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: restriction
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::SimpleContent
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: base
- !ruby/object:RI::MethodSummary 
  name: check
- !ruby/object:RI::MethodSummary 
  name: check_lexical_format
- !ruby/object:RI::MethodSummary 
  name: content
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: SimpleContent
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#base
is_singleton: false
name: base
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleContent#check_lexical_format
is_singleton: false
name: check_lexical_format
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer::import
is_singleton: true
name: import
params: (location, originalroot = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer#fetch
is_singleton: false
name: fetch
params: (location)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer#import
is_singleton: false
name: import
params: (location, originalroot = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer#parse
is_singleton: false
name: parse
params: (content, location, originalroot)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Importer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: web_client
name: Importer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Importer#web_client
is_singleton: false
name: web_client
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::FormatDecodeError
includes: []

instance_methods: []

name: FormatDecodeError
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#end_element
is_singleton: false
name: end_element
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::ElementConstraintError
includes: []

instance_methods: []

name: ElementConstraintError
superclass: FormatDecodeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::ParseError
includes: []

instance_methods: []

name: ParseError
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::AttributeConstraintError
includes: []

instance_methods: []

name: AttributeConstraintError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#start_element
is_singleton: false
name: start_element
params: (name, attrs)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: node
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: ns
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::ParseFrame
includes: []

instance_methods: []

name: ParseFrame
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser::ParseFrame::new
is_singleton: true
name: new
params: (ns, name, node)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#decode_tag_end
is_singleton: false
name: decode_tag_end
params: (ns, node)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#characters
is_singleton: false
name: characters
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#charset
is_singleton: false
name: charset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser::new
is_singleton: true
name: new
params: (opt = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Parser
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSD
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: characters
- !ruby/object:RI::MethodSummary 
  name: charset
- !ruby/object:RI::MethodSummary 
  name: decode_tag
- !ruby/object:RI::MethodSummary 
  name: decode_tag_end
- !ruby/object:RI::MethodSummary 
  name: decode_text
- !ruby/object:RI::MethodSummary 
  name: end_element
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: start_element
name: Parser
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::UnknownAttributeError
includes: []

instance_methods: []

name: UnknownAttributeError
superclass: FormatDecodeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::UnexpectedElementError
includes: []

instance_methods: []

name: UnexpectedElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#parse
is_singleton: false
name: parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::XMLSchema::Parser::UnknownElementError
includes: []

instance_methods: []

name: UnknownElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#decode_tag
is_singleton: false
name: decode_tag
params: (ns, name, attrs, parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Parser#decode_text
is_singleton: false
name: decode_text
params: (ns, text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#location=
is_singleton: false
name: location=
params: (location)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributeformdefault
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: complextypes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: elementformdefault
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: elements
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: importedschema
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: imports
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: simpletypes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: targetnamespace
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse_element
comment: 
constants: []

full_name: WSDL::XMLSchema::Schema
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: collect_attributes
- !ruby/object:RI::MethodSummary 
  name: collect_complextypes
- !ruby/object:RI::MethodSummary 
  name: collect_elements
- !ruby/object:RI::MethodSummary 
  name: collect_simpletypes
- !ruby/object:RI::MethodSummary 
  name: location
- !ruby/object:RI::MethodSummary 
  name: location=
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Schema
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#collect_elements
is_singleton: false
name: collect_elements
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#location
is_singleton: false
name: location
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema::parse_element
is_singleton: true
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#collect_complextypes
is_singleton: false
name: collect_complextypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#collect_simpletypes
is_singleton: false
name: collect_simpletypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Schema#collect_attributes
is_singleton: false
name: collect_attributes
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Length
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Length
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Length::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Length#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Length#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#all_elements=
is_singleton: false
name: all_elements=
params: (elements)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (AnyAsElement)
comment: 
full_name: WSDL::XMLSchema::ComplexType#each_element
is_singleton: false
name: each_element
params: () {|AnyAsElement| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#find_element_by_name
is_singleton: false
name: find_element_by_name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#content_arytype
is_singleton: false
name: content_arytype
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#find_arytype
is_singleton: false
name: find_arytype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#child_defined_complextype
is_singleton: false
name: child_defined_complextype
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#check_type
is_singleton: false
name: check_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#find_aryelement
is_singleton: false
name: find_aryelement
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#check_array_content
is_singleton: false
name: check_array_content
params: (content)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: complexcontent
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: final
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: mixed
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: simplecontent
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: AnyAsElement
  value: Element.new(XSD::QName.new(nil, 'any'), XSD::AnyTypeName)
full_name: WSDL::XMLSchema::ComplexType
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_elements=
- !ruby/object:RI::MethodSummary 
  name: check_array_content
- !ruby/object:RI::MethodSummary 
  name: check_type
- !ruby/object:RI::MethodSummary 
  name: child_defined_complextype
- !ruby/object:RI::MethodSummary 
  name: child_type
- !ruby/object:RI::MethodSummary 
  name: compoundtype
- !ruby/object:RI::MethodSummary 
  name: content_arytype
- !ruby/object:RI::MethodSummary 
  name: each_element
- !ruby/object:RI::MethodSummary 
  name: element_simpletype
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: find_aryelement
- !ruby/object:RI::MethodSummary 
  name: find_arytype
- !ruby/object:RI::MethodSummary 
  name: find_element
- !ruby/object:RI::MethodSummary 
  name: find_element_by_name
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: sequence_elements=
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: ComplexType
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#sequence_elements=
is_singleton: false
name: sequence_elements=
params: (elements)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#compoundtype
is_singleton: false
name: compoundtype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#find_element
is_singleton: false
name: find_element
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType::new
is_singleton: true
name: new
params: (name = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#element_simpletype
is_singleton: false
name: element_simpletype
params: (element)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#child_type
is_singleton: false
name: child_type
params: (name = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::ComplexType#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#valid?
is_singleton: false
name: valid?
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#check_pattern
is_singleton: false
name: check_pattern
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#check_restriction
is_singleton: false
name: check_restriction
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#check_length
is_singleton: false
name: check_length
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleRestriction#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: base
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: enumeration
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: length
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: pattern
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::SimpleRestriction
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_length
- !ruby/object:RI::MethodSummary 
  name: check_pattern
- !ruby/object:RI::MethodSummary 
  name: check_restriction
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: valid?
name: SimpleRestriction
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Include#import
is_singleton: false
name: import
params: (location)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: schemalocation
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Include
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Include
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Include::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Include#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Include#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#run
is_singleton: false
name: run
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#import
is_singleton: false
name: import
params: (location)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#create_classdef
is_singleton: false
name: create_classdef
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: basedir
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: logger
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: opt
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::XSD2Ruby
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_file
- !ruby/object:RI::MethodSummary 
  name: create_classdef
- !ruby/object:RI::MethodSummary 
  name: create_classname
- !ruby/object:RI::MethodSummary 
  name: create_file
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: write_file
name: XSD2Ruby
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: f
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#write_file
is_singleton: false
name: write_file
params: (filename) {|f| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#create_file
is_singleton: false
name: create_file
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#check_file
is_singleton: false
name: check_file
params: (filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::XSD2Ruby#create_classname
is_singleton: false
name: create_classname
params: (xsd)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence#<<
is_singleton: false
name: "<<"
params: (element)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: elements
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: maxoccurs
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: minoccurs
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Sequence
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Sequence
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Sequence#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Unique
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Unique
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Unique::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Unique#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Unique#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Enumeration::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Enumeration#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Enumeration#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Enumeration
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Enumeration
superclass: Info
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: elements
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: maxoccurs
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: minoccurs
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::All
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: All
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All#<<
is_singleton: false
name: "<<"
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::All#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice#<<
is_singleton: false
name: "<<"
params: (element)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: elements
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: maxoccurs
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: minoccurs
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Choice
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: elementformdefault
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Choice
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Choice#elementformdefault
is_singleton: false
name: elementformdefault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Any::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Any#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Any#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: maxoccurs
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: minoccurs
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: process_contents
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Any
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Any
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Any#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Annotation::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Annotation#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Annotation#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Annotation
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Annotation
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#check_restriction
is_singleton: false
name: check_restriction
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType::new
is_singleton: true
name: new
params: (name = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#base
is_singleton: false
name: base
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: restriction
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::SimpleType
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: base
- !ruby/object:RI::MethodSummary 
  name: check_lexical_format
- !ruby/object:RI::MethodSummary 
  name: check_restriction
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: SimpleType
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::SimpleType#check_lexical_format
is_singleton: false
name: check_lexical_format
params: (value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: contents
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: elements
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: final
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: mixed
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::XMLSchema::Content
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: parse_epilogue
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
- !ruby/object:RI::MethodSummary 
  name: update_elements
name: Content
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#parse_epilogue
is_singleton: false
name: parse_epilogue
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: content
comment: 
full_name: WSDL::XMLSchema::Content#each
is_singleton: false
name: each
params: () {|content| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#<<
is_singleton: false
name: "<<"
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#update_elements
is_singleton: false
name: update_elements
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::XMLSchema::Content#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Binding::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Binding#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Binding#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: operations
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapbinding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Binding
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Binding
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Binding#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This program is copyrighted free software by NAKAMURA, Hiroshi. You can redistribute it and/or modify it under the same terms of Ruby's license; either the dual license version in 2003, or any later version.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ArrayTypeAttrName
  value: XSD::QName.new(Namespace, 'arrayType')
- !ruby/object:RI::Constant 
  comment: 
  name: BindingName
  value: XSD::QName.new(Namespace, 'binding')
- !ruby/object:RI::Constant 
  comment: 
  name: DefinitionsName
  value: XSD::QName.new(Namespace, 'definitions')
- !ruby/object:RI::Constant 
  comment: 
  name: DocumentationName
  value: XSD::QName.new(Namespace, 'documentation')
- !ruby/object:RI::Constant 
  comment: 
  name: FaultName
  value: XSD::QName.new(Namespace, 'fault')
- !ruby/object:RI::Constant 
  comment: 
  name: ImportName
  value: XSD::QName.new(Namespace, 'import')
- !ruby/object:RI::Constant 
  comment: 
  name: InputName
  value: XSD::QName.new(Namespace, 'input')
- !ruby/object:RI::Constant 
  comment: 
  name: MessageName
  value: XSD::QName.new(Namespace, 'message')
- !ruby/object:RI::Constant 
  comment: 
  name: OperationName
  value: XSD::QName.new(Namespace, 'operation')
- !ruby/object:RI::Constant 
  comment: 
  name: OutputName
  value: XSD::QName.new(Namespace, 'output')
- !ruby/object:RI::Constant 
  comment: 
  name: PartName
  value: XSD::QName.new(Namespace, 'part')
- !ruby/object:RI::Constant 
  comment: 
  name: PortName
  value: XSD::QName.new(Namespace, 'port')
- !ruby/object:RI::Constant 
  comment: 
  name: PortTypeName
  value: XSD::QName.new(Namespace, 'portType')
- !ruby/object:RI::Constant 
  comment: 
  name: ServiceName
  value: XSD::QName.new(Namespace, 'service')
- !ruby/object:RI::Constant 
  comment: 
  name: TypesName
  value: XSD::QName.new(Namespace, 'types')
- !ruby/object:RI::Constant 
  comment: 
  name: SchemaName
  value: XSD::QName.new(XSD::Namespace, 'schema')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPAddressName
  value: XSD::QName.new(SOAPBindingNamespace, 'address')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPBindingName
  value: XSD::QName.new(SOAPBindingNamespace, 'binding')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPHeaderName
  value: XSD::QName.new(SOAPBindingNamespace, 'header')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPBodyName
  value: XSD::QName.new(SOAPBindingNamespace, 'body')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPFaultName
  value: XSD::QName.new(SOAPBindingNamespace, 'fault')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPOperationName
  value: XSD::QName.new(SOAPBindingNamespace, 'operation')
- !ruby/object:RI::Constant 
  comment: 
  name: BindingAttrName
  value: XSD::QName.new(nil, 'binding')
- !ruby/object:RI::Constant 
  comment: 
  name: ElementAttrName
  value: XSD::QName.new(nil, 'element')
- !ruby/object:RI::Constant 
  comment: 
  name: LocationAttrName
  value: XSD::QName.new(nil, 'location')
- !ruby/object:RI::Constant 
  comment: 
  name: MessageAttrName
  value: XSD::QName.new(nil, 'message')
- !ruby/object:RI::Constant 
  comment: 
  name: NameAttrName
  value: XSD::QName.new(nil, 'name')
- !ruby/object:RI::Constant 
  comment: 
  name: NamespaceAttrName
  value: XSD::QName.new(nil, 'namespace')
- !ruby/object:RI::Constant 
  comment: 
  name: ParameterOrderAttrName
  value: XSD::QName.new(nil, 'parameterOrder')
- !ruby/object:RI::Constant 
  comment: 
  name: TargetNamespaceAttrName
  value: XSD::QName.new(nil, 'targetNamespace')
- !ruby/object:RI::Constant 
  comment: 
  name: TypeAttrName
  value: XSD::QName.new(nil, 'type')
- !ruby/object:RI::Constant 
  comment: 
  name: Version
  value: "'0.0.2'"
- !ruby/object:RI::Constant 
  comment: 
  name: Namespace
  value: "'http://schemas.xmlsoap.org/wsdl/'"
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPBindingNamespace
  value: "'http://schemas.xmlsoap.org/wsdl/soap/'"
full_name: WSDL
includes: []

instance_methods: []

name: WSDL
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: operations
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::PortType
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_binding
- !ruby/object:RI::MethodSummary 
  name: locations
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: PortType
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType#find_binding
is_singleton: false
name: find_binding
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType#locations
is_singleton: false
name: locations
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::PortType#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Import#import
is_singleton: false
name: import
params: (location)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Import::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Import#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Import#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Import
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Import
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#outputparts
is_singleton: false
name: outputparts
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#outputname
is_singleton: false
name: outputname
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: fault
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: input
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: output
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: parameter_order
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Operation
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: input_info
- !ruby/object:RI::MethodSummary 
  name: inputname
- !ruby/object:RI::MethodSummary 
  name: inputparts
- !ruby/object:RI::MethodSummary 
  name: output_info
- !ruby/object:RI::MethodSummary 
  name: outputname
- !ruby/object:RI::MethodSummary 
  name: outputparts
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: sort_parts
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Operation
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#output_info
is_singleton: false
name: output_info
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#sort_parts
is_singleton: false
name: sort_parts
params: (parts)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#inputname
is_singleton: false
name: inputname
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#input_info
is_singleton: false
name: input_info
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#inputparts
is_singleton: false
name: inputparts
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Operation::NameInfo::new
is_singleton: true
name: new
params: (op_name, optype_name, parts)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: op_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: optype_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: parts
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Operation::NameInfo
includes: []

instance_methods: []

name: NameInfo
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Documentation
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Documentation
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Documentation::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Documentation#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Documentation#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Importer::import
is_singleton: true
name: import
params: (location, originalroot = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Importer#parse
is_singleton: false
name: parse
params: (content, location, originalroot)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: import
comment: 
constants: []

full_name: WSDL::Importer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: Importer
superclass: WSDL::XMLSchema::Importer
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::FormatDecodeError
includes: []

instance_methods: []

name: FormatDecodeError
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#end_element
is_singleton: false
name: end_element
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::ElementConstraintError
includes: []

instance_methods: []

name: ElementConstraintError
superclass: FormatDecodeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::ParseError
includes: []

instance_methods: []

name: ParseError
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::AttributeConstraintError
includes: []

instance_methods: []

name: AttributeConstraintError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#start_element
is_singleton: false
name: start_element
params: (name, attrs)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: node
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: ns
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Parser::ParseFrame
includes: []

instance_methods: []

name: ParseFrame
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser::ParseFrame::new
is_singleton: true
name: new
params: (ns, name, node)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#decode_tag_end
is_singleton: false
name: decode_tag_end
params: (ns, node)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#characters
is_singleton: false
name: characters
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#charset
is_singleton: false
name: charset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser::new
is_singleton: true
name: new
params: (opt = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Parser
includes: 
- !ruby/object:RI::IncludedModule 
  name: WSDL
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: characters
- !ruby/object:RI::MethodSummary 
  name: charset
- !ruby/object:RI::MethodSummary 
  name: decode_tag
- !ruby/object:RI::MethodSummary 
  name: decode_tag_end
- !ruby/object:RI::MethodSummary 
  name: decode_text
- !ruby/object:RI::MethodSummary 
  name: end_element
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: start_element
name: Parser
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::UnknownAttributeError
includes: []

instance_methods: []

name: UnknownAttributeError
superclass: FormatDecodeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::UnexpectedElementError
includes: []

instance_methods: []

name: UnexpectedElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#parse
is_singleton: false
name: parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::Parser::UnknownElementError
includes: []

instance_methods: []

name: UnknownElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#decode_tag
is_singleton: false
name: decode_tag
params: (ns, name, attrs, parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Parser#decode_text
is_singleton: false
name: decode_text
params: (ns, text)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: ports
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soap_address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Service
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Service
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Service::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Service#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Service#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Service#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: element
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Part
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Part
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Part::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Part#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Part#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Info#parse_epilogue
is_singleton: false
name: parse_epilogue
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Info#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Info::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Info#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Info#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: id
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: root
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Info
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: parse_epilogue
name: Info
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param#soapbody_use
is_singleton: false
name: soapbody_use
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: message
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapbody
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapfault
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapheader
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Param
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_message
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: soapbody_use
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Param
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Param#find_message
is_singleton: false
name: find_message
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Message::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Message#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Message#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Message#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: parts
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Message
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Message
superclass: Info
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: fault
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: input
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: output
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapoperation
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::OperationBinding
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_operation
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: porttype
- !ruby/object:RI::MethodSummary 
  name: soapaction
- !ruby/object:RI::MethodSummary 
  name: soapoperation_name
- !ruby/object:RI::MethodSummary 
  name: soapoperation_style
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: OperationBinding
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#porttype
is_singleton: false
name: porttype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#soapoperation_style
is_singleton: false
name: soapoperation_style
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#find_operation
is_singleton: false
name: find_operation
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#soapaction
is_singleton: false
name: soapaction
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::OperationBinding#soapoperation_name
is_singleton: false
name: soapoperation_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "ToDo: simpletype must be accepted..."
full_name: WSDL::Definitions#add_type
is_singleton: false
name: add_type
params: (complextype)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::array_complextype
is_singleton: true
name: array_complextype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#messages
is_singleton: false
name: messages
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#soap_rpc_complextypes
is_singleton: false
name: soap_rpc_complextypes
params: (binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#porttypes
is_singleton: false
name: porttypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#services
is_singleton: false
name: services
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_fault_messages
is_singleton: false
name: collect_fault_messages
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_faulttypes
is_singleton: false
name: collect_faulttypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#message
is_singleton: false
name: message
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::fault_complextype
is_singleton: true
name: fault_complextype
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: importedschema
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: imports
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: targetnamespace
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: array_complextype
- !ruby/object:RI::MethodSummary 
  name: exception_complextype
- !ruby/object:RI::MethodSummary 
  name: fault_complextype
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: soap_rpc_complextypes
comment: 
constants: []

full_name: WSDL::Definitions
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_type
- !ruby/object:RI::MethodSummary 
  name: binding
- !ruby/object:RI::MethodSummary 
  name: bindings
- !ruby/object:RI::MethodSummary 
  name: collect_attributes
- !ruby/object:RI::MethodSummary 
  name: collect_complextypes
- !ruby/object:RI::MethodSummary 
  name: collect_elements
- !ruby/object:RI::MethodSummary 
  name: collect_fault_messages
- !ruby/object:RI::MethodSummary 
  name: collect_faulttypes
- !ruby/object:RI::MethodSummary 
  name: collect_simpletypes
- !ruby/object:RI::MethodSummary 
  name: elements_from_message
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: message
- !ruby/object:RI::MethodSummary 
  name: messages
- !ruby/object:RI::MethodSummary 
  name: op_bind_rpc?
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: porttype
- !ruby/object:RI::MethodSummary 
  name: porttype_binding
- !ruby/object:RI::MethodSummary 
  name: porttypes
- !ruby/object:RI::MethodSummary 
  name: rpc_operation_complextypes
- !ruby/object:RI::MethodSummary 
  name: service
- !ruby/object:RI::MethodSummary 
  name: services
- !ruby/object:RI::MethodSummary 
  name: soap_rpc_complextypes
- !ruby/object:RI::MethodSummary 
  name: targetnamespace=
name: Definitions
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#porttype
is_singleton: false
name: porttype
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#targetnamespace=
is_singleton: false
name: targetnamespace=
params: (targetnamespace)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::exception_complextype
is_singleton: true
name: exception_complextype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#porttype_binding
is_singleton: false
name: porttype_binding
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::soap_rpc_complextypes
is_singleton: true
name: soap_rpc_complextypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_elements
is_singleton: false
name: collect_elements
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions::parse_element
is_singleton: true
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#service
is_singleton: false
name: service
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#bindings
is_singleton: false
name: bindings
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#op_bind_rpc?
is_singleton: false
name: op_bind_rpc?
params: (op_bind)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#elements_from_message
is_singleton: false
name: elements_from_message
params: (message)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#rpc_operation_complextypes
is_singleton: false
name: rpc_operation_complextypes
params: (binding)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_complextypes
is_singleton: false
name: collect_complextypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_simpletypes
is_singleton: false
name: collect_simpletypes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#binding
is_singleton: false
name: binding
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Definitions#collect_attributes
is_singleton: false
name: collect_attributes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::StandaloneServerStubCreator#dump_porttype
is_singleton: false
name: dump_porttype
params: (name)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::StandaloneServerStubCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_porttype
name: StandaloneServerStubCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::StandaloneServerStubCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::StandaloneServerStubCreator#dump
is_singleton: false
name: dump
params: (service_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Binding::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Binding#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Binding#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: style
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: transport
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Binding
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Binding
superclass: Info
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encodingstyle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: parts
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Body
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Body
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Body::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Body#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Body#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation::OperationInfo::new
is_singleton: true
name: new
params: (style, op_name, optype_name, headerparts, bodyparts, faultpart, soapaction)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: bodyparts
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: faultpart
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: headerparts
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: op_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: optype_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soapaction
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: style
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Operation::OperationInfo
includes: []

instance_methods: []

name: OperationInfo
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#param_info
is_singleton: false
name: param_info
params: (name_info, param)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: soapaction
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: style
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Operation
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: input_info
- !ruby/object:RI::MethodSummary 
  name: operation_style
- !ruby/object:RI::MethodSummary 
  name: output_info
- !ruby/object:RI::MethodSummary 
  name: param_info
- !ruby/object:RI::MethodSummary 
  name: parent_binding
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Operation
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#output_info
is_singleton: false
name: output_info
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#input_info
is_singleton: false
name: input_info
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#operation_style
is_singleton: false
name: operation_style
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Operation#parent_binding
is_singleton: false
name: parent_binding
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: HeaderFaultName
  value: XSD::QName.new(SOAPBindingNamespace, 'headerfault')
- !ruby/object:RI::Constant 
  comment: 
  name: LocationAttrName
  value: XSD::QName.new(nil, 'location')
- !ruby/object:RI::Constant 
  comment: 
  name: StyleAttrName
  value: XSD::QName.new(nil, 'style')
- !ruby/object:RI::Constant 
  comment: 
  name: TransportAttrName
  value: XSD::QName.new(nil, 'transport')
- !ruby/object:RI::Constant 
  comment: 
  name: UseAttrName
  value: XSD::QName.new(nil, 'use')
- !ruby/object:RI::Constant 
  comment: 
  name: PartsAttrName
  value: XSD::QName.new(nil, 'parts')
- !ruby/object:RI::Constant 
  comment: 
  name: PartAttrName
  value: XSD::QName.new(nil, 'part')
- !ruby/object:RI::Constant 
  comment: 
  name: NameAttrName
  value: XSD::QName.new(nil, 'name')
- !ruby/object:RI::Constant 
  comment: 
  name: MessageAttrName
  value: XSD::QName.new(nil, 'message')
- !ruby/object:RI::Constant 
  comment: 
  name: EncodingStyleAttrName
  value: XSD::QName.new(nil, 'encodingStyle')
- !ruby/object:RI::Constant 
  comment: 
  name: NamespaceAttrName
  value: XSD::QName.new(nil, 'namespace')
- !ruby/object:RI::Constant 
  comment: 
  name: SOAPActionAttrName
  value: XSD::QName.new(nil, 'soapAction')
full_name: WSDL::SOAP
includes: []

instance_methods: []

name: SOAP
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encodingstyle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Fault
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Fault
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Fault::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Fault#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Fault#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Fault#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Address::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Address#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Address#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Address
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: Address
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#dump_inout_type
is_singleton: false
name: dump_inout_type
params: (param)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WSDL::SOAP::ClassDefCreatorSupport
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSD::CodeGen::GenSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_at
- !ruby/object:RI::MethodSummary 
  name: basetype_mapped_class
- !ruby/object:RI::MethodSummary 
  name: create_class_name
- !ruby/object:RI::MethodSummary 
  name: dq
- !ruby/object:RI::MethodSummary 
  name: dqname
- !ruby/object:RI::MethodSummary 
  name: dump_inout_type
- !ruby/object:RI::MethodSummary 
  name: dump_inputparam
- !ruby/object:RI::MethodSummary 
  name: dump_method_signature
- !ruby/object:RI::MethodSummary 
  name: ndq
- !ruby/object:RI::MethodSummary 
  name: sym
name: ClassDefCreatorSupport
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#sym
is_singleton: false
name: sym
params: (ele)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#dq
is_singleton: false
name: dq
params: (ele)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#dump_method_signature
is_singleton: false
name: dump_method_signature
params: (operation)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#ndq
is_singleton: false
name: ndq
params: (ele)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#dqname
is_singleton: false
name: dqname
params: (qname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#basetype_mapped_class
is_singleton: false
name: basetype_mapped_class
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#add_at
is_singleton: false
name: add_at
params: (base, str, pos)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#dump_inputparam
is_singleton: false
name: dump_inputparam
params: (input)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreatorSupport#create_class_name
is_singleton: false
name: create_class_name
params: (qname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#elementqualified
is_singleton: false
name: elementqualified
params: (part)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::MethodDefCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: cdr
- !ruby/object:RI::MethodSummary 
  name: collect_documentparameter
- !ruby/object:RI::MethodSummary 
  name: collect_rpcparameter
- !ruby/object:RI::MethodSummary 
  name: collect_type
- !ruby/object:RI::MethodSummary 
  name: documentdefinedtype
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_method
- !ruby/object:RI::MethodSummary 
  name: ele2str
- !ruby/object:RI::MethodSummary 
  name: elementqualified
- !ruby/object:RI::MethodSummary 
  name: param2str
- !ruby/object:RI::MethodSummary 
  name: param_set
- !ruby/object:RI::MethodSummary 
  name: rpcdefinedtype
- !ruby/object:RI::MethodSummary 
  name: type2str
name: MethodDefCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#ele2str
is_singleton: false
name: ele2str
params: (ele)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#collect_documentparameter
is_singleton: false
name: collect_documentparameter
params: (operation)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#cdr
is_singleton: false
name: cdr
params: (ary)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#rpcdefinedtype
is_singleton: false
name: rpcdefinedtype
params: (part)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#type2str
is_singleton: false
name: type2str
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#dump
is_singleton: false
name: dump
params: (porttype)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#param_set
is_singleton: false
name: param_set
params: (io_type, name, type, ele = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#param2str
is_singleton: false
name: param2str
params: (params)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#collect_type
is_singleton: false
name: collect_type
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#dump_method
is_singleton: false
name: dump_method
params: (operation, binding)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#documentdefinedtype
is_singleton: false
name: documentdefinedtype
params: (part)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MethodDefCreator#collect_rpcparameter
is_singleton: false
name: collect_rpcparameter
params: (operation)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::CGIStubCreator#dump_porttype
is_singleton: false
name: dump_porttype
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::CGIStubCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::CGIStubCreator#dump
is_singleton: false
name: dump
params: (service_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::CGIStubCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_porttype
name: CGIStubCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#run
is_singleton: false
name: run
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#import
is_singleton: false
name: import
params: (location)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_client_skelton
is_singleton: false
name: create_client_skelton
params: (servicename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_classdef
is_singleton: false
name: create_classdef
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: basedir
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: logger
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: opt
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::WSDL2Ruby
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_file
- !ruby/object:RI::MethodSummary 
  name: create_cgi_stub
- !ruby/object:RI::MethodSummary 
  name: create_classdef
- !ruby/object:RI::MethodSummary 
  name: create_client_skelton
- !ruby/object:RI::MethodSummary 
  name: create_driver
- !ruby/object:RI::MethodSummary 
  name: create_file
- !ruby/object:RI::MethodSummary 
  name: create_name
- !ruby/object:RI::MethodSummary 
  name: create_servant_skelton
- !ruby/object:RI::MethodSummary 
  name: create_standalone_server_stub
- !ruby/object:RI::MethodSummary 
  name: import
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: shbang
- !ruby/object:RI::MethodSummary 
  name: write_file
name: WSDL2Ruby
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_name
is_singleton: false
name: create_name
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: f
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#write_file
is_singleton: false
name: write_file
params: (filename) {|f| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_file
is_singleton: false
name: create_file
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_servant_skelton
is_singleton: false
name: create_servant_skelton
params: (porttypename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#check_file
is_singleton: false
name: check_file
params: (filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_cgi_stub
is_singleton: false
name: create_cgi_stub
params: (servicename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#shbang
is_singleton: false
name: shbang
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_driver
is_singleton: false
name: create_driver
params: (porttypename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::WSDL2Ruby#create_standalone_server_stub
is_singleton: false
name: create_standalone_server_stub
params: (servicename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::HeaderFault::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encodingstyle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: message
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: part
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::HeaderFault
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
name: HeaderFault
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::HeaderFault#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::HeaderFault#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ServantSkeltonCreator#dump_porttype
is_singleton: false
name: dump_porttype
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ServantSkeltonCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ServantSkeltonCreator#dump
is_singleton: false
name: dump
params: (porttype = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::ServantSkeltonCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
- !ruby/object:RI::IncludedModule 
  name: XSD::CodeGen::GenSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_porttype
name: ServantSkeltonCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_complextype
is_singleton: false
name: dump_complextype
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#name_element
is_singleton: false
name: name_element
params: (element)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_element
is_singleton: false
name: dump_element
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#basetype_class
is_singleton: false
name: basetype_class
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#attribute_basetype
is_singleton: false
name: attribute_basetype
params: (attr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_simpletypedef
is_singleton: false
name: dump_simpletypedef
params: (qname, simpletype)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_simpleclassdef
is_singleton: false
name: dump_simpleclassdef
params: (type_or_element)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_simpletype
is_singleton: false
name: dump_simpletype
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_arraydef
is_singleton: false
name: dump_arraydef
params: (complextype)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#name_attribute
is_singleton: false
name: name_attribute
params: (attribute)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#element_basetype
is_singleton: false
name: element_basetype
params: (ele)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump
is_singleton: false
name: dump
params: (type = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#define_attribute
is_singleton: false
name: define_attribute
params: (c, attributes)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_ITEM_NAME
  value: XSD::QName.new(nil, 'item')
full_name: WSDL::SOAP::ClassDefCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: attribute_basetype
- !ruby/object:RI::MethodSummary 
  name: basetype_class
- !ruby/object:RI::MethodSummary 
  name: define_attribute
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_arraydef
- !ruby/object:RI::MethodSummary 
  name: dump_classdef
- !ruby/object:RI::MethodSummary 
  name: dump_complextype
- !ruby/object:RI::MethodSummary 
  name: dump_element
- !ruby/object:RI::MethodSummary 
  name: dump_simpleclassdef
- !ruby/object:RI::MethodSummary 
  name: dump_simpletype
- !ruby/object:RI::MethodSummary 
  name: dump_simpletypedef
- !ruby/object:RI::MethodSummary 
  name: element_basetype
- !ruby/object:RI::MethodSummary 
  name: name_attribute
- !ruby/object:RI::MethodSummary 
  name: name_element
name: ClassDefCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClassDefCreator#dump_classdef
is_singleton: false
name: dump_classdef
params: (qname, typedef, qualified = false)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClientSkeltonCreator#dump_porttype
is_singleton: false
name: dump_porttype
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClientSkeltonCreator#dump_operation
is_singleton: false
name: dump_operation
params: (operation)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClientSkeltonCreator#dump_input_init
is_singleton: false
name: dump_input_init
params: (input)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClientSkeltonCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::ClientSkeltonCreator#dump
is_singleton: false
name: dump
params: (service_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::ClientSkeltonCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_input_init
- !ruby/object:RI::MethodSummary 
  name: dump_operation
- !ruby/object:RI::MethodSummary 
  name: dump_porttype
name: ClientSkeltonCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encodingstyle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: headerfault
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: message
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: part
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: use
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::Header
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_message
- !ruby/object:RI::MethodSummary 
  name: find_part
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Header
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header#find_part
is_singleton: false
name: find_part
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::Header#find_message
is_singleton: false
name: find_message
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MappingRegistryCreator#dump_array_typemap
is_singleton: false
name: dump_array_typemap
params: (definedtype)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MappingRegistryCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MappingRegistryCreator#dump_typemap
is_singleton: false
name: dump_typemap
params: (type)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::MappingRegistryCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_array_typemap
- !ruby/object:RI::MethodSummary 
  name: dump_struct_typemap
- !ruby/object:RI::MethodSummary 
  name: dump_typemap
name: MappingRegistryCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MappingRegistryCreator#dump
is_singleton: false
name: dump
params: (types)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::MappingRegistryCreator#dump_struct_typemap
is_singleton: false
name: dump_struct_typemap
params: (definedtype)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::DriverCreator#dump_porttype
is_singleton: false
name: dump_porttype
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::DriverCreator::new
is_singleton: true
name: new
params: (definitions)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definitions
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::SOAP::DriverCreator
includes: 
- !ruby/object:RI::IncludedModule 
  name: ClassDefCreatorSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_porttype
name: DriverCreator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::SOAP::DriverCreator#dump
is_singleton: false
name: dump
params: (porttype = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: binding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: soap_address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: WSDL::Port
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_binding
- !ruby/object:RI::MethodSummary 
  name: inputoperation_map
- !ruby/object:RI::MethodSummary 
  name: outputoperation_map
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_element
- !ruby/object:RI::MethodSummary 
  name: porttype
- !ruby/object:RI::MethodSummary 
  name: targetnamespace
name: Port
superclass: Info
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#porttype
is_singleton: false
name: porttype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#parse_element
is_singleton: false
name: parse_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#outputoperation_map
is_singleton: false
name: outputoperation_map
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#parse_attr
is_singleton: false
name: parse_attr
params: (attr, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#find_binding
is_singleton: false
name: find_binding
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#inputoperation_map
is_singleton: false
name: inputoperation_map
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WSDL::Port#targetnamespace
is_singleton: false
name: targetnamespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: Binding#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the Ruby expression(s) in <em>string</em>, in the <em>binding</em>'s context. If the optional <em>filename</em> and <em>lineno</em> parameters are present, they will be used when reporting syntax errors.
- !ruby/struct:SM::Flow::VERB 
  body: "   def getBinding(param)\n     return binding\n   end\n   b = getBinding(&quot;hello&quot;)\n   b.eval(&quot;param&quot;)   #=&gt; &quot;hello&quot;\n"
full_name: Binding#eval
is_singleton: false
name: eval
params: |
  binding.eval(string [, filename [,lineno]])  => obj

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Objects of class <tt>Binding</tt> encapsulate the execution context at some particular place in the code and retain this context for future use. The variables, methods, value of <tt>self</tt>, and possibly an iterator block that can be accessed in this context are all retained. Binding objects can be created using <tt>Kernel#binding</tt>, and are made available to the callback of <tt>Kernel#set_trace_func</tt>.
- !ruby/struct:SM::Flow::P 
  body: These binding objects can be passed as the second argument of the <tt>Kernel#eval</tt> method, establishing an environment for the evaluation.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Demo\n     def initialize(n)\n       @secret = n\n     end\n     def getBinding\n       return binding()\n     end\n   end\n\n   k1 = Demo.new(99)\n   b1 = k1.getBinding\n   k2 = Demo.new(-3)\n   b2 = k2.getBinding\n\n   eval(&quot;@secret&quot;, b1)   #=&gt; 99\n   eval(&quot;@secret&quot;, b2)   #=&gt; -3\n   eval(&quot;@secret&quot;)       #=&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: Binding objects have no class-specific methods.
constants: []

full_name: Binding
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: eval
name: Binding
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Hash with completion search feature. See OptionParser::Completion.
constants: []

full_name: CompletingHash
includes: 
- !ruby/object:RI::IncludedModule 
  name: Completion
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: match
name: CompletingHash
superclass: Hash
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Completion for hash key.
full_name: CompletingHash#match
is_singleton: false
name: match
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: break_points
- !ruby/object:RI::MethodSummary 
  name: context
- !ruby/object:RI::MethodSummary 
  name: debug_thread_info
- !ruby/object:RI::MethodSummary 
  name: display
- !ruby/object:RI::MethodSummary 
  name: get_thread
- !ruby/object:RI::MethodSummary 
  name: interrupt
- !ruby/object:RI::MethodSummary 
  name: make_thread_list
- !ruby/object:RI::MethodSummary 
  name: resume
- !ruby/object:RI::MethodSummary 
  name: set_last_thread
- !ruby/object:RI::MethodSummary 
  name: set_trace
- !ruby/object:RI::MethodSummary 
  name: stdout
- !ruby/object:RI::MethodSummary 
  name: stdout=
- !ruby/object:RI::MethodSummary 
  name: suspend
- !ruby/object:RI::MethodSummary 
  name: thread_list
- !ruby/object:RI::MethodSummary 
  name: thread_list_all
- !ruby/object:RI::MethodSummary 
  name: waiting
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: MUTEX
  value: Mutex.new
full_name: DEBUGGER__
includes: []

instance_methods: []

name: DEBUGGER__
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::waiting
is_singleton: true
name: waiting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::interrupt
is_singleton: true
name: interrupt
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Mutex#unlock
is_singleton: false
name: unlock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Mutex#locked?
is_singleton: false
name: locked?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DEBUGGER__::Mutex
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: lock
- !ruby/object:RI::MethodSummary 
  name: locked?
- !ruby/object:RI::MethodSummary 
  name: unlock
name: Mutex
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Mutex::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Mutex#lock
is_singleton: false
name: lock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::debug_thread_info
is_singleton: true
name: debug_thread_info
params: (input, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#set_last_thread
is_singleton: false
name: set_last_thread
params: (th)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#line_at
is_singleton: false
name: line_at
params: (file, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_command
is_singleton: false
name: debug_command
params: (file, line, id, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#thnum
is_singleton: false
name: thnum
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_variable_info
is_singleton: false
name: debug_variable_info
params: (input, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#check_break_points
is_singleton: false
name: check_break_points
params: (file, klass, pos, binding, id)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#clear_suspend
is_singleton: false
name: clear_suspend
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#set_trace_all
is_singleton: false
name: set_trace_all
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_method_info
is_singleton: false
name: debug_method_info
params: (input, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#resume_all
is_singleton: false
name: resume_all
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#set_trace
is_singleton: false
name: set_trace
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#display_frames
is_singleton: false
name: display_frames
params: (pos)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_eval
is_singleton: false
name: debug_eval
params: (str, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#display
is_singleton: false
name: display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#var_list
is_singleton: false
name: var_list
params: (ary, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#suspend_all
is_singleton: false
name: suspend_all
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEBUG_LAST_CMD
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: USE_READLINE
  value: "false"
full_name: DEBUGGER__::Context
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: break_points
- !ruby/object:RI::MethodSummary 
  name: check_break_points
- !ruby/object:RI::MethodSummary 
  name: check_suspend
- !ruby/object:RI::MethodSummary 
  name: clear_suspend
- !ruby/object:RI::MethodSummary 
  name: context
- !ruby/object:RI::MethodSummary 
  name: debug_command
- !ruby/object:RI::MethodSummary 
  name: debug_eval
- !ruby/object:RI::MethodSummary 
  name: debug_funcname
- !ruby/object:RI::MethodSummary 
  name: debug_method_info
- !ruby/object:RI::MethodSummary 
  name: debug_print_help
- !ruby/object:RI::MethodSummary 
  name: debug_silent_eval
- !ruby/object:RI::MethodSummary 
  name: debug_variable_info
- !ruby/object:RI::MethodSummary 
  name: display
- !ruby/object:RI::MethodSummary 
  name: display_expression
- !ruby/object:RI::MethodSummary 
  name: display_expressions
- !ruby/object:RI::MethodSummary 
  name: display_frames
- !ruby/object:RI::MethodSummary 
  name: display_list
- !ruby/object:RI::MethodSummary 
  name: excn_handle
- !ruby/object:RI::MethodSummary 
  name: format_frame
- !ruby/object:RI::MethodSummary 
  name: frame_set_pos
- !ruby/object:RI::MethodSummary 
  name: line_at
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: resume_all
- !ruby/object:RI::MethodSummary 
  name: set_last_thread
- !ruby/object:RI::MethodSummary 
  name: set_suspend
- !ruby/object:RI::MethodSummary 
  name: set_trace
- !ruby/object:RI::MethodSummary 
  name: set_trace_all
- !ruby/object:RI::MethodSummary 
  name: stdout
- !ruby/object:RI::MethodSummary 
  name: stop_next
- !ruby/object:RI::MethodSummary 
  name: suspend_all
- !ruby/object:RI::MethodSummary 
  name: thnum
- !ruby/object:RI::MethodSummary 
  name: trace?
- !ruby/object:RI::MethodSummary 
  name: trace_func
- !ruby/object:RI::MethodSummary 
  name: var_list
name: Context
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#set_suspend
is_singleton: false
name: set_suspend
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#stop_next
is_singleton: false
name: stop_next
params: (n=1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#frame_set_pos
is_singleton: false
name: frame_set_pos
params: (file, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_funcname
is_singleton: false
name: debug_funcname
params: (id)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#display_expression
is_singleton: false
name: display_expression
params: (exp, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#trace?
is_singleton: false
name: trace?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_silent_eval
is_singleton: false
name: debug_silent_eval
params: (str, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#readline
is_singleton: false
name: readline
params: (prompt, hist)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#excn_handle
is_singleton: false
name: excn_handle
params: (file, line, id, binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#display_list
is_singleton: false
name: display_list
params: (b, e, file, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#display_expressions
is_singleton: false
name: display_expressions
params: (binding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#context
is_singleton: false
name: context
params: (th)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#trace_func
is_singleton: false
name: trace_func
params: (event, file, line, id, binding, klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#break_points
is_singleton: false
name: break_points
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#check_suspend
is_singleton: false
name: check_suspend
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#stdout
is_singleton: false
name: stdout
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#format_frame
is_singleton: false
name: format_frame
params: (pos)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::Context#debug_print_help
is_singleton: false
name: debug_print_help
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::thread_list_all
is_singleton: true
name: thread_list_all
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::get_thread
is_singleton: true
name: get_thread
params: (num)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::stdout
is_singleton: true
name: stdout
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::set_last_thread
is_singleton: true
name: set_last_thread
params: (th)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::suspend
is_singleton: true
name: suspend
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::thread_list
is_singleton: true
name: thread_list
params: (num)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::make_thread_list
is_singleton: true
name: make_thread_list
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::set_trace
is_singleton: true
name: set_trace
params: ( arg )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::display
is_singleton: true
name: display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::resume
is_singleton: true
name: resume
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::break_points
is_singleton: true
name: break_points
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::context
is_singleton: true
name: context
params: (thread=Thread.current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DEBUGGER__::stdout=
is_singleton: true
name: stdout=
params: (s)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>IO</tt> is the basis for all input and output in Ruby. An I/O stream may be <em>duplexed</em> (that is, bidirectional), and so may use more than one native operating system stream.
- !ruby/struct:SM::Flow::P 
  body: Many of the examples in this section use class <tt>File</tt>, the only standard subclass of <tt>IO</tt>. The two classes are closely associated.
- !ruby/struct:SM::Flow::P 
  body: As used in this section, <em>portname</em> may take any of the following forms.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A plain string represents a filename suitable for the underlying operating system.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string starting with ``<tt>|</tt>'' indicates a subprocess. The remainder of the string following the ``<tt>|</tt>'' is invoked as a process with appropriate input/output channels connected to it.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string equal to ``<tt>|-</tt>'' will create another Ruby instance as a subprocess.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Ruby will convert pathnames between different operating system conventions if possible. For instance, on a Windows system the filename ``<tt>/gumby/ruby/test.rb</tt>'' will be opened as ``<tt>\\gumby\\ruby\\test.rb</tt>''. When specifying a Windows-style filename in a Ruby string, remember to escape the backslashes:"
- !ruby/struct:SM::Flow::VERB 
  body: "   &quot;c:\\gumby\\ruby\\test.rb&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: Our examples here will use the Unix-style forward slashes; <tt>File::SEPARATOR</tt> can be used to get the platform-specific separator character.
- !ruby/struct:SM::Flow::P 
  body: I/O ports may be opened in any one of several different modes, which are shown in this section as <em>mode</em>. The mode may either be a Fixnum or a String. If numeric, it should be one of the operating system specific constants (O_RDONLY, O_WRONLY, O_RDWR, O_APPEND and so on). See man open(2) for more information.
- !ruby/struct:SM::Flow::P 
  body: If the mode is given as a String, it must be one of the values listed in the following table.
- !ruby/struct:SM::Flow::VERB 
  body: "  Mode |  Meaning\n  -----+--------------------------------------------------------\n  &quot;r&quot;  |  Read-only, starts at beginning of file  (default mode).\n  -----+--------------------------------------------------------\n  &quot;r+&quot; |  Read-write, starts at beginning of file.\n  -----+--------------------------------------------------------\n  &quot;w&quot;  |  Write-only, truncates existing file\n       |  to zero length or creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;w+&quot; |  Read-write, truncates existing file to zero length\n       |  or creates a new file for reading and writing.\n  -----+--------------------------------------------------------\n  &quot;a&quot;  |  Write-only, starts at end of file if file exists,\n       |  otherwise creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;a+&quot; |  Read-write, starts at end of file if file exists,\n       |  otherwise creates a new file for reading and\n       |  writing.\n  -----+--------------------------------------------------------\n   &quot;b&quot; |  (DOS/Windows only) Binary file mode (may appear with\n       |  any of the key letters listed above).\n"
- !ruby/struct:SM::Flow::P 
  body: The global constant ARGF (also accessible as $&lt;) provides an IO-like stream which allows access to all files mentioned on the command line (or STDIN if no files are mentioned). ARGF provides the methods <tt>#path</tt> and <tt>#filename</tt> to access the name of the file currently being read.
constants: []

full_name: EOFError
includes: []

instance_methods: []

name: EOFError
superclass: IOError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Sync
includes: 
- !ruby/object:RI::IncludedModule 
  name: Sync_m
instance_methods: []

name: Sync
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Sync::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the status value associated with this system exit.
full_name: SystemExit#status
is_singleton: false
name: status
params: |
  system_exit.status   => fixnum

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: SystemExit
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: status
- !ruby/object:RI::MethodSummary 
  name: success?
name: SystemExit
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new <tt>SystemExit</tt> exception with the given status.
full_name: SystemExit::new
is_singleton: true
name: new
params: |
  SystemExit.new(status=0)   => system_exit

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if exiting successful, <tt>false</tt> if not.
full_name: SystemExit#success?
is_singleton: false
name: success?
params: |
  system_exit.success?  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Foo#hello
is_singleton: false
name: hello
params: (it)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Foo::new
is_singleton: true
name: new
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Foo
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: hello
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Foo
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Foo#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Fill
includes: []

instance_methods: []

name: Fill
superclass: Test::Unit::TestCase
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: args
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: reason
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Base class of exceptions from OptionParser.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Reason which caused the error.
  name: Reason
  value: "'parse error'.freeze"
full_name: ParseError
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: message
- !ruby/object:RI::MethodSummary 
  name: reason
- !ruby/object:RI::MethodSummary 
  name: recover
- !ruby/object:RI::MethodSummary 
  name: set_option
- !ruby/object:RI::MethodSummary 
  name: to_s
name: ParseError
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ParseError#set_option
is_singleton: false
name: set_option
params: (opt, eq)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ParseError#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_s
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Default stringizing method to emit standard error message.
full_name: ParseError#message
is_singleton: false
name: message
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: ParseError::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns error reason. Override this for I18N.
full_name: ParseError#reason
is_singleton: false
name: reason
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #message"
full_name: ParseError#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pushes back erred argument(s) to <tt>argv</tt>.
full_name: ParseError#recover
is_singleton: false
name: recover
params: (argv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the backtrace information associated with <em>exc</em>. The argument must be an array of <tt>String</tt> objects in the format described in <tt>Exception#backtrace</tt>.
full_name: Exception#set_backtrace
is_singleton: false
name: set_backtrace
params: |
  exc.set_backtrace(array)   =>  array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the result of invoking <tt>exception.to_s</tt>. Normally this returns the exception's message or name. By supplying a to_str method, exceptions are agreeing to be used where Strings are expected.
full_name: Exception#to_str
is_singleton: false
name: to_str
params: |
  exception.message   =>  string
  exception.to_str    =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return this exception's class name an message
full_name: Exception#inspect
is_singleton: false
name: inspect
params: |
  exception.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the result of invoking <tt>exception.to_s</tt>. Normally this returns the exception's message or name. By supplying a to_str method, exceptions are agreeing to be used where Strings are expected.
full_name: Exception#message
is_singleton: false
name: message
params: |
  exception.message   =>  string
  exception.to_str    =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Construct a new Exception object, optionally passing in a message.
full_name: Exception::new
is_singleton: true
name: new
params: |
  Exception.new(msg = nil)   =>  exception

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no argument, or if the argument is the same as the receiver, return the receiver. Otherwise, create a new exception object of the same class as the receiver, but with a message equal to <tt>string.to_str</tt>.
full_name: Exception::exception
is_singleton: true
name: exception
params: |
  exc.exception(string) -> an_exception or exc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns exception's message (or the name of the exception if no message is set).
full_name: Exception#to_s
is_singleton: false
name: to_s
params: |
  exception.to_s   =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns any backtrace associated with the exception. The backtrace is an array of strings, each containing either ``filename:lineNo: in `method''' or ``filename:lineNo.''"
- !ruby/struct:SM::Flow::VERB 
  body: "   def a\n     raise &quot;boom&quot;\n   end\n\n   def b\n     a()\n   end\n\n   begin\n     b()\n   rescue =&gt; detail\n     print detail.backtrace.join(&quot;\\n&quot;)\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:2:in `a'\n   prog.rb:6:in `b'\n   prog.rb:10\n"
full_name: Exception#backtrace
is_singleton: false
name: backtrace
params: |
  exception.backtrace    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no argument, or if the argument is the same as the receiver, return the receiver. Otherwise, create a new exception object of the same class as the receiver, but with a message equal to <tt>string.to_str</tt>.
full_name: Exception#exception
is_singleton: false
name: exception
params: |
  exc.exception(string) -> an_exception or exc

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: exception
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: yaml_new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: Exception
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: backtrace
- !ruby/object:RI::MethodSummary 
  name: exception
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: message
- !ruby/object:RI::MethodSummary 
  name: set_backtrace
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_str
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: Exception
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#add_filter
is_singleton: false
name: add_filter
params: (p = proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#set_get_line_procs
is_singleton: false
name: set_get_line_procs
params: (file, p = proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#get_line
is_singleton: false
name: get_line
params: (file, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer::off
is_singleton: true
name: "off"
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Tracer::on
is_singleton: true
name: "on"
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer::trace_func
is_singleton: true
name: trace_func
params: (*vars)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: stdout
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: verbose
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_filter
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: "off"
- !ruby/object:RI::MethodSummary 
  name: "on"
- !ruby/object:RI::MethodSummary 
  name: set_get_line_procs
- !ruby/object:RI::MethodSummary 
  name: trace_func
comment: 
- !ruby/struct:SM::Flow::P 
  body: tracer main class
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: EVENT_SYMBOL
  value: "{     \"line\" => \"-\",     \"call\" => \">\",     \"return\" => \"<\",     \"class\" => \"C\",     \"end\" => \"E\",     \"c-call\" => \">\",     \"c-return\" => \"<\",   }"
- !ruby/object:RI::Constant 
  comment: 
  name: Single
  value: new
full_name: Tracer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_filter
- !ruby/object:RI::MethodSummary 
  name: get_line
- !ruby/object:RI::MethodSummary 
  name: get_thread_no
- !ruby/object:RI::MethodSummary 
  name: "off"
- !ruby/object:RI::MethodSummary 
  name: "on"
- !ruby/object:RI::MethodSummary 
  name: set_get_line_procs
- !ruby/object:RI::MethodSummary 
  name: stdout
- !ruby/object:RI::MethodSummary 
  name: trace_func
name: Tracer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer::set_get_line_procs
is_singleton: true
name: set_get_line_procs
params: (file_name, p = proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Tracer#on
is_singleton: false
name: "on"
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer::add_filter
is_singleton: true
name: add_filter
params: (p = proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#get_thread_no
is_singleton: false
name: get_thread_no
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#trace_func
is_singleton: false
name: trace_func
params: (event, file, line, id, binding, klass, *)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#off
is_singleton: false
name: "off"
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tracer#stdout
is_singleton: false
name: stdout
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a socket.
full_name: FileTest#socket?
is_singleton: false
name: socket?
params: |
  File.socket?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the setuid bit set.
full_name: FileTest#setuid?
is_singleton: false
name: setuid?
params: |
  File.setuid?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of <tt>file_name</tt>.
full_name: FileTest#size
is_singleton: false
name: size
params: |
  File.size(file_name)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a block device.
full_name: FileTest#blockdev?
is_singleton: false
name: blockdev?
params: |
  File.blockdev?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the sticky bit set.
full_name: FileTest#sticky?
is_singleton: false
name: sticky?
params: |
  File.sticky?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a symbolic link.
full_name: FileTest#symlink?
is_singleton: false
name: symlink?
params: |
  File.symlink?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt> if <tt>file_name</tt> doesn't exist or has zero size, the size of the file otherwise.
full_name: FileTest#size?
is_singleton: false
name: size?
params: |
  File.size?(file_name)   => Integer or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is executable by the effective user id of this process.
full_name: FileTest#executable?
is_singleton: false
name: executable?
params: |
  File.executable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and the effective group id of the calling process is the owner of the file. Returns <tt>false</tt> on Windows.
full_name: FileTest#grpowned?
is_singleton: false
name: grpowned?
params: |
  File.grpowned?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "<tt>FileTest</tt> implements file test operations similar to those used in <tt>File::Stat</tt>. It exists as a standalone module, and its methods are also insinuated into the <tt>File</tt> class. (Note that this is not done by inclusion: the interpreter cheats)."
constants: []

full_name: FileTest
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: blockdev?
- !ruby/object:RI::MethodSummary 
  name: chardev?
- !ruby/object:RI::MethodSummary 
  name: directory?
- !ruby/object:RI::MethodSummary 
  name: executable?
- !ruby/object:RI::MethodSummary 
  name: executable_real?
- !ruby/object:RI::MethodSummary 
  name: exist?
- !ruby/object:RI::MethodSummary 
  name: exists?
- !ruby/object:RI::MethodSummary 
  name: file?
- !ruby/object:RI::MethodSummary 
  name: grpowned?
- !ruby/object:RI::MethodSummary 
  name: identical?
- !ruby/object:RI::MethodSummary 
  name: owned?
- !ruby/object:RI::MethodSummary 
  name: pipe?
- !ruby/object:RI::MethodSummary 
  name: readable?
- !ruby/object:RI::MethodSummary 
  name: readable_real?
- !ruby/object:RI::MethodSummary 
  name: setgid?
- !ruby/object:RI::MethodSummary 
  name: setuid?
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: size?
- !ruby/object:RI::MethodSummary 
  name: socket?
- !ruby/object:RI::MethodSummary 
  name: sticky?
- !ruby/object:RI::MethodSummary 
  name: symlink?
- !ruby/object:RI::MethodSummary 
  name: writable?
- !ruby/object:RI::MethodSummary 
  name: writable_real?
- !ruby/object:RI::MethodSummary 
  name: zero?
name: FileTest
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is readable by the real user id of this process.
full_name: FileTest#readable_real?
is_singleton: false
name: readable_real?
params: |
  File.readable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a character device.
full_name: FileTest#chardev?
is_singleton: false
name: chardev?
params: |
  File.chardev?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is executable by the real user id of this process.
full_name: FileTest#executable_real?
is_singleton: false
name: executable_real?
params: |
  File.executable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the setgid bit set.
full_name: FileTest#setgid?
is_singleton: false
name: setgid?
params: |
  File.setgid?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is readable by the effective user id of this process.
full_name: FileTest#readable?
is_singleton: false
name: readable?
params: |
  File.readable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a pipe.
full_name: FileTest#pipe?
is_singleton: false
name: pipe?
params: |
  File.pipe?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and is a regular file.
full_name: FileTest#file?
is_singleton: false
name: file?
params: |
  File.file?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and the effective used id of the calling process is the owner of the file.
full_name: FileTest#owned?
is_singleton: false
name: owned?
params: |
  File.owned?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and has a zero size.
full_name: FileTest#zero?
is_singleton: false
name: zero?
params: |
  File.zero?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is writable by the effective user id of this process.
full_name: FileTest#writable?
is_singleton: false
name: writable?
params: |
  File.writable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if the named file exists.
full_name: FileTest#exist?
is_singleton: false
name: exist?
params: |
  File.exist?(file_name)    =>  true or false
  File.exists?(file_name)   =>  true or false    (obsolete)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is writable by the real user id of this process.
full_name: FileTest#writable_real?
is_singleton: false
name: writable_real?
params: |
  File.writable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named files are identical.
- !ruby/struct:SM::Flow::VERB 
  body: "    open(&quot;a&quot;, &quot;w&quot;) {}\n    p File.identical?(&quot;a&quot;, &quot;a&quot;)      #=&gt; true\n    p File.identical?(&quot;a&quot;, &quot;./a&quot;)    #=&gt; true\n    File.link(&quot;a&quot;, &quot;b&quot;)\n    p File.identical?(&quot;a&quot;, &quot;b&quot;)      #=&gt; true\n    File.symlink(&quot;a&quot;, &quot;c&quot;)\n    p File.identical?(&quot;a&quot;, &quot;c&quot;)      #=&gt; true\n    open(&quot;d&quot;, &quot;w&quot;) {}\n    p File.identical?(&quot;a&quot;, &quot;d&quot;)      #=&gt; false\n"
full_name: FileTest#identical?
is_singleton: false
name: identical?
params: |
  File.identical?(file_1, file_2)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a directory, <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.directory?(&quot;.&quot;)\n"
full_name: FileTest#directory?
is_singleton: false
name: directory?
params: |
  File.directory?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if the named file exists.
full_name: FileTest#exists?
is_singleton: false
name: exists?
params: |
  File.exist?(file_name)    =>  true or false
  File.exists?(file_name)   =>  true or false    (obsolete)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns just the number of microseconds for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now        #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   &quot;%10.6f&quot; % t.to_f   #=&gt; &quot;1049896564.259970&quot;\n   t.usec              #=&gt; 259970\n"
full_name: Time#usec
is_singleton: false
name: usec
params: |
  time.usec    => int
  time.tv_usec => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new <tt>new_time</tt> object representing <em>time</em> in local time (using the local time zone in effect for this process).
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt?                          #=&gt; true\n   l = t.getlocal                  #=&gt; Sat Jan 01 14:15:01 CST 2000\n   l.gmt?                          #=&gt; false\n   t == l                          #=&gt; true\n"
full_name: Time#getlocal
is_singleton: false
name: getlocal
params: |
  time.getlocal => new_time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the month of the year (1..12) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.mon          #=&gt; 4\n   t.month        #=&gt; 4\n"
full_name: Time#month
is_singleton: false
name: month
params: |
  time.mon   => fixnum
  time.month => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a canonical string representation of <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.now.asctime   #=&gt; &quot;Wed Apr  9 08:56:03 2003&quot;\n"
full_name: Time#ctime
is_singleton: false
name: ctime
params: |
  time.asctime => string
  time.ctime   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a ten-element <em>array</em> of values for <em>time</em>: {<tt>[ sec, min, hour, day, month, year, wday, yday, isdst, zone ]</tt>}. See the individual methods for an explanation of the valid ranges of each value. The ten elements can be passed directly to <tt>Time::utc</tt> or <tt>Time::local</tt> to create a new <tt>Time</tt>."
- !ruby/struct:SM::Flow::VERB 
  body: "   now = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t = now.to_a     #=&gt; [4, 56, 8, 9, 4, 2003, 3, 99, true, &quot;CDT&quot;]\n"
full_name: Time#to_a
is_singleton: false
name: to_a
params: |
  time.to_a => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if <em>time</em> and <em>other_time</em> are both <tt>Time</tt> objects with the same seconds and fractional seconds.
full_name: Time#eql?
is_singleton: false
name: eql?
params: |
  time.eql?(other_time)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>Time::gm</tt>, but interprets the values in the local time zone.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.local(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 CST 2000\n"
full_name: Time::local
is_singleton: true
name: local
params: |
  Time.local( year [, month, day, hour, min, sec, usec] ) => time
  Time.local( sec, min, hour, day, month, year, wday, yday, isdst,
  tz ) => time
  Time.mktime( year, month, day, hour, min, sec, usec )   => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>time</em> to local time (using the local time zone in effect for this process) modifying the receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000, &quot;jan&quot;, 1, 20, 15, 1)\n   t.gmt?        #=&gt; true\n   t.localtime   #=&gt; Sat Jan 01 14:15:01 CST 2000\n   t.gmt?        #=&gt; false\n"
full_name: Time#localtime
is_singleton: false
name: localtime
params: |
  time.localtime => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the day of the year, 1..366.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.yday         #=&gt; 99\n"
full_name: Time#yday
is_singleton: false
name: yday
params: |
  time.yday => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comparison---Compares <em>time</em> with <em>other_time</em> or with <em>numeric</em>, which is the number of seconds (possibly fractional) since epoch.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now       #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t2 = t + 2592000   #=&gt; Fri May 09 08:56:03 CDT 2003\n   t &lt;=&gt; t2           #=&gt; -1\n   t2 &lt;=&gt; t           #=&gt; 1\n   t &lt;=&gt; t            #=&gt; 0\n"
full_name: Time#<=>
is_singleton: false
name: <=>
params: |
  time <=> other_time => -1, 0, +1 
  time <=> numeric    => -1, 0, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>time</em> occurs during Daylight Saving Time in its time zone.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.local(2000, 7, 1).isdst   #=&gt; true\n   Time.local(2000, 1, 1).isdst   #=&gt; false\n   Time.local(2000, 7, 1).dst?    #=&gt; true\n   Time.local(2000, 1, 1).dst?    #=&gt; false\n"
full_name: Time#dst?
is_singleton: false
name: dst?
params: |
  time.isdst => true or false
  time.dst?  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of <em>time</em> as an integer number of seconds since epoch.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now\n   &quot;%10.5f&quot; % t.to_f   #=&gt; &quot;1049896564.17839&quot;\n   t.to_i              #=&gt; 1049896564\n"
full_name: Time#to_i
is_singleton: false
name: to_i
params: |
  time.to_i   => int
  time.tv_sec => int

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: _load
- !ruby/object:RI::MethodSummary 
  name: apply_offset
- !ruby/object:RI::MethodSummary 
  name: at
- !ruby/object:RI::MethodSummary 
  name: gm
- !ruby/object:RI::MethodSummary 
  name: httpdate
- !ruby/object:RI::MethodSummary 
  name: local
- !ruby/object:RI::MethodSummary 
  name: make_time
- !ruby/object:RI::MethodSummary 
  name: mktime
- !ruby/object:RI::MethodSummary 
  name: month_days
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: now
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: rfc2822
- !ruby/object:RI::MethodSummary 
  name: times
- !ruby/object:RI::MethodSummary 
  name: utc
- !ruby/object:RI::MethodSummary 
  name: w3cdtf
- !ruby/object:RI::MethodSummary 
  name: xmlschema
- !ruby/object:RI::MethodSummary 
  name: yaml_new
- !ruby/object:RI::MethodSummary 
  name: zone_offset
- !ruby/object:RI::MethodSummary 
  name: zone_utc?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Implements the extensions to the Time class that are described in the documentation for the time.rb library.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ZoneOffset
  value: "{       'UTC' => 0,       # ISO 8601       'Z' => 0,       # RFC 822       'UT' => 0, 'GMT' => 0,       'EST' => -5, 'EDT' => -4,       'CST' => -6, 'CDT' => -5,       'MST' => -7, 'MDT' => -6,       'PST' => -8, 'PDT' => -7,       # Following definition of military zones is original one.       # See RFC 1123 and RFC 2822 for the error in RFC 822.       'A' => +1, 'B' => +2, 'C' => +3, 'D' => +4,  'E' => +5,  'F' => +6,        'G' => +7, 'H' => +8, 'I' => +9, 'K' => +10, 'L' => +11, 'M' => +12,       'N' => -1, 'O' => -2, 'P' => -3, 'Q' => -4,  'R' => -5,  'S' => -6,        'T' => -7, 'U' => -8, 'V' => -9, 'W' => -10, 'X' => -11, 'Y' => -12,     }"
- !ruby/object:RI::Constant 
  comment: 
  name: LeapYearMonthDays
  value: "[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]"
- !ruby/object:RI::Constant 
  comment: 
  name: CommonYearMonthDays
  value: "[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]"
- !ruby/object:RI::Constant 
  comment: 
  name: MonthValue
  value: "{       'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, 'MAY' => 5, 'JUN' => 6,       'JUL' => 7, 'AUG' => 8, 'SEP' => 9, 'OCT' =>10, 'NOV' =>11, 'DEC' =>12"
- !ruby/object:RI::Constant 
  comment: 
  name: RFC2822_DAY_NAME
  value: "[     'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'"
- !ruby/object:RI::Constant 
  comment: 
  name: RFC2822_MONTH_NAME
  value: "[     'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',     'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'"
full_name: Time
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: _dump
- !ruby/object:RI::MethodSummary 
  name: asctime
- !ruby/object:RI::MethodSummary 
  name: ctime
- !ruby/object:RI::MethodSummary 
  name: day
- !ruby/object:RI::MethodSummary 
  name: dst?
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: getgm
- !ruby/object:RI::MethodSummary 
  name: getlocal
- !ruby/object:RI::MethodSummary 
  name: getutc
- !ruby/object:RI::MethodSummary 
  name: gmt?
- !ruby/object:RI::MethodSummary 
  name: gmt_offset
- !ruby/object:RI::MethodSummary 
  name: gmtime
- !ruby/object:RI::MethodSummary 
  name: gmtoff
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: hour
- !ruby/object:RI::MethodSummary 
  name: httpdate
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: isdst
- !ruby/object:RI::MethodSummary 
  name: iso8601
- !ruby/object:RI::MethodSummary 
  name: localtime
- !ruby/object:RI::MethodSummary 
  name: marshal_dump
- !ruby/object:RI::MethodSummary 
  name: marshal_load
- !ruby/object:RI::MethodSummary 
  name: mday
- !ruby/object:RI::MethodSummary 
  name: min
- !ruby/object:RI::MethodSummary 
  name: mon
- !ruby/object:RI::MethodSummary 
  name: month
- !ruby/object:RI::MethodSummary 
  name: rfc2822
- !ruby/object:RI::MethodSummary 
  name: rfc822
- !ruby/object:RI::MethodSummary 
  name: sec
- !ruby/object:RI::MethodSummary 
  name: strftime
- !ruby/object:RI::MethodSummary 
  name: succ
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_date
- !ruby/object:RI::MethodSummary 
  name: to_datetime
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: tv_sec
- !ruby/object:RI::MethodSummary 
  name: tv_usec
- !ruby/object:RI::MethodSummary 
  name: usec
- !ruby/object:RI::MethodSummary 
  name: utc
- !ruby/object:RI::MethodSummary 
  name: utc?
- !ruby/object:RI::MethodSummary 
  name: utc_offset
- !ruby/object:RI::MethodSummary 
  name: w3cdtf
- !ruby/object:RI::MethodSummary 
  name: wday
- !ruby/object:RI::MethodSummary 
  name: xmlschema
- !ruby/object:RI::MethodSummary 
  name: yday
- !ruby/object:RI::MethodSummary 
  name: year
- !ruby/object:RI::MethodSummary 
  name: zone
name: Time
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: rfc822
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string which represents the time as date-time defined by RFC 2822:"
- !ruby/struct:SM::Flow::VERB 
  body: "  day-of-week, DD month-name CCYY hh:mm:ss zone\n"
- !ruby/struct:SM::Flow::P 
  body: where zone is [+-]hhmm.
- !ruby/struct:SM::Flow::P 
  body: If <tt>self</tt> is a UTC time, -0000 is used as zone.
full_name: Time#rfc2822
is_singleton: false
name: rfc2822
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::month_days
is_singleton: true
name: month_days
params: (y, m)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>time</em> occurs during Daylight Saving Time in its time zone.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.local(2000, 7, 1).isdst   #=&gt; true\n   Time.local(2000, 1, 1).isdst   #=&gt; false\n   Time.local(2000, 7, 1).dst?    #=&gt; true\n   Time.local(2000, 1, 1).dst?    #=&gt; false\n"
full_name: Time#isdst
is_singleton: false
name: isdst
params: |
  time.isdst => true or false
  time.dst?  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the offset in seconds between the timezone of <em>time</em> and UTC.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt_offset                    #=&gt; 0\n   l = t.getlocal                  #=&gt; Sat Jan 01 14:15:01 CST 2000\n   l.gmt_offset                    #=&gt; -21600\n"
full_name: Time#utc_offset
is_singleton: false
name: utc_offset
params: |
  time.gmt_offset => fixnum
  time.gmtoff     => fixnum
  time.utc_offset => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>date</tt> as dateTime defined by XML Schema and converts it to a Time object. The format is restricted version of the format defined by ISO 8601.
- !ruby/struct:SM::Flow::P 
  body: ArgumentError is raised if <tt>date</tt> is not compliant with the format or Time class cannot represent specified date.
- !ruby/struct:SM::Flow::P 
  body: "See #xmlschema for more information on this format."
full_name: Time::xmlschema
is_singleton: true
name: xmlschema
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new <tt>new_time</tt> object representing <em>time</em> in UTC.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.local(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 CST 2000\n   t.gmt?                             #=&gt; false\n   y = t.getgm                        #=&gt; Sun Jan 02 02:15:01 UTC 2000\n   y.gmt?                             #=&gt; true\n   t == y                             #=&gt; true\n"
full_name: Time#getgm
is_singleton: false
name: getgm
params: |
  time.getgm  => new_time
  time.getutc => new_time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the offset in seconds between the timezone of <em>time</em> and UTC.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt_offset                    #=&gt; 0\n   l = t.getlocal                  #=&gt; Sat Jan 01 14:15:01 CST 2000\n   l.gmt_offset                    #=&gt; -21600\n"
full_name: Time#gmtoff
is_singleton: false
name: gmtoff
params: |
  time.gmt_offset => fixnum
  time.gmtoff     => fixnum
  time.utc_offset => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string representing <em>time</em>. Equivalent to calling <tt>Time#strftime</tt> with a format string of ``<tt>%a</tt> <tt>%b</tt> <tt>%d</tt> <tt>%H:%M:%S</tt> <tt>%Z</tt> <tt>%Y</tt>''.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.now.to_s   #=&gt; &quot;Wed Apr 09 08:56:04 CDT 2003&quot;\n"
full_name: Time#inspect
is_singleton: false
name: inspect
params: |
  time.inspect => string
  time.to_s    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #rfc2822"
full_name: Time#rfc822
is_singleton: false
name: rfc822
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a hash code for this time object.
full_name: Time#hash
is_singleton: false
name: hash
params: |
  time.hash   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a new time object, one second later than <tt>time</tt>.
full_name: Time#succ
is_singleton: false
name: succ
params: |
  time.succ   => new_time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the month of the year (1..12) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.mon          #=&gt; 4\n   t.month        #=&gt; 4\n"
full_name: Time#mon
is_singleton: false
name: mon
params: |
  time.mon   => fixnum
  time.month => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: undocumented
full_name: Time#marshal_load
is_singleton: false
name: marshal_load
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the time zone used for <em>time</em>. As of Ruby 1.8, returns ``UTC'' rather than ``GMT'' for UTC times.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000, &quot;jan&quot;, 1, 20, 15, 1)\n   t.zone   #=&gt; &quot;UTC&quot;\n   t = Time.local(2000, &quot;jan&quot;, 1, 20, 15, 1)\n   t.zone   #=&gt; &quot;CST&quot;\n"
full_name: Time#zone
is_singleton: false
name: zone
params: |
  time.zone => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: now"
- !ruby/struct:SM::Flow::P 
  body: Synonym for <tt>Time.new</tt>. Returns a <tt>Time</tt> object initialized tot he current system time.
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>Time</tt> object initialized to the current system time. <b>Note:</b> The object created will be created using the resolution available on your system clock, and so may include fractional seconds.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Time.new      #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   b = Time.new      #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   a == b            #=&gt; false\n   &quot;%.6f&quot; % a.to_f   #=&gt; &quot;1049896563.230740&quot;\n   &quot;%.6f&quot; % b.to_f   #=&gt; &quot;1049896563.231466&quot;\n"
full_name: Time::new
is_singleton: true
name: new
params: |
  Time.new -> time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>Time::gm</tt>, but interprets the values in the local time zone.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.local(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 CST 2000\n"
full_name: Time::mktime
is_singleton: true
name: mktime
params: |
  Time.local( year [, month, day, hour, min, sec, usec] ) => time
  Time.local( sec, min, hour, day, month, year, wday, yday, isdst,
  tz ) => time
  Time.mktime( year, month, day, hour, min, sec, usec )   => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>time</em> to UTC (GMT), modifying the receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.gmt?         #=&gt; false\n   t.gmtime       #=&gt; Wed Apr 09 13:56:03 UTC 2003\n   t.gmt?         #=&gt; true\n\n   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.utc?         #=&gt; false\n   t.utc          #=&gt; Wed Apr 09 13:56:04 UTC 2003\n   t.utc?         #=&gt; true\n"
full_name: Time#utc
is_singleton: false
name: utc
params: |
  time.gmtime    => time
  time.utc       => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #xmlschema"
full_name: Time#iso8601
is_singleton: false
name: iso8601
params: (fraction_digits=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the second of the minute (0..60)<em>[Yes, seconds really can range from zero to 60. This allows the system to inject leap seconds every now and then to correct for the fact that years are not really a convenient number of hours long.]</em> for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.sec          #=&gt; 4\n"
full_name: Time#sec
is_singleton: false
name: sec
params: |
  time.sec => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unmarshal a dumped <tt>Time</tt> object.
full_name: Time::_load
is_singleton: true
name: _load
params: |
  Time._load(string)   => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::make_time
is_singleton: true
name: make_time
params: (year, mon, day, hour, min, sec, sec_fraction, zone, now)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a time based on given values, interpreted as UTC (GMT). The year must be specified. Other values default to the minimum value for that field (and may be <tt>nil</tt> or omitted). Months may be specified by numbers from 1 to 12, or by the three-letter English month names. Hours are specified on a 24-hour clock (0..23). Raises an <tt>ArgumentError</tt> if any values are out of range. Will also accept ten arguments in the order output by <tt>Time#to_a</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.utc(2000,&quot;jan&quot;,1,20,15,1)  #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   Time.gm(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n"
full_name: Time::utc
is_singleton: true
name: utc
params: |
  Time.utc( year [, month, day, hour, min, sec, usec] ) => time
  Time.utc( sec, min, hour, day, month, year, wday, yday, isdst, tz
  ) => time
  Time.gm( year [, month, day, hour, min, sec, usec] ) => time
  Time.gm( sec, min, hour, day, month, year, wday, yday, isdst, tz
  ) => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string representing <em>time</em>. Equivalent to calling <tt>Time#strftime</tt> with a format string of ``<tt>%a</tt> <tt>%b</tt> <tt>%d</tt> <tt>%H:%M:%S</tt> <tt>%Z</tt> <tt>%Y</tt>''.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.now.to_s   #=&gt; &quot;Wed Apr 09 08:56:04 CDT 2003&quot;\n"
full_name: Time#to_s
is_singleton: false
name: to_s
params: |
  time.inspect => string
  time.to_s    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for <tt>Time.new</tt>. Returns a <tt>Time</tt> object initialized tot he current system time.
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>Time</tt> object initialized to the current system time. <b>Note:</b> The object created will be created using the resolution available on your system clock, and so may include fractional seconds.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Time.new      #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   b = Time.new      #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   a == b            #=&gt; false\n   &quot;%.6f&quot; % a.to_f   #=&gt; &quot;1049896563.230740&quot;\n   &quot;%.6f&quot; % b.to_f   #=&gt; &quot;1049896563.231466&quot;\n"
full_name: Time::now
is_singleton: true
name: now
params: |
  Time.new -> time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dump <em>time</em> for marshaling.
full_name: Time#_dump
is_singleton: false
name: _dump
params: |
  time._dump   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string which represents the time as rfc1123-date of HTTP-date defined by RFC 2616:"
- !ruby/struct:SM::Flow::VERB 
  body: "  day-of-week, DD month-name CCYY hh:mm:ss GMT\n"
- !ruby/struct:SM::Flow::P 
  body: Note that the result is always UTC (GMT).
full_name: Time#httpdate
is_singleton: false
name: httpdate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: iso8601
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string which represents the time as dateTime defined by XML Schema:"
- !ruby/struct:SM::Flow::VERB 
  body: "  CCYY-MM-DDThh:mm:ssTZD\n  CCYY-MM-DDThh:mm:ss.sssTZD\n"
- !ruby/struct:SM::Flow::P 
  body: where TZD is Z or [+-]hh:mm.
- !ruby/struct:SM::Flow::P 
  body: If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.
- !ruby/struct:SM::Flow::P 
  body: <tt>fractional_seconds</tt> specifies a number of digits of fractional seconds. Its default value is 0.
full_name: Time#xmlschema
is_singleton: false
name: xmlschema
params: (fraction_digits=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>date</tt> as date-time defined by RFC 2822 and converts it to a Time object. The format is identical to the date format defined by RFC 822 and updated by RFC 1123.
- !ruby/struct:SM::Flow::P 
  body: ArgumentError is raised if <tt>date</tt> is not compliant with RFC 2822 or Time class cannot represent specified date.
- !ruby/struct:SM::Flow::P 
  body: "See #rfc2822 for more information on this format."
full_name: Time::rfc2822
is_singleton: true
name: rfc2822
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::zone_offset
is_singleton: true
name: zone_offset
params: (zone, year=self.now.year)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of <em>time</em> as an integer number of seconds since epoch.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now\n   &quot;%10.5f&quot; % t.to_f   #=&gt; &quot;1049896564.17839&quot;\n   t.to_i              #=&gt; 1049896564\n"
full_name: Time#tv_sec
is_singleton: false
name: tv_sec
params: |
  time.to_i   => int
  time.tv_sec => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a canonical string representation of <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.now.asctime   #=&gt; &quot;Wed Apr  9 08:56:03 2003&quot;\n"
full_name: Time#asctime
is_singleton: false
name: asctime
params: |
  time.asctime => string
  time.ctime   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the day of the week, 0..6, with Sunday == 0.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.wday         #=&gt; 3\n"
full_name: Time#wday
is_singleton: false
name: wday
params: |
  time.wday => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Addition---Adds some number of seconds (possibly fractional) to <em>time</em> and returns that value as a new time.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now         #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t + (60 * 60 * 24)   #=&gt; Thu Apr 10 08:56:03 CDT 2003\n"
full_name: Time#+
is_singleton: false
name: +
params: |
  time + numeric => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Formats <em>time</em> according to the directives in the given format string. Any text not listed as a directive will be passed through to the output string.
- !ruby/struct:SM::Flow::P 
  body: "Format meaning:"
- !ruby/struct:SM::Flow::VERB 
  body: "  %a - The abbreviated weekday name (``Sun'')\n  %A - The  full  weekday  name (``Sunday'')\n  %b - The abbreviated month name (``Jan'')\n  %B - The  full  month  name (``January'')\n  %c - The preferred local date and time representation\n  %d - Day of the month (01..31)\n  %H - Hour of the day, 24-hour clock (00..23)\n  %I - Hour of the day, 12-hour clock (01..12)\n  %j - Day of the year (001..366)\n  %m - Month of the year (01..12)\n  %M - Minute of the hour (00..59)\n  %p - Meridian indicator (``AM''  or  ``PM'')\n  %S - Second of the minute (00..60)\n  %U - Week  number  of the current year,\n          starting with the first Sunday as the first\n          day of the first week (00..53)\n  %W - Week  number  of the current year,\n          starting with the first Monday as the first\n          day of the first week (00..53)\n  %w - Day of the week (Sunday is 0, 0..6)\n  %x - Preferred representation for the date alone, no time\n  %X - Preferred representation for the time alone, no date\n  %y - Year without a century (00..99)\n  %Y - Year with century\n  %Z - Time zone name\n  %% - Literal ``%'' character\n\n   t = Time.now\n   t.strftime(&quot;Printed on %m/%d/%Y&quot;)   #=&gt; &quot;Printed on 04/09/2003&quot;\n   t.strftime(&quot;at %I:%M%p&quot;)            #=&gt; &quot;at 08:56AM&quot;\n"
full_name: Time#strftime
is_singleton: false
name: strftime
params: |
  time.strftime( string ) => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new time object with the value given by <em>aTime</em>, or the given number of <em>seconds</em> (and optional <em>microseconds</em>) from epoch. A non-portable feature allows the offset to be negative on some systems.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.at(0)            #=&gt; Wed Dec 31 18:00:00 CST 1969\n   Time.at(946702800)    #=&gt; Fri Dec 31 23:00:00 CST 1999\n   Time.at(-284061600)   #=&gt; Sat Dec 31 00:00:00 CST 1960\n"
full_name: Time::at
is_singleton: true
name: at
params: |
  Time.at( aTime ) => time
  Time.at( seconds [, microseconds] ) => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Difference---Returns a new time that represents the difference between two times, or subtracts the given number of seconds in <em>numeric</em> from <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now       #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t2 = t + 2592000   #=&gt; Fri May 09 08:56:03 CDT 2003\n   t2 - t             #=&gt; 2592000.0\n   t2 - 2592000       #=&gt; Wed Apr 09 08:56:03 CDT 2003\n"
full_name: Time#-
is_singleton: false
name: "-"
params: |
  time - other_time => float
  time - numeric    => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time#to_datetime
is_singleton: false
name: to_datetime
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (year)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>date</tt> using Date._parse and converts it to a Time object.
- !ruby/struct:SM::Flow::P 
  body: "If a block is given, the year described in <tt>date</tt> is converted by the block. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Time.parse(...) {|y| y &lt; 100 ? (y &gt;= 69 ? y + 1900 : y + 2000) : y}\n"
- !ruby/struct:SM::Flow::P 
  body: "If the upper components of the given time are broken or missing, they are supplied with those of <tt>now</tt>. For the lower components, the minimum values (1 or 0) are assumed if broken or missing. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    # Suppose it is &quot;Thu Nov 29 14:33:20 GMT 2001&quot; now and\n    # your timezone is GMT:\n    Time.parse(&quot;16:30&quot;)     #=&gt; Thu Nov 29 16:30:00 GMT 2001\n    Time.parse(&quot;7/23&quot;)      #=&gt; Mon Jul 23 00:00:00 GMT 2001\n    Time.parse(&quot;Aug 31&quot;)    #=&gt; Fri Aug 31 00:00:00 GMT 2001\n"
- !ruby/struct:SM::Flow::P 
  body: "Since there are numerous conflicts among locally defined timezone abbreviations all over the world, this method is not made to understand all of them. For example, the abbreviation &quot;CST&quot; is used variously as:"
- !ruby/struct:SM::Flow::VERB 
  body: "    -06:00 in America/Chicago,\n    -05:00 in America/Havana,\n    +08:00 in Asia/Harbin,\n    +09:30 in Australia/Darwin,\n    +10:30 in Australia/Adelaide,\n    etc.\n"
- !ruby/struct:SM::Flow::P 
  body: Based on the fact, this method only understands the timezone abbreviations described in RFC 822 and the system timezone, in the order named. (i.e. a definition in RFC 822 overrides the system timezone definition.) The system timezone is taken from <tt>Time.local(year, 1, 1).zone</tt> and <tt>Time.local(year, 7, 1).zone</tt>. If the extracted timezone abbreviation does not match any of them, it is ignored and the given time is regarded as a local time.
- !ruby/struct:SM::Flow::P 
  body: ArgumentError is raised if Date._parse cannot extract information from <tt>date</tt> or Time class cannot represent specified date.
- !ruby/struct:SM::Flow::P 
  body: "This method can be used as fail-safe for other parsing methods as:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Time.rfc2822(date) rescue Time.parse(date)\n  Time.httpdate(date) rescue Time.parse(date)\n  Time.xmlschema(date) rescue Time.parse(date)\n"
- !ruby/struct:SM::Flow::P 
  body: A failure for Time.parse should be checked, though.
full_name: Time::parse
is_singleton: true
name: parse
params: (date, now=self.now) {|year| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::zone_utc?
is_singleton: true
name: zone_utc?
params: (zone)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deprecated in favor of <tt>Process::times</tt>
full_name: Time::times
is_singleton: true
name: times
params: |
  Time.times => struct_tms

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>time</em> represents a time in UTC (GMT).
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now                        #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.utc?                              #=&gt; false\n   t = Time.gm(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.utc?                              #=&gt; true\n\n   t = Time.now                        #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.gmt?                              #=&gt; false\n   t = Time.gm(2000,1,1,20,15,1)       #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt?                              #=&gt; true\n"
full_name: Time#utc?
is_singleton: false
name: utc?
params: |
  time.utc? => true or false
  time.gmt? => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::apply_offset
is_singleton: true
name: apply_offset
params: (year, mon, day, hour, min, sec, off)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the minute of the hour (0..59) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.min          #=&gt; 56\n"
full_name: Time#min
is_singleton: false
name: min
params: |
  time.min => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns just the number of microseconds for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now        #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   &quot;%10.6f&quot; % t.to_f   #=&gt; &quot;1049896564.259970&quot;\n   t.usec              #=&gt; 259970\n"
full_name: Time#tv_usec
is_singleton: false
name: tv_usec
params: |
  time.usec    => int
  time.tv_usec => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a time based on given values, interpreted as UTC (GMT). The year must be specified. Other values default to the minimum value for that field (and may be <tt>nil</tt> or omitted). Months may be specified by numbers from 1 to 12, or by the three-letter English month names. Hours are specified on a 24-hour clock (0..23). Raises an <tt>ArgumentError</tt> if any values are out of range. Will also accept ten arguments in the order output by <tt>Time#to_a</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.utc(2000,&quot;jan&quot;,1,20,15,1)  #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   Time.gm(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n"
full_name: Time::gm
is_singleton: true
name: gm
params: |
  Time.utc( year [, month, day, hour, min, sec, usec] ) => time
  Time.utc( sec, min, hour, day, month, year, wday, yday, isdst, tz
  ) => time
  Time.gm( year [, month, day, hour, min, sec, usec] ) => time
  Time.gm( sec, min, hour, day, month, year, wday, yday, isdst, tz
  ) => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the hour of the day (0..23) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.hour         #=&gt; 8\n"
full_name: Time#hour
is_singleton: false
name: hour
params: |
  time.hour => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new <tt>new_time</tt> object representing <em>time</em> in UTC.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.local(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 CST 2000\n   t.gmt?                             #=&gt; false\n   y = t.getgm                        #=&gt; Sun Jan 02 02:15:01 UTC 2000\n   y.gmt?                             #=&gt; true\n   t == y                             #=&gt; true\n"
full_name: Time#getutc
is_singleton: false
name: getutc
params: |
  time.getgm  => new_time
  time.getutc => new_time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>time</em> to UTC (GMT), modifying the receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.gmt?         #=&gt; false\n   t.gmtime       #=&gt; Wed Apr 09 13:56:03 UTC 2003\n   t.gmt?         #=&gt; true\n\n   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.utc?         #=&gt; false\n   t.utc          #=&gt; Wed Apr 09 13:56:04 UTC 2003\n   t.utc?         #=&gt; true\n"
full_name: Time#gmtime
is_singleton: false
name: gmtime
params: |
  time.gmtime    => time
  time.utc       => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def to_time() getlocal end
full_name: Time#to_date
is_singleton: false
name: to_date
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the day of the month (1..n) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.day          #=&gt; 9\n   t.mday         #=&gt; 9\n"
full_name: Time#day
is_singleton: false
name: day
params: |
  time.day  => fixnum
  time.mday => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of <em>time</em> as a floating point number of seconds since epoch.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now\n   &quot;%10.5f&quot; % t.to_f   #=&gt; &quot;1049896564.13654&quot;\n   t.to_i              #=&gt; 1049896564\n"
full_name: Time#to_f
is_singleton: false
name: to_f
params: |
  time.to_f => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the day of the month (1..n) for <em>time</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.day          #=&gt; 9\n   t.mday         #=&gt; 9\n"
full_name: Time#mday
is_singleton: false
name: mday
params: |
  time.day  => fixnum
  time.mday => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time#w3cdtf
is_singleton: false
name: w3cdtf
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the year for <em>time</em> (including the century).
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now   #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.year         #=&gt; 2003\n"
full_name: Time#year
is_singleton: false
name: year
params: |
  time.year => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Time::w3cdtf
is_singleton: true
name: w3cdtf
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: undocumented
full_name: Time#marshal_dump
is_singleton: false
name: marshal_dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the offset in seconds between the timezone of <em>time</em> and UTC.
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.gm(2000,1,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt_offset                    #=&gt; 0\n   l = t.getlocal                  #=&gt; Sat Jan 01 14:15:01 CST 2000\n   l.gmt_offset                    #=&gt; -21600\n"
full_name: Time#gmt_offset
is_singleton: false
name: gmt_offset
params: |
  time.gmt_offset => fixnum
  time.gmtoff     => fixnum
  time.utc_offset => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>time</em> represents a time in UTC (GMT).
- !ruby/struct:SM::Flow::VERB 
  body: "   t = Time.now                        #=&gt; Wed Apr 09 08:56:04 CDT 2003\n   t.utc?                              #=&gt; false\n   t = Time.gm(2000,&quot;jan&quot;,1,20,15,1)   #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.utc?                              #=&gt; true\n\n   t = Time.now                        #=&gt; Wed Apr 09 08:56:03 CDT 2003\n   t.gmt?                              #=&gt; false\n   t = Time.gm(2000,1,1,20,15,1)       #=&gt; Sat Jan 01 20:15:01 UTC 2000\n   t.gmt?                              #=&gt; true\n"
full_name: Time#gmt?
is_singleton: false
name: gmt?
params: |
  time.utc? => true or false
  time.gmt? => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>date</tt> as HTTP-date defined by RFC 2616 and converts it to a Time object.
- !ruby/struct:SM::Flow::P 
  body: ArgumentError is raised if <tt>date</tt> is not compliant with RFC 2616 or Time class cannot represent specified date.
- !ruby/struct:SM::Flow::P 
  body: "See #httpdate for more information on this format."
full_name: Time::httpdate
is_singleton: true
name: httpdate
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: alias for URI.parse.
- !ruby/struct:SM::Flow::P 
  body: This method is introduced at 1.8.2.
full_name: Kernel#URI
is_singleton: false
name: URI
params: (uri_str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Initiates the termination of the Ruby script by raising the <tt>SystemExit</tt> exception. This exception may be caught. The optional parameter is used to return a status code to the invoking environment.
- !ruby/struct:SM::Flow::VERB 
  body: "   begin\n     exit\n     puts &quot;never get here&quot;\n   rescue SystemExit\n     puts &quot;rescued a SystemExit exception&quot;\n   end\n   puts &quot;after begin block&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   rescued a SystemExit exception\n   after begin block\n"
- !ruby/struct:SM::Flow::P 
  body: Just prior to termination, Ruby executes any <tt>at_exit</tt> functions (see Kernel::at_exit) and runs any object finalizers (see ObjectSpace::define_finalizer).
- !ruby/struct:SM::Flow::VERB 
  body: "   at_exit { puts &quot;at_exit function&quot; }\n   ObjectSpace.define_finalizer(&quot;string&quot;,  proc { puts &quot;in finalizer&quot; })\n   exit\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   at_exit function\n   in finalizer\n"
full_name: Kernel#exit
is_singleton: false
name: exit
params: |
  exit(integer=0)
  Kernel::exit(integer=0)
  Process::exit(integer=0)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invoked by Ruby when <em>obj</em> is sent a message it cannot handle. <em>symbol</em> is the symbol for the method called, and <em>args</em> are any arguments that were passed to it. By default, the interpreter raises an error when this method is called. However, it is possible to override the method to provide more dynamic behavior. The example below creates a class <tt>Roman</tt>, which responds to methods with names consisting of roman numerals, returning the corresponding integer values.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Roman\n     def romanToInt(str)\n       # ...\n     end\n     def method_missing(methId)\n       str = methId.id2name\n       romanToInt(str)\n     end\n   end\n\n   r = Roman.new\n   r.iv      #=&gt; 4\n   r.xxiii   #=&gt; 23\n   r.mm      #=&gt; 2000\n"
full_name: Kernel#method_missing
is_singleton: false
name: method_missing
params: |
  obj.method_missing(symbol [, *args] )   => result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the names of global variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   global_variables.grep /std/   #=&gt; [&quot;$stderr&quot;, &quot;$stdout&quot;, &quot;$stdin&quot;]\n"
full_name: Kernel#global_variables
is_singleton: false
name: global_variables
params: |
  global_variables    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the standard output of running <em>cmd</em> in a subshell. The built-in syntax <tt>%x{...}</tt> uses this method. Sets <tt>$?</tt> to the process status.
- !ruby/struct:SM::Flow::VERB 
  body: "   `date`                   #=&gt; &quot;Wed Apr  9 08:56:30 CDT 2003\\n&quot;\n   `ls testdir`.split[1]    #=&gt; &quot;main.rb&quot;\n   `echo oops &amp;&amp; exit 99`   #=&gt; &quot;oops\\n&quot;\n   $?.exitstatus            #=&gt; 99\n"
full_name: Kernel#`
is_singleton: false
name: `
params: |
  `cmd`    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <tt>yield</tt> would execute a block in the current context. The <tt>iterator?</tt> form is mildly deprecated.
- !ruby/struct:SM::Flow::VERB 
  body: "   def try\n     if block_given?\n       yield\n     else\n       &quot;no block&quot;\n     end\n   end\n   try                  #=&gt; &quot;no block&quot;\n   try { &quot;hello&quot; }      #=&gt; &quot;hello&quot;\n   try do &quot;hello&quot; end   #=&gt; &quot;hello&quot;\n"
full_name: Kernel#iterator?
is_singleton: false
name: iterator?
params: |
  block_given?   => true or false
  iterator?      => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Exits the process immediately. No exit handlers are run. <em>fixnum</em> is returned to the underlying system as the exit status.
- !ruby/struct:SM::Flow::VERB 
  body: "   Process.exit!(0)\n"
full_name: Kernel#exit!
is_singleton: false
name: exit!
params: |
  Process.exit!(fixnum=-1)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the current execution stack---an array containing strings in the form ``<em>file:line</em>'' or ``<em>file:line: in `method'</em>''. The optional <em>start</em> parameter determines the number of initial stack entries to omit from the result."
- !ruby/struct:SM::Flow::VERB 
  body: "   def a(skip)\n     caller(skip)\n   end\n   def b(skip)\n     a(skip)\n   end\n   def c(skip)\n     b(skip)\n   end\n   c(0)   #=&gt; [&quot;prog:2:in `a'&quot;, &quot;prog:5:in `b'&quot;, &quot;prog:8:in `c'&quot;, &quot;prog:10&quot;]\n   c(1)   #=&gt; [&quot;prog:5:in `b'&quot;, &quot;prog:8:in `c'&quot;, &quot;prog:11&quot;]\n   c(2)   #=&gt; [&quot;prog:8:in `c'&quot;, &quot;prog:12&quot;]\n   c(3)   #=&gt; [&quot;prog:13&quot;]\n"
full_name: Kernel#caller
is_singleton: false
name: caller
params: |
  caller(start=1)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Kernel#select</tt>.
full_name: Kernel#select
is_singleton: false
name: select
params: |
  IO.select(read_array 
  [, write_array 
  [, error_array 
  [, timeout]]] ) =>  array  or  nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.split(<em>pattern</em>, <em>limit</em>)</tt>. See <tt>String#split</tt>.
full_name: Kernel#split
is_singleton: false
name: split
params: |
  split([pattern [, limit]])    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>($_.dup).chop!</tt>, except <tt>nil</tt> is never returned. See <tt>String#chop!</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a  =  &quot;now\\r\\n&quot;\n   $_ = a\n   chop   #=&gt; &quot;now&quot;\n   $_     #=&gt; &quot;now&quot;\n   chop   #=&gt; &quot;no&quot;\n   chop   #=&gt; &quot;n&quot;\n   chop   #=&gt; &quot;&quot;\n   chop   #=&gt; &quot;&quot;\n   a      #=&gt; &quot;now\\r\\n&quot;\n"
full_name: Kernel#chop
is_singleton: false
name: chop
params: |
  chop   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the current process by running the given external <em>command</em>. If <tt>exec</tt> is given a single argument, that argument is taken as a line that is subject to shell expansion before being executed. If multiple arguments are given, the second and subsequent arguments are passed as parameters to <em>command</em> with no shell expansion. If the first argument is a two-element array, the first element is the command to be executed, and the second argument is used as the <tt>argv[0]</tt> value, which may show up in process listings. In MSDOS environments, the command is executed in a subshell; otherwise, one of the <tt>exec(2)</tt> system calls is used, so the running command may inherit some of the environment of the original program (including open file descriptors).
- !ruby/struct:SM::Flow::VERB 
  body: "   exec &quot;echo *&quot;       # echoes list of files in current directory\n   # never get here\n\n   exec &quot;echo&quot;, &quot;*&quot;    # echoes an asterisk\n   # never get here\n"
full_name: Kernel#exec
is_singleton: false
name: exec
params: |
  exec(command [, arg, ...])

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>arg</em> to a <tt>String</tt> by calling its <tt>to_s</tt> method.
- !ruby/struct:SM::Flow::VERB 
  body: "   String(self)        #=&gt; &quot;main&quot;\n   String(self.class   #=&gt; &quot;Object&quot;\n   String(123456)      #=&gt; &quot;123456&quot;\n"
full_name: Kernel#String
is_singleton: false
name: String
params: |
  String(arg)   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>block</em> to a <tt>Proc</tt> object (and therefore binds it at the point of call) and registers it for execution when the program exits. If multiple handlers are registered, they are executed in reverse order of registration.
- !ruby/struct:SM::Flow::VERB 
  body: "   def do_at_exit(str1)\n     at_exit { print str1 }\n   end\n   at_exit { puts &quot;cruel world&quot; }\n   do_at_exit(&quot;goodbye &quot;)\n   exit\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   goodbye cruel world\n"
full_name: Kernel#at_exit
is_singleton: false
name: at_exit
params: |
  at_exit { block } -> proc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Kernel#scanf
is_singleton: false
name: scanf
params: (fs,&b)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.chomp!(<em>string</em>)</tt>. See <tt>String#chomp!</tt>
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ = &quot;now\\n&quot;\n   chomp!       #=&gt; &quot;now&quot;\n   $_           #=&gt; &quot;now&quot;\n   chomp! &quot;x&quot;   #=&gt; nil\n   $_           #=&gt; &quot;now&quot;\n"
full_name: Kernel#chomp!
is_singleton: false
name: chomp!
params: |
  chomp!             => $_ or nil
  chomp!(string)     => $_ or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <tt>yield</tt> would execute a block in the current context. The <tt>iterator?</tt> form is mildly deprecated.
- !ruby/struct:SM::Flow::VERB 
  body: "   def try\n     if block_given?\n       yield\n     else\n       &quot;no block&quot;\n     end\n   end\n   try                  #=&gt; &quot;no block&quot;\n   try { &quot;hello&quot; }      #=&gt; &quot;hello&quot;\n   try do &quot;hello&quot; end   #=&gt; &quot;hello&quot;\n"
full_name: Kernel#block_given?
is_singleton: false
name: block_given?
params: |
  block_given?   => true or false
  iterator?      => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Proc.new</tt>, except the resulting Proc objects check the number of parameters passed when called.
full_name: Kernel#proc
is_singleton: false
name: proc
params: |
  proc   { |...| block }  => a_proc
  lambda { |...| block }  => a_proc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #open"
full_name: Kernel#open_uri_original_open
is_singleton: false
name: open_uri_original_open
params: (...)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the operating system function identified by <em>fixnum</em>, passing in the arguments, which must be either <tt>String</tt> objects, or <tt>Integer</tt> objects that ultimately fit within a native <tt>long</tt>. Up to nine parameters may be passed (14 on the Atari-ST). The function identified by <em>fixnum</em> is system dependent. On some Unix systems, the numbers may be obtained from a header file called <tt>syscall.h</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   syscall 4, 1, &quot;hello\\n&quot;, 6   # '4' is write(2) on our box\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   hello\n"
full_name: Kernel#syscall
is_singleton: false
name: syscall
params: |
  syscall(fixnum [, args...])   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns (and assigns to <tt>$_</tt>) the next line from the list of files in <tt>ARGV</tt> (or <tt>$*</tt>), or from standard input if no files are present on the command line. Returns <tt>nil</tt> at end of file. The optional argument specifies the record separator. The separator is included with the contents of each record. A separator of <tt>nil</tt> reads the entire contents, and a zero-length separator reads the input one paragraph at a time, where paragraphs are divided by two consecutive newlines. If multiple filenames are present in <tt>ARGV</tt>, +gets(nil)+ will read the contents one file at a time.
- !ruby/struct:SM::Flow::VERB 
  body: "   ARGV &lt;&lt; &quot;testfile&quot;\n   print while gets\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   This is line one\n   This is line two\n   This is line three\n   And so on...\n"
- !ruby/struct:SM::Flow::P 
  body: The style of programming using <tt>$_</tt> as an implicit parameter is gradually losing favor in the Ruby community.
full_name: Kernel#gets
is_singleton: false
name: gets
params: |
  gets(separator=$/)    => string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Specifies the handling of signals. The first parameter is a signal name (a string such as ``SIGALRM'', ``SIGUSR1'', and so on) or a signal number. The characters ``SIG'' may be omitted from the signal name. The command or block specifies code to be run when the signal is raised. If the command is the string ``IGNORE'' or ``SIG_IGN'', the signal will be ignored. If the command is ``DEFAULT'' or ``SIG_DFL'', the operating system's default handler will be invoked. If the command is ``EXIT'', the script will be terminated by the signal. Otherwise, the given command or block will be run. The special signal name ``EXIT'' or signal number zero will be invoked just prior to program termination. trap returns the previous handler for the given signal.
- !ruby/struct:SM::Flow::VERB 
  body: "    Signal.trap(0, proc { puts &quot;Terminating: #{$$}&quot; })\n    Signal.trap(&quot;CLD&quot;)  { puts &quot;Child died&quot; }\n    fork &amp;&amp; Process.wait\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Terminating: 27461\n    Child died\n    Terminating: 27460\n"
full_name: Kernel#trap
is_singleton: false
name: trap
params: |
  Signal.trap( signal, proc ) => obj
  Signal.trap( signal ) {| | block } => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to calling <tt>$_.scan</tt>. See <tt>String#scan</tt>.
full_name: Kernel#scan
is_singleton: false
name: scan
params: |
  scan(pattern)                   => array
  scan(pattern) {|///| block }    => $_

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.gsub...</tt>, except that <tt>$_</tt> receives the modified result.
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ = &quot;quick brown fox&quot;\n   gsub /[aeiou]/, '*'   #=&gt; &quot;q**ck br*wn f*x&quot;\n   $_                    #=&gt; &quot;q**ck br*wn f*x&quot;\n"
full_name: Kernel#gsub
is_singleton: false
name: gsub
params: |
  gsub(pattern, replacement)    => string
  gsub(pattern) {|...| block }  => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the current method as a Symbol. If called from inside of an aliased method it will return the original nonaliased name. If called outside of a method, it returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  def foo\n    <em>method</em>\n  end\n  alias bar foo\n\n  foo                # =&gt; :foo\n  bar                # =&gt; :foo\n"
full_name: Kernel#__method__
is_singleton: false
name: __method__
params: |
  __method__         => symbol

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: prints arguments in pretty form.
- !ruby/struct:SM::Flow::P 
  body: pp returns nil.
full_name: Kernel#pp
is_singleton: false
name: pp
params: (*objs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Registers <em>filename</em> to be loaded (using <tt>Kernel::require</tt>) the first time that <em>module</em> (which may be a <tt>String</tt> or a symbol) is accessed.
- !ruby/struct:SM::Flow::VERB 
  body: "   autoload(:MyModule, &quot;/usr/local/lib/modules/my_module.rb&quot;)\n"
full_name: Kernel#autoload
is_singleton: false
name: autoload
params: |
  autoload(module, filename)   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Proc.new</tt>, except the resulting Proc objects check the number of parameters passed when called.
full_name: Kernel#lambda
is_singleton: false
name: lambda
params: |
  proc   { |...| block }  => a_proc
  lambda { |...| block }  => a_proc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes tracing for the specified command on the given global variable and returns <tt>nil</tt>. If no command is specified, removes all tracing for that variable and returns an array containing the commands actually removed.
full_name: Kernel#untrace_var
is_singleton: false
name: untrace_var
params: |
  untrace_var(symbol [, cmd] )   => array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: " Uses the integer <em>aCmd</em> to perform various tests on\n <em>file1</em> (first table below) or on <em>file1</em> and\n <em>file2</em> (second table).\n\n File tests on a single file:\n\n   Test   Returns   Meaning\n    ?A  | Time    | Last access time for file1\n    ?b  | boolean | True if file1 is a block device\n    ?c  | boolean | True if file1 is a character device\n    ?C  | Time    | Last change time for file1\n    ?d  | boolean | True if file1 exists and is a directory\n    ?e  | boolean | True if file1 exists\n    ?f  | boolean | True if file1 exists and is a regular file\n    ?g  | boolean | True if file1 has the \\CF{setgid} bit\n        |         | set (false under NT)\n    ?G  | boolean | True if file1 exists and has a group\n        |         | ownership equal to the caller's group\n    ?k  | boolean | True if file1 exists and has the sticky bit set\n    ?l  | boolean | True if file1 exists and is a symbolic link\n    ?M  | Time    | Last modification time for file1\n    ?o  | boolean | True if file1 exists and is owned by\n        |         | the caller's effective uid\n    ?O  | boolean | True if file1 exists and is owned by\n        |         | the caller's real uid\n    ?p  | boolean | True if file1 exists and is a fifo\n    ?r  | boolean | True if file1 is readable by the effective\n        |         | uid/gid of the caller\n    ?R  | boolean | True if file is readable by the real\n        |         | uid/gid of the caller\n    ?s  | int/nil | If file1 has nonzero size, return the size,\n        |         | otherwise return nil\n    ?S  | boolean | True if file1 exists and is a socket\n    ?u  | boolean | True if file1 has the setuid bit set\n    ?w  | boolean | True if file1 exists and is writable by\n        |         | the effective uid/gid\n    ?W  | boolean | True if file1 exists and is writable by\n        |         | the real uid/gid\n    ?x  | boolean | True if file1 exists and is executable by\n        |         | the effective uid/gid\n    ?X  | boolean | True if file1 exists and is executable by\n        |         | the real uid/gid\n    ?z  | boolean | True if file1 exists and has a zero length\n"
- !ruby/struct:SM::Flow::P 
  body: "Tests that take two files:"
- !ruby/struct:SM::Flow::VERB 
  body: "    ?-  | boolean | True if file1 and file2 are identical\n    ?=  | boolean | True if the modification times of file1\n        |         | and file2 are equal\n    ?&lt;  | boolean | True if the modification time of file1\n        |         | is prior to that of file2\n    ?&gt;  | boolean | True if the modification time of file1\n        |         | is after that of file2\n"
full_name: Kernel#test
is_singleton: false
name: test
params: |
  test(int_cmd, file1 [, file2] ) => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prints each object in turn to <tt>$stdout</tt>. If the output field separator (<tt>$,</tt>) is not <tt>nil</tt>, its contents will appear between each field. If the output record separator (<tt>$\</tt>) is not <tt>nil</tt>, it will be appended to the output. If no arguments are given, prints <tt>$_</tt>. Objects that aren't strings will be converted by calling their <tt>to_s</tt> method.
- !ruby/struct:SM::Flow::VERB 
  body: "   print &quot;cat&quot;, [1,2,3], 99, &quot;\\n&quot;\n   $, = &quot;, &quot;\n   $\\ = &quot;\\n&quot;\n   print &quot;cat&quot;, [1,2,3], 99\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   cat12399\n   cat, 1, 2, 3, 99\n"
full_name: Kernel#print
is_singleton: false
name: print
params: |
  print(obj, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: obsolete
full_name: Kernel#getc
is_singleton: false
name: getc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Loads and executes the Ruby program in the file <em>filename</em>. If the filename does not resolve to an absolute path, the file is searched for in the library directories listed in <tt>$:</tt>. If the optional <em>wrap</em> parameter is <tt>true</tt>, the loaded script will be executed under an anonymous module, protecting the calling program's global namespace. In no circumstance will any local variables in the loaded file be propagated to the loading environment.
full_name: Kernel#load
is_singleton: false
name: load
params: |
  load(filename, wrap=false)   => true

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeds the pseudorandom number generator to the value of <em>number</em>.<tt>to_i.abs</tt>. If <em>number</em> is omitted, seeds the generator using a combination of the time, the process id, and a sequence number. (This is also the behavior if <tt>Kernel::rand</tt> is called without previously calling <tt>srand</tt>, but without the sequence.) By setting the seed to a known value, scripts can be made deterministic during testing. The previous seed value is returned. Also see <tt>Kernel::rand</tt>.
full_name: Kernel#srand
is_singleton: false
name: srand
params: |
  srand(number=0)    => old_seed

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no arguments, raises the exception in <tt>$!</tt> or raises a <tt>RuntimeError</tt> if <tt>$!</tt> is <tt>nil</tt>. With a single <tt>String</tt> argument, raises a <tt>RuntimeError</tt> with the string as a message. Otherwise, the first parameter should be the name of an <tt>Exception</tt> class (or an object that returns an <tt>Exception</tt> object when sent an <tt>exception</tt> message). The optional second parameter sets the message associated with the exception, and the third parameter is an array of callback information. Exceptions are caught by the <tt>rescue</tt> clause of <tt>begin...end</tt> blocks.
- !ruby/struct:SM::Flow::VERB 
  body: "   raise &quot;Failed to create socket&quot;\n   raise ArgumentError, &quot;No parameters&quot;, caller\n"
full_name: Kernel#raise
is_singleton: false
name: raise
params: |
  raise
  raise(string)
  raise(exception [, string [, array]])
  fail
  fail(string)
  fail(exception [, string [, array]])

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes <em>cmd</em> in a subshell, returning <tt>true</tt> if the command was found and ran successfully, <tt>false</tt> otherwise. An error status is available in <tt>$?</tt>. The arguments are processed in the same way as for <tt>Kernel::exec</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   system(&quot;echo *&quot;)\n   system(&quot;echo&quot;, &quot;*&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   config.h main.rb\n   *\n"
full_name: Kernel#system
is_singleton: false
name: system
params: |
  system(cmd [, arg, ...])    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>catch</tt> executes its block. If a <tt>throw</tt> is executed, Ruby searches up its stack for a <tt>catch</tt> block with a tag corresponding to the <tt>throw</tt>'s <em>symbol</em>. If found, that block is terminated, and <tt>catch</tt> returns the value given to <tt>throw</tt>. If <tt>throw</tt> is not called, the block terminates normally, and the value of <tt>catch</tt> is the value of the last expression evaluated. <tt>catch</tt> expressions may be nested, and the <tt>throw</tt> call need not be in lexical scope.
- !ruby/struct:SM::Flow::VERB 
  body: "   def routine(n)\n     puts n\n     throw :done if n &lt;= 0\n     routine(n-1)\n   end\n\n   catch(:done) { routine(3) }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   3\n   2\n   1\n   0\n"
full_name: Kernel#catch
is_singleton: false
name: catch
params: |
  catch(symbol) {| | block }  > obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the lines returned by calling <tt>Kernel.gets(<em>separator</em>)</tt> until the end of file.
full_name: Kernel#readlines
is_singleton: false
name: readlines
params: |
  readlines(separator=$/)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the string resulting from applying <em>format_string</em> to any additional arguments. Within the format string, any characters other than format sequences are copied to the result. A format sequence consists of a percent sign, followed by optional flags, width, and precision indicators, then terminated with a field type character. The field type controls how the corresponding <tt>sprintf</tt> argument is to be interpreted, while the flags modify that interpretation. The field type characters are listed in the table at the end of this section. The flag characters are:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Flag     | Applies to   | Meaning\n  ---------+--------------+-----------------------------------------\n  space    | bdeEfgGiouxX | Leave a space at the start of\n           |              | positive numbers.\n  ---------+--------------+-----------------------------------------\n  (digit)$ | all          | Specifies the absolute argument number\n           |              | for this field. Absolute and relative\n           |              | argument numbers cannot be mixed in a\n           |              | sprintf string.\n  ---------+--------------+-----------------------------------------\n   #       | beEfgGoxX    | Use an alternative format. For the\n           |              | conversions `o', `x', `X', and `b',\n           |              | prefix the result with ``0'', ``0x'', ``0X'',\n           |              |  and ``0b'', respectively. For `e',\n           |              | `E', `f', `g', and 'G', force a decimal\n           |              | point to be added, even if no digits follow.\n           |              | For `g' and 'G', do not remove trailing zeros.\n  ---------+--------------+-----------------------------------------\n  +        | bdeEfgGiouxX | Add a leading plus sign to positive numbers.\n  ---------+--------------+-----------------------------------------\n  -        | all          | Left-justify the result of this conversion.\n  ---------+--------------+-----------------------------------------\n  0 (zero) | bdeEfgGiouxX | Pad with zeros, not spaces.\n  ---------+--------------+-----------------------------------------\n  *        | all          | Use the next argument as the field width.\n           |              | If negative, left-justify the result. If the\n           |              | asterisk is followed by a number and a dollar\n           |              | sign, use the indicated argument as the width.\n"
- !ruby/struct:SM::Flow::P 
  body: The field width is an optional integer, followed optionally by a period and a precision. The width specifies the minimum number of characters that will be written to the result for this field. For numeric fields, the precision controls the number of decimal places displayed. For string fields, the precision determines the maximum number of characters to be copied from the string. (Thus, the format sequence <tt>%10.10s</tt> will always contribute exactly ten characters to the result.)
- !ruby/struct:SM::Flow::P 
  body: "The field types are:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Field |  Conversion\n    ------+--------------------------------------------------------------\n      b   | Convert argument as a binary number.\n      c   | Argument is the numeric code for a single character.\n      d   | Convert argument as a decimal number.\n      E   | Equivalent to `e', but uses an uppercase E to indicate\n          | the exponent.\n      e   | Convert floating point argument into exponential notation\n          | with one digit before the decimal point. The precision\n          | determines the number of fractional digits (defaulting to six).\n      f   | Convert floating point argument as [-]ddd.ddd,\n          |  where the precision determines the number of digits after\n          | the decimal point.\n      G   | Equivalent to `g', but use an uppercase `E' in exponent form.\n      g   | Convert a floating point number using exponential form\n          | if the exponent is less than -4 or greater than or\n          | equal to the precision, or in d.dddd form otherwise.\n      i   | Identical to `d'.\n      o   | Convert argument as an octal number.\n      p   | The valuing of argument.inspect.\n      s   | Argument is a string to be substituted. If the format\n          | sequence contains a precision, at most that many characters\n          | will be copied.\n      u   | Treat argument as an unsigned decimal number. Negative integers\n          | are displayed as a 32 bit two's complement plus one for the\n          | underlying architecture; that is, 2 ** 32 + n.  However, since\n          | Ruby has no inherent limit on bits used to represent the\n          | integer, this value is preceded by two dots (..) in order to\n          | indicate a infinite number of leading sign bits.\n      X   | Convert argument as a hexadecimal number using uppercase\n          | letters. Negative numbers will be displayed with two\n          | leading periods (representing an infinite string of\n          | leading 'FF's.\n      x   | Convert argument as a hexadecimal number.\n          | Negative numbers will be displayed with two\n          | leading periods (representing an infinite string of\n          | leading 'ff's.\n"
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "   sprintf(&quot;%d %04x&quot;, 123, 123)               #=&gt; &quot;123 007b&quot;\n   sprintf(&quot;%08b '%4s'&quot;, 123, 123)            #=&gt; &quot;01111011 ' 123'&quot;\n   sprintf(&quot;%1$*2$s %2$d %1$s&quot;, &quot;hello&quot;, 8)   #=&gt; &quot;   hello 8 hello&quot;\n   sprintf(&quot;%1$*2$s %2$d&quot;, &quot;hello&quot;, -8)       #=&gt; &quot;hello    -8&quot;\n   sprintf(&quot;%+g:% g:%-g&quot;, 1.23, 1.23, 1.23)   #=&gt; &quot;+1.23: 1.23:1.23&quot;\n   sprintf(&quot;%u&quot;, -123)                        #=&gt; &quot;..4294967173&quot;\n"
full_name: Kernel#format
is_singleton: false
name: format
params: |
  format(format_string [, arguments...] )   => string
  sprintf(format_string [, arguments...] )  => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>arg</em> to a <tt>Fixnum</tt> or <tt>Bignum</tt>. Numeric types are converted directly (with floating point numbers being truncated). If <em>arg</em> is a <tt>String</tt>, leading radix indicators (<tt>0</tt>, <tt>0b</tt>, and <tt>0x</tt>) are honored. Others are converted using <tt>to_int</tt> and <tt>to_i</tt>. This behavior is different from that of <tt>String#to_i</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Integer(123.999)    #=&gt; 123\n   Integer(&quot;0x1a&quot;)     #=&gt; 26\n   Integer(Time.new)   #=&gt; 1049896590\n"
full_name: Kernel#Integer
is_singleton: false
name: Integer
params: |
  Integer(arg)    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Establishes <em>proc</em> as the handler for tracing, or disables tracing if the parameter is <tt>nil</tt>. <em>proc</em> takes up to six parameters: an event name, a filename, a line number, an object id, a binding, and the name of a class. <em>proc</em> is invoked whenever an event occurs. Events are: <tt>c-call</tt> (call a C-language routine), <tt>c-return</tt> (return from a C-language routine), <tt>call</tt> (call a Ruby method), <tt>class</tt> (start a class or module definition), <tt>end</tt> (finish a class or module definition), <tt>line</tt> (execute code on a new line), <tt>raise</tt> (raise an exception), and <tt>return</tt> (return from a Ruby method). Tracing is disabled within the context of <em>proc</em>."
- !ruby/struct:SM::Flow::VERB 
  body: "    class Test\n    def test\n      a = 1\n      b = 2\n    end\n    end\n\n    set_trace_func proc { |event, file, line, id, binding, classname|\n       printf &quot;%8s %s:%-2d %10s %8s\\n&quot;, event, file, line, id, classname\n    }\n    t = Test.new\n    t.test\n\n      line prog.rb:11               false\n    c-call prog.rb:11        new    Class\n    c-call prog.rb:11 initialize   Object\n  c-return prog.rb:11 initialize   Object\n  c-return prog.rb:11        new    Class\n      line prog.rb:12               false\n      call prog.rb:2        test     Test\n      line prog.rb:3        test     Test\n      line prog.rb:4        test     Test\n    return prog.rb:4        test     Test\n"
full_name: Kernel#set_trace_func
is_singleton: false
name: set_trace_func
params: |
  set_trace_func(proc)    => proc
  set_trace_func(nil)     => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.sub!(<em>args</em>)</tt>.
full_name: Kernel#sub!
is_singleton: false
name: sub!
params: |
  sub!(pattern, replacement)    => $_ or nil
  sub!(pattern) {|...| block }  => $_ or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no arguments, raises the exception in <tt>$!</tt> or raises a <tt>RuntimeError</tt> if <tt>$!</tt> is <tt>nil</tt>. With a single <tt>String</tt> argument, raises a <tt>RuntimeError</tt> with the string as a message. Otherwise, the first parameter should be the name of an <tt>Exception</tt> class (or an object that returns an <tt>Exception</tt> object when sent an <tt>exception</tt> message). The optional second parameter sets the message associated with the exception, and the third parameter is an array of callback information. Exceptions are caught by the <tt>rescue</tt> clause of <tt>begin...end</tt> blocks.
- !ruby/struct:SM::Flow::VERB 
  body: "   raise &quot;Failed to create socket&quot;\n   raise ArgumentError, &quot;No parameters&quot;, caller\n"
full_name: Kernel#fail
is_singleton: false
name: fail
params: |
  raise
  raise(string)
  raise(exception [, string [, array]])
  fail
  fail(string)
  fail(exception [, string [, array]])

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the string resulting from applying <em>format_string</em> to any additional arguments. Within the format string, any characters other than format sequences are copied to the result. A format sequence consists of a percent sign, followed by optional flags, width, and precision indicators, then terminated with a field type character. The field type controls how the corresponding <tt>sprintf</tt> argument is to be interpreted, while the flags modify that interpretation. The field type characters are listed in the table at the end of this section. The flag characters are:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Flag     | Applies to   | Meaning\n  ---------+--------------+-----------------------------------------\n  space    | bdeEfgGiouxX | Leave a space at the start of\n           |              | positive numbers.\n  ---------+--------------+-----------------------------------------\n  (digit)$ | all          | Specifies the absolute argument number\n           |              | for this field. Absolute and relative\n           |              | argument numbers cannot be mixed in a\n           |              | sprintf string.\n  ---------+--------------+-----------------------------------------\n   #       | beEfgGoxX    | Use an alternative format. For the\n           |              | conversions `o', `x', `X', and `b',\n           |              | prefix the result with ``0'', ``0x'', ``0X'',\n           |              |  and ``0b'', respectively. For `e',\n           |              | `E', `f', `g', and 'G', force a decimal\n           |              | point to be added, even if no digits follow.\n           |              | For `g' and 'G', do not remove trailing zeros.\n  ---------+--------------+-----------------------------------------\n  +        | bdeEfgGiouxX | Add a leading plus sign to positive numbers.\n  ---------+--------------+-----------------------------------------\n  -        | all          | Left-justify the result of this conversion.\n  ---------+--------------+-----------------------------------------\n  0 (zero) | bdeEfgGiouxX | Pad with zeros, not spaces.\n  ---------+--------------+-----------------------------------------\n  *        | all          | Use the next argument as the field width.\n           |              | If negative, left-justify the result. If the\n           |              | asterisk is followed by a number and a dollar\n           |              | sign, use the indicated argument as the width.\n"
- !ruby/struct:SM::Flow::P 
  body: The field width is an optional integer, followed optionally by a period and a precision. The width specifies the minimum number of characters that will be written to the result for this field. For numeric fields, the precision controls the number of decimal places displayed. For string fields, the precision determines the maximum number of characters to be copied from the string. (Thus, the format sequence <tt>%10.10s</tt> will always contribute exactly ten characters to the result.)
- !ruby/struct:SM::Flow::P 
  body: "The field types are:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Field |  Conversion\n    ------+--------------------------------------------------------------\n      b   | Convert argument as a binary number.\n      c   | Argument is the numeric code for a single character.\n      d   | Convert argument as a decimal number.\n      E   | Equivalent to `e', but uses an uppercase E to indicate\n          | the exponent.\n      e   | Convert floating point argument into exponential notation\n          | with one digit before the decimal point. The precision\n          | determines the number of fractional digits (defaulting to six).\n      f   | Convert floating point argument as [-]ddd.ddd,\n          |  where the precision determines the number of digits after\n          | the decimal point.\n      G   | Equivalent to `g', but use an uppercase `E' in exponent form.\n      g   | Convert a floating point number using exponential form\n          | if the exponent is less than -4 or greater than or\n          | equal to the precision, or in d.dddd form otherwise.\n      i   | Identical to `d'.\n      o   | Convert argument as an octal number.\n      p   | The valuing of argument.inspect.\n      s   | Argument is a string to be substituted. If the format\n          | sequence contains a precision, at most that many characters\n          | will be copied.\n      u   | Treat argument as an unsigned decimal number. Negative integers\n          | are displayed as a 32 bit two's complement plus one for the\n          | underlying architecture; that is, 2 ** 32 + n.  However, since\n          | Ruby has no inherent limit on bits used to represent the\n          | integer, this value is preceded by two dots (..) in order to\n          | indicate a infinite number of leading sign bits.\n      X   | Convert argument as a hexadecimal number using uppercase\n          | letters. Negative numbers will be displayed with two\n          | leading periods (representing an infinite string of\n          | leading 'FF's.\n      x   | Convert argument as a hexadecimal number.\n          | Negative numbers will be displayed with two\n          | leading periods (representing an infinite string of\n          | leading 'ff's.\n"
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "   sprintf(&quot;%d %04x&quot;, 123, 123)               #=&gt; &quot;123 007b&quot;\n   sprintf(&quot;%08b '%4s'&quot;, 123, 123)            #=&gt; &quot;01111011 ' 123'&quot;\n   sprintf(&quot;%1$*2$s %2$d %1$s&quot;, &quot;hello&quot;, 8)   #=&gt; &quot;   hello 8 hello&quot;\n   sprintf(&quot;%1$*2$s %2$d&quot;, &quot;hello&quot;, -8)       #=&gt; &quot;hello    -8&quot;\n   sprintf(&quot;%+g:% g:%-g&quot;, 1.23, 1.23, 1.23)   #=&gt; &quot;+1.23: 1.23:1.23&quot;\n   sprintf(&quot;%u&quot;, -123)                        #=&gt; &quot;..4294967173&quot;\n"
full_name: Kernel#sprintf
is_singleton: false
name: sprintf
params: |
  format(format_string [, arguments...] )   => string
  sprintf(format_string [, arguments...] )  => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the Ruby expression(s) in <em>string</em>. If <em>binding</em> is given, the evaluation is performed in its context. The binding may be a <tt>Binding</tt> object or a <tt>Proc</tt> object. If the optional <em>filename</em> and <em>lineno</em> parameters are present, they will be used when reporting syntax errors.
- !ruby/struct:SM::Flow::VERB 
  body: "   def getBinding(str)\n     return binding\n   end\n   str = &quot;hello&quot;\n   eval &quot;str + ' Fred'&quot;                      #=&gt; &quot;hello Fred&quot;\n   eval &quot;str + ' Fred'&quot;, getBinding(&quot;bye&quot;)   #=&gt; &quot;bye Fred&quot;\n"
full_name: Kernel#eval
is_singleton: false
name: eval
params: |
  eval(string [, binding [, filename [,lineno]]])  => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>arg</em> converted to a float. Numeric types are converted directly, the rest are converted using <em>arg</em>.to_f. As of Ruby 1.8, converting <tt>nil</tt> generates a <tt>TypeError</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Float(1)           #=&gt; 1.0\n   Float(&quot;123.456&quot;)   #=&gt; 123.456\n"
full_name: Kernel#Float
is_singleton: false
name: Float
params: |
  Float(arg)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Kernel::gsub</tt>, except <tt>nil</tt> is returned if <tt>$_</tt> is not modified.
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ = &quot;quick brown fox&quot;\n   gsub! /cat/, '*'   #=&gt; nil\n   $_                 #=&gt; &quot;quick brown fox&quot;\n"
full_name: Kernel#gsub!
is_singleton: false
name: gsub!
params: |
  gsub!(pattern, replacement)    => string or nil
  gsub!(pattern) {|...| block }  => string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Display the given message (followed by a newline) on STDERR unless warnings are disabled (for example with the <tt>-W0</tt> flag).
full_name: Kernel#warn
is_singleton: false
name: warn
params: |
  warn(msg)   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.sub(<em>args</em>)</tt>, except that <tt>$_</tt> will be updated if substitution occurs.
full_name: Kernel#sub
is_singleton: false
name: sub
params: |
  sub(pattern, replacement)   => $_
  sub(pattern) { block }      => $_

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "   io.write(sprintf(string, obj, ...)\n"
- !ruby/struct:SM::Flow::P 
  body: or
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout.write(sprintf(string, obj, ...)\n"
full_name: Kernel#printf
is_singleton: false
name: printf
params: |
  printf(io, string [, obj ... ] )    => nil
  printf(string [, obj ... ] )        => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to
- !ruby/struct:SM::Flow::VERB 
  body: "    $stdout.puts(obj, ...)\n"
full_name: Kernel#puts
is_singleton: false
name: puts
params: |
  puts(obj, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_ = $_.chomp(<em>string</em>)</tt>. See <tt>String#chomp</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ = &quot;now\\n&quot;\n   chomp         #=&gt; &quot;now&quot;\n   $_            #=&gt; &quot;now&quot;\n   chomp &quot;ow&quot;    #=&gt; &quot;n&quot;\n   $_            #=&gt; &quot;n&quot;\n   chomp &quot;xxx&quot;   #=&gt; &quot;n&quot;\n   $_            #=&gt; &quot;n&quot;\n"
full_name: Kernel#chomp
is_singleton: false
name: chomp
params: |
  chomp            => $_
  chomp(string)    => $_

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>$_.chop!</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a  = &quot;now\\r\\n&quot;\n   $_ = a\n   chop!   #=&gt; &quot;now&quot;\n   chop!   #=&gt; &quot;no&quot;\n   chop!   #=&gt; &quot;n&quot;\n   chop!   #=&gt; &quot;&quot;\n   chop!   #=&gt; nil\n   $_      #=&gt; &quot;&quot;\n   a       #=&gt; &quot;&quot;\n"
full_name: Kernel#chop!
is_singleton: false
name: chop!
params: |
  chop!    => $_ or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns a pretty printed object as a string.
full_name: Kernel#pretty_inspect
is_singleton: false
name: pretty_inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For each object, directly writes <em>obj</em>.<tt>inspect</tt> followed by the current output record separator to the program's standard output.
- !ruby/struct:SM::Flow::VERB 
  body: "   S = Struct.new(:name, :state)\n   s = S['dave', 'TX']\n   p s\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   #&lt;S name=&quot;dave&quot;, state=&quot;TX&quot;&gt;\n"
full_name: Kernel#p
is_singleton: false
name: p
params: |
  p(obj, ...)    => nil

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Object</tt> is the parent class of all classes in Ruby. Its methods are therefore available to all objects unless explicitly overridden.
- !ruby/struct:SM::Flow::P 
  body: <tt>Object</tt> mixes in the <tt>Kernel</tt> module, making the built-in kernel functions globally accessible. Although the instance methods of <tt>Object</tt> are defined by the <tt>Kernel</tt> module, we have chosen to document them here for clarity.
- !ruby/struct:SM::Flow::P 
  body: In the descriptions of Object's methods, the parameter <em>symbol</em> refers to a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as <tt>:name</tt>).
constants: []

full_name: Kernel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: Array
- !ruby/object:RI::MethodSummary 
  name: Float
- !ruby/object:RI::MethodSummary 
  name: Integer
- !ruby/object:RI::MethodSummary 
  name: Pathname
- !ruby/object:RI::MethodSummary 
  name: String
- !ruby/object:RI::MethodSummary 
  name: URI
- !ruby/object:RI::MethodSummary 
  name: __method__
- !ruby/object:RI::MethodSummary 
  name: `
- !ruby/object:RI::MethodSummary 
  name: abort
- !ruby/object:RI::MethodSummary 
  name: at_exit
- !ruby/object:RI::MethodSummary 
  name: autoload
- !ruby/object:RI::MethodSummary 
  name: autoload?
- !ruby/object:RI::MethodSummary 
  name: binding
- !ruby/object:RI::MethodSummary 
  name: block_given?
- !ruby/object:RI::MethodSummary 
  name: callcc
- !ruby/object:RI::MethodSummary 
  name: caller
- !ruby/object:RI::MethodSummary 
  name: catch
- !ruby/object:RI::MethodSummary 
  name: chomp
- !ruby/object:RI::MethodSummary 
  name: chomp!
- !ruby/object:RI::MethodSummary 
  name: chop
- !ruby/object:RI::MethodSummary 
  name: chop!
- !ruby/object:RI::MethodSummary 
  name: eval
- !ruby/object:RI::MethodSummary 
  name: exec
- !ruby/object:RI::MethodSummary 
  name: exit
- !ruby/object:RI::MethodSummary 
  name: exit!
- !ruby/object:RI::MethodSummary 
  name: fail
- !ruby/object:RI::MethodSummary 
  name: fork
- !ruby/object:RI::MethodSummary 
  name: format
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: global_variables
- !ruby/object:RI::MethodSummary 
  name: gsub
- !ruby/object:RI::MethodSummary 
  name: gsub!
- !ruby/object:RI::MethodSummary 
  name: iterator?
- !ruby/object:RI::MethodSummary 
  name: lambda
- !ruby/object:RI::MethodSummary 
  name: load
- !ruby/object:RI::MethodSummary 
  name: local_variables
- !ruby/object:RI::MethodSummary 
  name: loop
- !ruby/object:RI::MethodSummary 
  name: method_missing
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open_uri_original_open
- !ruby/object:RI::MethodSummary 
  name: p
- !ruby/object:RI::MethodSummary 
  name: pp
- !ruby/object:RI::MethodSummary 
  name: pretty_inspect
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: proc
- !ruby/object:RI::MethodSummary 
  name: putc
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: raise
- !ruby/object:RI::MethodSummary 
  name: rand
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: require
- !ruby/object:RI::MethodSummary 
  name: scan
- !ruby/object:RI::MethodSummary 
  name: scanf
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: set_trace_func
- !ruby/object:RI::MethodSummary 
  name: sleep
- !ruby/object:RI::MethodSummary 
  name: split
- !ruby/object:RI::MethodSummary 
  name: sprintf
- !ruby/object:RI::MethodSummary 
  name: srand
- !ruby/object:RI::MethodSummary 
  name: sub
- !ruby/object:RI::MethodSummary 
  name: sub!
- !ruby/object:RI::MethodSummary 
  name: syscall
- !ruby/object:RI::MethodSummary 
  name: system
- !ruby/object:RI::MethodSummary 
  name: test
- !ruby/object:RI::MethodSummary 
  name: throw
- !ruby/object:RI::MethodSummary 
  name: trace_var
- !ruby/object:RI::MethodSummary 
  name: trap
- !ruby/object:RI::MethodSummary 
  name: untrace_var
- !ruby/object:RI::MethodSummary 
  name: warn
- !ruby/object:RI::MethodSummary 
  name: warn
- !ruby/object:RI::MethodSummary 
  name: y
name: Kernel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a subprocess. If a block is specified, that block is run in the subprocess, and the subprocess terminates with a status of zero. Otherwise, the <tt>fork</tt> call returns twice, once in the parent, returning the process ID of the child, and once in the child, returning <em>nil</em>. The child process can exit using <tt>Kernel.exit!</tt> to avoid running any <tt>at_exit</tt> functions. The parent process should use <tt>Process.wait</tt> to collect the termination statuses of its children or use <tt>Process.detach</tt> to register disinterest in their status; otherwise, the operating system may accumulate zombie processes.
- !ruby/struct:SM::Flow::P 
  body: The thread calling fork is the only thread in the created child process. fork doesn't copy other threads.
full_name: Kernel#fork
is_singleton: false
name: fork
params: |
  Kernel.fork  [{ block }]   => fixnum or nil
  Process.fork [{ block }]   => fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Suspends the current thread for <em>duration</em> seconds (which may be any number, including a <tt>Float</tt> with fractional seconds). Returns the actual number of seconds slept (rounded), which may be less than that asked for if another thread calls <tt>Thread#run</tt>. Zero arguments causes <tt>sleep</tt> to sleep forever.
- !ruby/struct:SM::Flow::VERB 
  body: "   Time.new    #=&gt; Wed Apr 09 08:56:32 CDT 2003\n   sleep 1.2   #=&gt; 1\n   Time.new    #=&gt; Wed Apr 09 08:56:33 CDT 2003\n   sleep 1.9   #=&gt; 2\n   Time.new    #=&gt; Wed Apr 09 08:56:35 CDT 2003\n"
full_name: Kernel#sleep
is_singleton: false
name: sleep
params: |
  sleep([duration])    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generates a <tt>Continuation</tt> object, which it passes to the associated block. Performing a <em>cont</em><tt>.call</tt> will cause the <tt>callcc</tt> to return (as will falling through the end of the block). The value returned by the <tt>callcc</tt> is the value of the block, or the value passed to <em>cont</em><tt>.call</tt>. See class <tt>Continuation</tt> for more details. Also see <tt>Kernel::throw</tt> for an alternative mechanism for unwinding a call stack.
full_name: Kernel#callcc
is_singleton: false
name: callcc
params: |
  callcc {|cont| block }   =>  obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the names of the current local variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   fred = 1\n   for i in 1..10\n      # ...\n   end\n   local_variables   #=&gt; [&quot;fred&quot;, &quot;i&quot;]\n"
full_name: Kernel#local_variables
is_singleton: false
name: local_variables
params: |
  local_variables    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Kernel::gets</tt>, except <tt>readline</tt> raises <tt>EOFError</tt> at end of file.
full_name: Kernel#readline
is_singleton: false
name: readline
params: |
  readline(separator=$/)   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Registers <em>filename</em> to be loaded (using <tt>Kernel::require</tt>) the first time that <em>module</em> (which may be a <tt>String</tt> or a symbol) is accessed.
- !ruby/struct:SM::Flow::VERB 
  body: "   autoload(:MyModule, &quot;/usr/local/lib/modules/my_module.rb&quot;)\n"
full_name: Kernel#autoload?
is_singleton: false
name: autoload?
params: |
  autoload(module, filename)   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: create a pathname object.
- !ruby/struct:SM::Flow::P 
  body: This method is available since 1.8.5.
full_name: Kernel#Pathname
is_singleton: false
name: Pathname
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Controls tracing of assignments to global variables. The parameter +symbol_ identifies the variable (as either a string name or a symbol identifier). <em>cmd</em> (which may be a string or a <tt>Proc</tt> object) or block is executed whenever the variable is assigned. The block or <tt>Proc</tt> object receives the variable's new value as a parameter. Also see <tt>Kernel::untrace_var</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   trace_var :$_, proc {|v| puts &quot;$_ is now '#{v}'&quot; }\n   $_ = &quot;hello&quot;\n   $_ = ' there'\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ is now 'hello'\n   $_ is now ' there'\n"
full_name: Kernel#trace_var
is_singleton: false
name: trace_var
params: |
  trace_var(symbol, cmd )             => nil
  trace_var(symbol) {|val| block }    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "  $stdout.putc(int)\n"
full_name: Kernel#putc
is_singleton: false
name: putc
params: |
  putc(int)   => int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminate execution immediately, effectively by calling <tt>Kernel.exit(1)</tt>. If <em>msg</em> is given, it is written to STDERR prior to terminating.
full_name: Kernel#abort
is_singleton: false
name: abort
params: |
  abort
  Kernel::abort
  Process::abort

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>Binding</tt> object, describing the variable and method bindings at the point of call. This object can be used when calling <tt>eval</tt> to execute the evaluated command in this environment. Also see the description of class <tt>Binding</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   def getBinding(param)\n     return binding\n   end\n   b = getBinding(&quot;hello&quot;)\n   eval(&quot;param&quot;, b)   #=&gt; &quot;hello&quot;\n"
full_name: Kernel#binding
is_singleton: false
name: binding
params: |
  binding -> a_binding

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ruby tries to load the library named <em>string</em>, returning <tt>true</tt> if successful. If the filename does not resolve to an absolute path, it will be searched for in the directories listed in <tt>$:</tt>. If the file has the extension ``.rb'', it is loaded as a source file; if the extension is ``.so'', ``.o'', or ``.dll'', or whatever the default shared library extension is on the current platform, Ruby loads the shared library as a Ruby extension. Otherwise, Ruby tries adding ``.rb'', ``.so'', and so on to the name. The name of the loaded feature is added to the array in <tt>$&quot;</tt>. A feature will not be loaded if it's name already appears in <tt>$&quot;</tt>. However, the file name is not converted to an absolute path, so that ``<tt>require 'a';require './a'</tt>'' will load <tt>a.rb</tt> twice.
- !ruby/struct:SM::Flow::VERB 
  body: "   require &quot;my-library.rb&quot;\n   require &quot;db-driver&quot;\n"
full_name: Kernel#require
is_singleton: false
name: require
params: |
  require(string)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>arg</em> as an <tt>Array</tt>. First tries to call <em>arg</em><tt>.to_ary</tt>, then <em>arg</em><tt>.to_a</tt>. If both fail, creates a single element array containing <em>arg</em> (unless <em>arg</em> is <tt>nil</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   Array(1..5)   #=&gt; [1, 2, 3, 4, 5]\n"
full_name: Kernel#Array
is_singleton: false
name: Array
params: |
  Array(arg)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>max</em> to an integer using max1 = max<tt>.to_i.abs</tt>. If the result is zero, returns a pseudorandom floating point number greater than or equal to 0.0 and less than 1.0. Otherwise, returns a pseudorandom integer greater than or equal to zero and less than max1. <tt>Kernel::srand</tt> may be used to ensure repeatable sequences of random numbers between different runs of the program. Ruby currently uses a modified Mersenne Twister with a period of 2**19937-1.
- !ruby/struct:SM::Flow::VERB 
  body: "   srand 1234                 #=&gt; 0\n   [ rand,  rand ]            #=&gt; [0.191519450163469, 0.49766366626136]\n   [ rand(10), rand(1000) ]   #=&gt; [6, 817]\n   srand 1234                 #=&gt; 1234\n   [ rand,  rand ]            #=&gt; [0.191519450163469, 0.49766366626136]\n"
full_name: Kernel#rand
is_singleton: false
name: rand
params: |
  rand(max=0)    => number

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: makes possible to open various resources including URIs. If the first argument respond to `open' method, the method is called with the rest arguments.
- !ruby/struct:SM::Flow::P 
  body: If the first argument is a string which begins with xxx://, it is parsed by URI.parse. If the parsed object respond to `open' method, the method is called with the rest arguments.
- !ruby/struct:SM::Flow::P 
  body: Otherwise original open is called.
- !ruby/struct:SM::Flow::P 
  body: Since open-uri.rb provides URI::HTTP#open, URI::HTTPS#open and URI::FTP#open, Kernel[#.]open can accepts such URIs and strings which begins with http://, https:// and ftp://. In these case, the opened file object is extended by OpenURI::Meta.
full_name: Kernel#open
is_singleton: false
name: open
params: (name, *rest, &block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Transfers control to the end of the active <tt>catch</tt> block waiting for <em>symbol</em>. Raises <tt>NameError</tt> if there is no <tt>catch</tt> block for the symbol. The optional second parameter supplies a return value for the <tt>catch</tt> block, which otherwise defaults to <tt>nil</tt>. For examples, see <tt>Kernel::catch</tt>.
full_name: Kernel#throw
is_singleton: false
name: throw
params: |
  throw(symbol [, obj])

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Repeatedly executes the block.
- !ruby/struct:SM::Flow::VERB 
  body: "   loop do\n     print &quot;Input: &quot;\n     line = gets\n     break if !line or line =~ /^qQ/\n     # ...\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: StopIteration raised in the block breaks the loop.
full_name: Kernel#loop
is_singleton: false
name: loop
params: |
  loop {|| block } 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prints any supplied <em>objects</em> out in YAML. Intended as a variation on +Kernel::p+.
- !ruby/struct:SM::Flow::VERB 
  body: "  S = Struct.new(:name, :state)\n  s = S['dave', 'TX']\n  y s\n"
- !ruby/struct:SM::Flow::P 
  body: _produces:_
- !ruby/struct:SM::Flow::VERB 
  body: "  --- !ruby/struct:S\n  name: dave\n  state: TX\n"
full_name: Kernel#y
is_singleton: false
name: y
params: ( object, *objects )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the elements in <em>self</em> corresponding to the given selector(s). The selectors may be either integer indices or ranges. See also &lt;/code&gt;.select&lt;code&gt;.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w{ a b c d e f }\n   a.values_at(1, 3, 5)\n   a.values_at(1, 3, 5, 7)\n   a.values_at(-1, -3, -5, -7)\n   a.values_at(1..3, 2...5)\n"
full_name: Struct#values_at
is_singleton: false
name: values_at
params: |
  struct.values_at(selector,... )  => an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attribute Reference---Returns the value of the instance variable named by <em>symbol</em>, or indexed (0..length-1) by <em>fixnum</em>. Will raise <tt>NameError</tt> if the named variable does not exist, or <tt>IndexError</tt> if the index is out of range.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n\n   joe[&quot;name&quot;]   #=&gt; &quot;Joe Smith&quot;\n   joe[:name]    #=&gt; &quot;Joe Smith&quot;\n   joe[0]        #=&gt; &quot;Joe Smith&quot;\n"
full_name: Struct#[]
is_singleton: false
name: "[]"
params: |
  struct[symbol]    => anObject
  struct[fixnum]    => anObject 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of instance variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.length   #=&gt; 3\n"
full_name: Struct#size
is_singleton: false
name: size
params: |
  struct.length    => fixnum
  struct.size      => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the values for this instance as an array.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.to_a[1]   #=&gt; &quot;123 Maple, Anytown NC&quot;\n"
full_name: Struct#to_a
is_singleton: false
name: to_a
params: |
  struct.to_a     => array
  struct.values   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "code-seq:"
- !ruby/struct:SM::Flow::VERB 
  body: "  struct.eql?(other)   =&gt; true or false\n"
- !ruby/struct:SM::Flow::P 
  body: Two structures are equal if they are the same object, or if all their fields are equal (using <tt>eql?</tt>).
full_name: Struct#eql?
is_singleton: false
name: eql?
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block passing in successive elements from <em>struct</em>, returning an array containing those elements for which the block returns a true value (equivalent to <tt>Enumerable#select</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   Lots = Struct.new(:a, :b, :c, :d, :e, :f)\n   l = Lots.new(11, 22, 33, 44, 55, 66)\n   l.select {|v| (v % 2).zero? }   #=&gt; [22, 44, 66]\n"
full_name: Struct#select
is_singleton: false
name: select
params: |
  struct.select {|i| block }    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of strings representing the names of the instance variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.members   #=&gt; [&quot;name&quot;, &quot;address&quot;, &quot;zip&quot;]\n"
full_name: Struct#members
is_singleton: false
name: members
params: |
  struct.members    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equality---Returns <tt>true</tt> if <em>other_struct</em> is equal to this one: they must be of the same class as generated by <tt>Struct::new</tt>, and the values of all instance variables must be equal (according to <tt>Object#==</tt>)."
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe   = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joejr = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   jane  = Customer.new(&quot;Jane Doe&quot;, &quot;456 Elm, Anytown NC&quot;, 12345)\n   joe == joejr   #=&gt; true\n   joe == jane    #=&gt; false\n"
full_name: Struct#==
is_singleton: false
name: ==
params: |
  struct == other_struct     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Describe the contents of this struct in a string.
full_name: Struct#inspect
is_singleton: false
name: inspect
params: |
  struct.to_s      => string
  struct.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a hash value based on this struct's contents.
full_name: Struct#hash
is_singleton: false
name: hash
params: |
  struct.hash   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: Struct::new
is_singleton: true
name: new
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct#pretty_print_cycle
is_singleton: false
name: pretty_print_cycle
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of instance variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.length   #=&gt; 3\n"
full_name: Struct#length
is_singleton: false
name: length
params: |
  struct.length    => fixnum
  struct.size      => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Describe the contents of this struct in a string.
full_name: Struct#to_s
is_singleton: false
name: to_s
params: |
  struct.to_s      => string
  struct.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each instance variable, passing the value as a parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.each {|x| puts(x) }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Joe Smith\n   123 Maple, Anytown NC\n   12345\n"
full_name: Struct#each
is_singleton: false
name: each
params: |
  struct.each {|obj| block }  => struct

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the values for this instance as an array.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.to_a[1]   #=&gt; &quot;123 Maple, Anytown NC&quot;\n"
full_name: Struct#values
is_singleton: false
name: values
params: |
  struct.to_a     => array
  struct.values   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct::yaml_tag_read_class
is_singleton: true
name: yaml_tag_read_class
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Struct::yaml_tag_class_name
is_singleton: true
name: yaml_tag_class_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: yaml_new
- !ruby/object:RI::MethodSummary 
  name: yaml_tag_class_name
- !ruby/object:RI::MethodSummary 
  name: yaml_tag_read_class
comment: 
- !ruby/struct:SM::Flow::P 
  body: A <tt>Struct</tt> is a convenient way to bundle a number of attributes together, using accessor methods, without having to write an explicit class.
- !ruby/struct:SM::Flow::P 
  body: The <tt>Struct</tt> class is a generator of specific classes, each one of which is defined to hold a set of variables and their accessors. In these examples, we'll call the generated class ``<em>Customer</em>Class,'' and we'll show an example instance of that class as ``<em>Customer</em>Inst.''
- !ruby/struct:SM::Flow::P 
  body: In the descriptions that follow, the parameter <em>symbol</em> refers to a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as <tt>:name</tt>).
constants: []

full_name: Struct
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_pair
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: members
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: pretty_print_cycle
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: values
- !ruby/object:RI::MethodSummary 
  name: values_at
name: Struct
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each instance variable, passing the name (as a symbol) and the value as parameters.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n   joe.each_pair {|name, value| puts(&quot;#{name} =&gt; #{value}&quot;) }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   name =&gt; Joe Smith\n   address =&gt; 123 Maple, Anytown NC\n   zip =&gt; 12345\n"
full_name: Struct#each_pair
is_singleton: false
name: each_pair
params: |
  struct.each_pair {|sym, obj| block }     => struct

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attribute Assignment---Assigns to the instance variable named by <em>symbol</em> or <em>fixnum</em> the value <em>obj</em> and returns it. Will raise a <tt>NameError</tt> if the named variable does not exist, or an <tt>IndexError</tt> if the index is out of range.
- !ruby/struct:SM::Flow::VERB 
  body: "   Customer = Struct.new(:name, :address, :zip)\n   joe = Customer.new(&quot;Joe Smith&quot;, &quot;123 Maple, Anytown NC&quot;, 12345)\n\n   joe[&quot;name&quot;] = &quot;Luke&quot;\n   joe[:zip]   = &quot;90210&quot;\n\n   joe.name   #=&gt; &quot;Luke&quot;\n   joe.zip    #=&gt; &quot;90210&quot;\n"
full_name: Struct#[]=
is_singleton: false
name: "[]="
params: |
  struct[symbol] = obj    => obj
  struct[fixnum] = obj    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Application#run
is_singleton: false
name: run
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Logger#add. This application's <tt>appname</tt> is used.
full_name: Logger::Application#log
is_singleton: false
name: log
params: (severity, message = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  Application.new(appname = '')\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+appname+:"
    body: Name of the application.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: "Create an instance. Log device is <tt>STDERR</tt> by default. This can be changed with #set_log."
full_name: Logger::Application::new
is_singleton: true
name: new
params: (appname = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the log device for this application. See the class Logger for an explanation of the arguments.
full_name: Logger::Application#set_log
is_singleton: false
name: set_log
params: (logdev, shift_age = 0, shift_size = 1024000)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Application#log=
is_singleton: false
name: log=
params: (logdev)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: appname
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: logdev
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Application -- Add logging support to your application.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Define your application class as a sub-class of this class.
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: Override 'run' method in your class to do many things.
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: Instantiate it and invoke 'start'.
  type: :NUMBER
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  class FooApp &lt; Application\n    def initialize(foo_app, application_specific, arguments)\n      super('FooApp') # Name of the application.\n    end\n\n    def run\n      ...\n      log(WARN, 'warning', 'my_method1')\n      ...\n      @log.error('my_method2') { 'Error!' }\n      ...\n    end\n  end\n\n  status = FooApp.new(....).start\n"
constants: []

full_name: Logger::Application
includes: 
- !ruby/object:RI::IncludedModule 
  name: Logger::Severity
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: level=
- !ruby/object:RI::MethodSummary 
  name: log
- !ruby/object:RI::MethodSummary 
  name: log=
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: set_log
- !ruby/object:RI::MethodSummary 
  name: start
name: Application
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Start the application. Return the status code.
full_name: Logger::Application#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the logging threshold, just like <tt>Logger#level=</tt>.
full_name: Logger::Application#level=
is_singleton: false
name: level=
params: (level)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the current severity level allows for the printing of <tt>INFO</tt> messages.
full_name: Logger#info?
is_singleton: false
name: info?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: log
block_params: ""
comment: 
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  Logger#add(severity, message = nil, progname = nil) { ... }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+severity+:"
    body: "Severity. Constants are defined in Logger namespace: <tt>DEBUG</tt>, <tt>INFO</tt>, <tt>WARN</tt>, <tt>ERROR</tt>, <tt>FATAL</tt>, or <tt>UNKNOWN</tt>."
  - !ruby/struct:SM::Flow::LI 
    label: "+message+:"
    body: The log message. A String or Exception.
  - !ruby/struct:SM::Flow::LI 
    label: "+progname+:"
    body: Program name string. Can be omitted. Treated as a message if no <tt>message</tt> and <tt>block</tt> are given.
  - !ruby/struct:SM::Flow::LI 
    label: "+block+:"
    body: Can be omitted. Called to get a message string if <tt>message</tt> is nil.
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Return
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if successful, <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::P 
  body: When the given severity is not high enough (for this particular logger), log no message, and return <tt>true</tt>.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Description
- !ruby/struct:SM::Flow::P 
  body: "Log a message if the given severity is high enough. This is the generic logging method. Users will be more inclined to use #debug, #info, #warn, #error, and #fatal."
- !ruby/struct:SM::Flow::P 
  body: "<b>Message format</b>: <tt>message</tt> can be any object, but it has to be converted to a String in order to log it. Generally, <tt>inspect</tt> is used if the given object is not a String. A special case is an <tt>Exception</tt> object, which will be printed in detail, including message, class, and backtrace. See #msg2str for the implementation if required."
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Bugs
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Logfile is not locked.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Append open does not need to lock file.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: But on the OS which supports multi I/O, records possibly be mixed.
  type: :BULLET
full_name: Logger#add
is_singleton: false
name: add
params: (severity, message = nil, progname = nil, &block) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log an <tt>UNKNOWN</tt> message. This will be printed no matter what the logger level.
- !ruby/struct:SM::Flow::P 
  body: "See #info for more information."
full_name: Logger#unknown
is_singleton: false
name: unknown
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the current severity level allows for the printing of <tt>FATAL</tt> messages.
full_name: Logger#fatal?
is_singleton: false
name: fatal?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Logger::Error
includes: []

instance_methods: []

name: Error
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the current severity level allows for the printing of <tt>DEBUG</tt> messages.
full_name: Logger#debug?
is_singleton: false
name: debug?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger#format_severity
is_singleton: false
name: format_severity
params: (severity)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log an <tt>ERROR</tt> message.
- !ruby/struct:SM::Flow::P 
  body: "See #info for more information."
full_name: Logger#error
is_singleton: false
name: error
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#write
is_singleton: false
name: write
params: (message)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#shift_log_age
is_singleton: false
name: shift_log_age
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#eod
is_singleton: false
name: eod
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#create_logfile
is_singleton: false
name: create_logfile
params: (filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#open_logfile
is_singleton: false
name: open_logfile
params: (filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#add_log_header
is_singleton: false
name: add_log_header
params: (file)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice::new
is_singleton: true
name: new
params: (log = nil, opt = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#check_shift_log
is_singleton: false
name: check_shift_log
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Logger::LogDevice::LogDeviceMutex
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: []

name: LogDeviceMutex
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#shift_log_period
is_singleton: false
name: shift_log_period
params: (now)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: dev
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: filename
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SiD
  value: 24 * 60 * 60
full_name: Logger::LogDevice
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_log_header
- !ruby/object:RI::MethodSummary 
  name: check_shift_log
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: create_logfile
- !ruby/object:RI::MethodSummary 
  name: eod
- !ruby/object:RI::MethodSummary 
  name: open_logfile
- !ruby/object:RI::MethodSummary 
  name: previous_period_end
- !ruby/object:RI::MethodSummary 
  name: shift_log_age
- !ruby/object:RI::MethodSummary 
  name: shift_log_period
- !ruby/object:RI::MethodSummary 
  name: write
name: LogDevice
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::LogDevice#previous_period_end
is_singleton: false
name: previous_period_end
params: (now)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Logger::ShiftingError
includes: []

instance_methods: []

name: ShiftingError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log a <tt>DEBUG</tt> message.
- !ruby/struct:SM::Flow::P 
  body: "See #info for more information."
full_name: Logger#debug
is_singleton: false
name: debug
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Logging formatter. formatter#call is invoked with 4 arguments; severity, time, progname and msg for each log. Bear in mind that time is a Time and msg is an Object that user passed and it could not be a String. It is expected to return a logdev#write-able Object. Default formatter is used when no formatter is set.
  name: formatter
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
  name: level
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Logging program name.
  name: progname
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Simple logging utility.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Author:"
    body: NAKAMURA, Hiroshi &lt;nakahiro@sarion.co.jp&gt;
  - !ruby/struct:SM::Flow::LI 
    label: "Documentation:"
    body: NAKAMURA, Hiroshi and Gavin Sinclair
  - !ruby/struct:SM::Flow::LI 
    label: "License:"
    body: You can redistribute it and/or modify it under the same terms of Ruby's license; either the dual license version in 2003, or any later version.
  - !ruby/struct:SM::Flow::LI 
    label: "Revision:"
    body: "$Id: logger.rb 31806 2011-05-30 02:08:57Z nahi $"
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: The Logger class provides a simple but sophisticated logging utility that anyone can use because it's included in the Ruby 1.8.x standard library.
- !ruby/struct:SM::Flow::P 
  body: "The HOWTOs below give a code-based overview of Logger's usage, but the basic concept is as follows. You create a Logger object (output to a file or elsewhere), and use it to log messages. The messages will have varying levels (<tt>info</tt>, <tt>error</tt>, etc), reflecting their varying importance. The levels, and their meanings, are:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+FATAL+:"
    body: an unhandleable error that results in a program crash
  - !ruby/struct:SM::Flow::LI 
    label: "+ERROR+:"
    body: a handleable error condition
  - !ruby/struct:SM::Flow::LI 
    label: "+WARN+:"
    body: a warning
  - !ruby/struct:SM::Flow::LI 
    label: "+INFO+:"
    body: generic (useful) information about system operation
  - !ruby/struct:SM::Flow::LI 
    label: "+DEBUG+:"
    body: low-level information for developers
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: So each message has a level, and the Logger itself has a level, which acts as a filter, so you can control the amount of information emitted from the logger without having to remove actual messages.
- !ruby/struct:SM::Flow::P 
  body: For instance, in a production system, you may have your logger(s) set to <tt>INFO</tt> (or <tt>WARN</tt> if you don't want the log files growing large with repetitive information). When you are developing it, though, you probably want to know about the program's internal state, and would set them to <tt>DEBUG</tt>.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::P 
  body: "A simple example demonstrates the above explanation:"
- !ruby/struct:SM::Flow::VERB 
  body: "  log = Logger.new(STDOUT)\n  log.level = Logger::WARN\n\n  log.debug(&quot;Created logger&quot;)\n  log.info(&quot;Program started&quot;)\n  log.warn(&quot;Nothing to do!&quot;)\n\n  begin\n    File.each_line(path) do |line|\n      unless line =~ /^(\\w+) = (.*)$/\n        log.error(&quot;Line in wrong format: #{line}&quot;)\n      end\n    end\n  rescue =&gt; err\n    log.fatal(&quot;Caught exception; exiting&quot;)\n    log.fatal(err)\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: Because the Logger's level is set to <tt>WARN</tt>, only the warning, error, and fatal messages are recorded. The debug and info messages are silently discarded.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Features
- !ruby/struct:SM::Flow::P 
  body: There are several interesting features that Logger provides, like auto-rolling of log files, setting the format of log messages, and specifying a program name in conjunction with the message. The next section shows you how to achieve these things.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: HOWTOs
- !ruby/struct:SM::Flow::H 
  level: 3
  text: How to create a logger
- !ruby/struct:SM::Flow::P 
  body: The options below give you various choices, in more or less increasing complexity.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Create a logger which logs messages to STDERR/STDOUT.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger = Logger.new(STDERR)\n  logger = Logger.new(STDOUT)\n"
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: Create a logger for the file which has the specified name.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger = Logger.new('logfile.log')\n"
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: Create a logger for the specified file.
  - !ruby/struct:SM::Flow::VERB 
    body: "  file = File.open('foo.log', File::WRONLY | File::APPEND)\n  # To create new (and to remove old) logfile, add File::CREAT like;\n  #   file = open('foo.log', File::WRONLY | File::APPEND | File::CREAT)\n  logger = Logger.new(file)\n"
  - !ruby/struct:SM::Flow::LI 
    label: "4."
    body: Create a logger which ages logfile once it reaches a certain size. Leave 10 &quot;old log files&quot; and each file is about 1,024,000 bytes.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger = Logger.new('foo.log', 10, 1024000)\n"
  - !ruby/struct:SM::Flow::LI 
    label: "5."
    body: Create a logger which ages logfile daily/weekly/monthly.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger = Logger.new('foo.log', 'daily')\n  logger = Logger.new('foo.log', 'weekly')\n  logger = Logger.new('foo.log', 'monthly')\n"
  type: :NUMBER
- !ruby/struct:SM::Flow::H 
  level: 3
  text: How to log a message
- !ruby/struct:SM::Flow::P 
  body: Notice the different methods (<tt>fatal</tt>, <tt>error</tt>, <tt>info</tt>) being used to log messages of various levels. Other methods in this family are <tt>warn</tt> and <tt>debug</tt>. <tt>add</tt> is used below to log a message of an arbitrary (perhaps dynamic) level.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Message in block.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.fatal { &quot;Argument 'foo' not given.&quot; }\n"
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: Message as a string.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.error &quot;Argument #{ @foo } mismatch.&quot;\n"
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: With progname.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.info('initialize') { &quot;Initializing...&quot; }\n"
  - !ruby/struct:SM::Flow::LI 
    label: "4."
    body: With severity.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.add(Logger::FATAL) { 'Fatal error!' }\n"
  type: :NUMBER
- !ruby/struct:SM::Flow::H 
  level: 3
  text: How to close a logger
- !ruby/struct:SM::Flow::VERB 
  body: "     logger.close\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Setting severity threshold
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Original interface.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.sev_threshold = Logger::WARN\n"
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: Log4r (somewhat) compatible interface.
  - !ruby/struct:SM::Flow::VERB 
    body: "  logger.level = Logger::INFO\n\n  DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL &lt; UNKNOWN\n"
  type: :NUMBER
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Format
- !ruby/struct:SM::Flow::P 
  body: "Log messages are rendered in the output stream in a certain format. The default format and a sample are shown below:"
- !ruby/struct:SM::Flow::P 
  body: "Log format:"
- !ruby/struct:SM::Flow::VERB 
  body: "  SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message\n"
- !ruby/struct:SM::Flow::P 
  body: "Log sample:"
- !ruby/struct:SM::Flow::VERB 
  body: "  I, [Wed Mar 03 02:34:24 JST 1999 895701 #19074]  INFO -- Main: info.\n"
- !ruby/struct:SM::Flow::P 
  body: "You may change the date and time format in this manner:"
- !ruby/struct:SM::Flow::VERB 
  body: "  logger.datetime_format = &quot;%Y-%m-%d %H:%M:%S&quot;\n        # e.g. &quot;2004-01-03 00:54:26&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: There is currently no supported way to change the overall format, but you may have some luck hacking the Format constant.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: "\"1.2.6\""
- !ruby/object:RI::Constant 
  comment: 
  name: ProgName
  value: "\"#{File.basename(__FILE__)}/#{VERSION}\""
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Severity label for logging. (max 5 char)
  name: SEV_LABEL
  value: "%w(DEBUG INFO WARN ERROR FATAL ANY)"
full_name: Logger
includes: 
- !ruby/object:RI::IncludedModule 
  name: Severity
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: datetime_format
- !ruby/object:RI::MethodSummary 
  name: datetime_format=
- !ruby/object:RI::MethodSummary 
  name: debug
- !ruby/object:RI::MethodSummary 
  name: debug?
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: error?
- !ruby/object:RI::MethodSummary 
  name: fatal
- !ruby/object:RI::MethodSummary 
  name: fatal?
- !ruby/object:RI::MethodSummary 
  name: format_message
- !ruby/object:RI::MethodSummary 
  name: format_severity
- !ruby/object:RI::MethodSummary 
  name: info
- !ruby/object:RI::MethodSummary 
  name: info?
- !ruby/object:RI::MethodSummary 
  name: log
- !ruby/object:RI::MethodSummary 
  name: unknown
- !ruby/object:RI::MethodSummary 
  name: warn
- !ruby/object:RI::MethodSummary 
  name: warn?
name: Logger
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: Logger#log
is_singleton: false
name: log
params: (severity, message = nil, progname = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Logging date-time format (string passed to <tt>strftime</tt>).
full_name: Logger#datetime_format=
is_singleton: false
name: datetime_format=
params: (datetime_format)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log an <tt>INFO</tt> message.
- !ruby/struct:SM::Flow::P 
  body: The message can come either from the <tt>progname</tt> argument or the <tt>block</tt>. If both are provided, then the <tt>block</tt> is used as the message, and <tt>progname</tt> is used as the program name.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Examples
- !ruby/struct:SM::Flow::VERB 
  body: "  logger.info(&quot;MainApp&quot;) { &quot;Received connection from #{ip}&quot; }\n  # ...\n  logger.info &quot;Waiting for input from user&quot;\n  # ...\n  logger.info { &quot;User typed #{input}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: You'll probably stick to the second form above, unless you want to provide a program name (which you can do with <tt>Logger#progname=</tt> as well).
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Return
- !ruby/struct:SM::Flow::P 
  body: "See #add."
full_name: Logger#info
is_singleton: false
name: info
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Logging severity.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEBUG
  value: "0"
- !ruby/object:RI::Constant 
  comment: 
  name: INFO
  value: "1"
- !ruby/object:RI::Constant 
  comment: 
  name: WARN
  value: "2"
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR
  value: "3"
- !ruby/object:RI::Constant 
  comment: 
  name: FATAL
  value: "4"
- !ruby/object:RI::Constant 
  comment: 
  name: UNKNOWN
  value: "5"
full_name: Logger::Severity
includes: []

instance_methods: []

name: Severity
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  Logger.new(name, shift_age = 7, shift_size = 1048576)\n  Logger.new(name, shift_age = 'weekly')\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Args
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+logdev+:"
    body: The log device. This is a filename (String) or IO object (typically <tt>STDOUT</tt>, <tt>STDERR</tt>, or an open file).
  - !ruby/struct:SM::Flow::LI 
    label: "+shift_age+:"
    body: Number of old log files to keep, <b>or</b> frequency of rotation (<tt>daily</tt>, <tt>weekly</tt> or <tt>monthly</tt>).
  - !ruby/struct:SM::Flow::LI 
    label: "+shift_size+:"
    body: Maximum logfile size (only applies when <tt>shift_age</tt> is a number).
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Description
- !ruby/struct:SM::Flow::P 
  body: Create an instance.
full_name: Logger::new
is_singleton: true
name: new
params: (logdev, shift_age = 0, shift_size = 1048576)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Close the logging device.
full_name: Logger#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger#datetime_format
is_singleton: false
name: datetime_format
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log a <tt>FATAL</tt> message.
- !ruby/struct:SM::Flow::P 
  body: "See #info for more information."
full_name: Logger#fatal
is_singleton: false
name: fatal
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Log a <tt>WARN</tt> message.
- !ruby/struct:SM::Flow::P 
  body: "See #info for more information."
full_name: Logger#warn
is_singleton: false
name: warn
params: (progname = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the current severity level allows for the printing of <tt>WARN</tt> messages.
full_name: Logger#warn?
is_singleton: false
name: warn?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dump given message to the log device without any formatting. If no log device exists, return <tt>nil</tt>.
full_name: Logger#<<
is_singleton: false
name: "<<"
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger#format_message
is_singleton: false
name: format_message
params: (severity, datetime, progname, msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the current severity level allows for the printing of <tt>ERROR</tt> messages.
full_name: Logger#error?
is_singleton: false
name: error?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Formatter#call
is_singleton: false
name: call
params: (severity, time, progname, msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Formatter::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Formatter#format_datetime
is_singleton: false
name: format_datetime
params: (time)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: datetime_format
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Format
  value: "\"%s, [%s#%d] %5s -- %s: %s\\n\""
full_name: Logger::Formatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: call
- !ruby/object:RI::MethodSummary 
  name: format_datetime
- !ruby/object:RI::MethodSummary 
  name: msg2str
name: Formatter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Logger::Formatter#msg2str
is_singleton: false
name: msg2str
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SyndicationModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: SY_UPDATEPERIOD_AVAILABLE_VALUES
  value: "%w(hourly daily weekly monthly yearly)"
full_name: RSS::SyndicationModel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: validate_sy_updatePeriod
name: SyndicationModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SyndicationModel#validate_sy_updatePeriod
is_singleton: false
name: validate_sy_updatePeriod
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLParser#_parse
is_singleton: false
name: _parse
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLParser::listener
is_singleton: true
name: listener
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: listener
comment: 
constants: []

full_name: RSS::REXMLParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _parse
name: REXMLParser
superclass: BaseParser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::MissingAttributeError::new
is_singleton: true
name: new
params: (tag, attribute)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attribute
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::MissingAttributeError
includes: []

instance_methods: []

name: MissingAttributeError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::TrackBackModel10::TrackBackAbout
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: TrackBackAbout
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout#maker_target
is_singleton: false
name: maker_target
params: (abouts)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackAbout#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (about)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackPing#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::TrackBackModel10::TrackBackPing
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: TrackBackPing
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackPing::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackPing::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel10::TrackBackPing::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::TrackBackModel10
includes: []

instance_methods: []

name: TrackBackModel10
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::ImageFaviconModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: ImageModelUtils
instance_methods: []

name: ImageFaviconModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: image_size=
block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon#size=
is_singleton: false
name: size=
params: (new_value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #size="
full_name: RSS::ImageFaviconModel::ImageFavicon#image_size=
is_singleton: false
name: image_size=
params: (new_value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: AVAILABLE_SIZES
  value: "%w(small medium large)"
full_name: RSS::ImageFaviconModel::ImageFavicon
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: image_size=
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
- !ruby/object:RI::MethodSummary 
  name: size=
name: ImageFavicon
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageFaviconModel::ImageFavicon#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (favicon)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::SetupMaker
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: not_need_to_call_setup_maker_variables
- !ruby/object:RI::MethodSummary 
  name: setup_maker
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: setup_maker_elements
name: SetupMaker
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#setup_maker_elements
is_singleton: false
name: setup_maker_elements
params: (parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#not_need_to_call_setup_maker_variables
is_singleton: false
name: not_need_to_call_setup_maker_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SetupMaker#setup_maker
is_singleton: false
name: setup_maker
params: (maker)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NotValidXMLParser
includes: []

instance_methods: []

name: NotValidXMLParser
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::NotValidXMLParser::new
is_singleton: true
name: new
params: (parser)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: listener
comment: 
constants: []

full_name: RSS::XMLParserParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _parse
name: XMLParserParser
superclass: BaseParser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLParserParser#_parse
is_singleton: false
name: _parse
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLParserParser::listener
is_singleton: true
name: listener
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RSS09::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NSPOOL
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
full_name: RSS::RSS09
includes: []

instance_methods: []

name: RSS09
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::InvalidRSSError
includes: []

instance_methods: []

name: InvalidRSSError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ContentModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[\"#{CONTENT_PREFIX}_encoded\"]"
full_name: RSS::ContentModel
includes: []

instance_methods: []

name: ContentModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanParser#_parse
is_singleton: false
name: _parse
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: listener
comment: 
constants: []

full_name: RSS::XMLScanParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _parse
name: XMLScanParser
superclass: BaseParser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanParser::listener
is_singleton: true
name: listener
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::TooMuchTagError
includes: []

instance_methods: []

name: TooMuchTagError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TooMuchTagError::new
is_singleton: true
name: new
params: (tag, parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#to_atom
is_singleton: false
name: to_atom
params: (type, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#to_feed
is_singleton: false
name: to_feed
params: (type, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#feed_info
is_singleton: false
name: feed_info
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#xmldecl
is_singleton: false
name: xmldecl
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#tag
is_singleton: false
name: tag
params: (indent, attrs={}, &block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#to_rss
is_singleton: false
name: to_rss
params: (type, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin::new
is_singleton: true
name: new
params: (feed_version, version=nil, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#output_encoding=
is_singleton: false
name: output_encoding=
params: (enc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#same_feed_type?
is_singleton: false
name: same_feed_type?
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#to_xml
is_singleton: false
name: to_xml
params: (type=nil, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encoding
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: feed_subtype
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: feed_type
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: feed_version
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: output_encoding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: standalone
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: version
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::RootElementMixin
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLStyleSheetMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: feed_info
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: ns_declarations
- !ruby/object:RI::MethodSummary 
  name: output_encoding=
- !ruby/object:RI::MethodSummary 
  name: same_feed_type?
- !ruby/object:RI::MethodSummary 
  name: setup_maker
- !ruby/object:RI::MethodSummary 
  name: tag
- !ruby/object:RI::MethodSummary 
  name: to_atom
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: to_rss
- !ruby/object:RI::MethodSummary 
  name: to_xml
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: RootElementMixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#setup_maker
is_singleton: false
name: setup_maker
params: (maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RootElementMixin#ns_declarations
is_singleton: false
name: ns_declarations
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::ImageItemModel::ImageItem
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: ImageItem
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageItemModel::ImageItem#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (item)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::ImageItemModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: ImageModelUtils
instance_methods: []

name: ImageItemModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser::raise_for_undefined_entity?
is_singleton: true
name: raise_for_undefined_entity?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#ignore_unknown_element=
is_singleton: false
name: ignore_unknown_element=
params: (new_value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#do_validate=
is_singleton: false
name: do_validate=
params: (new_value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: raise_for_undefined_entity?
comment: 
constants: []

full_name: RSS::BaseParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_validate
- !ruby/object:RI::MethodSummary 
  name: do_validate=
- !ruby/object:RI::MethodSummary 
  name: ignore_unknown_element
- !ruby/object:RI::MethodSummary 
  name: ignore_unknown_element=
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: rss
name: BaseParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#rss
is_singleton: false
name: rss
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser::new
is_singleton: true
name: new
params: (rss)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#ignore_unknown_element
is_singleton: false
name: ignore_unknown_element
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseParser#do_validate
is_singleton: false
name: do_validate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ITunesCategory
  value: self
full_name: RSS::ITunesChannelModel::ITunesCategory
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
- !ruby/object:RI::MethodSummary 
  name: setup_maker_elements
name: ITunesCategory
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory#setup_maker_elements
is_singleton: false
name: setup_maker_elements
params: (category)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory#maker_target
is_singleton: false
name: maker_target
params: (categories)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesCategory#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (category)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (owner)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::ITunesChannelModel::ITunesOwner
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
name: ITunesOwner
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesOwner::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::ITunesChannelModel::ITunesImage
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: ITunesImage
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesChannelModel::ITunesImage#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (image)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENT_INFOS
  value: "[                      [\"category\", :elements, \"categories\", \"text\"],                      [\"image\", :attribute, \"href\"],                      [\"owner\", :element],                      [\"new-feed-url\"],                     ] + ITunesBaseModel::ELEMENT_INFOS"
full_name: RSS::ITunesChannelModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: ITunesBaseModel
instance_methods: []

name: ITunesChannelModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: version
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::UnsupportedMakerVersionError
includes: []

instance_methods: []

name: UnsupportedMakerVersionError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::UnsupportedMakerVersionError::new
is_singleton: true
name: new
params: (version)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#valid?
is_singleton: false
name: valid?
params: (ignore_unknown_element=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::add_to_element_method
is_singleton: true
name: add_to_element_method
params: (method_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#collect_attrs
is_singleton: false
name: collect_attrs
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#make_start_tag
is_singleton: false
name: make_start_tag
params: (indent, next_indent, attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#have_xml_content?
is_singleton: false
name: have_xml_content?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#converter=
is_singleton: false
name: converter=
params: (converter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#children
is_singleton: false
name: children
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#need_base64_encode?
is_singleton: false
name: need_base64_encode?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::add_need_initialize_variable
is_singleton: true
name: add_need_initialize_variable
params: (variable_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#validate
is_singleton: false
name: validate
params: (ignore_unknown_element=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For backward compatibility
full_name: RSS::Element#calc_indent
is_singleton: false
name: calc_indent
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#tag_filter
is_singleton: false
name: tag_filter
params: (tags)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#__validate
is_singleton: false
name: __validate
params: (ignore_unknown_element, tags=_tags, recursive=true)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: do_validate
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_have_children_element
- !ruby/object:RI::MethodSummary 
  name: add_need_initialize_variable
- !ruby/object:RI::MethodSummary 
  name: add_plural_form
- !ruby/object:RI::MethodSummary 
  name: add_to_element_method
- !ruby/object:RI::MethodSummary 
  name: content_setup
- !ruby/object:RI::MethodSummary 
  name: def_corresponded_attr_reader
- !ruby/object:RI::MethodSummary 
  name: def_corresponded_attr_writer
- !ruby/object:RI::MethodSummary 
  name: get_attributes
- !ruby/object:RI::MethodSummary 
  name: have_children_elements
- !ruby/object:RI::MethodSummary 
  name: have_content?
- !ruby/object:RI::MethodSummary 
  name: inherited
- !ruby/object:RI::MethodSummary 
  name: inherited_base
- !ruby/object:RI::MethodSummary 
  name: install_get_attribute
- !ruby/object:RI::MethodSummary 
  name: install_model
- !ruby/object:RI::MethodSummary 
  name: install_must_call_validator
- !ruby/object:RI::MethodSummary 
  name: install_ns
- !ruby/object:RI::MethodSummary 
  name: models
- !ruby/object:RI::MethodSummary 
  name: must_call_validators
- !ruby/object:RI::MethodSummary 
  name: need_initialize_variables
- !ruby/object:RI::MethodSummary 
  name: need_parent?
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: plural_forms
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
- !ruby/object:RI::MethodSummary 
  name: tag_name
- !ruby/object:RI::MethodSummary 
  name: to_element_methods
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: INDENT
  value: "\"  \""
- !ruby/object:RI::Constant 
  comment: 
  name: MUST_CALL_VALIDATORS
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: MODELS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: GET_ATTRIBUTES
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: HAVE_CHILDREN_ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: TO_ELEMENT_METHODS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: NEED_INITIALIZE_VARIABLES
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: PLURAL_FORMS
  value: "{}"
full_name: RSS::Element
includes: 
- !ruby/object:RI::IncludedModule 
  name: Utils
- !ruby/object:RI::IncludedModule 
  name: SetupMaker
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __validate
- !ruby/object:RI::MethodSummary 
  name: _attrs
- !ruby/object:RI::MethodSummary 
  name: _tags
- !ruby/object:RI::MethodSummary 
  name: _validate
- !ruby/object:RI::MethodSummary 
  name: calc_indent
- !ruby/object:RI::MethodSummary 
  name: children
- !ruby/object:RI::MethodSummary 
  name: collect_attrs
- !ruby/object:RI::MethodSummary 
  name: content_is_set?
- !ruby/object:RI::MethodSummary 
  name: convert
- !ruby/object:RI::MethodSummary 
  name: converter=
- !ruby/object:RI::MethodSummary 
  name: empty_content?
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: have_required_elements?
- !ruby/object:RI::MethodSummary 
  name: have_xml_content?
- !ruby/object:RI::MethodSummary 
  name: initialize_have_children_elements
- !ruby/object:RI::MethodSummary 
  name: initialize_variables
- !ruby/object:RI::MethodSummary 
  name: make_start_tag
- !ruby/object:RI::MethodSummary 
  name: need_base64_encode?
- !ruby/object:RI::MethodSummary 
  name: set_next_element
- !ruby/object:RI::MethodSummary 
  name: tag
- !ruby/object:RI::MethodSummary 
  name: tag_filter
- !ruby/object:RI::MethodSummary 
  name: tag_name
- !ruby/object:RI::MethodSummary 
  name: tag_name_with_prefix
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: valid?
- !ruby/object:RI::MethodSummary 
  name: validate
- !ruby/object:RI::MethodSummary 
  name: validate_attribute
- !ruby/object:RI::MethodSummary 
  name: validate_for_stream
- !ruby/object:RI::MethodSummary 
  name: xmled_content
name: Element
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::add_plural_form
is_singleton: true
name: add_plural_form
params: (singular, plural)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#tag_name_with_prefix
is_singleton: false
name: tag_name_with_prefix
params: (prefix)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::models
is_singleton: true
name: models
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#initialize_have_children_elements
is_singleton: false
name: initialize_have_children_elements
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::add_have_children_element
is_singleton: true
name: add_have_children_element
params: (variable_name, plural_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#set_next_element
is_singleton: false
name: set_next_element
params: (tag_name, next_element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#tag
is_singleton: false
name: tag
params: (indent, additional_attrs={}, &block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#_tags
is_singleton: false
name: _tags
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::must_call_validators
is_singleton: true
name: must_call_validators
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::install_ns
is_singleton: true
name: install_ns
params: (prefix, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::new
is_singleton: true
name: new
params: (do_validate=true, attrs=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::def_corresponded_attr_writer
is_singleton: true
name: def_corresponded_attr_writer
params: (name, type=nil, disp_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#_validate
is_singleton: false
name: _validate
params: (ignore_unknown_element, tags, uri, models=self.class.models)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#tag_name
is_singleton: false
name: tag_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#validate_attribute
is_singleton: false
name: validate_attribute
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#_attrs
is_singleton: false
name: _attrs
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::get_attributes
is_singleton: true
name: get_attributes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::plural_forms
is_singleton: true
name: plural_forms
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::install_model
is_singleton: true
name: install_model
params: (tag, uri, occurs=nil, getter=nil, plural=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::inherited
is_singleton: true
name: inherited
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#empty_content?
is_singleton: false
name: empty_content?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#validate_for_stream
is_singleton: false
name: validate_for_stream
params: (tags, ignore_unknown_element=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::to_element_methods
is_singleton: true
name: to_element_methods
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::content_setup
is_singleton: true
name: content_setup
params: (type=nil, disp_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#to_s
is_singleton: false
name: to_s
params: (need_convert=true, indent='')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::tag_name
is_singleton: true
name: tag_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::inherited_base
is_singleton: true
name: inherited_base
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::install_get_attribute
is_singleton: true
name: install_get_attribute
params: (name, uri, required=true, type=nil, disp_name=nil, element_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::install_must_call_validator
is_singleton: true
name: install_must_call_validator
params: (prefix, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::have_content?
is_singleton: true
name: have_content?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::need_parent?
is_singleton: true
name: need_parent?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::have_children_elements
is_singleton: true
name: have_children_elements
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#content_is_set?
is_singleton: false
name: content_is_set?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::need_initialize_variables
is_singleton: true
name: need_initialize_variables
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#have_required_elements?
is_singleton: false
name: have_required_elements?
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element::def_corresponded_attr_reader
is_singleton: true
name: def_corresponded_attr_reader
params: (name, type=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#convert
is_singleton: false
name: convert
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#xmled_content
is_singleton: false
name: xmled_content
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Element#initialize_variables
is_singleton: false
name: initialize_variables
params: (attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::TaxonomyTopicsModel
includes: []

instance_methods: []

name: TaxonomyTopicsModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics#resources
is_singleton: false
name: resources
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Bag
  value: "::RSS::RDF::Bag"
- !ruby/object:RI::Constant 
  comment: 
  name: Bag
  value: args[0]
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: resources
name: TaxonomyTopics
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicsModel::TaxonomyTopics::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TEXT_ELEMENTS
  value: "{       \"title\" => nil,       \"description\" => nil,       \"creator\" => nil,       \"subject\" => nil,       \"publisher\" => nil,       \"contributor\" => nil,       \"type\" => nil,       \"format\" => nil,       \"identifier\" => nil,       \"source\" => nil,       \"language\" => nil,       \"relation\" => nil,       \"coverage\" => nil,       \"rights\" => \"rights_list\""
- !ruby/object:RI::Constant 
  comment: 
  name: DATE_ELEMENTS
  value: "{       \"date\" => \"w3cdtf\",     }"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENT_NAME_INFOS
  value: DublinCoreModel::TEXT_ELEMENTS.to_a
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: TEXT_ELEMENTS.keys + DATE_ELEMENTS.keys
full_name: RSS::DublinCoreModel
includes: []

instance_methods: []

name: DublinCoreModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::TaxonomyTopic#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::TaxonomyTopic::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::TaxonomyTopic::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::TaxonomyTopic#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TaxonomyTopicModel::TaxonomyTopic::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::TaxonomyTopicModel::TaxonomyTopic
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: TaxonomyTopic
superclass: Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::TaxonomyTopicModel
includes: []

instance_methods: []

name: TaxonomyTopicModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Items#resources
is_singleton: false
name: resources
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Items::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Seq
  value: "::RSS::RDF::Seq"
- !ruby/object:RI::Constant 
  comment: 
  name: Seq
  value: args[0]
full_name: RSS::RDF::Channel::Items
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: resources
name: Items
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Items::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Channel::Textinput
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: []

name: Textinput
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Textinput::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Textinput::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Channel::Image
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: []

name: Image
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Image::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::Image::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Channel
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: SyndicationModel
- !ruby/object:RI::IncludedModule 
  name: ImageFaviconModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Channel
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Channel#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (channel)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::new
is_singleton: true
name: new
params: (version=nil, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Textinput
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Textinput
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Textinput::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Textinput#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Textinput::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Image
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Image
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Image::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Image#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Image::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Item
includes: 
- !ruby/object:RI::IncludedModule 
  name: ContentModel
- !ruby/object:RI::IncludedModule 
  name: TrackBackModel10
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: ImageItemModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
- !ruby/object:RI::IncludedModule 
  name: SlashModel
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Item
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Item::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Item#maker_target
is_singleton: false
name: maker_target
params: (items)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Item::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Li
  value: "::RSS::RDF::Li"
full_name: RSS::RDF::Seq
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: setup_maker
name: Seq
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Seq#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Seq::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Seq::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Seq#setup_maker
is_singleton: false
name: setup_maker
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Bag#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Bag::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Bag::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Li
  value: "::RSS::RDF::Li"
full_name: RSS::RDF::Bag
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: setup_maker
name: Bag
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Bag#setup_maker
is_singleton: false
name: setup_maker
params: (target)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::RDF::Li
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: Li
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Li#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Li::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RDF::Li::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: PREFIX
  value: "'rdf'"
- !ruby/object:RI::Constant 
  comment: 
  name: URI
  value: "\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\""
full_name: RSS::RDF
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS10
- !ruby/object:RI::IncludedModule 
  name: RootElementMixin
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: RDF
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::RSS10::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NSPOOL
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
full_name: RSS::RSS10
includes: []

instance_methods: []

name: RSS10
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DC_PREFIX
  value: "'dc'"
- !ruby/object:RI::Constant 
  comment: 
  name: DC_URI
  value: "\"http://purl.org/dc/elements/1.1/\""
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: For backward compatibility
  name: DublincoreModel
  value: DublinCoreModel
- !ruby/object:RI::Constant 
  comment: 
  name: TRACKBACK_PREFIX
  value: "'trackback'"
- !ruby/object:RI::Constant 
  comment: 
  name: TRACKBACK_URI
  value: "'http://madskills.com/public/xml/rss/module/trackback/'"
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: "\"0.2.4\""
- !ruby/object:RI::Constant 
  comment: 
  name: URI
  value: "\"http://purl.org/rss/1.0/\""
- !ruby/object:RI::Constant 
  comment: 
  name: DEBUG
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: For backward compatibility :X
  name: NotExceptedTagError
  value: NotExpectedTagError
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: for backward compatibility
  name: UnknownConvertMethod
  value: UnknownConversionMethodError
- !ruby/object:RI::Constant 
  comment: 
  name: ITUNES_PREFIX
  value: "'itunes'"
- !ruby/object:RI::Constant 
  comment: 
  name: ITUNES_URI
  value: "'http://www.itunes.com/dtds/podcast-1.0.dtd'"
- !ruby/object:RI::Constant 
  comment: 
  name: SY_PREFIX
  value: "'sy'"
- !ruby/object:RI::Constant 
  comment: 
  name: SY_URI
  value: "\"http://purl.org/rss/1.0/modules/syndication/\""
- !ruby/object:RI::Constant 
  comment: 
  name: IMAGE_PREFIX
  value: "'image'"
- !ruby/object:RI::Constant 
  comment: 
  name: IMAGE_URI
  value: "'http://purl.org/rss/1.0/modules/image/'"
- !ruby/object:RI::Constant 
  comment: 
  name: IMAGE_ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENT_PREFIX
  value: "'content'"
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENT_URI
  value: "\"http://purl.org/rss/1.0/modules/content/\""
- !ruby/object:RI::Constant 
  comment: 
  name: AVAILABLE_PARSER_LIBRARIES
  value: "[       [\"rss/xmlparser\", :XMLParserParser],       [\"rss/xmlscanner\", :XMLScanParser],       [\"rss/rexmlparser\", :REXMLParser],     ]"
- !ruby/object:RI::Constant 
  comment: 
  name: AVAILABLE_PARSERS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: TAXO_PREFIX
  value: "\"taxo\""
- !ruby/object:RI::Constant 
  comment: 
  name: TAXO_URI
  value: "\"http://purl.org/rss/1.0/modules/taxonomy/\""
- !ruby/object:RI::Constant 
  comment: 
  name: TAXO_ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: SLASH_PREFIX
  value: "'slash'"
- !ruby/object:RI::Constant 
  comment: 
  name: SLASH_URI
  value: "\"http://purl.org/rss/1.0/modules/slash/\""
full_name: RSS
includes: []

instance_methods: []

name: RSS
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "%w(ping about)"
full_name: RSS::BaseTrackBackModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: TrackBackUtils
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
name: BaseTrackBackModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseTrackBackModel#append_features
is_singleton: false
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENT_INFOS
  value: "[[\"author\"],                      [\"block\", :yes_other],                      [\"explicit\", :yes_clean_other],                      [\"keywords\", :csv],                      [\"subtitle\"],                      [\"summary\"]]"
full_name: RSS::ITunesBaseModel
includes: []

instance_methods: []

name: ITunesBaseModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Try to get the XML associated with <tt>rss</tt>. Return <tt>rss</tt> if it already looks like XML, or treat it as a URI, or a file to get the XML,
full_name: RSS::Parser#normalize_rss
is_singleton: false
name: normalize_rss
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempt to convert rss to a URI, but just return it if there's a ::URI::Error
full_name: RSS::Parser#to_uri
is_singleton: false
name: to_uri
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Parser::new
is_singleton: true
name: new
params: (rss, parser_class=self.class.default_parser)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: default_parser
- !ruby/object:RI::MethodSummary 
  name: default_parser=
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse
comment: 
constants: []

full_name: RSS::Parser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maybe_xml?
- !ruby/object:RI::MethodSummary 
  name: normalize_rss
- !ruby/object:RI::MethodSummary 
  name: to_uri
name: Parser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Parser::parse
is_singleton: true
name: parse
params: (rss, do_validate=true, ignore_unknown_element=true, parser_class=default_parser)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set @@default_parser to new_value if it is one of the available parsers. Else raise NotValidXMLParser error.
full_name: RSS::Parser::default_parser=
is_singleton: true
name: default_parser=
params: (new_value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Parser::default_parser
is_singleton: true
name: default_parser
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: maybe_xml? tests if source is a string that looks like XML.
full_name: RSS::Parser#maybe_xml?
is_singleton: false
name: maybe_xml?
params: (source)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::SyndicationModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::SyndicationModel
includes: []

instance_methods: []

name: SyndicationModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent#xhtml=
is_singleton: false
name: xhtml=
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent::included
is_singleton: true
name: included
params: (base)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent#xml_content=
is_singleton: false
name: xml_content=
params: (content)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: included
comment: 
constants: []

full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ensure_xml_content
- !ruby/object:RI::MethodSummary 
  name: set_xhtml_uri_as_default_uri
- !ruby/object:RI::MethodSummary 
  name: xhtml=
- !ruby/object:RI::MethodSummary 
  name: xml_content=
name: EnsureXMLContent
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent#set_xhtml_uri_as_default_uri
is_singleton: false
name: set_xhtml_uri_as_default_uri
params: (children)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::EnsureXMLContent#ensure_xml_content
is_singleton: false
name: ensure_xml_content
params: (content)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::AtomTextConstructBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: EnsureXMLContent
instance_methods: []

name: AtomTextConstructBase
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstructBase::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageFaviconModel::install_image_favicon
is_singleton: true
name: install_image_favicon
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: install_image_favicon
comment: 
constants: []

full_name: RSS::Maker::ImageFaviconModel
includes: []

instance_methods: []

name: ImageFaviconModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageFaviconModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageFaviconModel::ImageFaviconBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageFaviconModel::ImageFaviconBase#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: about
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: image_size
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ImageFaviconModel::ImageFaviconBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: Maker::DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: ImageFaviconBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_maker
- !ruby/object:RI::MethodSummary 
  name: make
- !ruby/object:RI::MethodSummary 
  name: maker
- !ruby/object:RI::MethodSummary 
  name: makers
- !ruby/object:RI::MethodSummary 
  name: versions
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: MAKERS
  value: "{}"
full_name: RSS::Maker
includes: []

instance_methods: []

name: Maker
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Items
superclass: ItemsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Authors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Authors::Author
includes: []

instance_methods: []

name: Author
superclass: AuthorBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Item
superclass: ItemBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Contributors#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Guid#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Guid
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Guid
superclass: GuidBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Rights#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Rights
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Rights
superclass: RightsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Authors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Authors::Author
includes: []

instance_methods: []

name: Author
superclass: AuthorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Generator#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Generator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Contributors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Source
superclass: SourceBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Rights#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Rights
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Rights
superclass: RightsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Title#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Logo#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Logo
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Logo
superclass: LogoBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Icon#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Icon
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Icon
superclass: IconBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Links#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Links::Link
includes: []

instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Source::Subtitle#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Source::Subtitle
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Subtitle
superclass: SubtitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Title#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Title#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Links#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Links::Link
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Links::Link#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Links::Link#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Description#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Description#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Description
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Description
superclass: DescriptionBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Enclosure#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Enclosure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Enclosure
superclass: EnclosureBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Items::Item::Content
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Content
superclass: ContentBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Items::Item::Content#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Authors#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Authors::Author#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Authors::Author
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Author
superclass: AuthorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Generator#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Generator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Contributors#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Copyright#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Copyright#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Copyright
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Copyright
superclass: CopyrightBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipDays::Day#to_feed
is_singleton: false
name: to_feed
params: (rss, days)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipDays::Day#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::SkipDays::Day
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Day
superclass: DayBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipDays#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::SkipDays
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipDays
superclass: SkipDaysBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#setup_image
is_singleton: false
name: setup_image
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#setup_items
is_singleton: false
name: setup_items
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#setup_textinput
is_singleton: false
name: setup_textinput
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Title#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Title#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Links#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Links::Link
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Links::Link#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Links::Link#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipHours#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::SkipHours
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipHours
superclass: SkipHoursBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipHours::Hour#to_feed
is_singleton: false
name: to_feed
params: (rss, hours)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::SkipHours::Hour
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Hour
superclass: HourBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::SkipHours::Hour#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Description#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Description#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Description
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Description
superclass: DescriptionBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: setup_image
- !ruby/object:RI::MethodSummary 
  name: setup_items
- !ruby/object:RI::MethodSummary 
  name: setup_textinput
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: Channel
superclass: ChannelBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Channel::Cloud#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Channel::Cloud
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Cloud
superclass: CloudBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::new
is_singleton: true
name: new
params: (feed_version="0.92")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09#make_feed
is_singleton: false
name: make_feed
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::RSS09
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make_feed
- !ruby/object:RI::MethodSummary 
  name: setup_elements
name: RSS09
superclass: RSSBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Textinput#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Textinput
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Textinput
superclass: TextinputBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Textinput#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Image#required_element?
is_singleton: false
name: required_element?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Image#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS09::Image
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_element?
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Image
superclass: ImageBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09::Image#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS09#setup_elements
is_singleton: false
name: setup_elements
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::maker
is_singleton: true
name: maker
params: (version)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ContentModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::ContentModel
includes: []

instance_methods: []

name: ContentModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::add_need_initialize_variable
is_singleton: true
name: add_need_initialize_variable
params: (variable_name, init_value="nil")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#setup_other_elements
is_singleton: false
name: setup_other_elements
params: (feed, current=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#current_element
is_singleton: false
name: current_element
params: (feed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if @default_values_are_set
comment: 
full_name: RSS::Maker::Base#set_default_values
is_singleton: false
name: set_default_values
params: (&block) {|if @default_values_are_set| ...}
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: maker
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_need_initialize_variable
- !ruby/object:RI::MethodSummary 
  name: add_other_element
- !ruby/object:RI::MethodSummary 
  name: def_array_element
- !ruby/object:RI::MethodSummary 
  name: def_classed_element
- !ruby/object:RI::MethodSummary 
  name: def_classed_element_without_accessor
- !ruby/object:RI::MethodSummary 
  name: def_classed_elements
- !ruby/object:RI::MethodSummary 
  name: def_csv_element
- !ruby/object:RI::MethodSummary 
  name: def_other_element
- !ruby/object:RI::MethodSummary 
  name: def_other_element_without_accessor
- !ruby/object:RI::MethodSummary 
  name: inherited
- !ruby/object:RI::MethodSummary 
  name: inherited_base
- !ruby/object:RI::MethodSummary 
  name: need_initialize_variables
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: other_elements
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: OTHER_ELEMENTS
  value: "[]"
- !ruby/object:RI::Constant 
  comment: 
  name: NEED_INITIALIZE_VARIABLES
  value: "[]"
full_name: RSS::Maker::Base
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set_default_values
- !ruby/object:RI::MethodSummary 
  name: current_element
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: initialize_variables
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variables_are_set?
- !ruby/object:RI::MethodSummary 
  name: set_default_values
- !ruby/object:RI::MethodSummary 
  name: set_parent
- !ruby/object:RI::MethodSummary 
  name: setup_other_elements
- !ruby/object:RI::MethodSummary 
  name: setup_values
- !ruby/object:RI::MethodSummary 
  name: variable_is_set?
- !ruby/object:RI::MethodSummary 
  name: variables
name: Base
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_other_element
is_singleton: true
name: def_other_element
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (local_variable_name,                                           new_value_variable_name)
comment: 
full_name: RSS::Maker::Base::def_classed_elements
is_singleton: true
name: def_classed_elements
params: (name, attribute, plural_class_name=nil, plural_name=nil, new_name=nil) {|local_variable_name, new_value_variable_name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::new
is_singleton: true
name: new
params: (maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#set_parent
is_singleton: false
name: set_parent
params: (target, parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_other_element_without_accessor
is_singleton: true
name: def_other_element_without_accessor
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_classed_element
is_singleton: true
name: def_classed_element
params: (name, class_name=nil, attribute_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::inherited
is_singleton: true
name: inherited
params: (subclass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_csv_element
is_singleton: true
name: def_csv_element
params: (name, type=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#setup_values
is_singleton: false
name: setup_values
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: RSS::Maker::Base#_set_default_values
is_singleton: false
name: _set_default_values
params: (&block) {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_classed_element_without_accessor
is_singleton: true
name: def_classed_element_without_accessor
params: (name, class_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::inherited_base
is_singleton: true
name: inherited_base
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::def_array_element
is_singleton: true
name: def_array_element
params: (name, plural=nil, klass_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::other_elements
is_singleton: true
name: other_elements
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#required_variables_are_set?
is_singleton: false
name: required_variables_are_set?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::need_initialize_variables
is_singleton: true
name: need_initialize_variables
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#variable_is_set?
is_singleton: false
name: variable_is_set?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base::add_other_element
is_singleton: true
name: add_other_element
params: (variable_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Base#initialize_variables
is_singleton: false
name: initialize_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageItemModel::ImageItemBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageItemModel::ImageItemBase#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: about
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: image_height
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: image_width
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: resource
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ImageItemModel::ImageItemBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: Maker::DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: ImageItemBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageItemModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageItemModel::install_image_item
is_singleton: true
name: install_image_item
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: install_image_item
comment: 
constants: []

full_name: RSS::Maker::ImageItemModel
includes: []

instance_methods: []

name: ImageItemModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items
includes: []

instance_methods: []

name: Items
superclass: RSS09::Items
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: RSS09::Items::Item::Authors
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Authors#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Authors::Author#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Authors::Author
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Author
superclass: RSS09::Items::Item::Authors::Author
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: variables
name: Item
superclass: RSS09::Items::Item
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: RSS09::Items::Item::Categories
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Categories#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Categories::Category#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Categories::Category
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Category
superclass: RSS09::Items::Item::Categories::Category
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Categories::Category#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Guid#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Guid
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Guid
superclass: RSS09::Items::Item::Guid
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Guid#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Source#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Source
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Source
superclass: RSS09::Items::Item::Source
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Source#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Source::Links#to_feed
is_singleton: false
name: to_feed
params: (rss, source)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Source::Links::Link
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Link
superclass: RSS09::Items::Item::Source::Links::Link
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Source::Links::Link#to_feed
is_singleton: false
name: to_feed
params: (rss, source)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Source::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: RSS09::Items::Item::Source::Links
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Enclosure#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Items::Item::Enclosure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Enclosure
superclass: RSS09::Items::Item::Enclosure
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Items::Item::Enclosure#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Generator#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Generator#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::Generator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: RSS09::Channel::Categories
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Categories#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Categories::Category#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::Categories::Category
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Category
superclass: RSS09::Channel::Categories::Category
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Categories::Category#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::SkipDays::Day
includes: []

instance_methods: []

name: Day
superclass: RSS09::Channel::SkipDays::Day
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::SkipDays
includes: []

instance_methods: []

name: SkipDays
superclass: RSS09::Channel::SkipDays
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::SkipHours
includes: []

instance_methods: []

name: SkipHours
superclass: RSS09::Channel::SkipHours
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::SkipHours::Hour
includes: []

instance_methods: []

name: Hour
superclass: RSS09::Channel::SkipHours::Hour
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
name: Channel
superclass: RSS09::Channel
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Cloud#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Channel::Cloud
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Cloud
superclass: RSS09::Channel::Cloud
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Channel::Cloud#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::new
is_singleton: true
name: new
params: (feed_version="2.0")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::RSS20
includes: []

instance_methods: []

name: RSS20
superclass: RSS09
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Textinput
includes: []

instance_methods: []

name: Textinput
superclass: RSS09::Textinput
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS20::Image#required_element?
is_singleton: false
name: required_element?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS20::Image
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_element?
name: Image
superclass: RSS09::Image
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesChannelModel::ITunesCategoriesBase
includes: []

instance_methods: []

name: ITunesCategoriesBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::ITunesCategoriesBase::ITunesCategoryBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::ITunesCategoriesBase::ITunesCategoryBase#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: text
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesChannelModel::ITunesCategoriesBase::ITunesCategoryBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: ITunesCategoryBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::ITunesOwnerBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesChannelModel::ITunesOwnerBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: ITunesOwnerBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::ITunesOwnerBase#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesChannelModel::ITunesImageBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: href
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesChannelModel::ITunesImageBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: ITunesImageBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::ITunesChannelModel
includes: []

instance_methods: []

name: ITunesChannelModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TaxonomyTopicsModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: install_taxo_topics
comment: 
constants: []

full_name: RSS::Maker::TaxonomyTopicsModel
includes: []

instance_methods: []

name: TaxonomyTopicsModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: resources
  rw: R
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TaxonomyTopicsModel::TaxonomyTopicsBase
includes: []

instance_methods: []

name: TaxonomyTopicsBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TaxonomyTopicsModel::install_taxo_topics
is_singleton: true
name: install_taxo_topics
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::DublinCoreModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: install_dublin_core
comment: 
constants: []

full_name: RSS::Maker::DublinCoreModel
includes: []

instance_methods: []

name: DublinCoreModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::DublinCoreModel::install_dublin_core
is_singleton: true
name: install_dublin_core
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TaxonomyTopicModel::install_taxo_topic
is_singleton: true
name: install_taxo_topic
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TaxonomyTopicModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TaxonomyTopicModel::TaxonomyTopicsBase::TaxonomyTopicBase#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TaxonomyTopicModel::TaxonomyTopicsBase::TaxonomyTopicBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
name: TaxonomyTopicBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TaxonomyTopicModel::TaxonomyTopicsBase
includes: []

instance_methods: []

name: TaxonomyTopicsBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: install_taxo_topic
comment: 
constants: []

full_name: RSS::Maker::TaxonomyTopicModel
includes: []

instance_methods: []

name: TaxonomyTopicModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Items
superclass: ItemsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Authors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Authors::Author
includes: []

instance_methods: []

name: Author
superclass: AuthorBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: Item
superclass: ItemBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Contributors#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Guid#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Guid
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Guid
superclass: GuidBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Rights#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Rights
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Rights
superclass: RightsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Authors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Authors::Author
includes: []

instance_methods: []

name: Author
superclass: AuthorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Generator#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Generator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Contributors#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Source
superclass: SourceBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Rights#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Rights
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Rights
superclass: RightsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Title#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Logo#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Logo
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Logo
superclass: LogoBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Icon#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Icon
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Icon
superclass: IconBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Links#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Links::Link
includes: []

instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Source::Subtitle#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Source::Subtitle
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Subtitle
superclass: SubtitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Title#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Title#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Links#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Links::Link
includes: []

instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Description#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Description#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Description
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Description
superclass: DescriptionBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Enclosure#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Enclosure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Enclosure
superclass: EnclosureBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Items::Item::Content
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Content
superclass: ContentBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Items::Item::Content#to_feed
is_singleton: false
name: to_feed
params: (rss, item)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Authors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Authors
superclass: AuthorsBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Authors#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Authors::Author#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Authors::Author
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Author
superclass: AuthorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Generator#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Generator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Contributors#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Contributors
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Contributors
superclass: ContributorsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Contributors::Contributor
includes: []

instance_methods: []

name: Contributor
superclass: ContributorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Categories
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Categories#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Categories::Category
includes: []

instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Copyright#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Copyright
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Copyright
superclass: CopyrightBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::SkipDays::Day
includes: []

instance_methods: []

name: Day
superclass: DayBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::SkipDays#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::SkipDays
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipDays
superclass: SkipDaysBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#setup_image
is_singleton: false
name: setup_image
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#setup_items
is_singleton: false
name: setup_items
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#setup_textinput
is_singleton: false
name: setup_textinput
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Title#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Title
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Title
superclass: TitleBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Title#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Links#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Links::Link
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Links::Link#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Links::Link#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Links
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::SkipHours#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::SkipHours
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipHours
superclass: SkipHoursBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::SkipHours::Hour
includes: []

instance_methods: []

name: Hour
superclass: HourBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Description#to_feed
is_singleton: false
name: to_feed
params: (rss, channel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Description#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Description
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Description
superclass: DescriptionBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: setup_image
- !ruby/object:RI::MethodSummary 
  name: setup_items
- !ruby/object:RI::MethodSummary 
  name: setup_textinput
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Channel
superclass: ChannelBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Channel::Cloud#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Channel::Cloud
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Cloud
superclass: CloudBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::new
is_singleton: true
name: new
params: (feed_version="1.0")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10#make_feed
is_singleton: false
name: make_feed
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Textinput#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Textinput
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Textinput
superclass: TextinputBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Textinput#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Textinput#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Image#to_feed
is_singleton: false
name: to_feed
params: (rss)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Image#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::RSS10::Image
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: Image
superclass: ImageBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Image#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10::Image#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::RSS10
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make_feed
- !ruby/object:RI::MethodSummary 
  name: setup_elements
name: RSS10
superclass: RSSBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSS10#setup_elements
is_singleton: false
name: setup_elements
params: (rss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstruct#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstruct::def_atom_text_construct
is_singleton: true
name: def_atom_text_construct
params: (klass, name, maker_name, klass_name=nil, atom_klass_name=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_atom_text_construct
comment: 
constants: []

full_name: RSS::Maker::AtomTextConstruct
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: variables
name: AtomTextConstruct
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomTextConstruct#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomLink#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomLink#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::AtomLink
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: AtomLink
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomPersons#def_atom_persons
is_singleton: false
name: def_atom_persons
params: (klass, name, maker_name, plural=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::AtomPersons
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_atom_persons
name: AtomPersons
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::makers
is_singleton: true
name: makers
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesBaseModel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_class_accessor
- !ruby/object:RI::MethodSummary 
  name: def_csv_accessor
- !ruby/object:RI::MethodSummary 
  name: def_elements_class_accessor
- !ruby/object:RI::MethodSummary 
  name: def_yes_clean_other_accessor
- !ruby/object:RI::MethodSummary 
  name: def_yes_other_accessor
name: ITunesBaseModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesBaseModel#def_csv_accessor
is_singleton: false
name: def_csv_accessor
params: (klass, full_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesBaseModel#def_yes_clean_other_accessor
is_singleton: false
name: def_yes_clean_other_accessor
params: (klass, full_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesBaseModel#def_yes_other_accessor
is_singleton: false
name: def_yes_other_accessor
params: (klass, full_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesBaseModel#def_class_accessor
is_singleton: false
name: def_class_accessor
params: (klass, name, type, *args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesBaseModel#def_elements_class_accessor
is_singleton: false
name: def_elements_class_accessor
params: (klass, name, full_name, full_plural_name, klass_name, plural_klass_name, recommended_attribute_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::make
is_singleton: true
name: make
params: (version, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TextinputBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: []

name: TextinputBase
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::XMLStyleSheets
includes: []

instance_methods: []

name: XMLStyleSheets
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::XMLStyleSheets::XMLStyleSheet#to_feed
is_singleton: false
name: to_feed
params: (feed)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::XMLStyleSheets::XMLStyleSheet#guess_type_if_need
is_singleton: false
name: guess_type_if_need
params: (xss)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::XMLStyleSheets::XMLStyleSheet#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::XMLStyleSheets::XMLStyleSheet
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: guess_type_if_need
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: XMLStyleSheet
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::add_maker
is_singleton: true
name: add_maker
params: (version, normalized_version, maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomGenerator#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::AtomGenerator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: AtomGenerator
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomGenerator#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSSBase#to_feed
is_singleton: false
name: to_feed
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSSBase::make
is_singleton: true
name: make
params: (version, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSSBase::new
is_singleton: true
name: new
params: (feed_version)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::RSSBase#make_xml_stylesheets
is_singleton: false
name: make_xml_stylesheets
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (self)
comment: 
full_name: RSS::Maker::RSSBase#make
is_singleton: false
name: make
params: () {|self| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encoding
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: feed_version
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: standalone
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: version
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: make
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::RSSBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make
- !ruby/object:RI::MethodSummary 
  name: make_xml_stylesheets
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: RSSBase
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
- !ruby/object:RI::IncludedModule 
  name: Maker::ITunesChannelModel
- !ruby/object:RI::IncludedModule 
  name: SyndicationModel
- !ruby/object:RI::IncludedModule 
  name: Maker::ImageFaviconModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
- !ruby/object:RI::IncludedModule 
  name: SetupDefaultDate
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: date=
- !ruby/object:RI::MethodSummary 
  name: icon
- !ruby/object:RI::MethodSummary 
  name: icon=
- !ruby/object:RI::MethodSummary 
  name: lastBuildDate=
- !ruby/object:RI::MethodSummary 
  name: logo
- !ruby/object:RI::MethodSummary 
  name: logo=
- !ruby/object:RI::MethodSummary 
  name: pubDate
- !ruby/object:RI::MethodSummary 
  name: pubDate=
- !ruby/object:RI::MethodSummary 
  name: updated
- !ruby/object:RI::MethodSummary 
  name: updated=
name: ChannelBase
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::SkipHoursBase::HourBase
includes: []

instance_methods: []

name: HourBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::SkipHoursBase
includes: []

instance_methods: []

name: SkipHoursBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::SkipDaysBase::DayBase
includes: []

instance_methods: []

name: DayBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::SkipDaysBase
includes: []

instance_methods: []

name: SkipDaysBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#date=
is_singleton: false
name: date=
params: (_date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::TitleBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: TitleBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#logo=
is_singleton: false
name: logo=
params: (url)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#lastBuildDate=
is_singleton: false
name: lastBuildDate=
params: (_date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::DescriptionBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: DescriptionBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#icon=
is_singleton: false
name: icon=
params: (url)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#pubDate=
is_singleton: false
name: pubDate=
params: (date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::ContributorsBase::ContributorBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomPersonConstructBase
instance_methods: []

name: ContributorBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::ContributorsBase
includes: []

instance_methods: []

name: ContributorsBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#updated
is_singleton: false
name: updated
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::LinksBase::LinkBase
includes: []

instance_methods: []

name: LinkBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::LinksBase
includes: []

instance_methods: []

name: LinksBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::CopyrightBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: CopyrightBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#icon
is_singleton: false
name: icon
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ITunesCategory
  value: self
full_name: RSS::Maker::ChannelBase::ITunesCategories::ITunesCategory
includes: []

instance_methods: []

name: ITunesCategory
superclass: ITunesCategoryBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::ITunesCategories
includes: []

instance_methods: []

name: ITunesCategories
superclass: ITunesCategoriesBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::CategoriesBase
includes: []

instance_methods: []

name: CategoriesBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::CategoriesBase::CategoryBase
includes: []

instance_methods: []

name: CategoryBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#logo
is_singleton: false
name: logo
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::GeneratorBase
includes: []

instance_methods: []

name: GeneratorBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#pubDate
is_singleton: false
name: pubDate
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::CloudBase
includes: []

instance_methods: []

name: CloudBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::ITunesOwner
includes: []

instance_methods: []

name: ITunesOwner
superclass: ITunesOwnerBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::AuthorsBase
includes: []

instance_methods: []

name: AuthorsBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::AuthorsBase::AuthorBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomPersonConstructBase
instance_methods: []

name: AuthorBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ChannelBase::ITunesImage
includes: []

instance_methods: []

name: ITunesImage
superclass: ITunesImageBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ChannelBase#updated=
is_singleton: false
name: updated=
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase#sort_if_need
is_singleton: false
name: sort_if_need
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::new
is_singleton: true
name: new
params: (maker)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::RightsBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: RightsBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#date=
is_singleton: false
name: date=
params: (_date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::TitleBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: TitleBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::DescriptionBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: DescriptionBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#pubDate=
is_singleton: false
name: pubDate=
params: (date)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#updated
is_singleton: false
name: updated
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::EnclosureBase
includes: []

instance_methods: []

name: EnclosureBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::GuidBase
includes: []

instance_methods: []

name: GuidBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#pubDate
is_singleton: false
name: pubDate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_other_xml?
is_singleton: false
name: inline_other_xml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_other?
is_singleton: false
name: inline_other?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase::EnsureXMLContent
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inline_html?
- !ruby/object:RI::MethodSummary 
  name: inline_other?
- !ruby/object:RI::MethodSummary 
  name: inline_other_base64?
- !ruby/object:RI::MethodSummary 
  name: inline_other_text?
- !ruby/object:RI::MethodSummary 
  name: inline_other_xml?
- !ruby/object:RI::MethodSummary 
  name: inline_text?
- !ruby/object:RI::MethodSummary 
  name: inline_xhtml?
- !ruby/object:RI::MethodSummary 
  name: out_of_line?
- !ruby/object:RI::MethodSummary 
  name: xml=
- !ruby/object:RI::MethodSummary 
  name: xml_content=
name: ContentBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_xhtml?
is_singleton: false
name: inline_xhtml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#out_of_line?
is_singleton: false
name: out_of_line?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_other_text?
is_singleton: false
name: inline_other_text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: xml=
block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#xml_content=
is_singleton: false
name: xml_content=
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_other_base64?
is_singleton: false
name: inline_other_base64?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_text?
is_singleton: false
name: inline_text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#inline_html?
is_singleton: false
name: inline_html?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #xml_content="
full_name: RSS::Maker::ItemsBase::ItemBase::ContentBase#xml=
is_singleton: false
name: xml=
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase#updated=
is_singleton: false
name: updated=
params: (date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase::RightsBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: RightsBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase::SubtitleBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: SubtitleBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase#date=
is_singleton: false
name: date=
params: (_date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase::TitleBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomTextConstructBase
instance_methods: []

name: TitleBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase#updated
is_singleton: false
name: updated
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase::LogoBase
includes: []

instance_methods: []

name: LogoBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase::IconBase
includes: []

instance_methods: []

name: IconBase
superclass: Base
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: AuthorsBase
  value: ChannelBase::AuthorsBase
- !ruby/object:RI::Constant 
  comment: 
  name: CategoriesBase
  value: ChannelBase::CategoriesBase
- !ruby/object:RI::Constant 
  comment: 
  name: ContributorsBase
  value: ChannelBase::ContributorsBase
- !ruby/object:RI::Constant 
  comment: 
  name: GeneratorBase
  value: ChannelBase::GeneratorBase
- !ruby/object:RI::Constant 
  comment: 
  name: LinksBase
  value: ChannelBase::LinksBase
full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: SetupDefaultDate
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: date=
- !ruby/object:RI::MethodSummary 
  name: updated
- !ruby/object:RI::MethodSummary 
  name: updated=
name: SourceBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase::ItemBase::SourceBase#updated=
is_singleton: false
name: updated=
params: (date)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ItemsBase::ItemBase::ITunesDuration
includes: []

instance_methods: []

name: ITunesDuration
superclass: ITunesDurationBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CategoriesBase
  value: ChannelBase::CategoriesBase
- !ruby/object:RI::Constant 
  comment: 
  name: AuthorsBase
  value: ChannelBase::AuthorsBase
- !ruby/object:RI::Constant 
  comment: 
  name: LinksBase
  value: ChannelBase::LinksBase
- !ruby/object:RI::Constant 
  comment: 
  name: ContributorsBase
  value: ChannelBase::ContributorsBase
full_name: RSS::Maker::ItemsBase::ItemBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
- !ruby/object:RI::IncludedModule 
  name: TrackBackModel
- !ruby/object:RI::IncludedModule 
  name: Maker::ITunesItemModel
- !ruby/object:RI::IncludedModule 
  name: Maker::ImageItemModel
- !ruby/object:RI::IncludedModule 
  name: ContentModel
- !ruby/object:RI::IncludedModule 
  name: TaxonomyTopicsModel
- !ruby/object:RI::IncludedModule 
  name: SetupDefaultDate
- !ruby/object:RI::IncludedModule 
  name: SlashModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: date=
- !ruby/object:RI::MethodSummary 
  name: pubDate
- !ruby/object:RI::MethodSummary 
  name: pubDate=
- !ruby/object:RI::MethodSummary 
  name: updated
- !ruby/object:RI::MethodSummary 
  name: updated=
name: ItemBase
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: do_sort
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: max_size
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::ItemsBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: sort_if_need
name: ItemsBase
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ItemsBase#normalize
is_singleton: false
name: normalize
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::TrackBackModel
includes: []

instance_methods: []

name: TrackBackModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TrackBackModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TrackBackModel::TrackBackAboutsBase
includes: []

instance_methods: []

name: TrackBackAboutsBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TrackBackModel::TrackBackAboutsBase::TrackBackAboutBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::TrackBackModel::TrackBackAboutsBase::TrackBackAboutBase#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::TrackBackModel::TrackBackAboutsBase::TrackBackAboutBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: TrackBackAboutBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomLogo#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::AtomLogo
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: AtomLogo
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomLogo#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ImageBase
includes: 
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: link
name: ImageBase
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ImageBase#link
is_singleton: false
name: link
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::AtomCategory
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: AtomCategory
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomCategory#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomCategory#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomCategory#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items#to_feed
is_singleton: false
name: to_feed
params: (entry)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Items
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Items
superclass: ItemsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Guid
  value: Feed::Items::Item::Guid
- !ruby/object:RI::Constant 
  comment: 
  name: Enclosure
  value: Feed::Items::Item::Enclosure
- !ruby/object:RI::Constant 
  comment: 
  name: Source
  value: Feed::Items::Item::Source
- !ruby/object:RI::Constant 
  comment: 
  name: Categories
  value: Feed::Items::Item::Categories
- !ruby/object:RI::Constant 
  comment: 
  name: Authors
  value: Feed::Items::Item::Authors
- !ruby/object:RI::Constant 
  comment: 
  name: Contributors
  value: Feed::Items::Item::Contributors
- !ruby/object:RI::Constant 
  comment: 
  name: Links
  value: Feed::Items::Item::Links
- !ruby/object:RI::Constant 
  comment: 
  name: Rights
  value: Feed::Items::Item::Rights
- !ruby/object:RI::Constant 
  comment: 
  name: Description
  value: Feed::Items::Item::Description
- !ruby/object:RI::Constant 
  comment: 
  name: Title
  value: Feed::Items::Item::Title
- !ruby/object:RI::Constant 
  comment: 
  name: Content
  value: Feed::Items::Item::Content
full_name: RSS::Maker::Atom::Entry::Items::Item
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set_default_values
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variable_is_set?
- !ruby/object:RI::MethodSummary 
  name: variables
name: Item
superclass: ItemBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#to_feed
is_singleton: false
name: to_feed
params: (entry)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#_set_default_values
is_singleton: false
name: _set_default_values
params: (&block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Items::Item#variable_is_set?
is_singleton: false
name: variable_is_set?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomGenerator
instance_methods: []

name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::Channel::Generator::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::SkipDays::Day
includes: []

instance_methods: []

name: Day
superclass: DayBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::SkipDays
includes: []

instance_methods: []

name: SkipDays
superclass: SkipDaysBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::SkipHours
includes: []

instance_methods: []

name: SkipHours
superclass: SkipHoursBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::SkipHours::Hour
includes: []

instance_methods: []

name: Hour
superclass: HourBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::Description
includes: []

instance_methods: []

name: Description
superclass: DescriptionBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Categories
  value: Feed::Channel::Categories
- !ruby/object:RI::Constant 
  comment: 
  name: Links
  value: Feed::Channel::Links
- !ruby/object:RI::Constant 
  comment: 
  name: Authors
  value: Feed::Channel::Authors
- !ruby/object:RI::Constant 
  comment: 
  name: Contributors
  value: Feed::Channel::Contributors
- !ruby/object:RI::Constant 
  comment: 
  name: Copyright
  value: Feed::Channel::Copyright
- !ruby/object:RI::Constant 
  comment: 
  name: Title
  value: Feed::Channel::Title
full_name: RSS::Maker::Atom::Entry::Channel
includes: []

instance_methods: []

name: Channel
superclass: ChannelBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Channel::Cloud
includes: []

instance_methods: []

name: Cloud
superclass: CloudBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry::new
is_singleton: true
name: new
params: (feed_version="1.0")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry#make_feed
is_singleton: false
name: make_feed
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::Atom::Entry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make_feed
- !ruby/object:RI::MethodSummary 
  name: setup_elements
name: Entry
superclass: RSSBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Textinput
includes: []

instance_methods: []

name: Textinput
superclass: TextinputBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Entry::Image
includes: []

instance_methods: []

name: Image
superclass: ImageBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Entry#setup_elements
is_singleton: false
name: setup_elements
params: (entry)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make_feed
- !ruby/object:RI::MethodSummary 
  name: setup_elements
name: Feed
superclass: RSSBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items#to_feed
is_singleton: false
name: to_feed
params: (feed)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Items
superclass: ItemsBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set_default_values
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: Item
superclass: ItemBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#to_feed
is_singleton: false
name: to_feed
params: (feed)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Categories
includes: []

instance_methods: []

name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Categories::Category
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomCategory
instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Categories::Category::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Guid#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Guid
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Guid
superclass: GuidBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomGenerator
instance_methods: []

name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Generator::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Categories
includes: []

instance_methods: []

name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Categories::Category
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomCategory
instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Categories::Category::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
name: Source
superclass: SourceBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Logo::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Logo
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomLogo
instance_methods: []

name: Logo
superclass: LogoBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Icon#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Icon#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Icon
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Icon
superclass: IconBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Links::Link
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomLink
instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Links::Link::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Source::Links
includes: []

instance_methods: []

name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Source#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Links::Link
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomLink
instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Links::Link::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Links
includes: []

instance_methods: []

name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#_set_default_values
is_singleton: false
name: _set_default_values
params: (&block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Enclosure#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Enclosure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Enclosure
superclass: EnclosureBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Items::Item::Content
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variables
- !ruby/object:RI::MethodSummary 
  name: xml_type?
name: Content
superclass: ContentBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Content#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Content#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Content#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Items::Item::Content#xml_type?
is_singleton: false
name: xml_type?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomGenerator
instance_methods: []

name: Generator
superclass: GeneratorBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::Generator::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#to_feed
is_singleton: false
name: to_feed
params: (feed)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Categories
includes: []

instance_methods: []

name: Categories
superclass: CategoriesBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Categories::Category
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomCategory
instance_methods: []

name: Category
superclass: CategoryBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::Categories::Category::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#have_required_values?
is_singleton: false
name: have_required_values?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::SkipDays::Day
includes: []

instance_methods: []

name: Day
superclass: DayBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::SkipDays#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::SkipDays
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipDays
superclass: SkipDaysBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#not_set_required_variables
is_singleton: false
name: not_set_required_variables
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: not_set_name
comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Links::Link
includes: 
- !ruby/object:RI::IncludedModule 
  name: AtomLink
instance_methods: []

name: Link
superclass: LinkBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::Links::Link::not_set_name
is_singleton: true
name: not_set_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Links
includes: []

instance_methods: []

name: Links
superclass: LinksBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#_set_default_values
is_singleton: false
name: _set_default_values
params: (&block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#variables
is_singleton: false
name: variables
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::SkipHours#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::SkipHours
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: SkipHours
superclass: SkipHoursBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::SkipHours::Hour
includes: []

instance_methods: []

name: Hour
superclass: HourBase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set_default_values
- !ruby/object:RI::MethodSummary 
  name: have_required_values?
- !ruby/object:RI::MethodSummary 
  name: not_set_required_variables
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: variable_is_set?
- !ruby/object:RI::MethodSummary 
  name: variables
name: Channel
superclass: ChannelBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel::Cloud#to_feed
is_singleton: false
name: to_feed
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Channel::Cloud
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Cloud
superclass: CloudBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Channel#variable_is_set?
is_singleton: false
name: variable_is_set?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::new
is_singleton: true
name: new
params: (feed_version="1.0")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed#make_feed
is_singleton: false
name: make_feed
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Textinput
includes: []

instance_methods: []

name: Textinput
superclass: TextinputBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Image#to_feed
is_singleton: false
name: to_feed
params: (feed)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom::Feed::Image
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: required_variable_names
- !ruby/object:RI::MethodSummary 
  name: to_feed
name: Image
superclass: ImageBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed::Image#required_variable_names
is_singleton: false
name: required_variable_names
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::Atom::Feed#setup_elements
is_singleton: false
name: setup_elements
params: (feed)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::Atom
includes: []

instance_methods: []

name: Atom
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#to_feed
is_singleton: false
name: to_feed
params: (feed, current)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: content
  rw: R
class_methods: []

comment: 
constants: []

full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: content=
- !ruby/object:RI::MethodSummary 
  name: hour=
- !ruby/object:RI::MethodSummary 
  name: minute=
- !ruby/object:RI::MethodSummary 
  name: second=
- !ruby/object:RI::MethodSummary 
  name: to_feed
- !ruby/object:RI::MethodSummary 
  name: update_content
name: ITunesDurationBase
superclass: Base
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#update_content
is_singleton: false
name: update_content
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#minute=
is_singleton: false
name: minute=
params: (minute)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#content=
is_singleton: false
name: content=
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#second=
is_singleton: false
name: second=
params: (second)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::ITunesDurationBase#hour=
is_singleton: false
name: hour=
params: (hour)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::ITunesItemModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::ITunesItemModel
includes: []

instance_methods: []

name: ITunesItemModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::versions
is_singleton: true
name: versions
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::SlashModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::SlashModel
includes: []

instance_methods: []

name: SlashModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::SetupDefaultDate#_parse_date_if_needed
is_singleton: false
name: _parse_date_if_needed
params: (date_value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Maker::SetupDefaultDate
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _parse_date_if_needed
- !ruby/object:RI::MethodSummary 
  name: _set_default_values
name: SetupDefaultDate
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::SetupDefaultDate#_set_default_values
is_singleton: false
name: _set_default_values
params: (&block)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Maker::AtomPersonConstructBase
includes: []

instance_methods: []

name: AtomPersonConstructBase
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Maker::AtomPersonConstructBase::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::UnknownTagError::new
is_singleton: true
name: new
params: (tag, uri)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::UnknownTagError
includes: []

instance_methods: []

name: UnknownTagError
superclass: InvalidRSSError
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: variables
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NotSetError
includes: []

instance_methods: []

name: NotSetError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::NotSetError::new
is_singleton: true
name: new
params: (name, variables)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: prefix
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NSError
includes: []

instance_methods: []

name: NSError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::NSError::new
is_singleton: true
name: new
params: (tag, prefix, require_uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::NotExpectedTagError::new
is_singleton: true
name: new
params: (tag, uri, parent)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NotExpectedTagError
includes: []

instance_methods: []

name: NotExpectedTagError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_same_enc
is_singleton: false
name: def_same_enc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_iconv_convert
is_singleton: false
name: def_iconv_convert
params: (to_enc, from_enc, depth=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_euc_jp_from_utf_8
is_singleton: false
name: def_to_euc_jp_from_utf_8
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_else_enc
is_singleton: false
name: def_else_enc
params: (to_enc, from_enc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_euc_jp_from_iso_2022_jp
is_singleton: false
name: def_to_euc_jp_from_iso_2022_jp
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_iso_8859_1_from_utf_8
is_singleton: false
name: def_to_iso_8859_1_from_utf_8
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_utf_8_from_shift_jis
is_singleton: false
name: def_to_utf_8_from_shift_jis
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter::new
is_singleton: true
name: new
params: (to_enc, from_enc=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_utf_8_from_iso_8859_1
is_singleton: false
name: def_to_utf_8_from_iso_8859_1
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_uconv_convert_if_can
is_singleton: false
name: def_uconv_convert_if_can
params: (meth, to_enc, from_enc, nkf_arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_euc_jp_from_shift_jis
is_singleton: false
name: def_to_euc_jp_from_shift_jis
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_convert
is_singleton: false
name: def_convert
params: (depth=0)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Converter
includes: 
- !ruby/object:RI::IncludedModule 
  name: Utils
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: convert
- !ruby/object:RI::MethodSummary 
  name: def_convert
- !ruby/object:RI::MethodSummary 
  name: def_else_enc
- !ruby/object:RI::MethodSummary 
  name: def_iconv_convert
- !ruby/object:RI::MethodSummary 
  name: def_same_enc
- !ruby/object:RI::MethodSummary 
  name: def_to_euc_jp_from_iso_2022_jp
- !ruby/object:RI::MethodSummary 
  name: def_to_euc_jp_from_shift_jis
- !ruby/object:RI::MethodSummary 
  name: def_to_euc_jp_from_utf_8
- !ruby/object:RI::MethodSummary 
  name: def_to_iso_2022_jp_from_euc_jp
- !ruby/object:RI::MethodSummary 
  name: def_to_iso_8859_1_from_utf_8
- !ruby/object:RI::MethodSummary 
  name: def_to_shift_jis_from_euc_jp
- !ruby/object:RI::MethodSummary 
  name: def_to_shift_jis_from_utf_8
- !ruby/object:RI::MethodSummary 
  name: def_to_utf_8_from_euc_jp
- !ruby/object:RI::MethodSummary 
  name: def_to_utf_8_from_iso_8859_1
- !ruby/object:RI::MethodSummary 
  name: def_to_utf_8_from_shift_jis
- !ruby/object:RI::MethodSummary 
  name: def_uconv_convert_if_can
name: Converter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_iso_2022_jp_from_euc_jp
is_singleton: false
name: def_to_iso_2022_jp_from_euc_jp
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_utf_8_from_euc_jp
is_singleton: false
name: def_to_utf_8_from_euc_jp
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_shift_jis_from_euc_jp
is_singleton: false
name: def_to_shift_jis_from_euc_jp
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#def_to_shift_jis_from_utf_8
is_singleton: false
name: def_to_shift_jis_from_utf_8
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Converter#convert
is_singleton: false
name: convert
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new NotWellFormedError for an error at <tt>line</tt> in <tt>element</tt>. If a block is given the return value of the block ends up in the error message.
full_name: RSS::NotWellFormedError::new
is_singleton: true
name: new
params: (line=nil, element=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: element
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: line
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NotWellFormedError
includes: []

instance_methods: []

name: NotWellFormedError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet::new
is_singleton: true
name: new
params: (*attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet#guess_type
is_singleton: false
name: guess_type
params: (filename)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet#href=
is_singleton: false
name: href=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: do_validate
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ATTRIBUTES
  value: "%w(href type title media charset alternate)"
- !ruby/object:RI::Constant 
  comment: 
  name: GUESS_TABLE
  value: "{       \"xsl\" => \"text/xsl\",       \"css\" => \"text/css\",     }"
full_name: RSS::XMLStyleSheet
includes: 
- !ruby/object:RI::IncludedModule 
  name: Utils
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: alternate=
- !ruby/object:RI::MethodSummary 
  name: guess_type
- !ruby/object:RI::MethodSummary 
  name: href=
- !ruby/object:RI::MethodSummary 
  name: setup_maker
- !ruby/object:RI::MethodSummary 
  name: to_s
name: XMLStyleSheet
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet#alternate=
is_singleton: false
name: alternate=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheet#setup_maker
is_singleton: false
name: setup_maker
params: (maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_attr_value
is_singleton: false
name: on_attr_value
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_stag_end_empty
is_singleton: false
name: on_stag_end_empty
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #on_charref"
full_name: RSS::XMLScanListener#on_charref_hex
is_singleton: false
name: on_charref_hex
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_stag_end
is_singleton: false
name: on_stag_end
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: on_attr_charref_hex
block_params: 
comment: 
full_name: RSS::XMLScanListener#on_attr_charref
is_singleton: false
name: on_attr_charref
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_stag
is_singleton: false
name: on_stag
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_xmldecl_end
is_singleton: false
name: on_xmldecl_end
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_etag
is_singleton: false
name: on_etag
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_xmldecl_version
is_singleton: false
name: on_xmldecl_version
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_attr_entityref
is_singleton: false
name: on_attr_entityref
params: (ref)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITIES
  value: "{       'lt' => '<',       'gt' => '>',       'amp' => '&',       'quot' => '\"',       'apos' => '\\''"
full_name: RSS::XMLScanListener
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLScan::Visitor
- !ruby/object:RI::IncludedModule 
  name: ListenerMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: entity
- !ruby/object:RI::MethodSummary 
  name: on_attr_charref
- !ruby/object:RI::MethodSummary 
  name: on_attr_charref_hex
- !ruby/object:RI::MethodSummary 
  name: on_attr_entityref
- !ruby/object:RI::MethodSummary 
  name: on_attr_value
- !ruby/object:RI::MethodSummary 
  name: on_attribute
- !ruby/object:RI::MethodSummary 
  name: on_charref
- !ruby/object:RI::MethodSummary 
  name: on_charref_hex
- !ruby/object:RI::MethodSummary 
  name: on_entityref
- !ruby/object:RI::MethodSummary 
  name: on_etag
- !ruby/object:RI::MethodSummary 
  name: on_stag
- !ruby/object:RI::MethodSummary 
  name: on_stag_end
- !ruby/object:RI::MethodSummary 
  name: on_stag_end_empty
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_encoding
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_end
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_standalone
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_version
name: XMLScanListener
superclass: BaseListener
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_attribute
is_singleton: false
name: on_attribute
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_xmldecl_encoding
is_singleton: false
name: on_xmldecl_encoding
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #on_attr_charref"
full_name: RSS::XMLScanListener#on_attr_charref_hex
is_singleton: false
name: on_attr_charref_hex
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_entityref
is_singleton: false
name: on_entityref
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#entity
is_singleton: false
name: entity
params: (ref)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: on_charref_hex
block_params: 
comment: 
full_name: RSS::XMLScanListener#on_charref
is_singleton: false
name: on_charref
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLScanListener#on_xmldecl_standalone
is_singleton: false
name: on_xmldecl_standalone
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::NotAvailableValueError::new
is_singleton: true
name: new
params: (tag, value, attribute=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attribute
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::NotAvailableValueError
includes: []

instance_methods: []

name: NotAvailableValueError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#[]
is_singleton: false
name: "[]"
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: children
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: prefix
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::XML::Element
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Element
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element::new
is_singleton: true
name: new
params: (name, prefix=nil, uri=nil, attributes={}, children=[])
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#each
is_singleton: false
name: each
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#<<
is_singleton: false
name: "<<"
params: (child)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XML::Element#[]=
is_singleton: false
name: "[]="
params: (name, value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::XML
includes: []

instance_methods: []

name: XML
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: prefix
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::OverlappedPrefixError
includes: []

instance_methods: []

name: OverlappedPrefixError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::OverlappedPrefixError::new
is_singleton: true
name: new
params: (prefix)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::UnknownConversionMethodError::new
is_singleton: true
name: new
params: (to, from)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: from
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: to
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::UnknownConversionMethodError
includes: []

instance_methods: []

name: UnknownConversionMethodError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#instruction
is_singleton: false
name: instruction
params: (name, content)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: do_validate
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: ignore_unknown_element
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: rss
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENT_PATTERN
  value: /\s*([^=]+)=(["'])([^\2]+?)\2/
- !ruby/object:RI::Constant 
  comment: 
  name: NAMESPLIT
  value: /^(?:([\w:][-\w\d.]*):)?([\w:][-\w\d.]*)/
full_name: RSS::ListenerMixin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _ns
- !ruby/object:RI::MethodSummary 
  name: check_ns
- !ruby/object:RI::MethodSummary 
  name: collect_attributes
- !ruby/object:RI::MethodSummary 
  name: initial_start_RDF
- !ruby/object:RI::MethodSummary 
  name: initial_start_entry
- !ruby/object:RI::MethodSummary 
  name: initial_start_feed
- !ruby/object:RI::MethodSummary 
  name: initial_start_rss
- !ruby/object:RI::MethodSummary 
  name: instruction
- !ruby/object:RI::MethodSummary 
  name: parse_pi_content
- !ruby/object:RI::MethodSummary 
  name: setup_next_element
- !ruby/object:RI::MethodSummary 
  name: split_name
- !ruby/object:RI::MethodSummary 
  name: start_else_element
- !ruby/object:RI::MethodSummary 
  name: start_get_text_element
- !ruby/object:RI::MethodSummary 
  name: start_have_something_element
- !ruby/object:RI::MethodSummary 
  name: tag_end
- !ruby/object:RI::MethodSummary 
  name: tag_start
- !ruby/object:RI::MethodSummary 
  name: text
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: ListenerMixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#check_ns
is_singleton: false
name: check_ns
params: (tag_name, prefix, ns, require_uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extract the first name=&quot;value&quot; pair from content. Works with single quotes according to the constant CONTENT_PATTERN. Return a Hash.
full_name: RSS::ListenerMixin#parse_pi_content
is_singleton: false
name: parse_pi_content
params: (content)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: set instance vars for version, encoding, standalone
full_name: RSS::ListenerMixin#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#setup_next_element
is_singleton: false
name: setup_next_element
params: (tag_name, klass, attributes)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#split_name
is_singleton: false
name: split_name
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#start_have_something_element
is_singleton: false
name: start_have_something_element
params: (tag_name, prefix, attrs, ns, klass)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#_ns
is_singleton: false
name: _ns
params: (ns, prefix)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#text
is_singleton: false
name: text
params: (data)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#initial_start_entry
is_singleton: false
name: initial_start_entry
params: (tag_name, prefix, attrs, ns)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#initial_start_rss
is_singleton: false
name: initial_start_rss
params: (tag_name, prefix, attrs, ns)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#start_else_element
is_singleton: false
name: start_else_element
params: (local, prefix, attrs, ns)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#initial_start_RDF
is_singleton: false
name: initial_start_RDF
params: (tag_name, prefix, attrs, ns)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#tag_start
is_singleton: false
name: tag_start
params: (name, attributes)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#start_get_text_element
is_singleton: false
name: start_get_text_element
params: (tag_name, prefix, ns, required_uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#initial_start_feed
is_singleton: false
name: initial_start_feed
params: (tag_name, prefix, attrs, ns)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#collect_attributes
is_singleton: false
name: collect_attributes
params: (tag_name, prefix, attrs, ns, klass)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ListenerMixin#tag_end
is_singleton: false
name: tag_end
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheetMixin::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLStyleSheetMixin#xml_stylesheet_pi
is_singleton: false
name: xml_stylesheet_pi
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: xml_stylesheets
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::XMLStyleSheetMixin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: xml_stylesheet_pi
name: XMLStyleSheetMixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#processingInstruction
is_singleton: false
name: processingInstruction
params: (target, content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#character
is_singleton: false
name: character
params: (data)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#endElement
is_singleton: false
name: endElement
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#startElement
is_singleton: false
name: startElement
params: (name, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#listener=
is_singleton: false
name: listener=
params: (listener)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::REXMLLikeXMLParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: "::XML::Encoding_ja"
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: character
- !ruby/object:RI::MethodSummary 
  name: endElement
- !ruby/object:RI::MethodSummary 
  name: listener=
- !ruby/object:RI::MethodSummary 
  name: processingInstruction
- !ruby/object:RI::MethodSummary 
  name: startElement
- !ruby/object:RI::MethodSummary 
  name: xmlDecl
name: REXMLLikeXMLParser
superclass: "::XML::Parser"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLLikeXMLParser#xmlDecl
is_singleton: false
name: xmlDecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Utils::YesCleanOther
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: YesCleanOther
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils::YesCleanOther#parse
is_singleton: false
name: parse
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #html_escape"
full_name: RSS::Utils#h
is_singleton: false
name: h
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <tt>value</tt> is an instance of class <tt>klass</tt>, return it, else create a new instance of <tt>klass</tt> with value <tt>value</tt>.
full_name: RSS::Utils#new_with_value_if_need
is_singleton: false
name: new_with_value_if_need
params: (klass, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils#element_initialize_arguments?
is_singleton: false
name: element_initialize_arguments?
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a name_with_underscores to CamelCase.
full_name: RSS::Utils#to_class_name
is_singleton: false
name: to_class_name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: h
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: escape '&amp;', '&quot;', '&lt;' and '&gt;' for use in HTML.
full_name: RSS::Utils#html_escape
is_singleton: false
name: html_escape
params: (s)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Utils::YesOther
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: YesOther
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils::YesOther#parse
is_singleton: false
name: parse
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils::InheritedReader#inherited_array_reader
is_singleton: false
name: inherited_array_reader
params: (constant_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Utils::InheritedReader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inherited_array_reader
- !ruby/object:RI::MethodSummary 
  name: inherited_hash_reader
- !ruby/object:RI::MethodSummary 
  name: inherited_reader
name: InheritedReader
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils::InheritedReader#inherited_hash_reader
is_singleton: false
name: inherited_hash_reader
params: (constant_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (result, klass.const_get(constant_name))
comment: 
full_name: RSS::Utils::InheritedReader#inherited_reader
is_singleton: false
name: inherited_reader
params: (constant_name) {|result, klass.const_get(constant_name)| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils#get_file_and_line_from_caller
is_singleton: false
name: get_file_and_line_from_caller
params: (i=0)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Utils
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: element_initialize_arguments?
- !ruby/object:RI::MethodSummary 
  name: get_file_and_line_from_caller
- !ruby/object:RI::MethodSummary 
  name: h
- !ruby/object:RI::MethodSummary 
  name: html_escape
- !ruby/object:RI::MethodSummary 
  name: new_with_value_if_need
- !ruby/object:RI::MethodSummary 
  name: to_class_name
name: Utils
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Utils::CSV#parse
is_singleton: false
name: parse
params: (value, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Utils::CSV
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: CSV
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::BaseDublinCoreModel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
name: BaseDublinCoreModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseDublinCoreModel#append_features
is_singleton: false
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::MissingTagError::new
is_singleton: true
name: new
params: (tag, parent)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tag
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::MissingTagError
includes: []

instance_methods: []

name: MissingTagError
superclass: InvalidRSSError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesModelUtils#def_element_class_accessor
is_singleton: false
name: def_element_class_accessor
params: (klass, name, full_name, klass_name, recommended_attribute_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesModelUtils#def_class_accessor
is_singleton: false
name: def_class_accessor
params: (klass, name, type, *args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::ITunesModelUtils
includes: 
- !ruby/object:RI::IncludedModule 
  name: Utils
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_class_accessor
- !ruby/object:RI::MethodSummary 
  name: def_element_class_accessor
- !ruby/object:RI::MethodSummary 
  name: def_elements_class_accessor
name: ITunesModelUtils
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesModelUtils#def_elements_class_accessor
is_singleton: false
name: def_elements_class_accessor
params: (klass, name, full_name, klass_name, plural_name, recommended_attribute_name=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::TrackBackUtils
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: trackback_validate
name: TrackBackUtils
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackUtils#trackback_validate
is_singleton: false
name: trackback_validate
params: (ignore_unknown_element, tags, uri)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::XMLParserNotFound
includes: []

instance_methods: []

name: XMLParserNotFound
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLParserNotFound::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::ImageModelUtils
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: validate_one_tag_name
name: ImageModelUtils
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ImageModelUtils#validate_one_tag_name
is_singleton: false
name: validate_one_tag_name
params: (ignore_unknown_element, name, tags)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseListener::raise_for_undefined_entity?
is_singleton: true
name: raise_for_undefined_entity?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseListener::getter
is_singleton: true
name: getter
params: (uri, tag_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: register uri against this name.
full_name: RSS::BaseListener::register_uri
is_singleton: true
name: register_uri
params: (uri, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: test if this uri is registered against this name
full_name: RSS::BaseListener::uri_registered?
is_singleton: true
name: uri_registered?
params: (uri, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the tag_names for setters associated with uri
full_name: RSS::BaseListener::available_tags
is_singleton: true
name: available_tags
params: (uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the setter for the uri, tag_name pair, or nil.
full_name: RSS::BaseListener::setter
is_singleton: true
name: setter
params: (uri, tag_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: retrieve class_name for the supplied uri and tag_name If it doesn't exist, capitalize the tag_name
full_name: RSS::BaseListener::class_name
is_singleton: true
name: class_name
params: (uri, tag_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: record class_name for the supplied uri and tag_name
full_name: RSS::BaseListener::install_class_name
is_singleton: true
name: install_class_name
params: (uri, tag_name, class_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: available_tags
- !ruby/object:RI::MethodSummary 
  name: class_name
- !ruby/object:RI::MethodSummary 
  name: def_get_text_element
- !ruby/object:RI::MethodSummary 
  name: getter
- !ruby/object:RI::MethodSummary 
  name: install_accessor_base
- !ruby/object:RI::MethodSummary 
  name: install_class_name
- !ruby/object:RI::MethodSummary 
  name: install_get_text_element
- !ruby/object:RI::MethodSummary 
  name: raise_for_undefined_entity?
- !ruby/object:RI::MethodSummary 
  name: register_uri
- !ruby/object:RI::MethodSummary 
  name: setter
- !ruby/object:RI::MethodSummary 
  name: uri_registered?
comment: 
constants: []

full_name: RSS::BaseListener
includes: []

instance_methods: []

name: BaseListener
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseListener::install_get_text_element
is_singleton: true
name: install_get_text_element
params: (uri, name, accessor_base)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseListener::def_get_text_element
is_singleton: true
name: def_get_text_element
params: (uri, element_name, file, line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: set the accessor for the uri, tag_name pair
full_name: RSS::BaseListener::install_accessor_base
is_singleton: true
name: install_accessor_base
params: (uri, tag_name, accessor_base)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLListener::raise_for_undefined_entity?
is_singleton: true
name: raise_for_undefined_entity?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: raise_for_undefined_entity?
comment: 
constants: []

full_name: RSS::REXMLListener
includes: 
- !ruby/object:RI::IncludedModule 
  name: REXML::StreamListener
- !ruby/object:RI::IncludedModule 
  name: ListenerMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: REXMLListener
superclass: BaseListener
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::REXMLListener#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss#image
is_singleton: false
name: image
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss#setup_maker_elements
is_singleton: false
name: setup_maker_elements
params: (maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel#setup_maker_elements
is_singleton: false
name: setup_maker_elements
params: (channel)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::SkipDays::Day::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::SkipDays::Day
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: []

name: Day
superclass: Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Rss::Channel::SkipDays
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: []

name: SkipDays
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel#not_need_to_call_setup_maker_variables
is_singleton: false
name: not_need_to_call_setup_maker_variables
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Image
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Image
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Image::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Image#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #setup_maker_element"
full_name: RSS::Rss::Channel::Item#_setup_maker_element
is_singleton: false
name: _setup_maker_element
params: (item)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Rss::Channel::Item
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
- !ruby/object:RI::IncludedModule 
  name: ContentModel
- !ruby/object:RI::IncludedModule 
  name: TrackBackModel20
- !ruby/object:RI::IncludedModule 
  name: ITunesItemModel
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
name: Item
superclass: Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Item::Guid
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: PermaLink?
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Guid
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Guid::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Guid#PermaLink?
is_singleton: false
name: PermaLink?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Guid#maker_target
is_singleton: false
name: maker_target
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Guid#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (guid)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Source::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Item::Source
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Source
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Source#maker_target
is_singleton: false
name: maker_target
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Source#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (source)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Category::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Item::Category
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Category
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Category#maker_target
is_singleton: false
name: maker_target
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Category#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (category)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item#maker_target
is_singleton: false
name: maker_target
params: (items)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Item::Enclosure
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Enclosure
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Enclosure::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Enclosure#maker_target
is_singleton: false
name: maker_target
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Item::Enclosure#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (enclosure)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::TextInput
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: TextInput
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::TextInput::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::TextInput#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Rss::Channel::SkipHours
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: []

name: SkipHours
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::SkipHours::Hour::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::SkipHours::Hour
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: []

name: Hour
superclass: Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Category
  value: Item::Category
full_name: RSS::Rss::Channel
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
- !ruby/object:RI::IncludedModule 
  name: ITunesChannelModel
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: not_need_to_call_setup_maker_variables
- !ruby/object:RI::MethodSummary 
  name: setup_maker_elements
name: Channel
superclass: Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss::Channel::Cloud
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: []

name: Cloud
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::Channel::Cloud::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss::new
is_singleton: true
name: new
params: (feed_version, version=nil, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss#_attrs
is_singleton: false
name: _attrs
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss#textinput
is_singleton: false
name: textinput
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: feed_version
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Rss
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
- !ruby/object:RI::IncludedModule 
  name: RootElementMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _attrs
- !ruby/object:RI::MethodSummary 
  name: image
- !ruby/object:RI::MethodSummary 
  name: items
- !ruby/object:RI::MethodSummary 
  name: setup_maker_elements
- !ruby/object:RI::MethodSummary 
  name: textinput
name: Rss
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Rss#items
is_singleton: false
name: items
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::PersonConstruct::Name
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: ContentModel
instance_methods: []

name: Name
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::PersonConstruct::Email
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: ContentModel
instance_methods: []

name: Email
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::PersonConstruct::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Atom::PersonConstruct
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: PersonConstruct
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::PersonConstruct#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::PersonConstruct::Uri
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: URIContentModel
instance_methods: []

name: Uri
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry::new
is_singleton: true
name: new
params: (version=nil, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Author
  value: Feed::Entry::Author
- !ruby/object:RI::Constant 
  comment: 
  name: Category
  value: Feed::Entry::Category
- !ruby/object:RI::Constant 
  comment: 
  name: Content
  value: Feed::Entry::Content
- !ruby/object:RI::Constant 
  comment: 
  name: Contributor
  value: Feed::Entry::Contributor
- !ruby/object:RI::Constant 
  comment: 
  name: Id
  value: Feed::Entry::Id
- !ruby/object:RI::Constant 
  comment: 
  name: Link
  value: Feed::Entry::Link
- !ruby/object:RI::Constant 
  comment: 
  name: Published
  value: Feed::Entry::Published
- !ruby/object:RI::Constant 
  comment: 
  name: Rights
  value: Feed::Entry::Rights
- !ruby/object:RI::Constant 
  comment: 
  name: Source
  value: Feed::Entry::Source
- !ruby/object:RI::Constant 
  comment: 
  name: Summary
  value: Feed::Entry::Summary
- !ruby/object:RI::Constant 
  comment: 
  name: Title
  value: Feed::Entry::Title
- !ruby/object:RI::Constant 
  comment: 
  name: Updated
  value: Feed::Entry::Updated
full_name: RSS::Atom::Entry
includes: 
- !ruby/object:RI::IncludedModule 
  name: RootElementMixin
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: DuplicateLinkChecker
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
- !ruby/object:RI::MethodSummary 
  name: have_author?
- !ruby/object:RI::MethodSummary 
  name: have_required_elements?
- !ruby/object:RI::MethodSummary 
  name: items
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker
name: Entry
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#have_author?
is_singleton: false
name: have_author?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#items
is_singleton: false
name: items
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#have_required_elements?
is_singleton: false
name: have_required_elements?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Entry#setup_maker
is_singleton: false
name: setup_maker
params: (maker)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::ContentModel#setup_maker_element_writer
is_singleton: false
name: setup_maker_element_writer
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::ContentModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Atom::ContentModel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element_writer
name: ContentModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::ContentModel::ClassMethods
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: content_type
name: ClassMethods
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::ContentModel::ClassMethods#content_type
is_singleton: false
name: content_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::ContentModel#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::ContentModel#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::URIContentModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Atom::URIContentModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: ContentModel
instance_methods: []

name: URIContentModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: []

full_name: RSS::Atom::DateConstruct
includes: 
- !ruby/object:RI::IncludedModule 
  name: ContentModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
name: DateConstruct
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::DateConstruct::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::DateConstruct#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct::xml_setter
is_singleton: true
name: xml_setter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct#have_xml_content?
is_singleton: false
name: have_xml_content?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: xhtml
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: xml_getter
- !ruby/object:RI::MethodSummary 
  name: xml_setter
comment: 
constants: []

full_name: RSS::Atom::TextConstruct
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
- !ruby/object:RI::MethodSummary 
  name: have_xml_content?
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
- !ruby/object:RI::MethodSummary 
  name: xhtml
name: TextConstruct
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct#xhtml
is_singleton: false
name: xhtml
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct::xml_getter
is_singleton: true
name: xml_getter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::TextConstruct#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::CommonModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: need_parent?
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NSPOOL
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[]"
full_name: RSS::Atom::CommonModel
includes: []

instance_methods: []

name: CommonModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::CommonModel::need_parent?
is_singleton: true
name: need_parent?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::CommonModel::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::Atom::Feed
includes: 
- !ruby/object:RI::IncludedModule 
  name: RootElementMixin
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: DuplicateLinkChecker
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
- !ruby/object:RI::MethodSummary 
  name: have_author?
- !ruby/object:RI::MethodSummary 
  name: have_required_elements?
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: setup_maker_elements
name: Feed
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: ContentModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: setup_maker_attributes
name: Generator
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Generator#setup_maker_attributes
is_singleton: false
name: setup_maker_attributes
params: (target)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Entry::Published
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: DateConstruct
instance_methods: []

name: Published
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Entry::Summary
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: TextConstruct
instance_methods: []

name: Summary
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Author
  value: Feed::Author
- !ruby/object:RI::Constant 
  comment: 
  name: Category
  value: Feed::Category
- !ruby/object:RI::Constant 
  comment: 
  name: Contributor
  value: Feed::Contributor
- !ruby/object:RI::Constant 
  comment: 
  name: Generator
  value: Feed::Generator
- !ruby/object:RI::Constant 
  comment: 
  name: Icon
  value: Feed::Icon
- !ruby/object:RI::Constant 
  comment: 
  name: Id
  value: Feed::Id
- !ruby/object:RI::Constant 
  comment: 
  name: Link
  value: Feed::Link
- !ruby/object:RI::Constant 
  comment: 
  name: Logo
  value: Feed::Logo
- !ruby/object:RI::Constant 
  comment: 
  name: Rights
  value: Feed::Rights
- !ruby/object:RI::Constant 
  comment: 
  name: Subtitle
  value: Feed::Subtitle
- !ruby/object:RI::Constant 
  comment: 
  name: Title
  value: Feed::Title
- !ruby/object:RI::Constant 
  comment: 
  name: Updated
  value: Feed::Updated
full_name: RSS::Atom::Feed::Entry::Source
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: have_author?
name: Source
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Source#have_author?
is_singleton: false
name: have_author?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Author
  value: Feed::Author
- !ruby/object:RI::Constant 
  comment: 
  name: Category
  value: Feed::Category
- !ruby/object:RI::Constant 
  comment: 
  name: Contributor
  value: Feed::Contributor
- !ruby/object:RI::Constant 
  comment: 
  name: Id
  value: Feed::Id
- !ruby/object:RI::Constant 
  comment: 
  name: Link
  value: Feed::Link
- !ruby/object:RI::Constant 
  comment: 
  name: Rights
  value: Feed::Rights
- !ruby/object:RI::Constant 
  comment: 
  name: Title
  value: Feed::Title
- !ruby/object:RI::Constant 
  comment: 
  name: Updated
  value: Feed::Updated
full_name: RSS::Atom::Feed::Entry
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: DuplicateLinkChecker
- !ruby/object:RI::IncludedModule 
  name: DublinCoreModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
- !ruby/object:RI::MethodSummary 
  name: have_author?
- !ruby/object:RI::MethodSummary 
  name: have_required_elements?
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Entry
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry#have_author?
is_singleton: false
name: have_author?
params: (check_parent=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry#maker_target
is_singleton: false
name: maker_target
params: (items)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry#have_required_elements?
is_singleton: false
name: have_required_elements?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: xml
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: xml_getter
- !ruby/object:RI::MethodSummary 
  name: xml_setter
comment: 
constants: []

full_name: RSS::Atom::Feed::Entry::Content
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atom_validate
- !ruby/object:RI::MethodSummary 
  name: empty_content?
- !ruby/object:RI::MethodSummary 
  name: have_xml_content?
- !ruby/object:RI::MethodSummary 
  name: inline_html?
- !ruby/object:RI::MethodSummary 
  name: inline_other?
- !ruby/object:RI::MethodSummary 
  name: inline_other_base64?
- !ruby/object:RI::MethodSummary 
  name: inline_other_text?
- !ruby/object:RI::MethodSummary 
  name: inline_other_xml?
- !ruby/object:RI::MethodSummary 
  name: inline_text?
- !ruby/object:RI::MethodSummary 
  name: inline_xhtml?
- !ruby/object:RI::MethodSummary 
  name: mime_split
- !ruby/object:RI::MethodSummary 
  name: need_base64_encode?
- !ruby/object:RI::MethodSummary 
  name: out_of_line?
- !ruby/object:RI::MethodSummary 
  name: xhtml
- !ruby/object:RI::MethodSummary 
  name: xml
name: Content
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content::xml_setter
is_singleton: true
name: xml_setter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#have_xml_content?
is_singleton: false
name: have_xml_content?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#need_base64_encode?
is_singleton: false
name: need_base64_encode?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_other_xml?
is_singleton: false
name: inline_other_xml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_other?
is_singleton: false
name: inline_other?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_xhtml?
is_singleton: false
name: inline_xhtml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#mime_split
is_singleton: false
name: mime_split
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#out_of_line?
is_singleton: false
name: out_of_line?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_other_text?
is_singleton: false
name: inline_other_text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#empty_content?
is_singleton: false
name: empty_content?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_other_base64?
is_singleton: false
name: inline_other_base64?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_text?
is_singleton: false
name: inline_text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#xhtml
is_singleton: false
name: xhtml
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#xml
is_singleton: false
name: xml
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#inline_html?
is_singleton: false
name: inline_html?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content::xml_getter
is_singleton: true
name: xml_getter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Entry::Content#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Id
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: URIContentModel
instance_methods: []

name: Id
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#setup_maker_elements
is_singleton: false
name: setup_maker_elements
params: (channel)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Link
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Link
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Link#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::new
is_singleton: true
name: new
params: (version=nil, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Rights
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: TextConstruct
instance_methods: []

name: Rights
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Title
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: TextConstruct
instance_methods: []

name: Title
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Logo#setup_maker_element_writer
is_singleton: false
name: setup_maker_element_writer
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Logo#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Logo
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: URIContentModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element_writer
name: Logo
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Icon
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: URIContentModel
instance_methods: []

name: Icon
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (channel)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#have_author?
is_singleton: false
name: have_author?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Category
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maker_target
name: Category
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed::Category#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Updated
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: DateConstruct
instance_methods: []

name: Updated
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Subtitle
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: TextConstruct
instance_methods: []

name: Subtitle
superclass: RSS::Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#maker_target
is_singleton: false
name: maker_target
params: (maker)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#atom_validate
is_singleton: false
name: atom_validate
params: (ignore_unknown_element, tags, uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::Feed#have_required_elements?
is_singleton: false
name: have_required_elements?
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Contributor
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: PersonConstruct
instance_methods: []

name: Contributor
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::Feed::Author
includes: 
- !ruby/object:RI::IncludedModule 
  name: CommonModel
- !ruby/object:RI::IncludedModule 
  name: PersonConstruct
instance_methods: []

name: Author
superclass: RSS::Element
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: URI
  value: "\"http://www.w3.org/2005/Atom\""
- !ruby/object:RI::Constant 
  comment: 
  name: XHTML_URI
  value: "\"http://www.w3.org/1999/xhtml\""
full_name: RSS::Atom
includes: []

instance_methods: []

name: Atom
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::Atom::DuplicateLinkChecker#validate_duplicate_links
is_singleton: false
name: validate_duplicate_links
params: (links)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::Atom::DuplicateLinkChecker
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: validate_duplicate_links
name: DuplicateLinkChecker
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::XMLParserListener#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::XMLParserListener
includes: 
- !ruby/object:RI::IncludedModule 
  name: ListenerMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: XMLParserListener
superclass: BaseListener
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENT_INFOS
  value: ITunesBaseModel::ELEMENT_INFOS +       [["duration", :element, "content"]]
full_name: RSS::ITunesItemModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: ITunesBaseModel
instance_methods: []

name: ITunesItemModel
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: hour
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: minute
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: second
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: construct
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::ITunesItemModel::ITunesDuration
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: content=
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: hour=
- !ruby/object:RI::MethodSummary 
  name: maker_target
- !ruby/object:RI::MethodSummary 
  name: minute=
- !ruby/object:RI::MethodSummary 
  name: second=
- !ruby/object:RI::MethodSummary 
  name: setup_maker_element
- !ruby/object:RI::MethodSummary 
  name: update_content
- !ruby/object:RI::MethodSummary 
  name: value=
name: ITunesDuration
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#update_content
is_singleton: false
name: update_content
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#minute=
is_singleton: false
name: minute=
params: (minute)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: value=
block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#content=
is_singleton: false
name: content=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#second=
is_singleton: false
name: second=
params: (second)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#setup_maker_element
is_singleton: false
name: setup_maker_element
params: (duration)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration::parse
is_singleton: true
name: parse
params: (duration, do_validate=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#maker_target
is_singleton: false
name: maker_target
params: (target)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration::construct
is_singleton: true
name: construct
params: (hour, minute, second)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ITunesItemModel::ITunesDuration#hour=
is_singleton: false
name: hour=
params: (hour)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #content="
full_name: RSS::ITunesItemModel::ITunesDuration#value=
is_singleton: false
name: value=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::SlashModel::append_features
is_singleton: true
name: append_features
params: (klass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENT_INFOS
  value: \     [      ["section"],      ["department"],      ["comments", :positive_integer],      ["hit_parade", :csv_integer],     ]
full_name: RSS::SlashModel
includes: []

instance_methods: []

name: SlashModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#convert_attr_reader
is_singleton: false
name: convert_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#boolean_writer
is_singleton: false
name: boolean_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#install_text_element
is_singleton: false
name: install_text_element
params: (tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#date_writer
is_singleton: false
name: date_writer
params: (name, type, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#csv_attr_reader
is_singleton: false
name: csv_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#text_type_writer
is_singleton: false
name: text_type_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#yes_clean_other_attr_reader
is_singleton: false
name: yes_clean_other_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#integer_writer
is_singleton: false
name: integer_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#install_date_element
is_singleton: false
name: install_date_element
params: (tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#positive_integer_writer
is_singleton: false
name: positive_integer_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#csv_writer
is_singleton: false
name: csv_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #install_have_child_element"
full_name: RSS::BaseModel#install_have_attribute_element
is_singleton: false
name: install_have_attribute_element
params: (tag_name, uri, occurs, name=nil, type=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::BaseModel
includes: 
- !ruby/object:RI::IncludedModule 
  name: Utils
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: boolean_writer
- !ruby/object:RI::MethodSummary 
  name: content_writer
- !ruby/object:RI::MethodSummary 
  name: convert_attr_reader
- !ruby/object:RI::MethodSummary 
  name: csv_attr_reader
- !ruby/object:RI::MethodSummary 
  name: csv_integer_writer
- !ruby/object:RI::MethodSummary 
  name: csv_writer
- !ruby/object:RI::MethodSummary 
  name: date_writer
- !ruby/object:RI::MethodSummary 
  name: def_children_accessor
- !ruby/object:RI::MethodSummary 
  name: inherit_convert_attr_reader
- !ruby/object:RI::MethodSummary 
  name: install_date_element
- !ruby/object:RI::MethodSummary 
  name: install_element
- !ruby/object:RI::MethodSummary 
  name: install_have_attribute_element
- !ruby/object:RI::MethodSummary 
  name: install_have_child_element
- !ruby/object:RI::MethodSummary 
  name: install_have_children_element
- !ruby/object:RI::MethodSummary 
  name: install_text_element
- !ruby/object:RI::MethodSummary 
  name: integer_writer
- !ruby/object:RI::MethodSummary 
  name: positive_integer_writer
- !ruby/object:RI::MethodSummary 
  name: text_type_writer
- !ruby/object:RI::MethodSummary 
  name: uri_convert_attr_reader
- !ruby/object:RI::MethodSummary 
  name: yes_clean_other_attr_reader
- !ruby/object:RI::MethodSummary 
  name: yes_clean_other_writer
- !ruby/object:RI::MethodSummary 
  name: yes_other_attr_reader
- !ruby/object:RI::MethodSummary 
  name: yes_other_writer
name: BaseModel
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#inherit_convert_attr_reader
is_singleton: false
name: inherit_convert_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#install_have_children_element
is_singleton: false
name: install_have_children_element
params: (tag_name, uri, occurs, name=nil, plural_name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#uri_convert_attr_reader
is_singleton: false
name: uri_convert_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#content_writer
is_singleton: false
name: content_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#yes_clean_other_writer
is_singleton: false
name: yes_clean_other_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#yes_other_writer
is_singleton: false
name: yes_other_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#csv_integer_writer
is_singleton: false
name: csv_integer_writer
params: (name, disp_name=name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: install_have_attribute_element
block_params: 
comment: 
full_name: RSS::BaseModel#install_have_child_element
is_singleton: false
name: install_have_child_element
params: (tag_name, uri, occurs, name=nil, type=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#install_element
is_singleton: false
name: install_element
params: (name, postfix="")
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#def_children_accessor
is_singleton: false
name: def_children_accessor
params: (accessor_name, plural_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::BaseModel#yes_other_attr_reader
is_singleton: false
name: yes_other_attr_reader
params: (*attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackAbout#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackAbout::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::TrackBackModel20::TrackBackAbout
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: TrackBackAbout
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackAbout::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackAbout::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackPing#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: required_prefix
- !ruby/object:RI::MethodSummary 
  name: required_uri
comment: 
constants: []

full_name: RSS::TrackBackModel20::TrackBackPing
includes: 
- !ruby/object:RI::IncludedModule 
  name: RSS09
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: TrackBackPing
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackPing::required_prefix
is_singleton: true
name: required_prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackPing::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::TrackBackModel20::TrackBackPing::required_uri
is_singleton: true
name: required_uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RSS::TrackBackModel20
includes: []

instance_methods: []

name: TrackBackModel20
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: from
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: string
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: to
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RSS::ConversionError
includes: []

instance_methods: []

name: ConversionError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RSS::ConversionError::new
is_singleton: true
name: new
params: (string, to, from)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: rmtree
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose secure"
- !ruby/struct:SM::Flow::P 
  body: Equivalent to
- !ruby/struct:SM::Flow::VERB 
  body: "  #rm_r(list, :force =&gt; true)\n"
- !ruby/struct:SM::Flow::P 
  body: "WARNING: This method causes local vulnerability. Read the documentation of #rm_r first."
full_name: FileUtils#rm_rf
is_singleton: false
name: rm_rf
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Changes owner and group on the named files (in <tt>list</tt>) to the user <tt>user</tt> and the group <tt>group</tt>. <tt>user</tt> and <tt>group</tt> may be an ID (Integer/String) or a name (String). If <tt>user</tt> or <tt>group</tt> is nil, this method does not change the attribute.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby'\n  FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), :verbose =&gt; true\n"
full_name: FileUtils#chown
is_singleton: false
name: chown
params: (user, group, list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the method <tt>mid</tt> have an option <tt>opt</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  p FileUtils.have_option?(:cp, :noop)     #=&gt; true\n  p FileUtils.have_option?(:rm, :force)    #=&gt; true\n  p FileUtils.have_option?(:rm, :perserve) #=&gt; false\n"
full_name: FileUtils::have_option?
is_singleton: true
name: have_option?
params: (mid, opt)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: copy
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: preserve noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Copies a file content <tt>src</tt> to <tt>dest</tt>. If <tt>dest</tt> is a directory, copies <tt>src</tt> to +dest/src+.
- !ruby/struct:SM::Flow::P 
  body: If <tt>src</tt> is a list of files, then <tt>dest</tt> must be a directory.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.cp 'eval.c', 'eval.c.org'\n  FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'\n  FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', :verbose =&gt; true\n  FileUtils.cp 'symlink', 'dest'   # copy content, &quot;dest&quot; is not a symlink\n"
full_name: FileUtils#cp
is_singleton: false
name: cp
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: identical?
- !ruby/object:RI::AliasName 
  name: cmp
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the contents of a file A and a file B are identical.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.compare_file('somefile', 'somefile')  #=&gt; true\n  FileUtils.compare_file('/bin/cp', '/bin/mv')    #=&gt; maybe false\n"
full_name: FileUtils#compare_file
is_singleton: false
name: compare_file
params: (a, b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Copies a file system entry <tt>src</tt> to <tt>dest</tt>. If <tt>src</tt> is a directory, this method copies its contents recursively. This method preserves file types, c.f. symlink, directory... (FIFO, device files and etc. are not supported yet)
- !ruby/struct:SM::Flow::P 
  body: Both of <tt>src</tt> and <tt>dest</tt> must be a path name. <tt>src</tt> must exist, <tt>dest</tt> must not exist.
- !ruby/struct:SM::Flow::P 
  body: If <tt>preserve</tt> is true, this method preserves owner, group, permissions and modified time.
- !ruby/struct:SM::Flow::P 
  body: If <tt>dereference_root</tt> is true, this method dereference tree root.
- !ruby/struct:SM::Flow::P 
  body: If <tt>remove_destination</tt> is true, this method removes each destination file before copy.
full_name: FileUtils#copy_entry
is_singleton: false
name: copy_entry
params: (src, dest, preserve = false, dereference_root = false, remove_destination = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #rm"
full_name: FileUtils#remove
is_singleton: false
name: remove
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: mode preserve noop verbose"
- !ruby/struct:SM::Flow::P 
  body: If <tt>src</tt> is not same as <tt>dest</tt>, copies it and changes the permission mode to <tt>mode</tt>. If <tt>dest</tt> is a directory, destination is <tt>dest</tt>/<tt>src</tt>. This method removes destination before copy.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.install 'ruby', '/usr/local/bin/ruby', :mode =&gt; 0755, :verbose =&gt; true\n  FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', :verbose =&gt; true\n"
full_name: FileUtils#install
is_singleton: false
name: install
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Changes permission bits on the named files (in <tt>list</tt>) to the bit pattern represented by <tt>mode</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.chmod 0755, 'somecommand'\n  FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb)\n  FileUtils.chmod 0755, '/usr/bin/ruby', :verbose =&gt; true\n"
full_name: FileUtils#chmod
is_singleton: false
name: chmod
params: (mode, list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #rm_f"
full_name: FileUtils#safe_unlink
is_singleton: false
name: safe_unlink
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: mkpath
- !ruby/object:RI::AliasName 
  name: makedirs
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: mode noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Creates a directory and all its parent directories. For example,
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.mkdir_p '/usr/local/lib/ruby'\n"
- !ruby/struct:SM::Flow::P 
  body: causes to make following directories, if it does not exist.
- !ruby/struct:SM::Flow::VERB 
  body: "    * /usr\n    * /usr/local\n    * /usr/local/lib\n    * /usr/local/lib/ruby\n"
- !ruby/struct:SM::Flow::P 
  body: You can pass several directories at a time in a list.
full_name: FileUtils#mkdir_p
is_singleton: false
name: mkdir_p
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: getwd
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: (none)"
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the current directory.
full_name: FileUtils#pwd
is_singleton: false
name: pwd
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This method removes a file system entry <tt>path</tt>. <tt>path</tt> shall be a regular file, a directory, or something. If <tt>path</tt> is a directory, remove it recursively. This method is required to avoid TOCTTOU (time-of-check-to-time-of-use) local security vulnerability of #rm_r. #rm_r causes security hole when:"
- !ruby/struct:SM::Flow::VERB 
  body: "  * Parent directory is world writable (including /tmp).\n  * Removing directory tree includes world writable directory.\n  * The system has symbolic link.\n"
- !ruby/struct:SM::Flow::P 
  body: To avoid this security hole, this method applies special preprocess. If <tt>path</tt> is a directory, this method chown(2) and chmod(2) all removing directories. This requires the current process is the owner of the removing whole directory tree, or is the super user (root).
- !ruby/struct:SM::Flow::P 
  body: "WARNING: You must ensure that <b>ALL</b> parent directories cannot be moved by other untrusted users. For example, parent directories should not be owned by untrusted users, and should not be world writable except when the sticky bit set."
- !ruby/struct:SM::Flow::P 
  body: "WARNING: Only the owner of the removing directory tree, or Unix super user (root) should invoke this method. Otherwise this method does not work."
- !ruby/struct:SM::Flow::P 
  body: "For details of this security vulnerability, see Perl's case:"
- !ruby/struct:SM::Flow::VERB 
  body: "  http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448\n  http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452\n"
- !ruby/struct:SM::Flow::P 
  body: For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].
full_name: FileUtils#remove_entry_secure
is_singleton: false
name: remove_entry_secure
params: (path, force = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #cp"
full_name: FileUtils#copy
is_singleton: false
name: copy
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: link
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: force noop verbose"
- !ruby/struct:SM::Flow::P 
  body: <b><tt>ln(old, new, options = {})</tt></b>
- !ruby/struct:SM::Flow::P 
  body: Creates a hard link <tt>new</tt> which points to <tt>old</tt>. If <tt>new</tt> already exists and it is a directory, creates a link +new/old+. If <tt>new</tt> already exists and it is not a directory, raises Errno::EEXIST. But if :force option is set, overwrite <tt>new</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.ln 'gcc', 'cc', :verbose =&gt; true\n  FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'\n"
- !ruby/struct:SM::Flow::P 
  body: <b><tt>ln(list, destdir, options = {})</tt></b>
- !ruby/struct:SM::Flow::P 
  body: Creates several hard links in a directory, with each one pointing to the item in <tt>list</tt>. If <tt>destdir</tt> is not a directory, raises Errno::ENOTDIR.
- !ruby/struct:SM::Flow::VERB 
  body: "  include FileUtils\n  cd '/sbin'\n  FileUtils.ln %w(cp mv mkdir), '/bin'   # Now /sbin/cp and /bin/cp are linked.\n"
full_name: FileUtils#ln
is_singleton: false
name: ln
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an Array of option names.
- !ruby/struct:SM::Flow::VERB 
  body: "  p FileUtils.options  #=&gt; [&quot;noop&quot;, &quot;force&quot;, &quot;verbose&quot;, &quot;preserve&quot;, &quot;mode&quot;]\n"
full_name: FileUtils::options
is_singleton: true
name: options
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the contents of a stream <tt>a</tt> and <tt>b</tt> are identical.
full_name: FileUtils#compare_stream
is_singleton: false
name: compare_stream
params: (a, b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an Array of method names which have any options.
- !ruby/struct:SM::Flow::VERB 
  body: "  p FileUtils.commands  #=&gt; [&quot;chmod&quot;, &quot;cp&quot;, &quot;cp_r&quot;, &quot;install&quot;, ...]\n"
full_name: FileUtils::commands
is_singleton: true
name: commands
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an Array of method names which have the option <tt>opt</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  p FileUtils.collect_method(:preserve) #=&gt; [&quot;cp&quot;, &quot;cp_r&quot;, &quot;copy&quot;, &quot;install&quot;]\n"
full_name: FileUtils::collect_method
is_singleton: true
name: collect_method
params: (opt)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method removes a file system entry <tt>path</tt>. <tt>path</tt> might be a regular file, a directory, or something. If <tt>path</tt> is a directory, remove it recursively.
- !ruby/struct:SM::Flow::P 
  body: "See also #remove_entry_secure."
full_name: FileUtils#remove_entry
is_singleton: false
name: remove_entry
params: (path, force = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an Array of option names of the method <tt>mid</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  p FileUtils.options(:rm)  #=&gt; [&quot;noop&quot;, &quot;verbose&quot;, &quot;force&quot;]\n"
full_name: FileUtils::options_of
is_singleton: true
name: options_of
params: (mid)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but it outputs messages before acting. This equates to passing the <tt>:verbose</tt> flag to methods in FileUtils.
constants: []

full_name: FileUtils::Verbose
includes: 
- !ruby/object:RI::IncludedModule 
  name: FileUtils
instance_methods: []

name: Verbose
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #mkdir_p"
full_name: FileUtils#mkpath
is_singleton: false
name: mkpath
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: (none)"
- !ruby/struct:SM::Flow::P 
  body: Returns true if <tt>newer</tt> is newer than all <tt>old_list</tt>. Non-existent files are older than any file.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or    #       system 'make hello.o'\n"
full_name: FileUtils#uptodate?
is_singleton: false
name: uptodate?
params: (new, old_list, options = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pwd"
full_name: FileUtils#getwd
is_singleton: false
name: getwd
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #cd"
full_name: FileUtils#chdir
is_singleton: false
name: chdir
params: (dir, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils#fu_have_symlink?
is_singleton: false
name: fu_have_symlink?
params: (
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: chdir
block_params: dir
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: verbose"
- !ruby/struct:SM::Flow::P 
  body: Changes the current directory to the directory <tt>dir</tt>.
- !ruby/struct:SM::Flow::P 
  body: If this method is called with block, resumes to the old working directory after the block execution finished.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.cd('/', :verbose =&gt; true)   # chdir and report it\n"
full_name: FileUtils#cd
is_singleton: false
name: cd
params: (dir, options = {}) {|dir| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose force"
- !ruby/struct:SM::Flow::P 
  body: Changes owner and group on the named files (in <tt>list</tt>) to the user <tt>user</tt> and the group <tt>group</tt> recursively. <tt>user</tt> and <tt>group</tt> may be an ID (Integer/String) or a name (String). If <tt>user</tt> or <tt>group</tt> is nil, this method does not change the attribute.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.chown_R 'www', 'www', '/var/www/htdocs'\n  FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', :verbose =&gt; true\n"
full_name: FileUtils#chown_R
is_singleton: false
name: chown_R
params: (user, group, list, options = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: collect_method
- !ruby/object:RI::MethodSummary 
  name: commands
- !ruby/object:RI::MethodSummary 
  name: have_option?
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: options_of
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: fileutils.rb
- !ruby/struct:SM::Flow::P 
  body: Copyright (c) 2000-2006 Minero Aoki
- !ruby/struct:SM::Flow::P 
  body: This program is free software. You can distribute/modify this program under the same terms of ruby.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: module FileUtils
- !ruby/struct:SM::Flow::P 
  body: Namespace for several file utility methods for copying, moving, removing, etc.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Module Functions
- !ruby/struct:SM::Flow::VERB 
  body: "  cd(dir, options)\n  cd(dir, options) {|dir| .... }\n  pwd()\n  mkdir(dir, options)\n  mkdir(list, options)\n  mkdir_p(dir, options)\n  mkdir_p(list, options)\n  rmdir(dir, options)\n  rmdir(list, options)\n  ln(old, new, options)\n  ln(list, destdir, options)\n  ln_s(old, new, options)\n  ln_s(list, destdir, options)\n  ln_sf(src, dest, options)\n  cp(src, dest, options)\n  cp(list, dir, options)\n  cp_r(src, dest, options)\n  cp_r(list, dir, options)\n  mv(src, dest, options)\n  mv(list, dir, options)\n  rm(list, options)\n  rm_r(list, options)\n  rm_rf(list, options)\n  install(src, dest, mode = &lt;src's&gt;, options)\n  chmod(mode, list, options)\n  chmod_R(mode, list, options)\n  chown(user, group, list, options)\n  chown_R(user, group, list, options)\n  touch(list, options)\n"
- !ruby/struct:SM::Flow::P 
  body: The <tt>options</tt> parameter is a hash of options, taken from the list <tt>:force</tt>, <tt>:noop</tt>, <tt>:preserve</tt>, and <tt>:verbose</tt>. <tt>:noop</tt> means that no changes are made. The other two are obvious. Each method documents the options that it honours.
- !ruby/struct:SM::Flow::P 
  body: All methods that have the concept of a &quot;source&quot; file or directory can take either one file or a list of files in that argument. See the method documentation for examples.
- !ruby/struct:SM::Flow::P 
  body: "There are some `low level' methods, which do not accept any option:"
- !ruby/struct:SM::Flow::VERB 
  body: "  copy_entry(src, dest, preserve = false, dereference = false)\n  copy_file(src, dest, preserve = false, dereference = true)\n  copy_stream(srcstream, deststream)\n  remove_entry(path, force = false)\n  remove_entry_secure(path, force = false)\n  remove_file(path, force = false)\n  compare_file(path_a, path_b)\n  compare_stream(stream_a, stream_b)\n  uptodate?(file, cmp_list)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: module FileUtils::Verbose
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but it outputs messages before acting. This equates to passing the <tt>:verbose</tt> flag to methods in FileUtils.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: module FileUtils::NoWrite
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but never changes files/directories. This equates to passing the <tt>:noop</tt> flag to methods in FileUtils.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: module FileUtils::DryRun
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but never changes files/directories. This equates to passing the <tt>:noop</tt> and <tt>:verbose</tt> flags to methods in FileUtils.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHODS
  value: singleton_methods() - %w( private_module_function       commands options have_option? options_of collect_method )
full_name: FileUtils
includes: 
- !ruby/object:RI::IncludedModule 
  name: StreamUtils_
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: cd
- !ruby/object:RI::MethodSummary 
  name: chdir
- !ruby/object:RI::MethodSummary 
  name: chmod
- !ruby/object:RI::MethodSummary 
  name: chmod_R
- !ruby/object:RI::MethodSummary 
  name: chown
- !ruby/object:RI::MethodSummary 
  name: chown_R
- !ruby/object:RI::MethodSummary 
  name: cmp
- !ruby/object:RI::MethodSummary 
  name: compare_file
- !ruby/object:RI::MethodSummary 
  name: compare_stream
- !ruby/object:RI::MethodSummary 
  name: copy
- !ruby/object:RI::MethodSummary 
  name: copy_entry
- !ruby/object:RI::MethodSummary 
  name: copy_file
- !ruby/object:RI::MethodSummary 
  name: copy_stream
- !ruby/object:RI::MethodSummary 
  name: cp
- !ruby/object:RI::MethodSummary 
  name: cp_r
- !ruby/object:RI::MethodSummary 
  name: fu_have_symlink?
- !ruby/object:RI::MethodSummary 
  name: fu_world_writable?
- !ruby/object:RI::MethodSummary 
  name: getwd
- !ruby/object:RI::MethodSummary 
  name: identical?
- !ruby/object:RI::MethodSummary 
  name: install
- !ruby/object:RI::MethodSummary 
  name: link
- !ruby/object:RI::MethodSummary 
  name: ln
- !ruby/object:RI::MethodSummary 
  name: ln_s
- !ruby/object:RI::MethodSummary 
  name: ln_sf
- !ruby/object:RI::MethodSummary 
  name: makedirs
- !ruby/object:RI::MethodSummary 
  name: mkdir
- !ruby/object:RI::MethodSummary 
  name: mkdir_p
- !ruby/object:RI::MethodSummary 
  name: mkpath
- !ruby/object:RI::MethodSummary 
  name: move
- !ruby/object:RI::MethodSummary 
  name: mv
- !ruby/object:RI::MethodSummary 
  name: pwd
- !ruby/object:RI::MethodSummary 
  name: remove
- !ruby/object:RI::MethodSummary 
  name: remove_dir
- !ruby/object:RI::MethodSummary 
  name: remove_entry
- !ruby/object:RI::MethodSummary 
  name: remove_entry_secure
- !ruby/object:RI::MethodSummary 
  name: remove_file
- !ruby/object:RI::MethodSummary 
  name: rm
- !ruby/object:RI::MethodSummary 
  name: rm_f
- !ruby/object:RI::MethodSummary 
  name: rm_r
- !ruby/object:RI::MethodSummary 
  name: rm_rf
- !ruby/object:RI::MethodSummary 
  name: rmdir
- !ruby/object:RI::MethodSummary 
  name: rmtree
- !ruby/object:RI::MethodSummary 
  name: safe_unlink
- !ruby/object:RI::MethodSummary 
  name: symlink
- !ruby/object:RI::MethodSummary 
  name: touch
- !ruby/object:RI::MethodSummary 
  name: uptodate?
name: FileUtils
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #compare_file"
full_name: FileUtils#cmp
is_singleton: false
name: cmp
params: (a, b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: remove
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: force noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Remove file(s) specified in <tt>list</tt>. This method cannot remove directories. All StandardErrors are ignored when the :force option is set.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.rm %w( junk.txt dust.txt )\n  FileUtils.rm Dir.glob('*.so')\n  FileUtils.rm 'NotExistFile', :force =&gt; true   # never raises exception\n"
full_name: FileUtils#rm
is_singleton: false
name: rm
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: force noop verbose secure"
- !ruby/struct:SM::Flow::P 
  body: remove files <tt>list</tt>[0] <tt>list</tt>[1]... If <tt>list</tt>[n] is a directory, removes its all contents recursively. This method ignores StandardError when :force option is set.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.rm_r Dir.glob('/tmp/*')\n  FileUtils.rm_r '/', :force =&gt; true          #  :-)\n"
- !ruby/struct:SM::Flow::P 
  body: "WARNING: This method causes local vulnerability if one of parent directories or removing directory tree are world writable (including /tmp, whose permission is 1777), and the current process has strong privilege such as Unix super user (root), and the system has symbolic link. For secure removing, read the documentation of #remove_entry_secure carefully, and set :secure option to true. Default is :secure=&gt;false."
- !ruby/struct:SM::Flow::P 
  body: "NOTE: This method calls #remove_entry_secure if :secure option is set. See also #remove_entry_secure."
full_name: FileUtils#rm_r
is_singleton: false
name: rm_r
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a file <tt>path</tt>. This method ignores StandardError if <tt>force</tt> is true.
full_name: FileUtils#remove_file
is_singleton: false
name: remove_file
params: (path, force = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: symlink
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: force noop verbose"
- !ruby/struct:SM::Flow::P 
  body: <b><tt>ln_s(old, new, options = {})</tt></b>
- !ruby/struct:SM::Flow::P 
  body: Creates a symbolic link <tt>new</tt> which points to <tt>old</tt>. If <tt>new</tt> already exists and it is a directory, creates a symbolic link +new/old+. If <tt>new</tt> already exists and it is not a directory, raises Errno::EEXIST. But if :force option is set, overwrite <tt>new</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'\n  FileUtils.ln_s 'verylongsourcefilename.c', 'c', :force =&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: <b><tt>ln_s(list, destdir, options = {})</tt></b>
- !ruby/struct:SM::Flow::P 
  body: Creates several symbolic links in a directory, with each one pointing to the item in <tt>list</tt>. If <tt>destdir</tt> is not a directory, raises Errno::ENOTDIR.
- !ruby/struct:SM::Flow::P 
  body: If <tt>destdir</tt> is not a directory, raises Errno::ENOTDIR.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.ln_s Dir.glob('bin/*.rb'), '/home/aamine/bin'\n"
full_name: FileUtils#ln_s
is_singleton: false
name: ln_s
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: FileUtils::Entry_
includes: []

instance_methods: []

name: Entry_
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #ln"
full_name: FileUtils#link
is_singleton: false
name: link
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #mkdir_p"
full_name: FileUtils#makedirs
is_singleton: false
name: makedirs
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #rm_rf"
full_name: FileUtils#rmtree
is_singleton: false
name: rmtree
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils#fu_world_writable?
is_singleton: false
name: fu_world_writable?
params: (st)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but never changes files/directories. This equates to passing the <tt>:noop</tt> flag to methods in FileUtils.
constants: []

full_name: FileUtils::NoWrite
includes: 
- !ruby/object:RI::IncludedModule 
  name: FileUtils
instance_methods: []

name: NoWrite
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: preserve noop verbose dereference_root remove_destination"
- !ruby/struct:SM::Flow::P 
  body: Copies <tt>src</tt> to <tt>dest</tt>. If <tt>src</tt> is a directory, this method copies all its contents recursively. If <tt>dest</tt> is a directory, copies <tt>src</tt> to +dest/src+.
- !ruby/struct:SM::Flow::P 
  body: <tt>src</tt> can be a list of files.
- !ruby/struct:SM::Flow::VERB 
  body: "  # Installing ruby library &quot;mylib&quot; under the site_ruby\n  FileUtils.rm_r site_ruby + '/mylib', :force\n  FileUtils.cp_r 'lib/', site_ruby + '/mylib'\n\n  # Examples of copying several files to target directory.\n  FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail'\n  FileUtils.cp_r Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop =&gt; true, :verbose =&gt; true\n\n  # If you want to copy all contents of a directory instead of the\n  # directory itself, c.f. src/x -&gt; dest/x, src/y -&gt; dest/y,\n  # use following code.\n  FileUtils.cp_r 'src/.', 'dest'     # cp_r('src', 'dest') makes src/dest,\n                                     # but this doesn't.\n"
full_name: FileUtils#cp_r
is_singleton: false
name: cp_r
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #mv"
full_name: FileUtils#move
is_singleton: false
name: move
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Updates modification time (mtime) and access time (atime) of file(s) in <tt>list</tt>. Files are created if they don't exist.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.touch 'timestamp'\n  FileUtils.touch Dir.glob('*.c');  system 'make'\n"
full_name: FileUtils#touch
is_singleton: false
name: touch
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Copies stream <tt>src</tt> to <tt>dest</tt>. <tt>src</tt> must respond to #read(n) and <tt>dest</tt> must respond to #write(str)."
full_name: FileUtils#copy_stream
is_singleton: false
name: copy_stream
params: (src, dest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: move
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: force noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Moves file(s) <tt>src</tt> to <tt>dest</tt>. If <tt>file</tt> and <tt>dest</tt> exist on the different disk partition, the file is copied instead.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.mv 'badname.rb', 'goodname.rb'\n  FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', :force =&gt; true  # no error\n\n  FileUtils.mv %w(junk.txt dust.txt), '/home/aamine/.trash/'\n  FileUtils.mv Dir.glob('test*.rb'), 'test', :noop =&gt; true, :verbose =&gt; true\n"
full_name: FileUtils#mv
is_singleton: false
name: mv
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Same as
- !ruby/struct:SM::Flow::VERB 
  body: "  #ln_s(src, dest, :force)\n"
full_name: FileUtils#ln_sf
is_singleton: false
name: ln_sf
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop, verbose"
- !ruby/struct:SM::Flow::P 
  body: Removes one or more directories.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.rmdir 'somedir'\n  FileUtils.rmdir %w(somedir anydir otherdir)\n  # Does not really remove directory; outputs message.\n  FileUtils.rmdir 'somedir', :verbose =&gt; true, :noop =&gt; true\n"
full_name: FileUtils#rmdir
is_singleton: false
name: rmdir
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils::StreamUtils_#fu_windows?
is_singleton: false
name: fu_windows?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils::StreamUtils_#fu_stream_blksize
is_singleton: false
name: fu_stream_blksize
params: (*streams)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils::StreamUtils_#fu_default_blksize
is_singleton: false
name: fu_default_blksize
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: FileUtils::StreamUtils_#fu_blksize
is_singleton: false
name: fu_blksize
params: (st)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: FileUtils::StreamUtils_
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: fu_blksize
- !ruby/object:RI::MethodSummary 
  name: fu_default_blksize
- !ruby/object:RI::MethodSummary 
  name: fu_stream_blksize
- !ruby/object:RI::MethodSummary 
  name: fu_windows?
name: StreamUtils_
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: mode noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Creates one or more directories.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.mkdir 'test'\n  FileUtils.mkdir %w( tmp data )\n  FileUtils.mkdir 'notexist', :noop =&gt; true  # Does not really create.\n  FileUtils.mkdir 'tmp', :mode =&gt; 0700\n"
full_name: FileUtils#mkdir
is_singleton: false
name: mkdir
params: (list, options = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This module has all methods of FileUtils module, but never changes files/directories, with printing message before acting. This equates to passing the <tt>:noop</tt> and <tt>:verbose</tt> flag to methods in FileUtils.
constants: []

full_name: FileUtils::DryRun
includes: 
- !ruby/object:RI::IncludedModule 
  name: FileUtils
instance_methods: []

name: DryRun
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #ln_s"
full_name: FileUtils#symlink
is_singleton: false
name: symlink
params: (src, dest, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Copies file contents of <tt>src</tt> to <tt>dest</tt>. Both of <tt>src</tt> and <tt>dest</tt> must be a path name.
full_name: FileUtils#copy_file
is_singleton: false
name: copy_file
params: (src, dest, preserve = false, dereference = true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a directory <tt>dir</tt> and its contents recursively. This method ignores StandardError if <tt>force</tt> is true.
full_name: FileUtils#remove_dir
is_singleton: false
name: remove_dir
params: (path, force = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose force"
- !ruby/struct:SM::Flow::P 
  body: Changes permission bits on the named files (in <tt>list</tt>) to the bit pattern represented by <tt>mode</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  FileUtils.chmod_R 0700, &quot;/tmp/app.#{$$}&quot;\n"
full_name: FileUtils#chmod_R
is_singleton: false
name: chmod_R
params: (mode, list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #compare_file"
full_name: FileUtils#identical?
is_singleton: false
name: identical?
params: (a, b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: safe_unlink
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Options: noop verbose"
- !ruby/struct:SM::Flow::P 
  body: Equivalent to
- !ruby/struct:SM::Flow::VERB 
  body: "  #rm(list, :force =&gt; true)\n"
full_name: FileUtils#rm_f
is_singleton: false
name: rm_f
params: (list, options = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception2MessageMapper#bind
is_singleton: false
name: bind
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #Raise"
full_name: Exception2MessageMapper#Fail
is_singleton: false
name: Fail
params: (err = nil, *rest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: Fail
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fail(err, *rest)
- !ruby/struct:SM::Flow::VERB 
  body: "    err:        exception\n    rest:       message arguments\n"
full_name: Exception2MessageMapper#Raise
is_singleton: false
name: Raise
params: (err = nil, *rest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def_e2message(c, m)
- !ruby/struct:SM::Flow::VERB 
  body: "        c:  exception\n        m:  message_form\n    define exception c with message m.\n"
full_name: Exception2MessageMapper#def_e2message
is_singleton: false
name: def_e2message
params: (c, m)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception2MessageMapper#fail
is_singleton: false
name: fail
params: (err = nil, *rest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: E2MM.def_exception(k, e, m)
- !ruby/struct:SM::Flow::VERB 
  body: "        k:  class to define exception under.\n        e:  exception\n        m:  message_form\n    define exception c with message m.\n"
full_name: Exception2MessageMapper::E2MM::def_e2message
is_singleton: true
name: def_e2message
params: (k, c, m)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception2MessageMapper::E2MM::extend_object
is_singleton: true
name: extend_object
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: backward compatibility
full_name: Exception2MessageMapper::E2MM::extend_to
is_singleton: true
name: extend_to
params: (b)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: Raise
- !ruby/object:RI::MethodSummary 
  name: def_e2message
- !ruby/object:RI::MethodSummary 
  name: def_exception
- !ruby/object:RI::MethodSummary 
  name: e2mm_message
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: extend_to
comment: 
constants: []

full_name: Exception2MessageMapper::E2MM
includes: []

instance_methods: []

name: E2MM
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fail(klass, err, *rest)
- !ruby/struct:SM::Flow::VERB 
  body: "    klass:  class to define exception under.\n    err:        exception\n    rest:       message arguments\n"
full_name: Exception2MessageMapper::E2MM::Raise
is_singleton: true
name: Raise
params: (klass = E2MM, err = nil, *rest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Exception2MessageMapper::E2MM::e2mm_message
is_singleton: true
name: e2mm_message
params: (klass, exp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: E2MM.def_exception(k, n, m, s)
- !ruby/struct:SM::Flow::VERB 
  body: "        k:  class to define exception under.\n        n:  exception_name\n        m:  message_form\n        s:      superclass(default: StandardError)\n    define exception named ``c'' with message m.\n"
full_name: Exception2MessageMapper::E2MM::def_exception
is_singleton: true
name: def_exception
params: (k, n, m, s = StandardError)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: E2MM
  value: Exception2MessageMapper
full_name: Exception2MessageMapper
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: Fail
- !ruby/object:RI::MethodSummary 
  name: Raise
- !ruby/object:RI::MethodSummary 
  name: bind
- !ruby/object:RI::MethodSummary 
  name: def_e2message
- !ruby/object:RI::MethodSummary 
  name: def_exception
- !ruby/object:RI::MethodSummary 
  name: fail
name: Exception2MessageMapper
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def_exception(n, m, s)
- !ruby/struct:SM::Flow::VERB 
  body: "        n:  exception_name\n        m:  message_form\n        s:      superclass(default: StandardError)\n    define exception named ``c'' with message m.\n"
full_name: Exception2MessageMapper#def_exception
is_singleton: false
name: def_exception
params: (n, m, s = StandardError)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: path
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the associated block with the name of every file and directory listed as arguments, then recursively on their subdirectories, and so on.
- !ruby/struct:SM::Flow::P 
  body: See the <tt>Find</tt> module documentation for an example.
full_name: Find#find
is_singleton: false
name: find
params: (*paths) {|path| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Find</tt> module supports the top-down traversal of a set of file paths.
- !ruby/struct:SM::Flow::P 
  body: "For example, to total the size of all files under your home directory, ignoring anything in a &quot;dot&quot; directory (e.g. $HOME/.ssh):"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'find'\n\n  total_size = 0\n\n  Find.find(ENV[&quot;HOME&quot;]) do |path|\n    if FileTest.directory?(path)\n      if File.basename(path)[0] == ?.\n        Find.prune       # Don't look any further into this directory.\n      else\n        next\n      end\n    else\n      total_size += FileTest.size(path)\n    end\n  end\n"
constants: []

full_name: Find
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find
- !ruby/object:RI::MethodSummary 
  name: prune
name: Find
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Skips the current file or directory, restarting the loop with the next entry. If the current file is a directory, that directory will not be recursively entered. Meaningful only within the block associated with Find::find.
- !ruby/struct:SM::Flow::P 
  body: See the <tt>Find</tt> module documentation for an example.
full_name: Find#prune
is_singleton: false
name: prune
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Attribute::as_string
is_singleton: true
name: as_string
params: (bitmap)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: name.to_s if (bitmap & bit) != 0
comment: 
full_name: SM::Attribute::each_name_of
is_singleton: true
name: each_name_of
params: (bitmap) {|name.to_s if (bitmap & bit) != 0| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: as_string
- !ruby/object:RI::MethodSummary 
  name: bitmap_for
- !ruby/object:RI::MethodSummary 
  name: each_name_of
comment: 
- !ruby/struct:SM::Flow::P 
  body: We manage a set of attributes. Each attribute has a symbol name and a bit value
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SPECIAL
  value: "1"
full_name: SM::Attribute
includes: []

instance_methods: []

name: Attribute
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Attribute::bitmap_for
is_singleton: true
name: bitmap_for
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return true if this line is blank
full_name: SM::Line#isBlank?
is_singleton: false
name: isBlank?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: stamp a line with a type, a level, a prefix, and a flag
full_name: SM::Line#stamp
is_singleton: false
name: stamp
params: (type, level, param="", flag=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: true if this line has been deleted from the list of lines
  name: deleted
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A flag. For list lines, this is the type of the list
  name: flag
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the number of leading spaces
  name: leading_spaces
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The indentation nesting level
  name: level
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A prefix or parameter. For LIST lines, this is the text that introduced the list item (the label)
  name: param
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The contents
  name: text
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: line type
  name: type
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: INFINITY
  value: "9999"
- !ruby/object:RI::Constant 
  comment: 
  name: BLANK
  value: ":BLANK"
- !ruby/object:RI::Constant 
  comment: 
  name: HEADING
  value: ":HEADING"
- !ruby/object:RI::Constant 
  comment: 
  name: LIST
  value: ":LIST"
- !ruby/object:RI::Constant 
  comment: 
  name: RULE
  value: ":RULE"
- !ruby/object:RI::Constant 
  comment: 
  name: PARAGRAPH
  value: ":PARAGRAPH"
- !ruby/object:RI::Constant 
  comment: 
  name: VERBATIM
  value: ":VERBATIM"
full_name: SM::Line
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: isBlank?
- !ruby/object:RI::MethodSummary 
  name: stamp
- !ruby/object:RI::MethodSummary 
  name: strip_leading
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Line
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Strip off the leading margin
full_name: SM::Line#strip_leading
is_singleton: false
name: strip_leading
params: (size)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Line::new
is_singleton: true
name: new
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Line#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ListEnd::new
is_singleton: true
name: new
params: (level, type)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: SM::ListEnd
includes: []

instance_methods: []

name: ListEnd
superclass: ListBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#off_tags
is_singleton: false
name: off_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given an HTML tag, decorate it with class information and the like if required. This is a no-op in the base class, but is overridden in HTML output classes that implement style sheets
full_name: SM::ToFlow#annotate
is_singleton: false
name: annotate
params: (tag)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_list_start
is_singleton: false
name: accept_list_start
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_list_end
is_singleton: false
name: accept_list_end
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_verbatim
is_singleton: false
name: accept_verbatim
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#convert_flow
is_singleton: false
name: convert_flow
params: (flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Here's the client side of the visitor pattern
full_name: SM::ToFlow#start_accepting
is_singleton: false
name: start_accepting
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: LIST_TYPE_TO_HTML
  value: "{       SM::ListBase::BULLET     =>  [ \"<ul>\", \"</ul>\" ],       SM::ListBase::NUMBER     =>  [ \"<ol>\", \"</ol>\" ],       SM::ListBase::UPPERALPHA =>  [ \"<ol>\", \"</ol>\" ],       SM::ListBase::LOWERALPHA =>  [ \"<ol>\", \"</ol>\" ],       SM::ListBase::LABELED    =>  [ \"<dl>\", \"</dl>\" ],       SM::ListBase::NOTE       =>  [ \"<table>\", \"</table>\" ],     }"
- !ruby/object:RI::Constant 
  comment: 
  name: InlineTag
  value: Struct.new(:bit, :on, :off)
full_name: SM::ToFlow
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept_blank_line
- !ruby/object:RI::MethodSummary 
  name: accept_heading
- !ruby/object:RI::MethodSummary 
  name: accept_list_end
- !ruby/object:RI::MethodSummary 
  name: accept_list_item
- !ruby/object:RI::MethodSummary 
  name: accept_list_start
- !ruby/object:RI::MethodSummary 
  name: accept_paragraph
- !ruby/object:RI::MethodSummary 
  name: accept_rule
- !ruby/object:RI::MethodSummary 
  name: accept_verbatim
- !ruby/object:RI::MethodSummary 
  name: add_tag
- !ruby/object:RI::MethodSummary 
  name: annotate
- !ruby/object:RI::MethodSummary 
  name: convert_flow
- !ruby/object:RI::MethodSummary 
  name: convert_special
- !ruby/object:RI::MethodSummary 
  name: convert_string
- !ruby/object:RI::MethodSummary 
  name: end_accepting
- !ruby/object:RI::MethodSummary 
  name: init_tags
- !ruby/object:RI::MethodSummary 
  name: off_tags
- !ruby/object:RI::MethodSummary 
  name: on_tags
- !ruby/object:RI::MethodSummary 
  name: start_accepting
name: ToFlow
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_paragraph
is_singleton: false
name: accept_paragraph
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a new set of HTML tags for an attribute. We allow separate start and end tags for flexibility
full_name: SM::ToFlow#add_tag
is_singleton: false
name: add_tag
params: (name, start, stop)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#convert_special
is_singleton: false
name: convert_special
params: (special)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#end_accepting
is_singleton: false
name: end_accepting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_list_item
is_singleton: false
name: accept_list_item
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up the standard mapping of attributes to HTML tags
full_name: SM::ToFlow#init_tags
is_singleton: false
name: init_tags
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: SM::ToFlow#on_tags
is_singleton: false
name: on_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_rule
is_singleton: false
name: accept_rule
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: some of these patterns are taken from SmartyPants...
full_name: SM::ToFlow#convert_string
is_singleton: false
name: convert_string
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_blank_line
is_singleton: false
name: accept_blank_line
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToFlow#accept_heading
is_singleton: false
name: accept_heading
params: (am, fragment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: P
  value: Struct.new(:body)
- !ruby/object:RI::Constant 
  comment: 
  name: VERB
  value: Struct.new(:body)
- !ruby/object:RI::Constant 
  comment: 
  name: RULE
  value: Struct.new(:width)
- !ruby/object:RI::Constant 
  comment: 
  name: LI
  value: Struct.new(:label, :body)
- !ruby/object:RI::Constant 
  comment: 
  name: H
  value: Struct.new(:level, :text)
full_name: SM::Flow
includes: []

instance_methods: []

name: Flow
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: contents
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: SM::Flow::LIST
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
name: LIST
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Flow::LIST::new
is_singleton: true
name: new
params: (type)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Flow::LIST#<<
is_singleton: false
name: "<<"
params: (stuff)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: SM::ListItem
includes: []

instance_methods: []

name: ListItem
superclass: ListBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#convert_heading
is_singleton: false
name: convert_heading
params: (level, flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#off_tags
is_singleton: false
name: off_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: l
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert SimpleMarkup to basic LaTeX report format
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: BS
  value: "\"\\020\""
- !ruby/object:RI::Constant 
  comment: 
  name: CB
  value: "\"\\022\""
- !ruby/object:RI::Constant 
  comment: 
  name: DL
  value: "\"\\023\""
- !ruby/object:RI::Constant 
  comment: 
  name: BACKSLASH
  value: "\"#{BS}symbol#{OB}92#{CB}\""
- !ruby/object:RI::Constant 
  comment: 
  name: HAT
  value: "\"#{BS}symbol#{OB}94#{CB}\""
- !ruby/object:RI::Constant 
  comment: 
  name: BACKQUOTE
  value: "\"#{BS}symbol#{OB}0#{CB}\""
- !ruby/object:RI::Constant 
  comment: 
  name: TILDE
  value: "\"#{DL}#{BS}sim#{DL}\""
- !ruby/object:RI::Constant 
  comment: 
  name: LESSTHAN
  value: "\"#{DL}<#{DL}\""
- !ruby/object:RI::Constant 
  comment: 
  name: GREATERTHAN
  value: "\"#{DL}>#{DL}\""
- !ruby/object:RI::Constant 
  comment: 
  name: LIST_TYPE_TO_LATEX
  value: "{       ListBase::BULLET =>  [ l(\"\\\\begin{itemize}\"), l(\"\\\\end{itemize}\") ],       ListBase::NUMBER =>  [ l(\"\\\\begin{enumerate}\"), l(\"\\\\end{enumerate}\"), \"\\\\arabic\" ],       ListBase::UPPERALPHA =>  [ l(\"\\\\begin{enumerate}\"), l(\"\\\\end{enumerate}\"), \"\\\\Alph\" ],       ListBase::LOWERALPHA =>  [ l(\"\\\\begin{enumerate}\"), l(\"\\\\end{enumerate}\"), \"\\\\alph\" ],       ListBase::LABELED => [ l(\"\\\\begin{description}\"), l(\"\\\\end{description}\") ],       ListBase::NOTE    => [         l(\"\\\\begin{tabularx}{\\\\linewidth}{@{} l X @{}}\"),          l(\"\\\\end{tabularx}\") ],     }"
- !ruby/object:RI::Constant 
  comment: 
  name: InlineTag
  value: Struct.new(:bit, :on, :off)
full_name: SM::ToLaTeX
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept_blank_line
- !ruby/object:RI::MethodSummary 
  name: accept_heading
- !ruby/object:RI::MethodSummary 
  name: accept_list_end
- !ruby/object:RI::MethodSummary 
  name: accept_list_item
- !ruby/object:RI::MethodSummary 
  name: accept_list_start
- !ruby/object:RI::MethodSummary 
  name: accept_paragraph
- !ruby/object:RI::MethodSummary 
  name: accept_rule
- !ruby/object:RI::MethodSummary 
  name: accept_verbatim
- !ruby/object:RI::MethodSummary 
  name: add_tag
- !ruby/object:RI::MethodSummary 
  name: convert_flow
- !ruby/object:RI::MethodSummary 
  name: convert_heading
- !ruby/object:RI::MethodSummary 
  name: convert_special
- !ruby/object:RI::MethodSummary 
  name: convert_string
- !ruby/object:RI::MethodSummary 
  name: end_accepting
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: init_tags
- !ruby/object:RI::MethodSummary 
  name: l
- !ruby/object:RI::MethodSummary 
  name: list_end_for
- !ruby/object:RI::MethodSummary 
  name: list_item_start
- !ruby/object:RI::MethodSummary 
  name: list_name
- !ruby/object:RI::MethodSummary 
  name: off_tags
- !ruby/object:RI::MethodSummary 
  name: on_tags
- !ruby/object:RI::MethodSummary 
  name: start_accepting
- !ruby/object:RI::MethodSummary 
  name: wrap
name: ToLaTeX
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#list_end_for
is_singleton: false
name: list_end_for
params: (fragment_type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escape a LaTeX string
full_name: SM::ToLaTeX#escape
is_singleton: false
name: escape
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_list_start
is_singleton: false
name: accept_list_start
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_list_end
is_singleton: false
name: accept_list_end
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_verbatim
is_singleton: false
name: accept_verbatim
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#convert_flow
is_singleton: false
name: convert_flow
params: (flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#list_item_start
is_singleton: false
name: list_item_start
params: (am, fragment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#l
is_singleton: false
name: l
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Here's the client side of the visitor pattern
full_name: SM::ToLaTeX#start_accepting
is_singleton: false
name: start_accepting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_paragraph
is_singleton: false
name: accept_paragraph
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is a higher speed (if messier) version of wrap
full_name: SM::ToLaTeX#wrap
is_singleton: false
name: wrap
params: (txt, line_len = 76)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a new set of LaTeX tags for an attribute. We allow separate start and end tags for flexibility
full_name: SM::ToLaTeX#add_tag
is_singleton: false
name: add_tag
params: (name, start, stop)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#convert_special
is_singleton: false
name: convert_special
params: (special)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#list_name
is_singleton: false
name: list_name
params: (list_type, is_open_tag)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#end_accepting
is_singleton: false
name: end_accepting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_list_item
is_singleton: false
name: accept_list_item
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up the standard mapping of attributes to LaTeX
full_name: SM::ToLaTeX#init_tags
is_singleton: false
name: init_tags
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: SM::ToLaTeX#on_tags
is_singleton: false
name: on_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_rule
is_singleton: false
name: accept_rule
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: some of these patterns are taken from SmartyPants...
full_name: SM::ToLaTeX#convert_string
is_singleton: false
name: convert_string
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_blank_line
is_singleton: false
name: accept_blank_line
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX::l
is_singleton: true
name: l
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToLaTeX#accept_heading
is_singleton: false
name: accept_heading
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#changed_attribute_by_name
is_singleton: false
name: changed_attribute_by_name
params: (current_set, new_set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#display_attributes
is_singleton: false
name: display_attributes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#add_html
is_singleton: false
name: add_html
params: (tag, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#copy_string
is_singleton: false
name: copy_string
params: (start_pos, end_pos)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#unmask_protected_sequences
is_singleton: false
name: unmask_protected_sequences
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return an attribute object with the given turn_on and turn_off bits set
full_name: SM::AttributeManager#attribute
is_singleton: false
name: attribute
params: (turn_on, turn_off)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: "NULL"
  value: "\"\\000\".freeze"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: We work by substituting non-printing characters in to the text. For now I'm assuming that I can substitute a character in the range 0..8 for a 7 bit character without damaging the encoded string, but this might be optimistic
  name: A_PROTECT
  value: "004"
- !ruby/object:RI::Constant 
  comment: 
  name: PROTECT_ATTR
  value: A_PROTECT.chr
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: This maps delimiters that occur around words (such as <b>bold</b> or <tt>tt</tt>) where the start and end delimiters and the same. This lets us optimize the regexp
  name: MATCHING_WORD_PAIRS
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: And this is used when the delimiters aren't the same. In this case the hash maps a pattern to the attribute character
  name: WORD_PAIR_MAP
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: This maps HTML tags to the corresponding attribute char
  name: HTML_TAGS
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: And this maps <em>special</em> sequences to a name. A special sequence is something like a WikiWord
  name: SPECIAL
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A \ in front of a character that would normally be processed turns off processing. We do this by turning &lt; into &lt;#{PROTECT}
  name: PROTECTABLE
  value: "[ \"<\" << \"\\\\\" ]"
full_name: SM::AttributeManager
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_html
- !ruby/object:RI::MethodSummary 
  name: add_special
- !ruby/object:RI::MethodSummary 
  name: add_word_pair
- !ruby/object:RI::MethodSummary 
  name: attribute
- !ruby/object:RI::MethodSummary 
  name: change_attribute
- !ruby/object:RI::MethodSummary 
  name: changed_attribute_by_name
- !ruby/object:RI::MethodSummary 
  name: convert_attrs
- !ruby/object:RI::MethodSummary 
  name: convert_html
- !ruby/object:RI::MethodSummary 
  name: convert_specials
- !ruby/object:RI::MethodSummary 
  name: copy_string
- !ruby/object:RI::MethodSummary 
  name: display_attributes
- !ruby/object:RI::MethodSummary 
  name: flow
- !ruby/object:RI::MethodSummary 
  name: mask_protected_sequences
- !ruby/object:RI::MethodSummary 
  name: split_into_flow
- !ruby/object:RI::MethodSummary 
  name: unmask_protected_sequences
name: AttributeManager
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#add_special
is_singleton: false
name: add_special
params: (pattern, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#flow
is_singleton: false
name: flow
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#mask_protected_sequences
is_singleton: false
name: mask_protected_sequences
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#add_word_pair
is_singleton: false
name: add_word_pair
params: (start, stop, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#split_into_flow
is_singleton: false
name: split_into_flow
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Map attributes like <b>text</b>to the sequence \001\002&lt;char&gt;\001\003&lt;char&gt;, where &lt;char&gt; is a per-attribute specific character
full_name: SM::AttributeManager#convert_attrs
is_singleton: false
name: convert_attrs
params: (str, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#change_attribute
is_singleton: false
name: change_attribute
params: (current, new)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#convert_html
is_singleton: false
name: convert_html
params: (str, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttributeManager#convert_specials
is_singleton: false
name: convert_specials
params: (str, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Special#==
is_singleton: false
name: ==
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Special::new
is_singleton: true
name: new
params: (type, text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: text
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Hold details of a special sequence
constants: []

full_name: SM::Special
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Special
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Special#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A horizontal rule
constants: []

full_name: SM::Rule
includes: []

instance_methods: []

name: Rule
superclass: Fragment
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttrSpan#[]
is_singleton: false
name: "[]"
params: (n)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: An array of attributes which parallels the characters in a string
constants: []

full_name: SM::AttrSpan
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: set_attrs
name: AttrSpan
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttrSpan#set_attrs
is_singleton: false
name: set_attrs
params: (start, length, bits)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttrSpan::new
is_singleton: true
name: new
params: (length)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (directive, param)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look for common options in a chunk of text. Options that we don't handle are passed back to our caller as |directive, param|
full_name: SM::PreProcess#handle
is_singleton: false
name: handle
params: (text) {|directive, param| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look for the given file in the directory containing the current file, and then in each of the directories specified in the RDOC_INCLUDE path
full_name: SM::PreProcess#find_include_file
is_singleton: false
name: find_include_file
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::PreProcess::new
is_singleton: true
name: new
params: (input_file_name, include_path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Include a file, indenting it correctly
full_name: SM::PreProcess#include_file
is_singleton: false
name: include_file
params: (name, indent)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Handle common directives that can occur in a block of text:"
- !ruby/struct:SM::Flow::P 
  body: ": include : filename"
constants: []

full_name: SM::PreProcess
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_include_file
- !ruby/object:RI::MethodSummary 
  name: handle
- !ruby/object:RI::MethodSummary 
  name: include_file
name: PreProcess
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Verbatim#add_text
is_singleton: false
name: add_text
params: (txt)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Verbatim code contains lines that don't get wrapped.
constants: []

full_name: SM::Verbatim
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_text
name: Verbatim
superclass: Fragment
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: require 'rdoc/markup/simple_markup/to_flow.rb'
constants: []

full_name: SM
includes: []

instance_methods: []

name: SM
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: SM::BlankLine
includes: []

instance_methods: []

name: BlankLine
superclass: Paragraph
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#convert_heading
is_singleton: false
name: convert_heading
params: (level, flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#html_list_name
is_singleton: false
name: html_list_name
params: (list_type, is_open_tag)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#off_tags
is_singleton: false
name: off_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#list_end_for
is_singleton: false
name: list_end_for
params: (fragment_type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given an HTML tag, decorate it with class information and the like if required. This is a no-op in the base class, but is overridden in HTML output classes that implement style sheets
full_name: SM::ToHtml#annotate
is_singleton: false
name: annotate
params: (tag)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_list_start
is_singleton: false
name: accept_list_start
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_list_end
is_singleton: false
name: accept_list_end
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_verbatim
is_singleton: false
name: accept_verbatim
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#convert_flow
is_singleton: false
name: convert_flow
params: (flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#list_item_start
is_singleton: false
name: list_item_start
params: (am, fragment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Here's the client side of the visitor pattern
full_name: SM::ToHtml#start_accepting
is_singleton: false
name: start_accepting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_paragraph
is_singleton: false
name: accept_paragraph
params: (am, fragment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: LIST_TYPE_TO_HTML
  value: "{       ListBase::BULLET =>  [ \"<ul>\", \"</ul>\" ],       ListBase::NUMBER =>  [ \"<ol>\", \"</ol>\" ],       ListBase::UPPERALPHA =>  [ \"<ol>\", \"</ol>\" ],       ListBase::LOWERALPHA =>  [ \"<ol>\", \"</ol>\" ],       ListBase::LABELED => [ \"<dl>\", \"</dl>\" ],       ListBase::NOTE    => [ \"<table>\", \"</table>\" ],     }"
- !ruby/object:RI::Constant 
  comment: 
  name: InlineTag
  value: Struct.new(:bit, :on, :off)
full_name: SM::ToHtml
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept_blank_line
- !ruby/object:RI::MethodSummary 
  name: accept_heading
- !ruby/object:RI::MethodSummary 
  name: accept_list_end
- !ruby/object:RI::MethodSummary 
  name: accept_list_item
- !ruby/object:RI::MethodSummary 
  name: accept_list_start
- !ruby/object:RI::MethodSummary 
  name: accept_paragraph
- !ruby/object:RI::MethodSummary 
  name: accept_rule
- !ruby/object:RI::MethodSummary 
  name: accept_verbatim
- !ruby/object:RI::MethodSummary 
  name: add_tag
- !ruby/object:RI::MethodSummary 
  name: annotate
- !ruby/object:RI::MethodSummary 
  name: convert_flow
- !ruby/object:RI::MethodSummary 
  name: convert_heading
- !ruby/object:RI::MethodSummary 
  name: convert_special
- !ruby/object:RI::MethodSummary 
  name: convert_string
- !ruby/object:RI::MethodSummary 
  name: end_accepting
- !ruby/object:RI::MethodSummary 
  name: html_list_name
- !ruby/object:RI::MethodSummary 
  name: init_tags
- !ruby/object:RI::MethodSummary 
  name: list_end_for
- !ruby/object:RI::MethodSummary 
  name: list_item_start
- !ruby/object:RI::MethodSummary 
  name: off_tags
- !ruby/object:RI::MethodSummary 
  name: on_tags
- !ruby/object:RI::MethodSummary 
  name: start_accepting
- !ruby/object:RI::MethodSummary 
  name: wrap
name: ToHtml
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is a higher speed (if messier) version of wrap
full_name: SM::ToHtml#wrap
is_singleton: false
name: wrap
params: (txt, line_len = 76)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a new set of HTML tags for an attribute. We allow separate start and end tags for flexibility
full_name: SM::ToHtml#add_tag
is_singleton: false
name: add_tag
params: (name, start, stop)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#convert_special
is_singleton: false
name: convert_special
params: (special)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#end_accepting
is_singleton: false
name: end_accepting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_list_item
is_singleton: false
name: accept_list_item
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up the standard mapping of attributes to HTML tags
full_name: SM::ToHtml#init_tags
is_singleton: false
name: init_tags
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: SM::ToHtml#on_tags
is_singleton: false
name: on_tags
params: (res, item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_rule
is_singleton: false
name: accept_rule
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: some of these patterns are taken from SmartyPants...
full_name: SM::ToHtml#convert_string
is_singleton: false
name: convert_string
params: (item)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_blank_line
is_singleton: false
name: accept_blank_line
params: (am, fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ToHtml#accept_heading
is_singleton: false
name: accept_heading
params: (am, fragment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A List is a fragment with some kind of label
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: List types
  name: BULLET
  value: ":BULLET"
- !ruby/object:RI::Constant 
  comment: 
  name: NUMBER
  value: ":NUMBER"
- !ruby/object:RI::Constant 
  comment: 
  name: UPPERALPHA
  value: ":UPPERALPHA"
- !ruby/object:RI::Constant 
  comment: 
  name: LOWERALPHA
  value: ":LOWERALPHA"
- !ruby/object:RI::Constant 
  comment: 
  name: LABELED
  value: ":LABELED"
- !ruby/object:RI::Constant 
  comment: 
  name: NOTE
  value: ":NOTE"
full_name: SM::ListBase
includes: []

instance_methods: []

name: ListBase
superclass: Paragraph
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: level
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: param
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: txt
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: type_name
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Fragment is a chunk of text, subclassed as a paragraph, a list entry, or verbatim text
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: This is a simple factory system that lets us associate fragement types (a string) with a subclass of fragment
  name: TYPE_MAP
  value: "{}"
full_name: SM::Fragment
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_text
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Fragment
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Fragment::new
is_singleton: true
name: new
params: (level, param, type, txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Fragment::type_name
is_singleton: true
name: type_name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Fragment#add_text
is_singleton: false
name: add_text
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Fragment#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Fragment::for
is_singleton: true
name: for
params: (line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add to the sequences recognized as general markup
full_name: SM::SimpleMarkup#add_html
is_singleton: false
name: add_html
params: (tag, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: for debugging, we allow access to our line contents as text
full_name: SM::SimpleMarkup#content
is_singleton: false
name: content
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Synopsis
- !ruby/struct:SM::Flow::P 
  body: This code converts <tt>input_string</tt>, which is in the format described in markup/simple_markup.rb, to HTML. The conversion takes place in the <tt>convert</tt> method, so you can use the same SimpleMarkup object to convert multiple input strings.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'rdoc/markup/simple_markup'\n  require 'rdoc/markup/simple_markup/to_html'\n\n  p = SM::SimpleMarkup.new\n  h = SM::ToHtml.new\n\n  puts p.convert(input_string, h)\n"
- !ruby/struct:SM::Flow::P 
  body: "You can extend the SimpleMarkup parser to recognise new markup sequences, and to add special processing for text that matches a regular epxression. Here we make WikiWords significant to the parser, and also make the sequences {word} and &lt;no&gt;text...&lt;/no&gt; signify strike-through text. When then subclass the HTML output class to deal with these:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'rdoc/markup/simple_markup'\n  require 'rdoc/markup/simple_markup/to_html'\n\n  class WikiHtml &lt; SM::ToHtml\n    def handle_special_WIKIWORD(special)\n      &quot;&lt;font color=red&gt;&quot; + special.text + &quot;&lt;/font&gt;&quot;\n    end\n  end\n\n  p = SM::SimpleMarkup.new\n  p.add_word_pair(&quot;{&quot;, &quot;}&quot;, :STRIKE)\n  p.add_html(&quot;no&quot;, :STRIKE)\n\n  p.add_special(/\\b([A-Z][a-z]+[A-Z]\\w+)/, :WIKIWORD)\n\n  h = WikiHtml.new\n  h.add_tag(:STRIKE, &quot;&lt;strike&gt;&quot;, &quot;&lt;/strike&gt;&quot;)\n\n  puts &quot;&lt;body&gt;&quot; + p.convert(ARGF.read, h) + &quot;&lt;/body&gt;&quot;\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Output Formatters
- !ruby/struct:SM::Flow::P 
  body: <em>missing</em>
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SPACE
  value: ?\s
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "List entries look like:"
  - !ruby/struct:SM::Flow::VERB 
    body: " *       text\n 1.      text\n [label] text\n label:: text\n"
  - !ruby/struct:SM::Flow::P 
    body: Flag it as a list entry, and work out the indent for subsequent lines
  name: SIMPLE_LIST_RE
  value: /^(                   (  \*          (?# bullet)                     |-           (?# bullet)                     |\d+\.       (?# numbered )                     |[A-Za-z]\.  (?# alphabetically numbered )                   )                   \s+                 )\S/x
- !ruby/object:RI::Constant 
  comment: 
  name: LABEL_LIST_RE
  value: "/^(                         (  \\[.*?\\]    (?# labeled  )                           |\\S.*::     (?# note     )                         )(?:\\s+|$)                       )/x"
full_name: SM::SimpleMarkup
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_html
- !ruby/object:RI::MethodSummary 
  name: add_special
- !ruby/object:RI::MethodSummary 
  name: add_word_pair
- !ruby/object:RI::MethodSummary 
  name: assign_types_to_lines
- !ruby/object:RI::MethodSummary 
  name: content
- !ruby/object:RI::MethodSummary 
  name: convert
- !ruby/object:RI::MethodSummary 
  name: get_line_types
- !ruby/object:RI::MethodSummary 
  name: group_lines
- !ruby/object:RI::MethodSummary 
  name: handled_labeled_list
name: SimpleMarkup
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: for debugging, return the list of line types
full_name: SM::SimpleMarkup#get_line_types
is_singleton: false
name: get_line_types
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: take a block of text and use various heuristics to determine it's structure (paragraphs, lists, and so on). Invoke an event handler as we identify significant chunks.
full_name: SM::SimpleMarkup::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Return a block consisting of fragments which are paragraphs, list entries or verbatim text. We merge consecutive lines of the same type and level together. We are also slightly tricky with lists: the lines following a list introduction look like paragraph lines at the next level, and we remap them into list entries instead"
full_name: SM::SimpleMarkup#group_lines
is_singleton: false
name: group_lines
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Add to other inline sequences. For example, we could add WikiWords using something like:"
- !ruby/struct:SM::Flow::VERB 
  body: "   parser.add_special(/\\b([A-Z][a-z]+[A-Z]\\w+)/, :WIKIWORD)\n"
- !ruby/struct:SM::Flow::P 
  body: Each wiki word will be presented to the output formatter via the accept_special method
full_name: SM::SimpleMarkup#add_special
is_singleton: false
name: add_special
params: (pattern, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look through the text at line indentation. We flag each line as being Blank, a paragraph, a list element, or verbatim text
full_name: SM::SimpleMarkup#assign_types_to_lines
is_singleton: false
name: assign_types_to_lines
params: (margin = 0, level = 0)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add to the sequences used to add formatting to an individual word (such as <b>bold</b>). Matching entries will generate attibutes that the output formatters can recognize by their <tt>name</tt>
full_name: SM::SimpleMarkup#add_word_pair
is_singleton: false
name: add_word_pair
params: (start, stop, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Handle labeled list entries, We have a special case to deal with. Because the labels can be long, they force the remaining block of text over the to right:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "this is a long label that I wrote:"
    body: and here is the block of text with a silly margin
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: So we allow the special case. If the label is followed by nothing, and if the following line is indented, then we take the indent of that line as the new margin
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "this is a long label that I wrote:"
    body: here is a more reasonably indented block which will ab attached to the label.
  type: :NOTE
full_name: SM::SimpleMarkup#handled_labeled_list
is_singleton: false
name: handled_labeled_list
params: (line, level, margin, offset, prefix)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: We take a string, split it into lines, work out the type of each line, and from there deduce groups of lines (for example all lines in a paragraph). We then invoke the output formatter using a Visitor to display the result
full_name: SM::SimpleMarkup#convert
is_singleton: false
name: convert
params: (str, op)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: SM::Heading
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: head_level
name: Heading
superclass: Paragraph
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Heading#head_level
is_singleton: false
name: head_level
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If you have:"
- !ruby/struct:SM::Flow::VERB 
  body: "   normal paragraph text.\n\n      this is code\n\n      and more code\n"
- !ruby/struct:SM::Flow::P 
  body: You'll end up with the fragments Paragraph, BlankLine, Verbatim, BlankLine, Verbatim, BlankLine, etc
- !ruby/struct:SM::Flow::P 
  body: The BlankLine in the middle of the verbatim chunk needs to be changed to a real verbatim newline, and the two verbatim blocks merged
full_name: SM::LineCollection#change_verbatim_blank_lines
is_singleton: false
name: change_verbatim_blank_lines
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: List nesting is implicit given the level of Make it explicit, just to make life a tad easier for the output processors
full_name: SM::LineCollection#add_list_start_and_ends
is_singleton: false
name: add_list_start_and_ends
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For testing
full_name: SM::LineCollection#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::LineCollection#add
is_singleton: false
name: add
params: (fragment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: now insert start/ends between list entries at the same level that have different element types
full_name: SM::LineCollection#add_list_breaks
is_singleton: false
name: add_list_breaks
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::LineCollection::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: tidy up at the end
full_name: SM::LineCollection#normalize
is_singleton: false
name: normalize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::LineCollection#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::LineCollection#each
is_singleton: false
name: each
params: (&b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Factory for different fragment types
full_name: SM::LineCollection#fragment_for
is_singleton: false
name: fragment_for
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Collect groups of lines together. Each group will end up containing a flow of text
constants: []

full_name: SM::LineCollection
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: add_list_breaks
- !ruby/object:RI::MethodSummary 
  name: add_list_start_and_ends
- !ruby/object:RI::MethodSummary 
  name: change_verbatim_blank_lines
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: fragment_for
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: tidy_blank_lines
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
name: LineCollection
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::LineCollection#accept
is_singleton: false
name: accept
params: (am, visitor)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Finally tidy up the blank lines:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: change Blank/ListEnd into ListEnd/Blank
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: remove blank lines at the front
  type: :BULLET
full_name: SM::LineCollection#tidy_blank_lines
is_singleton: false
name: tidy_blank_lines
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: SM::ListStart
includes: []

instance_methods: []

name: ListStart
superclass: ListBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::ListStart::new
is_singleton: true
name: new
params: (level, param, type)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A paragraph is a fragment which gets wrapped to fit. We remove all newlines when we're created, and have them put back on output
constants: []

full_name: SM::Paragraph
includes: []

instance_methods: []

name: Paragraph
superclass: Fragment
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#next
is_singleton: false
name: next
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#line_types
is_singleton: false
name: line_types
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: lines
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A container for all the lines
constants: []

full_name: SM::Lines
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: as_text
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: line_types
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: unget
name: Lines
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def [](index)
- !ruby/struct:SM::Flow::VERB 
  body: "  @lines[index]\n"
- !ruby/struct:SM::Flow::P 
  body: end
full_name: SM::Lines#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines::new
is_singleton: true
name: new
params: (lines)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#unget
is_singleton: false
name: unget
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#delete
is_singleton: false
name: delete
params: (a_line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#normalize
is_singleton: false
name: normalize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line unless line.deleted
comment: 
full_name: SM::Lines#each
is_singleton: false
name: each
params: () {|line unless line.deleted| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::Lines#as_text
is_singleton: false
name: as_text
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SM::AttrChanger#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: SM::AttrChanger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
name: AttrChanger
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the given string to <em>ios</em>. The stream must be opened for writing. If the argument is not a string, it will be converted to a string using <tt>to_s</tt>. Returns the number of bytes written.
- !ruby/struct:SM::Flow::VERB 
  body: "   count = $stdout.write( &quot;This is a test\\n&quot; )\n   puts &quot;That was #{count} bytes of data&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   This is a test\n   That was 15 bytes of data\n"
full_name: IO#write
is_singleton: false
name: write
params: |
  ios.write(string)    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the read end of a duplex I/O stream (i.e., one that contains both a read and a write stream, such as a pipe). Will raise an <tt>IOError</tt> if the stream is not duplexed.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = IO.popen(&quot;/bin/sh&quot;,&quot;r+&quot;)\n   f.close_read\n   f.readlines\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:3:in `readlines': not opened for reading (IOError)\n    from prog.rb:3\n"
full_name: IO#close_read
is_singleton: false
name: close_read
params: |
  ios.close_read    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns status information for <em>ios</em> as an object of type <tt>File::Stat</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   s = f.stat\n   &quot;%o&quot; % s.mode   #=&gt; &quot;100644&quot;\n   s.blksize       #=&gt; 4096\n   s.atime         #=&gt; Wed Apr 09 08:53:54 CDT 2003\n"
full_name: IO#stat
is_singleton: false
name: stat
params: |
  ios.stat    => stat

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the given block once for each character in <em>ios</em>, passing the character as an argument. The stream must be opened for reading or an <tt>IOError</tt> will be raised. Multibyte characters are dealt with according to $KCODE.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.each_char {|c| print c, ' ' }   #=&gt; #&lt;File:testfile&gt;\n"
full_name: IO#chars
is_singleton: false
name: chars
params: |
  ios.each_char {|c| block }  => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the given string to <em>ios</em> using write(2) system call after O_NONBLOCK is set for the underlying file descriptor.
- !ruby/struct:SM::Flow::P 
  body: "write_nonblock just calls write(2). It causes all errors write(2) causes: EAGAIN, EINTR, etc. The result may also be smaller than string.length (partial write). The caller should care such errors and partial write."
full_name: IO#write_nonblock
is_singleton: false
name: write_nonblock
params: |
  ios.write_nonblock(string)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the given string to <em>ios</em> using a low-level write. Returns the number of bytes written. Do not mix with other methods that write to <em>ios</em> or you may get unpredictable results. Raises <tt>SystemCallError</tt> on error.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;out&quot;, &quot;w&quot;)\n   f.syswrite(&quot;ABCDEF&quot;)   #=&gt; 6\n"
full_name: IO#syswrite
is_singleton: false
name: syswrite
params: |
  ios.syswrite(string)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads the entire file specified by <em>name</em> as individual lines, and returns those lines in an array. Lines are separated by <em>sep_string</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = IO.readlines(&quot;testfile&quot;)\n   a[0]   #=&gt; &quot;This is line one\\n&quot;\n"
full_name: IO::readlines
is_singleton: true
name: readlines
params: |
  IO.readlines(name, sep_string=$/)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reassociates <em>ios</em> with the I/O stream given in <em>other_IO</em> or to a new stream opened on <em>path</em>. This may dynamically change the actual class of this stream.
- !ruby/struct:SM::Flow::VERB 
  body: "   f1 = File.new(&quot;testfile&quot;)\n   f2 = File.new(&quot;testfile&quot;)\n   f2.readlines[0]   #=&gt; &quot;This is line one\\n&quot;\n   f2.reopen(f1)     #=&gt; #&lt;File:testfile&gt;\n   f2.readlines[0]   #=&gt; &quot;This is line one\\n&quot;\n"
full_name: IO#reopen
is_singleton: false
name: reopen
params: |
  ios.reopen(other_IO)         => ios 
  ios.reopen(path, mode_str)   => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the given block once for each character in <em>ios</em>, passing the character as an argument. The stream must be opened for reading or an <tt>IOError</tt> will be raised. Multibyte characters are dealt with according to $KCODE.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.each_char {|c| print c, ' ' }   #=&gt; #&lt;File:testfile&gt;\n"
full_name: IO#each_char
is_singleton: false
name: each_char
params: |
  ios.each_char {|c| block }  => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pushes back one character (passed as a parameter) onto <em>ios</em>, such that a subsequent buffered read will return it. Only one character may be pushed back before a subsequent read operation (that is, you will be able to read only the last of several characters that have been pushed back). Has no effect with unbuffered reads (such as <tt>IO#sysread</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)   #=&gt; #&lt;File:testfile&gt;\n   c = f.getc                 #=&gt; 84\n   f.ungetc(c)                #=&gt; nil\n   f.getc                     #=&gt; 84\n"
full_name: IO#ungetc
is_singleton: false
name: ungetc
params: |
  ios.ungetc(integer)   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #fileno"
full_name: IO#to_i
is_singleton: false
name: to_i
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Kernel#select</tt>.
full_name: IO::select
is_singleton: true
name: select
params: |
  IO.select(read_array 
  [, write_array 
  [, error_array 
  [, timeout]]] ) =>  array  or  nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the next 8-bit byte (0..255) from <em>ios</em>. Returns <tt>nil</tt> if called at end of file.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.getc   #=&gt; 84\n   f.getc   #=&gt; 104\n"
full_name: IO#getbyte
is_singleton: false
name: getbyte
params: |
  ios.getc   => fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if <em>ios</em> is at end of file that means there are no more data to read. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   dummy = f.readlines\n   f.eof   #=&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: If <em>ios</em> is a stream such as pipe or socket, <tt>IO#eof?</tt> blocks until the other end sends some data or closes it.
- !ruby/struct:SM::Flow::VERB 
  body: "   r, w = IO.pipe\n   Thread.new { sleep 1; w.close }\n   r.eof?  #=&gt; true after 1 second blocking\n\n   r, w = IO.pipe\n   Thread.new { sleep 1; w.puts &quot;a&quot; }\n   r.eof?  #=&gt; false after 1 second blocking\n\n   r, w = IO.pipe\n   r.eof?  # blocks forever\n"
- !ruby/struct:SM::Flow::P 
  body: Note that <tt>IO#eof?</tt> reads data to a input buffer. So <tt>IO#sysread</tt> doesn't work with <tt>IO#eof?</tt>.
full_name: IO#eof?
is_singleton: false
name: eof?
params: |
  ios.eof     => true or false
  ios.eof?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a string describing this IO object.
full_name: IO#inspect
is_singleton: false
name: inspect
params: |
  ios.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Seeks to a given offset <em>anInteger</em> in the stream according to the value of <em>whence</em>:"
- !ruby/struct:SM::Flow::VERB 
  body: "  IO::SEEK_CUR  | Seeks to <em>amount</em> plus current position\n  --------------+----------------------------------------------------\n  IO::SEEK_END  | Seeks to <em>amount</em> plus end of stream (you probably\n                | want a negative value for <em>amount</em>)\n  --------------+----------------------------------------------------\n  IO::SEEK_SET  | Seeks to the absolute location given by <em>amount</em>\n"
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.seek(-13, IO::SEEK_END)   #=&gt; 0\n   f.readline                  #=&gt; &quot;And so on...\\n&quot;\n"
full_name: IO#seek
is_singleton: false
name: seek
params: |
  ios.seek(amount, whence=SEEK_SET) -> 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for <tt>IO::new</tt>.
full_name: IO::for_fd
is_singleton: true
name: for_fd
params: |
  IO.for_fd(fd, mode)    => io

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The trick here is doing a match where you grab one <b>line</b> of input at a time. The linebreak may or may not occur at the boundary where the string matches a format specifier. And if it does, some rule about whitespace may or may not be in effect...
- !ruby/struct:SM::Flow::P 
  body: That's why this is much more elaborate than the string version.
- !ruby/struct:SM::Flow::P 
  body: "For each line: Match succeeds (non-emptily) and the last attempted spec/string sub-match succeeded:"
- !ruby/struct:SM::Flow::VERB 
  body: "  could the last spec keep matching?\n    yes: save interim results and continue (next line)\n"
- !ruby/struct:SM::Flow::P 
  body: "The last attempted spec/string did not match:"
- !ruby/struct:SM::Flow::P 
  body: are we on the next-to-last spec in the string?
- !ruby/struct:SM::Flow::VERB 
  body: "  yes:\n    is fmt_string.string_left all spaces?\n      yes: does current spec care about input space?\n        yes: fatal failure\n        no: save interim results and continue\n  no: continue  [this state could be analyzed further]\n"
full_name: IO#scanf
is_singleton: false
name: scanf
params: (str,&b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no associated block, <tt>open</tt> is a synonym for <tt>IO::new</tt>. If the optional code block is given, it will be passed <em>io</em> as an argument, and the IO object will automatically be closed when the block terminates. In this instance, <tt>IO::open</tt> returns the value of the block.
full_name: IO::open
is_singleton: true
name: open
params: |
  IO.open(fd, mode_string="r" )               => io
  IO.open(fd, mode_string="r" ) {|io| block } => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provides a mechanism for issuing low-level commands to control or query file-oriented I/O streams. Arguments and results are platform dependent. If <em>arg</em> is a number, its value is passed directly. If it is a string, it is interpreted as a binary sequence of bytes (<tt>Array#pack</tt> might be a useful way to build this string). On Unix platforms, see <tt>fcntl(2)</tt> for details. Not implemented on all platforms.
full_name: IO#fcntl
is_singleton: false
name: fcntl
params: |
  ios.fcntl(integer_cmd, arg)    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads the next ``line'' from the I/O stream; lines are separated by <em>sep_string</em>. A separator of <tt>nil</tt> reads the entire contents, and a zero-length separator reads the input a paragraph at a time (two successive newlines in the input separate paragraphs). The stream must be opened for reading or an <tt>IOError</tt> will be raised. The line read in will be returned and also assigned to <tt>$_</tt>. Returns <tt>nil</tt> if called at end of file.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).gets   #=&gt; &quot;This is line one\\n&quot;\n   $_                          #=&gt; &quot;This is line one\\n&quot;\n"
full_name: IO#gets
is_singleton: false
name: gets
params: |
  ios.gets(sep_string=$/)   => string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeks to a given <em>offset</em> in the stream according to the value of <em>whence</em> (see <tt>IO#seek</tt> for values of <em>whence</em>). Returns the new offset into the file.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.sysseek(-13, IO::SEEK_END)   #=&gt; 53\n   f.sysread(10)                  #=&gt; &quot;And so on.&quot;\n"
full_name: IO#sysseek
is_singleton: false
name: sysseek
params: |
  ios.sysseek(offset, whence=SEEK_SET)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provides a mechanism for issuing low-level commands to control or query I/O devices. Arguments and results are platform dependent. If <em>arg</em> is a number, its value is passed directly. If it is a string, it is interpreted as a binary sequence of bytes. On Unix platforms, see <tt>ioctl(2)</tt> for details. Not implemented on all platforms.
full_name: IO#ioctl
is_singleton: false
name: ioctl
params: |
  ios.ioctl(integer_cmd, arg)    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs the specified command string as a subprocess; the subprocess's standard input and output will be connected to the returned <tt>IO</tt> object. If <em>cmd_string</em> starts with a ``<tt>-</tt>'', then a new instance of Ruby is started as the subprocess. The default mode for the new file object is ``r'', but <em>mode</em> may be set to any of the modes listed in the description for class IO.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, Ruby will run the command as a child connected to Ruby with a pipe. Ruby's end of the pipe will be passed as a parameter to the block. At the end of block, Ruby close the pipe and sets <tt>$?</tt>. In this case <tt>IO::popen</tt> returns the value of the block.
- !ruby/struct:SM::Flow::P 
  body: "If a block is given with a <em>cmd_string</em> of ``<tt>-</tt>'', the block will be run in two separate processes: once in the parent, and once in a child. The parent process will be passed the pipe object as a parameter to the block, the child version of the block will be passed <tt>nil</tt>, and the child's standard in and standard out will be connected to the parent through the pipe. Not available on all platforms."
- !ruby/struct:SM::Flow::VERB 
  body: "   f = IO.popen(&quot;uname&quot;)\n   p f.readlines\n   puts &quot;Parent is #{Process.pid}&quot;\n   IO.popen (&quot;date&quot;) { |f| puts f.gets }\n   IO.popen(&quot;-&quot;) {|f| $stderr.puts &quot;#{Process.pid} is here, f is #{f}&quot;}\n   p $?\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   [&quot;Linux\\n&quot;]\n   Parent is 26166\n   Wed Apr  9 08:53:52 CDT 2003\n   26169 is here, f is\n   26166 is here, f is #&lt;IO:0x401b3d44&gt;\n   #&lt;Process::Status: pid=26166,exited(0)&gt;\n"
full_name: IO::popen
is_singleton: true
name: popen
params: |
  IO.popen(cmd_string, mode="r" )               => io
  IO.popen(cmd_string, mode="r" ) {|io| block } => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if <em>ios</em> is at end of file that means there are no more data to read. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   dummy = f.readlines\n   f.eof   #=&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: If <em>ios</em> is a stream such as pipe or socket, <tt>IO#eof?</tt> blocks until the other end sends some data or closes it.
- !ruby/struct:SM::Flow::VERB 
  body: "   r, w = IO.pipe\n   Thread.new { sleep 1; w.close }\n   r.eof?  #=&gt; true after 1 second blocking\n\n   r, w = IO.pipe\n   Thread.new { sleep 1; w.puts &quot;a&quot; }\n   r.eof?  #=&gt; false after 1 second blocking\n\n   r, w = IO.pipe\n   r.eof?  # blocks forever\n"
- !ruby/struct:SM::Flow::P 
  body: Note that <tt>IO#eof?</tt> reads data to a input buffer. So <tt>IO#sysread</tt> doesn't work with <tt>IO#eof?</tt>.
full_name: IO#eof
is_singleton: false
name: eof
params: |
  ios.eof     => true or false
  ios.eof?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flushes any buffered data within <em>ios</em> to the underlying operating system (note that this is Ruby internal buffering only; the OS may buffer the data as well).
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout.print &quot;no newline&quot;\n   $stdout.flush\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   no newline\n"
full_name: IO#flush
is_singleton: false
name: flush
params: |
  ios.flush    => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads <em>integer</em> bytes from <em>ios</em> using a low-level read and returns them as a string. Do not mix with other methods that read from <em>ios</em> or you may get unpredictable results. Raises <tt>SystemCallError</tt> on error and <tt>EOFError</tt> at end of file.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.sysread(16)   #=&gt; &quot;This is line one&quot;\n"
full_name: IO#sysread
is_singleton: false
name: sysread
params: |
  ios.sysread(integer )    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads a character as with <tt>IO#getc</tt>, but raises an <tt>EOFError</tt> on end of file.
full_name: IO#readbyte
is_singleton: false
name: readbyte
params: |
  ios.readchar   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the write end of a duplex I/O stream (i.e., one that contains both a read and a write stream, such as a pipe). Will raise an <tt>IOError</tt> if the stream is not duplexed.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = IO.popen(&quot;/bin/sh&quot;,&quot;r+&quot;)\n   f.close_write\n   f.print &quot;nowhere&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:3:in `write': not opened for writing (IOError)\n    from prog.rb:3:in `print'\n    from prog.rb:3\n"
full_name: IO#close_write
is_singleton: false
name: close_write
params: |
  ios.close_write   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the process ID of a child process associated with <em>ios</em>. This will be set by <tt>IO::popen</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   pipe = IO.popen(&quot;-&quot;)\n   if pipe\n     $stderr.puts &quot;In parent, child pid is #{pipe.pid}&quot;\n   else\n     $stderr.puts &quot;In child, pid is #{$$}&quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   In child, pid is 26209\n   In parent, child pid is 26209\n"
full_name: IO#pid
is_singleton: false
name: pid
params: |
  ios.pid    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Creates a pair of pipe endpoints (connected to each other) and returns them as a two-element array of <tt>IO</tt> objects: <tt>[</tt> <em>read_file</em>, <em>write_file</em> <tt>]</tt>. Not available on all platforms."
- !ruby/struct:SM::Flow::P 
  body: In the example below, the two processes close the ends of the pipe that they are not using. This is not just a cosmetic nicety. The read end of a pipe will not generate an end of file condition if there are any writers with the pipe still open. In the case of the parent process, the <tt>rd.read</tt> will never return if it does not first issue a <tt>wr.close</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   rd, wr = IO.pipe\n\n   if fork\n     wr.close\n     puts &quot;Parent got: &lt;#{rd.read}&gt;&quot;\n     rd.close\n     Process.wait\n   else\n     rd.close\n     puts &quot;Sending message to parent&quot;\n     wr.write &quot;Hi Dad&quot;\n     wr.close\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Sending message to parent\n   Parent got: &lt;Hi Dad&gt;\n"
full_name: IO::pipe
is_singleton: true
name: pipe
params: |
  IO.pipe -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the given object(s) to <em>ios</em>. The stream must be opened for writing. If the output record separator (<tt>$\</tt>) is not <tt>nil</tt>, it will be appended to the output. If no arguments are given, prints <tt>$_</tt>. Objects that aren't strings will be converted by calling their <tt>to_s</tt> method. With no argument, prints the contents of the variable <tt>$_</tt>. Returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout.print(&quot;This is &quot;, 100, &quot; percent.\\n&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   This is 100 percent.\n"
full_name: IO#print
is_singleton: false
name: print
params: |
  ios.print()             => nil
  ios.print(obj, ...)     => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_i
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the numeric file descriptor for <em>ios</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdin.fileno    #=&gt; 0\n   $stdout.fileno   #=&gt; 1\n"
full_name: IO#fileno
is_singleton: false
name: fileno
params: |
  ios.fileno    => fixnum
  ios.to_i      => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes the block for every line in <em>ios</em>, where lines are separated by <em>sep_string</em>. <em>ios</em> must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.each {|line| puts &quot;#{f.lineno}: #{line}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   1: This is line one\n   2: This is line two\n   3: This is line three\n   4: And so on...\n"
full_name: IO#each_line
is_singleton: false
name: each_line
params: |
  ios.each(sep_string=$/)      {|line| block }  => ios
  ios.each_line(sep_string=$/) {|line| block }  => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>ios</em>.
full_name: IO#to_io
is_singleton: false
name: to_io
params: |
  ios.to_io -> ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>ios</em> is completely closed (for duplex streams, both reader and writer), <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.close         #=&gt; nil\n   f.closed?       #=&gt; true\n   f = IO.popen(&quot;/bin/sh&quot;,&quot;r+&quot;)\n   f.close_write   #=&gt; nil\n   f.closed?       #=&gt; false\n   f.close_read    #=&gt; nil\n   f.closed?       #=&gt; true\n"
full_name: IO#closed?
is_singleton: false
name: closed?
params: |
  ios.closed?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the next 8-bit byte (0..255) from <em>ios</em>. Returns <tt>nil</tt> if called at end of file.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.getc   #=&gt; 84\n   f.getc   #=&gt; 104\n"
full_name: IO#getc
is_singleton: false
name: getc
params: |
  ios.getc   => fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Positions <em>ios</em> to the beginning of input, resetting <tt>lineno</tt> to zero.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.readline   #=&gt; &quot;This is line one\\n&quot;\n   f.rewind     #=&gt; 0\n   f.lineno     #=&gt; 0\n   f.readline   #=&gt; &quot;This is line one\\n&quot;\n"
full_name: IO#rewind
is_singleton: false
name: rewind
params: |
  ios.rewind    => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new <tt>IO</tt> object (a stream) for the given integer file descriptor and mode string. See also <tt>IO#fileno</tt> and <tt>IO::for_fd</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = IO.new(2,&quot;w&quot;)      # '2' is standard error\n   $stderr.puts &quot;Hello&quot;\n   a.puts &quot;World&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello\n   World\n"
full_name: IO::new
is_singleton: true
name: new
params: |
  IO.new(fd, mode)   => io

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes <em>ios</em> and flushes any pending writes to the operating system. The stream is unavailable for any further data operations; an <tt>IOError</tt> is raised if such an attempt is made. I/O streams are automatically closed when they are claimed by the garbage collector.
- !ruby/struct:SM::Flow::P 
  body: If <em>ios</em> is opened by <tt>IO.popen</tt>, <tt>close</tt> sets <tt>$?</tt>.
full_name: IO#close
is_singleton: false
name: close
params: |
  ios.close   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IO#soak_up_spaces
is_singleton: false
name: soak_up_spaces
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads all of the lines in <em>ios</em>, and returns them in <em>anArray</em>. Lines are separated by the optional <em>sep_string</em>. If <em>sep_string</em> is <tt>nil</tt>, the rest of the stream is returned as a single record. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.readlines[0]   #=&gt; &quot;This is line one\\n&quot;\n"
full_name: IO#readlines
is_singleton: false
name: readlines
params: |
  ios.readlines(sep_string=$/)  =>   array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens the given path, returning the underlying file descriptor as a <tt>Fixnum</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   IO.sysopen(&quot;testfile&quot;)   #=&gt; 3\n"
full_name: IO::sysopen
is_singleton: true
name: sysopen
params: |
  IO.sysopen(path, [mode, [perm]])  => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads at most <em>maxlen</em> bytes from <em>ios</em> using read(2) system call after O_NONBLOCK is set for the underlying file descriptor.
- !ruby/struct:SM::Flow::P 
  body: If the optional <em>outbuf</em> argument is present, it must reference a String, which will receive the data.
- !ruby/struct:SM::Flow::P 
  body: "read_nonblock just calls read(2). It causes all errors read(2) causes: EAGAIN, EINTR, etc. The caller should care such errors."
- !ruby/struct:SM::Flow::P 
  body: read_nonblock causes EOFError on EOF.
- !ruby/struct:SM::Flow::P 
  body: If the read buffer is not empty, read_nonblock reads from the buffer like readpartial. In this case, read(2) is not called.
full_name: IO#read_nonblock
is_singleton: false
name: read_nonblock
params: |
  ios.read_nonblock(maxlen)              => string
  ios.read_nonblock(maxlen, outbuf)      => outbuf

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads at most <em>length</em> bytes from the I/O stream, or to the end of file if <em>length</em> is omitted or is <tt>nil</tt>. <em>length</em> must be a non-negative integer or nil. If the optional <em>buffer</em> argument is present, it must reference a String, which will receive the data.
- !ruby/struct:SM::Flow::P 
  body: At end of file, it returns <tt>nil</tt> or <tt>&quot;&quot;</tt> depend on <em>length</em>. <tt><em>ios</em>.read()</tt> and <tt><em>ios</em>.read(nil)</tt> returns <tt>&quot;&quot;</tt>. <tt><em>ios</em>.read(<em>positive-integer</em>)</tt> returns nil.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.read(16)   #=&gt; &quot;This is line one&quot;\n"
full_name: IO#read
is_singleton: false
name: read
params: |
  ios.read([length [, buffer]])    => string, buffer, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current line number in <em>ios</em>. The stream must be opened for reading. <tt>lineno</tt> counts the number of times <tt>gets</tt> is called, rather than the number of newlines encountered. The two values will differ if <tt>gets</tt> is called with a separator other than newline. See also the <tt>$.</tt> variable.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.lineno   #=&gt; 0\n   f.gets     #=&gt; &quot;This is line one\\n&quot;\n   f.lineno   #=&gt; 1\n   f.gets     #=&gt; &quot;This is line two\\n&quot;\n   f.lineno   #=&gt; 2\n"
full_name: IO#lineno
is_singleton: false
name: lineno
params: |
  ios.lineno    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes the block for every line in the named I/O port, where lines are separated by <em>sep_string</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   IO.foreach(&quot;testfile&quot;) {|x| print &quot;GOT &quot;, x }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   GOT This is line one\n   GOT This is line two\n   GOT This is line three\n   GOT And so on...\n"
full_name: IO::foreach
is_singleton: true
name: foreach
params: |
  IO.foreach(name, sep_string=$/) {|line| block }   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an enumerator that gives each line in <em>ios</em>. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.lines.to_a  #=&gt; [&quot;foo\\n&quot;, &quot;bar\\n&quot;]\n   f.rewind\n   f.lines.sort  #=&gt; [&quot;bar\\n&quot;, &quot;foo\\n&quot;]\n"
full_name: IO#lines
is_singleton: false
name: lines
params: |
  ios.lines(sep=$/)     => anEnumerator
  ios.lines(limit)      => anEnumerator
  ios.lines(sep, limit) => anEnumerator

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes the block for every line in <em>ios</em>, where lines are separated by <em>sep_string</em>. <em>ios</em> must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.each {|line| puts &quot;#{f.lineno}: #{line}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   1: This is line one\n   2: This is line two\n   3: This is line three\n   4: And so on...\n"
full_name: IO#each
is_singleton: false
name: each
params: |
  ios.each(sep_string=$/)      {|line| block }  => ios
  ios.each_line(sep_string=$/) {|line| block }  => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeks to the given position (in bytes) in <em>ios</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.pos = 17\n   f.gets   #=&gt; &quot;This is line two\\n&quot;\n"
full_name: IO#pos=
is_singleton: false
name: pos=
params: |
  ios.pos = integer    => integer

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for_fd
- !ruby/object:RI::MethodSummary 
  name: foreach
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: pipe
- !ruby/object:RI::MethodSummary 
  name: popen
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: sysopen
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>IO</tt> is the basis for all input and output in Ruby. An I/O stream may be <em>duplexed</em> (that is, bidirectional), and so may use more than one native operating system stream.
- !ruby/struct:SM::Flow::P 
  body: Many of the examples in this section use class <tt>File</tt>, the only standard subclass of <tt>IO</tt>. The two classes are closely associated.
- !ruby/struct:SM::Flow::P 
  body: As used in this section, <em>portname</em> may take any of the following forms.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A plain string represents a filename suitable for the underlying operating system.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string starting with ``<tt>|</tt>'' indicates a subprocess. The remainder of the string following the ``<tt>|</tt>'' is invoked as a process with appropriate input/output channels connected to it.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A string equal to ``<tt>|-</tt>'' will create another Ruby instance as a subprocess.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Ruby will convert pathnames between different operating system conventions if possible. For instance, on a Windows system the filename ``<tt>/gumby/ruby/test.rb</tt>'' will be opened as ``<tt>\\gumby\\ruby\\test.rb</tt>''. When specifying a Windows-style filename in a Ruby string, remember to escape the backslashes:"
- !ruby/struct:SM::Flow::VERB 
  body: "   &quot;c:\\gumby\\ruby\\test.rb&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: Our examples here will use the Unix-style forward slashes; <tt>File::SEPARATOR</tt> can be used to get the platform-specific separator character.
- !ruby/struct:SM::Flow::P 
  body: I/O ports may be opened in any one of several different modes, which are shown in this section as <em>mode</em>. The mode may either be a Fixnum or a String. If numeric, it should be one of the operating system specific constants (O_RDONLY, O_WRONLY, O_RDWR, O_APPEND and so on). See man open(2) for more information.
- !ruby/struct:SM::Flow::P 
  body: If the mode is given as a String, it must be one of the values listed in the following table.
- !ruby/struct:SM::Flow::VERB 
  body: "  Mode |  Meaning\n  -----+--------------------------------------------------------\n  &quot;r&quot;  |  Read-only, starts at beginning of file  (default mode).\n  -----+--------------------------------------------------------\n  &quot;r+&quot; |  Read-write, starts at beginning of file.\n  -----+--------------------------------------------------------\n  &quot;w&quot;  |  Write-only, truncates existing file\n       |  to zero length or creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;w+&quot; |  Read-write, truncates existing file to zero length\n       |  or creates a new file for reading and writing.\n  -----+--------------------------------------------------------\n  &quot;a&quot;  |  Write-only, starts at end of file if file exists,\n       |  otherwise creates a new file for writing.\n  -----+--------------------------------------------------------\n  &quot;a+&quot; |  Read-write, starts at end of file if file exists,\n       |  otherwise creates a new file for reading and\n       |  writing.\n  -----+--------------------------------------------------------\n   &quot;b&quot; |  (DOS/Windows only) Binary file mode (may appear with\n       |  any of the key letters listed above).\n"
- !ruby/struct:SM::Flow::P 
  body: The global constant ARGF (also accessible as $&lt;) provides an IO-like stream which allows access to all files mentioned on the command line (or STDIN if no files are mentioned). ARGF provides the methods <tt>#path</tt> and <tt>#filename</tt> to access the name of the file currently being read.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SEEK_SET
  value: INT2FIX(SEEK_SET)
- !ruby/object:RI::Constant 
  comment: 
  name: SEEK_CUR
  value: INT2FIX(SEEK_CUR)
- !ruby/object:RI::Constant 
  comment: 
  name: SEEK_END
  value: INT2FIX(SEEK_END)
full_name: IO
includes: 
- !ruby/object:RI::IncludedModule 
  name: File::Constants
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: binmode
- !ruby/object:RI::MethodSummary 
  name: block_scanf
- !ruby/object:RI::MethodSummary 
  name: bytes
- !ruby/object:RI::MethodSummary 
  name: chars
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: close_read
- !ruby/object:RI::MethodSummary 
  name: close_write
- !ruby/object:RI::MethodSummary 
  name: closed?
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_byte
- !ruby/object:RI::MethodSummary 
  name: each_char
- !ruby/object:RI::MethodSummary 
  name: each_line
- !ruby/object:RI::MethodSummary 
  name: eof
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: fcntl
- !ruby/object:RI::MethodSummary 
  name: fileno
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: fsync
- !ruby/object:RI::MethodSummary 
  name: getbyte
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: ioctl
- !ruby/object:RI::MethodSummary 
  name: isatty
- !ruby/object:RI::MethodSummary 
  name: lineno
- !ruby/object:RI::MethodSummary 
  name: lineno=
- !ruby/object:RI::MethodSummary 
  name: lines
- !ruby/object:RI::MethodSummary 
  name: pid
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: pos=
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: putc
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: read_nonblock
- !ruby/object:RI::MethodSummary 
  name: readbyte
- !ruby/object:RI::MethodSummary 
  name: readbytes
- !ruby/object:RI::MethodSummary 
  name: readchar
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: readpartial
- !ruby/object:RI::MethodSummary 
  name: reopen
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: scanf
- !ruby/object:RI::MethodSummary 
  name: seek
- !ruby/object:RI::MethodSummary 
  name: soak_up_spaces
- !ruby/object:RI::MethodSummary 
  name: stat
- !ruby/object:RI::MethodSummary 
  name: sync
- !ruby/object:RI::MethodSummary 
  name: sync=
- !ruby/object:RI::MethodSummary 
  name: sysread
- !ruby/object:RI::MethodSummary 
  name: sysseek
- !ruby/object:RI::MethodSummary 
  name: syswrite
- !ruby/object:RI::MethodSummary 
  name: tell
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_io
- !ruby/object:RI::MethodSummary 
  name: tty?
- !ruby/object:RI::MethodSummary 
  name: ungetc
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: write_nonblock
name: IO
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Formats and writes to <em>ios</em>, converting parameters under control of the format string. See <tt>Kernel#sprintf</tt> for details.
full_name: IO#printf
is_singleton: false
name: printf
params: |
  ios.printf(format_string [, obj, ...] )   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>ios</em> is associated with a terminal device (tty), <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).isatty   #=&gt; false\n   File.new(&quot;/dev/tty&quot;).isatty   #=&gt; true\n"
full_name: IO#tty?
is_singleton: false
name: tty?
params: |
  ios.isatty   => true or false
  ios.tty?     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads at most <em>maxlen</em> bytes from the I/O stream. It blocks only if <em>ios</em> has no data immediately available. It doesn't block if some data available. If the optional <em>outbuf</em> argument is present, it must reference a String, which will receive the data. It raises <tt>EOFError</tt> on end of file.
- !ruby/struct:SM::Flow::P 
  body: readpartial is designed for streams such as pipe, socket, tty, etc. It blocks only when no data immediately available. This means that it blocks only when following all conditions hold.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the buffer in the IO object is empty.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the content of the stream is empty.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the stream is not reached to EOF.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: When readpartial blocks, it waits data or EOF on the stream. If some data is reached, readpartial returns with the data. If EOF is reached, readpartial raises EOFError.
- !ruby/struct:SM::Flow::P 
  body: When readpartial doesn't blocks, it returns or raises immediately. If the buffer is not empty, it returns the data in the buffer. Otherwise if the stream has some content, it returns the data in the stream. Otherwise if the stream is reached to EOF, it raises EOFError.
- !ruby/struct:SM::Flow::VERB 
  body: "   r, w = IO.pipe           #               buffer          pipe content\n   w &lt;&lt; &quot;abc&quot;               #               &quot;&quot;              &quot;abc&quot;.\n   r.readpartial(4096)      #=&gt; &quot;abc&quot;       &quot;&quot;              &quot;&quot;\n   r.readpartial(4096)      # blocks because buffer and pipe is empty.\n\n   r, w = IO.pipe           #               buffer          pipe content\n   w &lt;&lt; &quot;abc&quot;               #               &quot;&quot;              &quot;abc&quot;\n   w.close                  #               &quot;&quot;              &quot;abc&quot; EOF\n   r.readpartial(4096)      #=&gt; &quot;abc&quot;       &quot;&quot;              EOF\n   r.readpartial(4096)      # raises EOFError\n\n   r, w = IO.pipe           #               buffer          pipe content\n   w &lt;&lt; &quot;abc\\ndef\\n&quot;        #               &quot;&quot;              &quot;abc\\ndef\\n&quot;\n   r.gets                   #=&gt; &quot;abc\\n&quot;     &quot;def\\n&quot;         &quot;&quot;\n   w &lt;&lt; &quot;ghi\\n&quot;             #               &quot;def\\n&quot;         &quot;ghi\\n&quot;\n   r.readpartial(4096)      #=&gt; &quot;def\\n&quot;     &quot;&quot;              &quot;ghi\\n&quot;\n   r.readpartial(4096)      #=&gt; &quot;ghi\\n&quot;     &quot;&quot;              &quot;&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: "Note that readpartial behaves similar to sysread. The differences are:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: If the buffer is not empty, read from the buffer instead of &quot;sysread for buffered IO (IOError)&quot;.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: It doesn't cause Errno::EAGAIN and Errno::EINTR. When readpartial meets EAGAIN and EINTR by read system call, readpartial retry the system call.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: The later means that readpartial is nonblocking-flag insensitive. It blocks on the situation IO#sysread causes Errno::EAGAIN as if the fd is blocking mode.
full_name: IO#readpartial
is_singleton: false
name: readpartial
params: |
  ios.readpartial(maxlen)              => string
  ios.readpartial(maxlen, outbuf)      => outbuf

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the given objects to <em>ios</em> as with <tt>IO#print</tt>. Writes a record separator (typically a newline) after any that do not already end with a newline sequence. If called with an array argument, writes each element on a new line. If called without arguments, outputs a single record separator.
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout.puts(&quot;this&quot;, &quot;is&quot;, &quot;a&quot;, &quot;test&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   this\n   is\n   a\n   test\n"
full_name: IO#puts
is_singleton: false
name: puts
params: |
  ios.puts(obj, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current offset (in bytes) of <em>ios</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.pos    #=&gt; 0\n   f.gets   #=&gt; &quot;This is line one\\n&quot;\n   f.pos    #=&gt; 17\n"
full_name: IO#tell
is_singleton: false
name: tell
params: |
  ios.pos     => integer
  ios.tell    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: String Output---Writes <em>obj</em> to <em>ios</em>. <em>obj</em> will be converted to a string using <tt>to_s</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout &lt;&lt; &quot;Hello &quot; &lt;&lt; &quot;world!\\n&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello world!\n"
full_name: IO#<<
is_singleton: false
name: "<<"
params: |
  ios << obj     => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>ios</em> is associated with a terminal device (tty), <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).isatty   #=&gt; false\n   File.new(&quot;/dev/tty&quot;).isatty   #=&gt; true\n"
full_name: IO#isatty
is_singleton: false
name: isatty
params: |
  ios.isatty   => true or false
  ios.tty?     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens the file, optionally seeks to the given offset, then returns <em>length</em> bytes (defaulting to the rest of the file). <tt>read</tt> ensures the file is closed before returning.
- !ruby/struct:SM::Flow::VERB 
  body: "   IO.read(&quot;testfile&quot;)           #=&gt; &quot;This is line one\\nThis is line two\\nThis is line three\\nAnd so on...\\n&quot;\n   IO.read(&quot;testfile&quot;, 20)       #=&gt; &quot;This is line one\\nThi&quot;\n   IO.read(&quot;testfile&quot;, 20, 10)   #=&gt; &quot;ne one\\nThis is line &quot;\n"
full_name: IO::read
is_singleton: true
name: read
params: |
  IO.read(name, [length [, offset]] )   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the ``sync mode'' to <tt>true</tt> or <tt>false</tt>. When sync mode is true, all output is immediately flushed to the underlying operating system and is not buffered internally. Returns the new state. See also <tt>IO#fsync</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.sync = true\n"
- !ruby/struct:SM::Flow::P 
  body: <em>(produces no output)</em>
full_name: IO#sync=
is_singleton: false
name: sync=
params: |
  ios.sync = boolean   => boolean

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads a character as with <tt>IO#getc</tt>, but raises an <tt>EOFError</tt> on end of file.
full_name: IO#readchar
is_singleton: false
name: readchar
params: |
  ios.readchar   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the given block once for each byte (0..255) in <em>ios</em>, passing the byte as an argument. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   checksum = 0\n   f.each_byte {|x| checksum ^= x }   #=&gt; #&lt;File:testfile&gt;\n   checksum                           #=&gt; 12\n"
full_name: IO#each_byte
is_singleton: false
name: each_byte
params: |
  ios.each_byte {|byte| block }  => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads a line as with <tt>IO#gets</tt>, but raises an <tt>EOFError</tt> on end of file.
full_name: IO#readline
is_singleton: false
name: readline
params: |
  ios.readline(sep_string=$/)   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current ``sync mode'' of <em>ios</em>. When sync mode is true, all output is immediately flushed to the underlying operating system and is not buffered by Ruby internally. See also <tt>IO#fsync</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.sync   #=&gt; false\n"
full_name: IO#sync
is_singleton: false
name: sync
params: |
  ios.sync    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads exactly <tt>n</tt> bytes.
- !ruby/struct:SM::Flow::P 
  body: If the data read is nil an EOFError is raised.
- !ruby/struct:SM::Flow::P 
  body: "If the data read is too short a TruncatedDataError is raised and the read data is obtainable via its #data method."
full_name: IO#readbytes
is_singleton: false
name: readbytes
params: (n)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <em>obj</em> is <tt>Numeric</tt>, write the character whose code is <em>obj</em>, otherwise write the first character of the string representation of <em>obj</em> to <em>ios</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $stdout.putc &quot;A&quot;\n   $stdout.putc 65\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   AA\n"
full_name: IO#putc
is_singleton: false
name: putc
params: |
  ios.putc(obj)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Immediately writes all buffered data in <em>ios</em> to disk. Returns <tt>nil</tt> if the underlying operating system does not support <em>fsync(2)</em>. Note that <tt>fsync</tt> differs from using <tt>IO#sync=</tt>. The latter ensures that data is flushed from Ruby's buffers, but doesn't not guarantee that the underlying operating system actually writes it to disk.
full_name: IO#fsync
is_singleton: false
name: fsync
params: |
  ios.fsync   => 0 or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Manually sets the current line number to the given value. <tt>$.</tt> is updated only on the next read.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.gets                     #=&gt; &quot;This is line one\\n&quot;\n   $.                         #=&gt; 1\n   f.lineno = 1000\n   f.lineno                   #=&gt; 1000\n   $. # lineno of last read   #=&gt; 1\n   f.gets                     #=&gt; &quot;This is line two\\n&quot;\n   $. # lineno of last read   #=&gt; 1001\n"
full_name: IO#lineno=
is_singleton: false
name: lineno=
params: |
  ios.lineno = integer    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (current)
comment: 
full_name: IO#block_scanf
is_singleton: false
name: block_scanf
params: (str) {|current| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current offset (in bytes) of <em>ios</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.pos    #=&gt; 0\n   f.gets   #=&gt; &quot;This is line one\\n&quot;\n   f.pos    #=&gt; 17\n"
full_name: IO#pos
is_singleton: false
name: pos
params: |
  ios.pos     => integer
  ios.tell    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Puts <em>ios</em> into binary mode. This is useful only in MS-DOS/Windows environments. Once a stream is in binary mode, it cannot be reset to nonbinary mode.
full_name: IO#binmode
is_singleton: false
name: binmode
params: |
  ios.binmode    => ios

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an enumerator that gives each byte (0..255) in <em>ios</em>. The stream must be opened for reading or an <tt>IOError</tt> will be raised.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.bytes.to_a  #=&gt; [104, 101, 108, 108, 111]\n   f.rewind\n   f.bytes.sort  #=&gt; [101, 104, 108, 108, 111]\n"
full_name: IO#bytes
is_singleton: false
name: bytes
params: |
  ios.bytes   => anEnumerator

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: ArgumentError
includes: []

instance_methods: []

name: ArgumentError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RegOr#=~
is_singleton: false
name: =~
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: this is just a proof of concept toy.
constants: []

full_name: RegOr
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: =~
name: RegOr
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RegOr::new
is_singleton: true
name: new
params: (re1, re2)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: NonString
includes: []

instance_methods: []

name: NonString
superclass: Test::Unit::TestCase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn off floating point exceptions for overflow, etc.
constants: []

full_name: FloatDomainError
includes: []

instance_methods: []

name: FloatDomainError
superclass: RangeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the n-th subgroup in the most recent match.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.scan(/(\\w+) (\\w+) (\\d+) /)       # -&gt; &quot;Fri Dec 12 &quot;\n  s[0]                               # -&gt; &quot;Fri Dec 12 &quot;\n  s[1]                               # -&gt; &quot;Fri&quot;\n  s[2]                               # -&gt; &quot;Dec&quot;\n  s[3]                               # -&gt; &quot;12&quot;\n  s.post_match                       # -&gt; &quot;1975 14:39&quot;\n  s.pre_match                        # -&gt; &quot;&quot;\n"
full_name: StringScanner#[]
is_singleton: false
name: "[]"
params: " [](n)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true iff there is more data in the string. See #eos?. This method is obsolete; use #eos? instead."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.eos?              # These two\n  s.rest?             # are opposites.\n"
full_name: StringScanner#rest?
is_singleton: false
name: rest?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the string being scanned.
full_name: StringScanner#string
is_singleton: false
name: string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Tests whether the given <tt>pattern</tt> is matched from the current scan pointer. Returns the length of the match, or <tt>nil</tt>. The scan pointer is not advanced.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  p s.match?(/\\w+/)   # -&gt; 4\n  p s.match?(/\\w+/)   # -&gt; 4\n  p s.match?(/\\s+/)   # -&gt; nil\n"
full_name: StringScanner#match?
is_singleton: false
name: match?
params: " match?(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to #terminate. This method is obsolete; use #terminate instead."
full_name: StringScanner#clear
is_singleton: false
name: clear
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Modify the scan pointer.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.pos = 7            # -&gt; 7\n  s.rest               # -&gt; &quot;ring&quot;\n"
full_name: StringScanner#pointer=
is_singleton: false
name: pointer=
params: " pos=(n)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-class: StringScanner"
- !ruby/struct:SM::Flow::P 
  body: "StringScanner provides for lexical scanning operations on a String. Here is an example of its usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('This is an example string')\n  s.eos?               # -&gt; false\n\n  p s.scan(/\\w+/)      # -&gt; &quot;This&quot;\n  p s.scan(/\\w+/)      # -&gt; nil\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\s+/)      # -&gt; nil\n  p s.scan(/\\w+/)      # -&gt; &quot;is&quot;\n  s.eos?               # -&gt; false\n\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;an&quot;\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;example&quot;\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;string&quot;\n  s.eos?               # -&gt; true\n\n  p s.scan(/\\s+/)      # -&gt; nil\n  p s.scan(/\\w+/)      # -&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: Scanning a string means remembering the position of a <em>scan pointer</em>, which is just an index. The point of scanning is to move forward a bit at a time, so matches are sought after the scan pointer; usually immediately after it.
- !ruby/struct:SM::Flow::P 
  body: "Given the string &quot;test string&quot;, here are the pertinent scan pointer positions:"
- !ruby/struct:SM::Flow::VERB 
  body: "    t e s t   s t r i n g\n  0 1 2 ...             1\n                        0\n"
- !ruby/struct:SM::Flow::P 
  body: "When you #scan for a pattern (a regular expression), the match must occur at the character after the scan pointer. If you use #scan_until, then the match can occur anywhere after the scan pointer. In both cases, the scan pointer moves <em>just beyond</em> the last character of the match, ready to scan again from the next character onwards. This is demonstrated by the example above."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Categories
- !ruby/struct:SM::Flow::P 
  body: There are other methods besides the plain scanners. You can look ahead in the string without actually scanning. You can access the most recent match. You can modify the string being scanned, reset or terminate the scanner, find out or change the position of the scan pointer, skip ahead, and so on.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Advancing the Scan Pointer
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#getch"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#get_byte"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#scan"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#scan_until"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#skip"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#skip_until"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Looking Ahead
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#check"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#check_until"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#exist?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#match?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#peek"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Finding Where we Are
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#beginning_of_line? (#bol?)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#eos?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rest?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rest_size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pos"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Setting Where we Are
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#reset"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#terminate"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pos="
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Match Data
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched_size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "[]"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pre_match"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#post_match"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Miscellaneous
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "&lt;&lt;"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#concat"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#string"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#string="
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#unscan"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: There are aliases to several of the methods.
constants: []

full_name: StringScanner::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to #get_byte. This method is obsolete; use #get_byte instead."
full_name: StringScanner#getbyte
is_singleton: false
name: getbyte
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to #peek. This method is obsolete; use #peek instead."
full_name: StringScanner#peep
is_singleton: false
name: peep
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string that represents the StringScanner object, showing:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: the current position
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: the size of the string
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: the characters surrounding the scan pointer
  - !ruby/struct:SM::Flow::P 
    body: "s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;) s.inspect # -&gt; '#&lt;StringScanner 0/21 @ &quot;Fri D...&quot;&gt;' s.scan_until /12/ # -&gt; &quot;Fri Dec 12&quot; s.inspect # -&gt; '#&lt;StringScanner 10/21 &quot;...ec 12&quot; @ &quot; 1975...&quot;&gt;'"
  type: :BULLET
full_name: StringScanner#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the <b><em>post</b>-match</em> (in the regular expression sense) of the last scan.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.scan(/\\w+/)           # -&gt; &quot;test&quot;\n  s.scan(/\\s+/)           # -&gt; &quot; &quot;\n  s.pre_match             # -&gt; &quot;test&quot;\n  s.post_match            # -&gt; &quot;string&quot;\n"
full_name: StringScanner#post_match
is_singleton: false
name: post_match
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reset the scan pointer (index 0) and clear matching data.
full_name: StringScanner#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the position of the scan pointer. In the 'reset' position, this value is zero. In the 'terminated' position (i.e. the string is exhausted), this value is the length of the string.
- !ruby/struct:SM::Flow::P 
  body: In short, it's a 0-based index into the string.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.pos               # -&gt; 0\n  s.scan_until /str/  # -&gt; &quot;test str&quot;\n  s.pos               # -&gt; 8\n  s.terminate         # -&gt; #&lt;StringScanner fin&gt;\n  s.pos               # -&gt; 11\n"
full_name: StringScanner#pointer
is_singleton: false
name: pointer
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Duplicates a StringScanner object.
full_name: StringScanner#initialize_copy
is_singleton: false
name: initialize_copy
params: |
  dup
  clone

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Scans the string <em>until</em> the <tt>pattern</tt> is matched. Returns the matched string if <tt>return_string_p</tt> is true, otherwise returns the number of bytes advanced. Advances the scan pointer if <tt>advance_pointer_p</tt>, otherwise not. This method does affect the match register.
full_name: StringScanner#search_full
is_singleton: false
name: search_full
params: " search_full(pattern, return_string_p, advance_pointer_p)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Tries to match with <tt>pattern</tt> at the current position. If there's a match, the scanner advances the &quot;scan pointer&quot; and returns the matched string. Otherwise, the scanner returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  p s.scan(/\\w+/)   # -&gt; &quot;test&quot;\n  p s.scan(/\\w+/)   # -&gt; nil\n  p s.scan(/\\s+/)   # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)   # -&gt; &quot;string&quot;\n  p s.scan(/./)     # -&gt; nil\n"
full_name: StringScanner#scan
is_singleton: false
name: scan
params: " scan(pattern) => String\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This returns the value that #scan would return, without advancing the scan pointer. The match register is affected, though."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.check /Fri/               # -&gt; &quot;Fri&quot;\n  s.pos                       # -&gt; 0\n  s.matched                   # -&gt; &quot;Fri&quot;\n  s.check /12/                # -&gt; nil\n  s.matched                   # -&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: "Mnemonic: it &quot;checks&quot; to see whether a #scan will return a value."
full_name: StringScanner#check
is_singleton: false
name: check
params: " check(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>s.rest_size</tt> is equivalent to <tt>s.rest.size</tt>.
full_name: StringScanner#rest_size
is_singleton: false
name: rest_size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to #eos?. This method is obsolete, use #eos? instead."
full_name: StringScanner#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This returns the value that #scan_until would return, without advancing the scan pointer. The match register is affected, though."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.check_until /12/          # -&gt; &quot;Fri Dec 12&quot;\n  s.pos                       # -&gt; 0\n  s.matched                   # -&gt; 12\n"
- !ruby/struct:SM::Flow::P 
  body: "Mnemonic: it &quot;checks&quot; to see whether a #scan_until will return a value."
full_name: StringScanner#check_until
is_singleton: false
name: check_until
params: " check_until(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Scans one byte and returns it. This method is NOT multi-byte character sensitive. See also #getch."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('ab')\n  s.get_byte         # =&gt; &quot;a&quot;\n  s.get_byte         # =&gt; &quot;b&quot;\n  s.get_byte         # =&gt; nil\n\n  s = StringScanner.new(&quot;\\244\\242&quot;)\n  s.get_byte         # =&gt; &quot;\\244&quot;\n  s.get_byte         # =&gt; &quot;\\242&quot;\n  s.get_byte         # =&gt; nil\n"
full_name: StringScanner#get_byte
is_singleton: false
name: get_byte
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new StringScanner object to scan over the given <tt>string</tt>. <tt>dup</tt> argument is obsolete and not used now.
full_name: StringScanner::new
is_singleton: true
name: new
params: " StringScanner.new(string, dup = false)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the scan pointer is at the end of the string.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  p s.eos?          # =&gt; false\n  s.scan(/test/)\n  p s.eos?          # =&gt; false\n  s.terminate\n  p s.eos?          # =&gt; true\n"
full_name: StringScanner#eos?
is_singleton: false
name: eos?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Equivalent to #matched_size. This method is obsolete; use #matched_size instead."
full_name: StringScanner#matchedsize
is_singleton: false
name: matchedsize
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: must_C_version
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "StringScanner provides for lexical scanning operations on a String. Here is an example of its usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('This is an example string')\n  s.eos?               # -&gt; false\n\n  p s.scan(/\\w+/)      # -&gt; &quot;This&quot;\n  p s.scan(/\\w+/)      # -&gt; nil\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\s+/)      # -&gt; nil\n  p s.scan(/\\w+/)      # -&gt; &quot;is&quot;\n  s.eos?               # -&gt; false\n\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;an&quot;\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;example&quot;\n  p s.scan(/\\s+/)      # -&gt; &quot; &quot;\n  p s.scan(/\\w+/)      # -&gt; &quot;string&quot;\n  s.eos?               # -&gt; true\n\n  p s.scan(/\\s+/)      # -&gt; nil\n  p s.scan(/\\w+/)      # -&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: Scanning a string means remembering the position of a <em>scan pointer</em>, which is just an index. The point of scanning is to move forward a bit at a time, so matches are sought after the scan pointer; usually immediately after it.
- !ruby/struct:SM::Flow::P 
  body: "Given the string &quot;test string&quot;, here are the pertinent scan pointer positions:"
- !ruby/struct:SM::Flow::VERB 
  body: "    t e s t   s t r i n g\n  0 1 2 ...             1\n                        0\n"
- !ruby/struct:SM::Flow::P 
  body: "When you #scan for a pattern (a regular expression), the match must occur at the character after the scan pointer. If you use #scan_until, then the match can occur anywhere after the scan pointer. In both cases, the scan pointer moves <em>just beyond</em> the last character of the match, ready to scan again from the next character onwards. This is demonstrated by the example above."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Categories
- !ruby/struct:SM::Flow::P 
  body: There are other methods besides the plain scanners. You can look ahead in the string without actually scanning. You can access the most recent match. You can modify the string being scanned, reset or terminate the scanner, find out or change the position of the scan pointer, skip ahead, and so on.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Advancing the Scan Pointer
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#getch"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#get_byte"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#scan"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#scan_until"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#skip"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#skip_until"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Looking Ahead
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#check"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#check_until"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#exist?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#match?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#peek"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Finding Where we Are
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#beginning_of_line? (#bol?)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#eos?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rest?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rest_size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pos"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Setting Where we Are
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#reset"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#terminate"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pos="
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Match Data
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#matched_size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "[]"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pre_match"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#post_match"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Miscellaneous
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "&lt;&lt;"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#concat"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#string"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#string="
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#unscan"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: There are aliases to several of the methods.
constants: []

full_name: StringScanner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: beginning_of_line?
- !ruby/object:RI::MethodSummary 
  name: check
- !ruby/object:RI::MethodSummary 
  name: check_until
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: concat
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: eos?
- !ruby/object:RI::MethodSummary 
  name: exist?
- !ruby/object:RI::MethodSummary 
  name: get_byte
- !ruby/object:RI::MethodSummary 
  name: getbyte
- !ruby/object:RI::MethodSummary 
  name: getch
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: match?
- !ruby/object:RI::MethodSummary 
  name: matched
- !ruby/object:RI::MethodSummary 
  name: matched?
- !ruby/object:RI::MethodSummary 
  name: matched_size
- !ruby/object:RI::MethodSummary 
  name: matchedsize
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: peep
- !ruby/object:RI::MethodSummary 
  name: pointer
- !ruby/object:RI::MethodSummary 
  name: pointer=
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: pos=
- !ruby/object:RI::MethodSummary 
  name: post_match
- !ruby/object:RI::MethodSummary 
  name: pre_match
- !ruby/object:RI::MethodSummary 
  name: reset
- !ruby/object:RI::MethodSummary 
  name: rest
- !ruby/object:RI::MethodSummary 
  name: rest?
- !ruby/object:RI::MethodSummary 
  name: rest_size
- !ruby/object:RI::MethodSummary 
  name: restsize
- !ruby/object:RI::MethodSummary 
  name: scan
- !ruby/object:RI::MethodSummary 
  name: scan_full
- !ruby/object:RI::MethodSummary 
  name: scan_until
- !ruby/object:RI::MethodSummary 
  name: search_full
- !ruby/object:RI::MethodSummary 
  name: skip
- !ruby/object:RI::MethodSummary 
  name: skip_until
- !ruby/object:RI::MethodSummary 
  name: string
- !ruby/object:RI::MethodSummary 
  name: string=
- !ruby/object:RI::MethodSummary 
  name: terminate
- !ruby/object:RI::MethodSummary 
  name: unscan
name: StringScanner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the &quot;rest&quot; of the string (i.e. everything after the scan pointer). If there is no more data (eos? = true), it returns <tt>&quot;&quot;</tt>.
full_name: StringScanner#rest
is_singleton: false
name: rest
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the scan pointer is at the beginning of the line.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;test\\ntest\\n&quot;)\n  s.bol?           # =&gt; true\n  s.scan(/te/)\n  s.bol?           # =&gt; false\n  s.scan(/st\\n/)\n  s.bol?           # =&gt; true\n  s.terminate\n  s.bol?           # =&gt; true\n"
full_name: StringScanner#beginning_of_line?
is_singleton: false
name: beginning_of_line?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the scan pointer to the previous position. Only one previous position is remembered, and it changes with each scanning operation.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.scan(/\\w+/)        # =&gt; &quot;test&quot;\n  s.unscan\n  s.scan(/../)         # =&gt; &quot;te&quot;\n  s.scan(/\\d/)         # =&gt; nil\n  s.unscan             # ScanError: unscan failed: previous match had failed\n"
full_name: StringScanner#unscan
is_singleton: false
name: unscan
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Modify the scan pointer.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.pos = 7            # -&gt; 7\n  s.rest               # -&gt; &quot;ring&quot;\n"
full_name: StringScanner#pos=
is_singleton: false
name: pos=
params: " pos=(n)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extracts a string corresponding to <tt>string[pos,len]</tt>, without advancing the scan pointer.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.peek(7)          # =&gt; &quot;test st&quot;\n  s.peek(7)          # =&gt; &quot;test st&quot;\n"
full_name: StringScanner#peek
is_singleton: false
name: peek
params: " peek(len)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Scans the string <em>until</em> the <tt>pattern</tt> is matched. Returns the substring up to and including the end of the match, advancing the scan pointer to that location. If there is no match, <tt>nil</tt> is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.scan_until(/1/)        # -&gt; &quot;Fri Dec 1&quot;\n  s.pre_match              # -&gt; &quot;Fri Dec &quot;\n  s.scan_until(/XYZ/)      # -&gt; nil\n"
full_name: StringScanner#scan_until
is_singleton: false
name: scan_until
params: " scan_until(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last matched string.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.match?(/\\w+/)     # -&gt; 4\n  s.matched           # -&gt; &quot;test&quot;\n"
full_name: StringScanner#matched
is_singleton: false
name: matched
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the scan pointer to the end of the string and clear matching data.
full_name: StringScanner#terminate
is_singleton: false
name: terminate
params: |
  terminate
  clear

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends <tt>str</tt> to the string being scanned. This method does not affect scan pointer.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.scan(/Fri /)\n  s &lt;&lt; &quot; +1000 GMT&quot;\n  s.string            # -&gt; &quot;Fri Dec 12 1975 14:39 +1000 GMT&quot;\n  s.scan(/Dec/)       # -&gt; &quot;Dec&quot;\n"
full_name: StringScanner#<<
is_singleton: false
name: "<<"
params: |
  concat(str)
  <<(str)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempts to skip over the given <tt>pattern</tt> beginning with the scan pointer. If it matches, the scan pointer is advanced to the end of the match, and the length of the match is returned. Otherwise, <tt>nil</tt> is returned.
- !ruby/struct:SM::Flow::P 
  body: "It's similar to #scan, but without returning the matched string."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  p s.skip(/\\w+/)   # -&gt; 4\n  p s.skip(/\\w+/)   # -&gt; nil\n  p s.skip(/\\s+/)   # -&gt; 1\n  p s.skip(/\\w+/)   # -&gt; 6\n  p s.skip(/./)     # -&gt; nil\n"
full_name: StringScanner#skip
is_singleton: false
name: skip
params: " skip(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the last match was successful.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.match?(/\\w+/)     # =&gt; 4\n  s.matched?          # =&gt; true\n  s.match?(/\\d+/)     # =&gt; nil\n  s.matched?          # =&gt; false\n"
full_name: StringScanner#matched?
is_singleton: false
name: matched?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Tests whether the given <tt>pattern</tt> is matched from the current scan pointer. Returns the matched string if <tt>return_string_p</tt> is true. Advances the scan pointer if <tt>advance_pointer_p</tt> is true. The match register is affected.
- !ruby/struct:SM::Flow::P 
  body: "&quot;full&quot; means &quot;#scan with full parameters&quot;."
full_name: StringScanner#scan_full
is_singleton: false
name: scan_full
params: " scan_full(pattern, return_string_p, advance_pointer_p)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the <b><em>pre</b>-match</em> (in the regular expression sense) of the last scan.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.scan(/\\w+/)           # -&gt; &quot;test&quot;\n  s.scan(/\\s+/)           # -&gt; &quot; &quot;\n  s.pre_match             # -&gt; &quot;test&quot;\n  s.post_match            # -&gt; &quot;string&quot;\n"
full_name: StringScanner#pre_match
is_singleton: false
name: pre_match
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends <tt>str</tt> to the string being scanned. This method does not affect scan pointer.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.scan(/Fri /)\n  s &lt;&lt; &quot; +1000 GMT&quot;\n  s.string            # -&gt; &quot;Fri Dec 12 1975 14:39 +1000 GMT&quot;\n  s.scan(/Dec/)       # -&gt; &quot;Dec&quot;\n"
full_name: StringScanner#concat
is_singleton: false
name: concat
params: |
  concat(str)
  <<(str)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the string being scanned to <tt>str</tt> and resets the scanner. Returns <tt>str</tt>.
full_name: StringScanner#string=
is_singleton: false
name: string=
params: " string=(str)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Advances the scan pointer until <tt>pattern</tt> is matched and consumed. Returns the number of bytes advanced, or <tt>nil</tt> if no match was found.
- !ruby/struct:SM::Flow::P 
  body: Look ahead to match <tt>pattern</tt>, and advance the scan pointer to the <em>end</em> of the match. Return the number of characters advanced, or <tt>nil</tt> if the match was unsuccessful.
- !ruby/struct:SM::Flow::P 
  body: "It's similar to #scan_until, but without returning the intervening string."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new(&quot;Fri Dec 12 1975 14:39&quot;)\n  s.skip_until /12/           # -&gt; 10\n  s                           #\n"
full_name: StringScanner#skip_until
is_singleton: false
name: skip_until
params: " skip_until(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "<tt>s.restsize</tt> is equivalent to <tt>s.rest_size</tt>. This method is obsolete; use #rest_size instead."
full_name: StringScanner#restsize
is_singleton: false
name: restsize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the size of the most recent match (see #matched), or <tt>nil</tt> if there was no recent match."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.check /\\w+/           # -&gt; &quot;test&quot;\n  s.matched_size          # -&gt; 4\n  s.check /\\d+/           # -&gt; nil\n  s.matched_size          # -&gt; nil\n"
full_name: StringScanner#matched_size
is_singleton: false
name: matched_size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the position of the scan pointer. In the 'reset' position, this value is zero. In the 'terminated' position (i.e. the string is exhausted), this value is the length of the string.
- !ruby/struct:SM::Flow::P 
  body: In short, it's a 0-based index into the string.
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.pos               # -&gt; 0\n  s.scan_until /str/  # -&gt; &quot;test str&quot;\n  s.pos               # -&gt; 8\n  s.terminate         # -&gt; #&lt;StringScanner fin&gt;\n  s.pos               # -&gt; 11\n"
full_name: StringScanner#pos
is_singleton: false
name: pos
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Scans one character and returns it. This method is multi-byte character sensitive. See also #get_byte."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('ab')\n  s.getch           # =&gt; &quot;a&quot;\n  s.getch           # =&gt; &quot;b&quot;\n  s.getch           # =&gt; nil\n\n  $KCODE = 'EUC'\n  s = StringScanner.new(&quot;\\244\\242&quot;)\n  s.getch           # =&gt; &quot;\\244\\242&quot;   # Japanese hira-kana &quot;A&quot; in EUC-JP\n  s.getch           # =&gt; nil\n"
full_name: StringScanner#getch
is_singleton: false
name: getch
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method is defined for backward compatibility.
full_name: StringScanner::must_C_version
is_singleton: true
name: must_C_version
params: " StringScanner.must_C_version\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Looks <em>ahead</em> to see if the <tt>pattern</tt> exists <em>anywhere</em> in the string, without advancing the scan pointer. This predicates whether a #scan_until will return a value."
- !ruby/struct:SM::Flow::VERB 
  body: "  s = StringScanner.new('test string')\n  s.exist? /s/            # -&gt; 3\n  s.scan /test/           # -&gt; &quot;test&quot;\n  s.exist? /s/            # -&gt; 6\n  s.exist? /e/            # -&gt; nil\n"
full_name: StringScanner#exist?
is_singleton: false
name: exist?
params: " exist?(pattern)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: When invoked with a block, yields all combinations of length <em>n</em> of elements from <em>ary</em> and then returns <em>ary</em> itself. The implementation makes no guarantees about the order in which the combinations are yielded.
- !ruby/struct:SM::Flow::P 
  body: When invoked without a block, returns an enumerator object instead.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "    a = [1, 2, 3, 4]\n    a.combination(1).to_a  #=&gt; [[1],[2],[3],[4]]\n    a.combination(2).to_a  #=&gt; [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]\n    a.combination(3).to_a  #=&gt; [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]\n    a.combination(4).to_a  #=&gt; [[1,2,3,4]]\n    a.combination(0).to_a  #=&gt; [[]] # one combination of length 0\n    a.combination(5).to_a  #=&gt; []   # no combinations of length 5\n"
full_name: Array#combination
is_singleton: false
name: combination
params: |
  ary.combination(n) { |c| block }    -> ary
  ary.combination(n)                  -> enumerator

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the elements in <em>self</em> corresponding to the given selector(s). The selectors may be either integer indices or ranges. See also <tt>Array#select</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w{ a b c d e f }\n   a.values_at(1, 3, 5)\n   a.values_at(1, 3, 5, 7)\n   a.values_at(-1, -3, -5, -7)\n   a.values_at(1..3, 2...5)\n"
full_name: Array#values_at
is_singleton: false
name: values_at
params: |
  array.values_at(selector,... )  -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Reference---Returns the element at <em>index</em>, or returns a subarray starting at <em>start</em> and continuing for <em>length</em> elements, or returns a subarray specified by <em>range</em>. Negative indices count backward from the end of the array (-1 is the last element). Returns nil if the index (or starting index) are out of range.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a[2] +  a[0] + a[1]    #=&gt; &quot;cab&quot;\n   a[6]                   #=&gt; nil\n   a[1, 2]                #=&gt; [ &quot;b&quot;, &quot;c&quot; ]\n   a[1..3]                #=&gt; [ &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a[4..7]                #=&gt; [ &quot;e&quot; ]\n   a[6..10]               #=&gt; nil\n   a[-3, 3]               #=&gt; [ &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   # special cases\n   a[5]                   #=&gt; nil\n   a[5, 1]                #=&gt; []\n   a[5..10]               #=&gt; []\n"
full_name: Array#[]
is_singleton: false
name: "[]"
params: |
  array[index]                -> obj      or nil
  array[start, length]        -> an_array or nil
  array[range]                -> an_array or nil
  array.slice(index)          -> obj      or nil
  array.slice(start, length)  -> an_array or nil
  array.slice(range)          -> an_array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: When invoked with a block, yield all permutations of length <em>n</em> of the elements of <em>ary</em>, then return the array itself. If <em>n</em> is not specified, yield all permutations of all elements. The implementation makes no guarantees about the order in which the permutations are yielded.
- !ruby/struct:SM::Flow::P 
  body: When invoked without a block, return an enumerator object instead.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "    a = [1, 2, 3]\n    a.permutation.to_a     #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]\n    a.permutation(1).to_a  #=&gt; [[1],[2],[3]]\n    a.permutation(2).to_a  #=&gt; [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]\n    a.permutation(3).to_a  #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]\n    a.permutation(0).to_a  #=&gt; [[]] # one permutation of length 0\n    a.permutation(4).to_a  #=&gt; []   # no permutations of length 4\n"
full_name: Array#permutation
is_singleton: false
name: permutation
params: |
  ary.permutation { |p| block }          -> array
  ary.permutation                        -> enumerator
  ary.permutation(n) { |p| block }       -> array
  ary.permutation(n)                     -> enumerator

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Drops first n elements from <em>ary</em>, and returns rest elements in an array.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.drop(3)             # =&gt; [4, 5, 0]\n"
full_name: Array#drop
is_singleton: false
name: drop
params: |
  ary.drop(n)               => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inserts the given values before the element with the given index (which may be negative).
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w{ a b c d }\n   a.insert(2, 99)         #=&gt; [&quot;a&quot;, &quot;b&quot;, 99, &quot;c&quot;, &quot;d&quot;]\n   a.insert(-2, 1, 2, 3)   #=&gt; [&quot;a&quot;, &quot;b&quot;, 99, &quot;c&quot;, 1, 2, 3, &quot;d&quot;]\n"
full_name: Array#insert
is_singleton: false
name: insert
params: |
  array.insert(index, obj...)  -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #length"
full_name: Array#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>self</em>. If called on a subclass of Array, converts the receiver to an Array object.
full_name: Array#to_a
is_singleton: false
name: to_a
params: |
  array.to_a     -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Append---Pushes the given object(s) on to the end of this array. This expression returns the array itself, so several appends may be chained together.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.push(&quot;d&quot;, &quot;e&quot;, &quot;f&quot;)\n           #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;, &quot;f&quot;]\n"
full_name: Array#push
is_singleton: false
name: push
params: |
  array.push(obj, ... )   -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>array</em> and <em>other</em> are the same object, or are both arrays with the same content.
full_name: Array#eql?
is_singleton: false
name: eql?
params: |
  array.eql?(other)  -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set Intersection---Returns a new array containing elements common to the two arrays, with no duplicates.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 1, 3, 5 ] &amp; [ 1, 2, 3 ]   #=&gt; [ 1, 3 ]\n"
full_name: Array#&
is_singleton: false
name: "&"
params: |
  array & other_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the index of the first object in <em>self</em> such that is <tt>==</tt> to <em>obj</em>. If a block is given instead of an argument, returns first object for which <em>block</em> is true. Returns <tt>nil</tt> if no match is found.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.index(&quot;b&quot;)        #=&gt; 1\n   a.index(&quot;z&quot;)        #=&gt; nil\n   a.index{|x|x==&quot;b&quot;}  #=&gt; 1\n"
- !ruby/struct:SM::Flow::P 
  body: This is an alias of <tt>#find_index</tt>.
full_name: Array#find_index
is_singleton: false
name: find_index
params: |
  array.index(obj)           ->  int or nil
  array.index {|item| block} ->  int or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comparison---Returns an integer (-1, 0, or +1) if this array is less than, equal to, or greater than other_array. Each object in each array is compared (using &lt;=&gt;). If any value isn't equal, then that inequality is the return value. If all the values found are equal, then the return is based on a comparison of the array lengths. Thus, two arrays are ``equal'' according to <tt>Array#&lt;=&gt;</tt> if and only if they have the same length and the value of each element is equal to the value of the corresponding element in the other array.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;a&quot;, &quot;c&quot; ]    &lt;=&gt; [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]   #=&gt; -1\n   [ 1, 2, 3, 4, 5, 6 ] &lt;=&gt; [ 1, 2 ]            #=&gt; +1\n"
full_name: Array#<=>
is_singleton: false
name: <=>
params: |
  array <=> other_array   ->  -1, 0, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes the last element from <em>self</em> and returns it, or <tt>nil</tt> if the array is empty.
- !ruby/struct:SM::Flow::P 
  body: If a number <em>n</em> is given, returns an array of the last n elements (or less) just like <tt>array.slice!(-n, n)</tt> does.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.pop     #=&gt; &quot;d&quot;\n   a.pop(2)  #=&gt; [&quot;b&quot;, &quot;c&quot;]\n   a         #=&gt; [&quot;a&quot;]\n"
full_name: Array#pop
is_singleton: false
name: pop
params: |
  array.pop    -> obj or nil
  array.pop(n) -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block passing in successive elements from <em>array</em>, returning an array containing those elements for which the block returns a true value (equivalent to <tt>Enumerable#select</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w{ a b c d e f }\n   a.select {|v| v =~ /[aeiou]/}   #=&gt; [&quot;a&quot;, &quot;e&quot;]\n"
full_name: Array#select
is_singleton: false
name: select
params: |
  array.select {|item| block } -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Tries to return the element at position <em>index</em>. If the index lies outside the array, the first form throws an <tt>IndexError</tt> exception, the second form returns <em>default</em>, and the third form returns the value of invoking the block, passing in the index. Negative values of <em>index</em> count from the end of the array.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ 11, 22, 33, 44 ]\n   a.fetch(1)               #=&gt; 22\n   a.fetch(-1)              #=&gt; 44\n   a.fetch(4, 'cat')        #=&gt; &quot;cat&quot;\n   a.fetch(4) { |i| i*i }   #=&gt; 16\n"
full_name: Array#fetch
is_singleton: false
name: fetch
params: |
  array.fetch(index)                    -> obj
  array.fetch(index, default )          -> obj
  array.fetch(index) {|index| block }   -> obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts any arguments to arrays, then merges elements of <em>self</em> with corresponding elements from each argument. This generates a sequence of <tt>self.size</tt> <em>n</em>-element arrays, where <em>n</em> is one more that the count of arguments. If the size of any argument is less than <tt>enumObj.size</tt>, <tt>nil</tt> values are supplied. If a block given, it is invoked for each output array, otherwise an array of arrays is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ 4, 5, 6 ]\n   b = [ 7, 8, 9 ]\n\n   [1,2,3].zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n   [1,2].zip(a,b)         #=&gt; [[1, 4, 7], [2, 5, 8]]\n   a.zip([1,2],[8])       #=&gt; [[4,1,8], [5,2,nil], [6,nil,nil]]\n"
full_name: Array#zip
is_singleton: false
name: zip
params: |
  array.zip(arg, ...)                   -> an_array
  array.zip(arg, ...) {| arr | block }  -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the contents of <em>self</em> with the contents of <em>other_array</em>, truncating or expanding if necessary.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a.replace([ &quot;x&quot;, &quot;y&quot;, &quot;z&quot; ])   #=&gt; [&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]\n   a                              #=&gt; [&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]\n"
full_name: Array#replace
is_singleton: false
name: replace
params: |
  array.replace(other_array)  -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes all elements from <em>self</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a.clear    #=&gt; [ ]\n"
full_name: Array#clear
is_singleton: false
name: clear
params: |
  array.clear    ->  array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Searches through an array whose elements are also arrays comparing <em>obj</em> with the first element of each contained array using obj.==. Returns the first contained array that matches (that is, the first associated array), or <tt>nil</tt> if no match is found. See also <tt>Array#rassoc</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   s1 = [ &quot;colors&quot;, &quot;red&quot;, &quot;blue&quot;, &quot;green&quot; ]\n   s2 = [ &quot;letters&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   s3 = &quot;foo&quot;\n   a  = [ s1, s2, s3 ]\n   a.assoc(&quot;letters&quot;)  #=&gt; [ &quot;letters&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.assoc(&quot;foo&quot;)      #=&gt; nil\n"
full_name: Array#assoc
is_singleton: false
name: assoc
params: |
  array.assoc(obj)   ->  an_array  or  nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given object is present in <em>self</em> (that is, if any object <tt>==</tt> <em>anObject</em>), <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.include?(&quot;b&quot;)   #=&gt; true\n   a.include?(&quot;z&quot;)   #=&gt; false\n"
full_name: Array#include?
is_singleton: false
name: include?
params: |
  array.include?(obj)   -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Array#yaml_initialize
is_singleton: false
name: yaml_initialize
params: ( tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array containing the items in <em>self</em> for which the block is not true.
full_name: Array#reject
is_singleton: false
name: reject
params: |
  array.reject {|item| block }  -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reverses <em>self</em> in place.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.reverse!       #=&gt; [&quot;c&quot;, &quot;b&quot;, &quot;a&quot;]\n   a                #=&gt; [&quot;c&quot;, &quot;b&quot;, &quot;a&quot;]\n"
full_name: Array#reverse!
is_singleton: false
name: reverse!
params: |
  array.reverse!   -> array 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shuffles elements in <em>self</em> in place.
full_name: Array#shuffle!
is_singleton: false
name: shuffle!
params: |
  array.shuffle!        -> array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---Two arrays are equal if they contain the same number of elements and if each element is equal to (according to Object.==) the corresponding element in the other array.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;c&quot; ]    == [ &quot;a&quot;, &quot;c&quot;, 7 ]     #=&gt; false\n   [ &quot;a&quot;, &quot;c&quot;, 7 ] == [ &quot;a&quot;, &quot;c&quot;, 7 ]     #=&gt; true\n   [ &quot;a&quot;, &quot;c&quot;, 7 ] == [ &quot;a&quot;, &quot;d&quot;, &quot;f&quot; ]   #=&gt; false\n"
full_name: Array#==
is_singleton: false
name: ==
params: |
  array == other_array   ->   bool

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Repetition---With a String argument, equivalent to self.join(str). Otherwise, returns a new array built by concatenating the <em>int</em> copies of <em>self</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 2, 3 ] * 3    #=&gt; [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]\n   [ 1, 2, 3 ] * &quot;,&quot;  #=&gt; &quot;1,2,3&quot;\n"
full_name: Array#*
is_singleton: false
name: "*"
params: |
  array * int     ->    an_array
  array * str     ->    a_string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a printable version of <em>array</em>.
full_name: Array#inspect
is_singleton: false
name: inspect
params: |
  array.inspect  -> string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prepends objects to the front of <em>array</em>. other elements up one.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.unshift(&quot;a&quot;)   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n   a.unshift(1, 2)  #=&gt; [ 1, 2, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n"
full_name: Array#unshift
is_singleton: false
name: unshift
params: |
  array.unshift(obj, ...)  -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the contents of <em>self</em> with the contents of <em>other_array</em>, truncating or expanding if necessary.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a.replace([ &quot;x&quot;, &quot;y&quot;, &quot;z&quot; ])   #=&gt; [&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]\n   a                              #=&gt; [&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]\n"
full_name: Array#initialize_copy
is_singleton: false
name: initialize_copy
params: |
  array.replace(other_array)  -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compute a hash-code for this array. Two arrays with the same content will have the same hash code (and will compare using <tt>eql?</tt>).
full_name: Array#hash
is_singleton: false
name: hash
params: |
  array.hash   -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The first three forms set the selected elements of <em>self</em> (which may be the entire array) to <em>obj</em>. A <em>start</em> of <tt>nil</tt> is equivalent to zero. A <em>length</em> of <tt>nil</tt> is equivalent to <em>self.length</em>. The last three forms fill the array with the value of the block. The block is passed the absolute index of each element to be filled.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.fill(&quot;x&quot;)              #=&gt; [&quot;x&quot;, &quot;x&quot;, &quot;x&quot;, &quot;x&quot;]\n   a.fill(&quot;z&quot;, 2, 2)        #=&gt; [&quot;x&quot;, &quot;x&quot;, &quot;z&quot;, &quot;z&quot;]\n   a.fill(&quot;y&quot;, 0..1)        #=&gt; [&quot;y&quot;, &quot;y&quot;, &quot;z&quot;, &quot;z&quot;]\n   a.fill {|i| i*i}         #=&gt; [0, 1, 4, 9]\n   a.fill(-2) {|i| i*i*i}   #=&gt; [0, 1, 8, 27]\n"
full_name: Array#fill
is_singleton: false
name: fill
params: |
  array.fill(obj)                                -> array
  array.fill(obj, start [, length])              -> array
  array.fill(obj, range )                        -> array
  array.fill {|index| block }                    -> array
  array.fill(start [, length] ) {|index| block } -> array
  array.fill(range) {|index| block }             -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the index of the last object in <em>array</em> <tt>==</tt> to <em>obj</em>. If a block is given instead of an argument, returns first object for which <em>block</em> is true. Returns <tt>nil</tt> if no match is found.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;b&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.rindex(&quot;b&quot;)        #=&gt; 3\n   a.rindex(&quot;z&quot;)        #=&gt; nil\n   a.rindex{|x|x==&quot;b&quot;}  #=&gt; 3\n"
full_name: Array#rindex
is_singleton: false
name: rindex
params: |
  array.rindex(obj)    ->  int or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array by removing duplicate values in <em>self</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;a&quot;, &quot;b&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.uniq   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]\n"
full_name: Array#uniq
is_singleton: false
name: uniq
params: |
  array.uniq   -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block once for each element of <em>self</em>, replacing the element with the value returned by <em>block</em>. See also <tt>Enumerable#collect</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.collect! {|x| x + &quot;!&quot; }\n   a             #=&gt;  [ &quot;a!&quot;, &quot;b!&quot;, &quot;c!&quot;, &quot;d!&quot; ]\n"
full_name: Array#map!
is_singleton: false
name: map!
params: |
  array.collect! {|item| block }   ->   array
  array.map!     {|item| block }   ->   array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array with elements of this array shuffled.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]\n   a.shuffle                 #=&gt; [2, 3, 1]\n"
full_name: Array#shuffle
is_singleton: false
name: shuffle
params: |
  array.shuffle -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes every element of <em>self</em> for which <em>block</em> evaluates to <tt>true</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.delete_if {|x| x &gt;= &quot;b&quot; }   #=&gt; [&quot;a&quot;]\n"
full_name: Array#delete_if
is_singleton: false
name: delete_if
params: |
  array.delete_if {|item| block }  -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>self</em> array contains no elements.
- !ruby/struct:SM::Flow::VERB 
  body: "   [].empty?   #=&gt; true\n"
full_name: Array#empty?
is_singleton: false
name: empty?
params: |
  array.empty?   -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first element of <em>self</em> and removes it (shifting all other elements down by one). Returns <tt>nil</tt> if the array is empty.
- !ruby/struct:SM::Flow::P 
  body: If a number <em>n</em> is given, returns an array of the first n elements (or less) just like <tt>array.slice!(0, n)</tt> does.
- !ruby/struct:SM::Flow::VERB 
  body: "   args = [ &quot;-m&quot;, &quot;-q&quot;, &quot;filename&quot; ]\n   args.shift     #=&gt; &quot;-m&quot;\n   args           #=&gt; [&quot;-q&quot;, &quot;filename&quot;]\n\n   args = [ &quot;-m&quot;, &quot;-q&quot;, &quot;filename&quot; ]\n   args.shift(2)  #=&gt; [&quot;-m&quot;, &quot;-q&quot;]\n   args           #=&gt; [&quot;filename&quot;]\n"
full_name: Array#shift
is_singleton: false
name: shift
params: |
  array.shift    -> obj or nil
  array.shift(n) -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Reference---Returns the element at <em>index</em>, or returns a subarray starting at <em>start</em> and continuing for <em>length</em> elements, or returns a subarray specified by <em>range</em>. Negative indices count backward from the end of the array (-1 is the last element). Returns nil if the index (or starting index) are out of range.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a[2] +  a[0] + a[1]    #=&gt; &quot;cab&quot;\n   a[6]                   #=&gt; nil\n   a[1, 2]                #=&gt; [ &quot;b&quot;, &quot;c&quot; ]\n   a[1..3]                #=&gt; [ &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a[4..7]                #=&gt; [ &quot;e&quot; ]\n   a[6..10]               #=&gt; nil\n   a[-3, 3]               #=&gt; [ &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   # special cases\n   a[5]                   #=&gt; nil\n   a[5, 1]                #=&gt; []\n   a[5..10]               #=&gt; []\n"
full_name: Array#slice
is_singleton: false
name: slice
params: |
  array[index]                -> obj      or nil
  array[start, length]        -> an_array or nil
  array[range]                -> an_array or nil
  array.slice(index)          -> obj      or nil
  array.slice(start, length)  -> an_array or nil
  array.slice(range)          -> an_array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of non-<tt>nil</tt> elements in <em>self</em>.
- !ruby/struct:SM::Flow::P 
  body: May be zero.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, nil, 3, nil, 5 ].nitems   #=&gt; 3\n"
full_name: Array#nitems
is_singleton: false
name: nitems
params: |
  array.nitems -> int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array. In the first form, the new array is empty. In the second it is created with <em>size</em> copies of <em>obj</em> (that is, <em>size</em> references to the same <em>obj</em>). The third form creates a copy of the array passed as a parameter (the array is generated by calling to_ary on the parameter). In the last form, an array of the given size is created. Each element in this array is calculated by passing the element's index to the given block and storing the return value.
- !ruby/struct:SM::Flow::VERB 
  body: "   Array.new\n   Array.new(2)\n   Array.new(5, &quot;A&quot;)\n\n   # only one copy of the object is created\n   a = Array.new(2, Hash.new)\n   a[0]['cat'] = 'feline'\n   a\n   a[1]['cat'] = 'Felix'\n   a\n\n   # here multiple copies are created\n   a = Array.new(2) { Hash.new }\n   a[0]['cat'] = 'feline'\n   a\n\n   squares = Array.new(5) {|i| i*i}\n   squares\n\n   copy = Array.new(squares)\n"
full_name: Array::new
is_singleton: true
name: new
params: |
  Array.new(size=0, obj=nil)
  Array.new(array)
  Array.new(size) {|index| block }

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a copy of <em>self</em> with all <tt>nil</tt> elements removed.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, nil, &quot;b&quot;, nil, &quot;c&quot;, nil ].compact\n                     #=&gt; [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n"
full_name: Array#compact
is_singleton: false
name: compact
params: |
  array.compact     ->  an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Array#pretty_print_cycle
is_singleton: false
name: pretty_print_cycle
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Choose a random element from an array.
full_name: Array#choice
is_singleton: false
name: choice
params: |
  array.choice        -> obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Array#delete_if</tt>, deleting elements from <em>self</em> for which the block evaluates to true, but returns <tt>nil</tt> if no changes were made. Also see <tt>Enumerable#reject</tt>.
full_name: Array#reject!
is_singleton: false
name: reject!
params: |
  array.reject! {|item| block }  -> array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes elements to the block until the block returns nil or false, then stops iterating and returns an array of all prior elements.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.take_while {|i| i &lt; 3 }   # =&gt; [1, 2]\n"
full_name: Array#take_while
is_singleton: false
name: take_while
params: |
  ary.take_while {|arr| block }   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deprecated; use <tt>Array#values_at</tt>.
full_name: Array#indexes
is_singleton: false
name: indexes
params: |
  array.indexes( i1, i2, ... iN )   -> an_array
  array.indices( i1, i2, ... iN )   -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array populated with the given objects.
- !ruby/struct:SM::Flow::VERB 
  body: "  Array.[]( 1, 'a', /^A/ )\n  Array[ 1, 'a', /^A/ ]\n  [ 1, 'a', /^A/ ]\n"
full_name: Array::[]
is_singleton: true
name: "[]"
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes duplicate elements from <em>self</em>. Returns <tt>nil</tt> if no changes are made (that is, no duplicates are found).
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;a&quot;, &quot;b&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.uniq!   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]\n   b = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   b.uniq!   #=&gt; nil\n"
full_name: Array#uniq!
is_singleton: false
name: uniq!
params: |
  array.uniq! -> array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: size
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements in <em>self</em>. May be zero.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 2, 3, 4, 5 ].length   #=&gt; 5\n"
full_name: Array#length
is_singleton: false
name: length
params: |
  array.length -> int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if this array is frozen (or temporarily frozen while being sorted).
full_name: Array#frozen?
is_singleton: false
name: frozen?
params: |
  array.frozen?  -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes items from <em>self</em> that are equal to <em>obj</em>. If the item is not found, returns <tt>nil</tt>. If the optional code block is given, returns the result of <em>block</em> if the item is not found.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;b&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.delete(&quot;b&quot;)                   #=&gt; &quot;b&quot;\n   a                               #=&gt; [&quot;a&quot;, &quot;c&quot;]\n   a.delete(&quot;z&quot;)                   #=&gt; nil\n   a.delete(&quot;z&quot;) { &quot;not found&quot; }   #=&gt; &quot;not found&quot;\n"
full_name: Array#delete
is_singleton: false
name: delete
params: |
  array.delete(obj)            -> obj or nil 
  array.delete(obj) { block }  -> obj or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Array#dclone
is_singleton: false
name: dclone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>self</em><tt>.join</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;e&quot;, &quot;i&quot;, &quot;o&quot; ].to_s   #=&gt; &quot;aeio&quot;\n"
full_name: Array#to_s
is_singleton: false
name: to_s
params: |
  array.to_s -> string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Searches through the array whose elements are also arrays. Compares <em>key</em> with the second element of each contained array using <tt>==</tt>. Returns the first contained array that matches. See also <tt>Array#assoc</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ [ 1, &quot;one&quot;], [2, &quot;two&quot;], [3, &quot;three&quot;], [&quot;ii&quot;, &quot;two&quot;] ]\n   a.rassoc(&quot;two&quot;)    #=&gt; [2, &quot;two&quot;]\n   a.rassoc(&quot;four&quot;)   #=&gt; nil\n"
full_name: Array#rassoc
is_singleton: false
name: rassoc
params: |
  array.rassoc(key) -> an_array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements. If an argument is given, counts the number of elements which equals to <em>obj</em>. If a block is given, counts the number of elements yielding a true value.
- !ruby/struct:SM::Flow::VERB 
  body: "   ary = [1, 2, 4, 2]\n   ary.count             # =&gt; 4\n   ary.count(2)          # =&gt; 2\n   ary.count{|x|x%2==0}  # =&gt; 3\n"
full_name: Array#count
is_singleton: false
name: count
params: |
  array.count      -> int
  array.count(obj) -> int
  array.count { |item| block }  -> int

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first element, or the first <tt>n</tt> elements, of the array. If the array is empty, the first form returns <tt>nil</tt>, and the second form returns an empty array.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;q&quot;, &quot;r&quot;, &quot;s&quot;, &quot;t&quot; ]\n   a.first    #=&gt; &quot;q&quot;\n   a.first(1) #=&gt; [&quot;q&quot;]\n   a.first(3) #=&gt; [&quot;q&quot;, &quot;r&quot;, &quot;s&quot;]\n"
full_name: Array#first
is_singleton: false
name: first
params: |
  array.first   ->   obj or nil
  array.first(n) -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each element in <em>self</em>, passing that element as a parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.each {|x| print x, &quot; -- &quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "   a -- b -- c --\n"
full_name: Array#each
is_singleton: false
name: each
params: |
  array.each {|item| block }   ->   array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block once for each element of <em>self</em>, replacing the element with the value returned by <em>block</em>. See also <tt>Enumerable#collect</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.collect! {|x| x + &quot;!&quot; }\n   a             #=&gt;  [ &quot;a!&quot;, &quot;b!&quot;, &quot;c!&quot;, &quot;d!&quot; ]\n"
full_name: Array#collect!
is_singleton: false
name: collect!
params: |
  array.collect! {|item| block }   ->   array
  array.map!     {|item| block }   ->   array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes <em>block</em> once for each element of <em>self</em>. Creates a new array containing the values returned by the block. See also <tt>Enumerable#collect</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.collect {|x| x + &quot;!&quot; }   #=&gt; [&quot;a!&quot;, &quot;b!&quot;, &quot;c!&quot;, &quot;d!&quot;]\n   a                          #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n"
full_name: Array#map
is_singleton: false
name: map
params: |
  array.collect {|item| block }  -> an_array
  array.map     {|item| block }  -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of all combinations of elements from all arrays. The length of the returned array is the product of the length of ary and the argument arrays
- !ruby/struct:SM::Flow::VERB 
  body: "   [1,2,3].product([4,5])     # =&gt; [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]\n   [1,2].product([1,2])       # =&gt; [[1,1],[1,2],[2,1],[2,2]]\n   [1,2].product([3,4],[5,6]) # =&gt; [[1,3,5],[1,3,6],[1,4,5],[1,4,6],\n                              #     [2,3,5],[2,3,6],[2,4,5],[2,4,6]]\n   [1,2].product()            # =&gt; [[1],[2]]\n   [1,2].product([])          # =&gt; []\n"
full_name: Array#product
is_singleton: false
name: product
params: |
  ary.product(other_ary, ...)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array that is a one-dimensional flattening of this array (recursively). That is, for every element that is an array, extract its elements into the new array. If the optional <em>level</em> argument determines the level of recursion to flatten.
- !ruby/struct:SM::Flow::VERB 
  body: "   s = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]\n   t = [ 4, 5, 6, [7, 8] ]   #=&gt; [4, 5, 6, [7, 8]]\n   a = [ s, t, 9, 10 ]       #=&gt; [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]\n   a.flatten                 #=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n   a = [ 1, 2, [3, [4, 5] ] ]\n   a.flatten(1)              #=&gt; [1, 2, 3, [4, 5]]\n"
full_name: Array#flatten
is_singleton: false
name: flatten
params: |
  array.flatten -> an_array
  array.flatten(level) -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes <em>block</em> once for each element of <em>self</em>. Creates a new array containing the values returned by the block. See also <tt>Enumerable#collect</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n   a.collect {|x| x + &quot;!&quot; }   #=&gt; [&quot;a!&quot;, &quot;b!&quot;, &quot;c!&quot;, &quot;d!&quot;]\n   a                          #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n"
full_name: Array#collect
is_singleton: false
name: collect
params: |
  array.collect {|item| block }  -> an_array
  array.map     {|item| block }  -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes <tt>nil</tt> elements from array. Returns <tt>nil</tt> if no changes were made.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, nil, &quot;b&quot;, nil, &quot;c&quot; ].compact! #=&gt; [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ].compact!           #=&gt; nil\n"
full_name: Array#compact!
is_singleton: false
name: compact!
params: |
  array.compact!    ->   array  or  nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>Array#each</tt>, but passes the index of the element instead of the element itself.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.each_index {|x| print x, &quot; -- &quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "   0 -- 1 -- 2 --\n"
full_name: Array#each_index
is_singleton: false
name: each_index
params: |
  array.each_index {|index| block }  ->  array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> for each element repeatedly <em>n</em> times or forever if none or nil is given. If a non-positive number is given or the array is empty, does nothing. Returns nil if the loop has finished without getting interrupted.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]\n   a.cycle {|x| puts x }  # print, a, b, c, a, b, c,.. forever.\n   a.cycle(2) {|x| puts x }  # print, a, b, c, a, b, c.\n"
full_name: Array#cycle
is_singleton: false
name: cycle
params: |
  ary.cycle {|obj| block }
  ary.cycle(n) {|obj| block }

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Array#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Drops elements up to, but not including, the first element for which the block returns nil or false and returns an array containing the remaining elements.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.drop_while {|i| i &lt; 3 }   # =&gt; [3, 4, 5, 0]\n"
full_name: Array#drop_while
is_singleton: false
name: drop_while
params: |
  ary.drop_while {|arr| block }   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Concatenation---Returns a new array built by concatenating the two arrays together to produce a third array.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 2, 3 ] + [ 4, 5 ]    #=&gt; [ 1, 2, 3, 4, 5 ]\n"
full_name: Array#+
is_singleton: false
name: +
params: |
  array + other_array   -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set Union---Returns a new array by joining this array with other_array, removing duplicates.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ] | [ &quot;c&quot;, &quot;d&quot;, &quot;a&quot; ]\n          #=&gt; [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n"
full_name: Array#|
is_singleton: false
name: "|"
params: |
  array | other_array     ->  an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculates the set of unambiguous abbreviations for the strings in <tt>self</tt>. If passed a pattern or a string, only the strings matching the pattern or starting with the string are considered.
- !ruby/struct:SM::Flow::VERB 
  body: "  %w{ car cone }.abbrev   #=&gt; { &quot;ca&quot; =&gt; &quot;car&quot;, &quot;car&quot; =&gt; &quot;car&quot;,\n                                &quot;co&quot; =&gt; &quot;cone&quot;, &quot;con&quot; =&gt; cone&quot;,\n                                &quot;cone&quot; =&gt; &quot;cone&quot; }\n"
full_name: Array#abbrev
is_singleton: false
name: abbrev
params: (pattern = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Append---Pushes the given object on to the end of this array. This expression returns the array itself, so several appends may be chained together.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 2 ] &lt;&lt; &quot;c&quot; &lt;&lt; &quot;d&quot; &lt;&lt; [ 3, 4 ]\n           #=&gt;  [ 1, 2, &quot;c&quot;, &quot;d&quot;, [ 3, 4 ] ]\n"
full_name: Array#<<
is_singleton: false
name: "<<"
params: |
  array << obj            -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Array Difference---Returns a new array that is a copy of the original array, removing any items that also appear in other_array. (If you need set-like behavior, see the library class Set.)
- !ruby/struct:SM::Flow::VERB 
  body: "   [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]  #=&gt;  [ 3, 3, 5 ]\n"
full_name: Array#-
is_singleton: false
name: "-"
params: |
  array - other_array    -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Deletes the element(s) given by an index (optionally with a length) or by a range. Returns the deleted object, subarray, or <tt>nil</tt> if the index is out of range. Equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "   def slice!(*args)\n     result = self[*args]\n     self[*args] = nil\n     result\n   end\n\n   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.slice!(1)     #=&gt; &quot;b&quot;\n   a               #=&gt; [&quot;a&quot;, &quot;c&quot;]\n   a.slice!(-1)    #=&gt; &quot;c&quot;\n   a               #=&gt; [&quot;a&quot;]\n   a.slice!(100)   #=&gt; nil\n   a               #=&gt; [&quot;a&quot;]\n"
full_name: Array#slice!
is_singleton: false
name: slice!
params: |
  array.slice!(index)         -> obj or nil
  array.slice!(start, length) -> sub_array or nil
  array.slice!(range)         -> sub_array or nil 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last element(s) of <em>self</em>. If the array is empty, the first form returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;w&quot;, &quot;x&quot;, &quot;y&quot;, &quot;z&quot; ].last   #=&gt; &quot;z&quot;\n"
full_name: Array#last
is_singleton: false
name: last
params: |
  array.last     ->  obj or nil
  array.last(n)  ->  an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Array#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deprecated; use <tt>Array#values_at</tt>.
full_name: Array#indices
is_singleton: false
name: indices
params: |
  array.indexes( i1, i2, ... iN )   -> an_array
  array.indices( i1, i2, ... iN )   -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Assumes that <em>self</em> is an array of arrays and transposes the rows and columns.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [[1,2], [3,4], [5,6]]\n   a.transpose   #=&gt; [[1, 3, 5], [2, 4, 6]]\n"
full_name: Array#transpose
is_singleton: false
name: transpose
params: |
  array.transpose -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends the elements in other_array to <em>self</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;b&quot; ].concat( [&quot;c&quot;, &quot;d&quot;] ) #=&gt; [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot; ]\n"
full_name: Array#concat
is_singleton: false
name: concat
params: |
  array.concat(other_array)   ->  array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the index of the first object in <em>self</em> such that is <tt>==</tt> to <em>obj</em>. If a block is given instead of an argument, returns first object for which <em>block</em> is true. Returns <tt>nil</tt> if no match is found.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.index(&quot;b&quot;)        #=&gt; 1\n   a.index(&quot;z&quot;)        #=&gt; nil\n   a.index{|x|x==&quot;b&quot;}  #=&gt; 1\n"
- !ruby/struct:SM::Flow::P 
  body: This is an alias of <tt>#find_index</tt>.
full_name: Array#index
is_singleton: false
name: index
params: |
  array.index(obj)           ->  int or nil
  array.index {|item| block} ->  int or nil

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Arrays are ordered, integer-indexed collections of any object. Array indexing starts at 0, as in C or Java. A negative index is assumed to be relative to the end of the array---that is, an index of -1 indicates the last element of the array, -2 is the next to last element in the array, and so on.
constants: []

full_name: Array
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: abbrev
- !ruby/object:RI::MethodSummary 
  name: assoc
- !ruby/object:RI::MethodSummary 
  name: at
- !ruby/object:RI::MethodSummary 
  name: choice
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: collect!
- !ruby/object:RI::MethodSummary 
  name: combination
- !ruby/object:RI::MethodSummary 
  name: compact
- !ruby/object:RI::MethodSummary 
  name: compact!
- !ruby/object:RI::MethodSummary 
  name: concat
- !ruby/object:RI::MethodSummary 
  name: count
- !ruby/object:RI::MethodSummary 
  name: cycle
- !ruby/object:RI::MethodSummary 
  name: dclone
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_at
- !ruby/object:RI::MethodSummary 
  name: delete_if
- !ruby/object:RI::MethodSummary 
  name: drop
- !ruby/object:RI::MethodSummary 
  name: drop_while
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_index
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: fill
- !ruby/object:RI::MethodSummary 
  name: find_index
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: flatten
- !ruby/object:RI::MethodSummary 
  name: flatten!
- !ruby/object:RI::MethodSummary 
  name: frozen?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: indexes
- !ruby/object:RI::MethodSummary 
  name: indices
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: insert
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: last
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: map
- !ruby/object:RI::MethodSummary 
  name: map!
- !ruby/object:RI::MethodSummary 
  name: nitems
- !ruby/object:RI::MethodSummary 
  name: pack
- !ruby/object:RI::MethodSummary 
  name: permutation
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: pretty_print_cycle
- !ruby/object:RI::MethodSummary 
  name: product
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: rassoc
- !ruby/object:RI::MethodSummary 
  name: reject
- !ruby/object:RI::MethodSummary 
  name: reject!
- !ruby/object:RI::MethodSummary 
  name: replace
- !ruby/object:RI::MethodSummary 
  name: reverse
- !ruby/object:RI::MethodSummary 
  name: reverse!
- !ruby/object:RI::MethodSummary 
  name: reverse_each
- !ruby/object:RI::MethodSummary 
  name: rindex
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: shelljoin
- !ruby/object:RI::MethodSummary 
  name: shift
- !ruby/object:RI::MethodSummary 
  name: shuffle
- !ruby/object:RI::MethodSummary 
  name: shuffle!
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: slice
- !ruby/object:RI::MethodSummary 
  name: slice!
- !ruby/object:RI::MethodSummary 
  name: sort
- !ruby/object:RI::MethodSummary 
  name: sort!
- !ruby/object:RI::MethodSummary 
  name: take
- !ruby/object:RI::MethodSummary 
  name: take_while
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_ary
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: transpose
- !ruby/object:RI::MethodSummary 
  name: uniq
- !ruby/object:RI::MethodSummary 
  name: uniq!
- !ruby/object:RI::MethodSummary 
  name: unshift
- !ruby/object:RI::MethodSummary 
  name: values_at
- !ruby/object:RI::MethodSummary 
  name: yaml_initialize
- !ruby/object:RI::MethodSummary 
  name: zip
- !ruby/object:RI::MethodSummary 
  name: "|"
name: Array
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>self</em>.
full_name: Array#to_ary
is_singleton: false
name: to_ary
params: |
  array.to_ary -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns first n elements from <em>ary</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [1, 2, 3, 4, 5, 0]\n   a.take(3)             # =&gt; [1, 2, 3]\n"
full_name: Array#take
is_singleton: false
name: take
params: |
  ary.take(n)               => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array containing <em>self</em>'s elements in reverse order.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ].reverse   #=&gt; [&quot;c&quot;, &quot;b&quot;, &quot;a&quot;]\n   [ 1 ].reverse               #=&gt; [1]\n"
full_name: Array#reverse
is_singleton: false
name: reverse
params: |
  array.reverse -> an_array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string created by converting each element of the array to a string, separated by <em>sep</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ].join        #=&gt; &quot;abc&quot;\n   [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ].join(&quot;-&quot;)   #=&gt; &quot;a-b-c&quot;\n"
full_name: Array#join
is_singleton: false
name: join
params: |
  array.join(sep=$,)    -> str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array created by sorting <em>self</em>. Comparisons for the sort will be done using the <tt>&lt;=&gt;</tt> operator or using an optional code block. The block implements a comparison between <em>a</em> and <em>b</em>, returning -1, 0, or +1. See also <tt>Enumerable#sort_by</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;d&quot;, &quot;a&quot;, &quot;e&quot;, &quot;c&quot;, &quot;b&quot; ]\n   a.sort                    #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;]\n   a.sort {|x,y| y &lt;=&gt; x }   #=&gt; [&quot;e&quot;, &quot;d&quot;, &quot;c&quot;, &quot;b&quot;, &quot;a&quot;]\n"
full_name: Array#sort
is_singleton: false
name: sort
params: |
  array.sort                   -> an_array 
  array.sort {| a,b | block }  -> an_array 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Assignment---Sets the element at <em>index</em>, or replaces a subarray starting at <em>start</em> and continuing for <em>length</em> elements, or replaces a subarray specified by <em>range</em>. If indices are greater than the current capacity of the array, the array grows automatically. A negative indices will count backward from the end of the array. Inserts elements if <em>length</em> is zero. If <tt>nil</tt> is used in the second and third form, deletes elements from <em>self</em>. An <tt>IndexError</tt> is raised if a negative index points past the beginning of the array. See also <tt>Array#push</tt>, and <tt>Array#unshift</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Array.new\n   a[4] = &quot;4&quot;;                 #=&gt; [nil, nil, nil, nil, &quot;4&quot;]\n   a[0, 3] = [ 'a', 'b', 'c' ] #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, nil, &quot;4&quot;]\n   a[1..2] = [ 1, 2 ]          #=&gt; [&quot;a&quot;, 1, 2, nil, &quot;4&quot;]\n   a[0, 2] = &quot;?&quot;               #=&gt; [&quot;?&quot;, 2, nil, &quot;4&quot;]\n   a[0..2] = &quot;A&quot;               #=&gt; [&quot;A&quot;, &quot;4&quot;]\n   a[-1]   = &quot;Z&quot;               #=&gt; [&quot;A&quot;, &quot;Z&quot;]\n   a[1..-1] = nil              #=&gt; [&quot;A&quot;]\n"
full_name: Array#[]=
is_singleton: false
name: "[]="
params: |
  array[index]         = obj                     ->  obj
  array[start, length] = obj or an_array or nil  ->  obj or an_array or nil
  array[range]         = obj or an_array or nil  ->  obj or an_array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the element at the specified index, returning that element, or <tt>nil</tt> if the index is out of range. See also <tt>Array#slice!</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w( ant bat cat dog )\n   a.delete_at(2)    #=&gt; &quot;cat&quot;\n   a                 #=&gt; [&quot;ant&quot;, &quot;bat&quot;, &quot;dog&quot;]\n   a.delete_at(99)   #=&gt; nil\n"
full_name: Array#delete_at
is_singleton: false
name: delete_at
params: |
  array.delete_at(index)  -> obj or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Packs the contents of <em>arr</em> into a binary sequence according to the directives in <em>aTemplateString</em> (see the table below) Directives ``A,'' ``a,'' and ``Z'' may be followed by a count, which gives the width of the resulting field. The remaining directives also may take a count, indicating the number of array elements to convert. If the count is an asterisk (``<tt>*</tt>''), all remaining array elements will be converted. Any of the directives ``<tt>sSiIlL</tt>'' may be followed by an underscore (``<tt>_</tt>'') to use the underlying platform's native size for the specified type; otherwise, they use a platform-independent size. Spaces are ignored in the template string. See also <tt>String#unpack</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   n = [ 65, 66, 67 ]\n   a.pack(&quot;A3A3A3&quot;)   #=&gt; &quot;a  b  c  &quot;\n   a.pack(&quot;a3a3a3&quot;)   #=&gt; &quot;a\\000\\000b\\000\\000c\\000\\000&quot;\n   n.pack(&quot;ccc&quot;)      #=&gt; &quot;ABC&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: Directives for <tt>pack</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: " Integer   | Array   |\n Directive | Element | Meaning\n ------------------------------------------------------------------------\n    C      | Integer | 8-bit unsigned integer (unsigned char)\n    S      | Integer | 16-bit unsigned integer, native endian (uint16_t)\n    L      | Integer | 32-bit unsigned integer, native endian (uint32_t)\n    Q      | Integer | 64-bit unsigned integer, native endian (uint64_t)\n           |         |\n    c      | Integer | 8-bit signed integer (char)\n    s      | Integer | 16-bit signed integer, native endian (int16_t)\n    l      | Integer | 32-bit signed integer, native endian (int32_t)\n    q      | Integer | 64-bit signed integer, native endian (int64_t)\n           |         |\n    S_     | Integer | unsigned short, native endian\n    I, I_  | Integer | unsigned int, native endian\n    L_     | Integer | unsigned long, native endian\n           |         |\n    s_     | Integer | signed short, native endian\n    i, i_  | Integer | signed int, native endian\n    l_     | Integer | signed long, native endian\n           |         |\n    n      | Integer | 16-bit unsigned integer, network (big-endian) byte order\n    N      | Integer | 32-bit unsigned integer, network (big-endian) byte order\n    v      | Integer | 16-bit unsigned integer, VAX (little-endian) byte order\n    V      | Integer | 32-bit unsigned integer, VAX (little-endian) byte order\n           |         |\n    U      | Integer | UTF-8 character\n    w      | Integer | BER-compressed integer\n\n Float     |         |\n Directive |         | Meaning\n ------------------------------------------------------------------------\n    D, d   | Float   | double-precision float, native format\n    F, f   | Float   | single-precision float, native format\n    E      | Float   | double-precision float, little-endian byte order\n    e      | Float   | single-precision float, little-endian byte order\n    G      | Float   | double-precision float, network (big-endian) byte order\n    g      | Float   | single-precision float, network (big-endian) byte order\n\n String    |         |\n Directive |         | Meaning\n ------------------------------------------------------------------------\n    A      | String  | arbitrary binary string (space padded, count is width)\n    a      | String  | arbitrary binary string (null padded, count is width)\n    Z      | String  | same as ``a'', except that null is added with *\n    B      | String  | bit string (MSB first)\n    b      | String  | bit string (LSB first)\n    H      | String  | hex string (high nibble first)\n    h      | String  | hex string (low nibble first)\n    u      | String  | UU-encoded string\n    M      | String  | quoted printable, MIME encoding (see RFC2045)\n    m      | String  | base64 encoded string (see RFC 2045, count is width)\n    P      | String  | pointer to a structure (fixed-length string)\n    p      | String  | pointer to a null-terminated string\n\n Misc.     |         |\n Directive |         | Meaning\n ------------------------------------------------------------------------\n    @      | ---     | moves to absolute position\n    X      | ---     | back up a byte\n    x      | ---     | null byte\n"
full_name: Array#pack
is_singleton: false
name: pack
params: |
  arr.pack ( aTemplateString ) -> aBinaryString

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>Array#each</tt>, but traverses <em>self</em> in reverse order.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; ]\n   a.reverse_each {|x| print x, &quot; &quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: "produces:"
- !ruby/struct:SM::Flow::VERB 
  body: "   c b a\n"
full_name: Array#reverse_each
is_singleton: false
name: reverse_each
params: |
  array.reverse_each {|item| block } 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sorts <em>self</em>. Comparisons for the sort will be done using the <tt>&lt;=&gt;</tt> operator or using an optional code block. The block implements a comparison between <em>a</em> and <em>b</em>, returning -1, 0, or +1. See also <tt>Enumerable#sort_by</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;d&quot;, &quot;a&quot;, &quot;e&quot;, &quot;c&quot;, &quot;b&quot; ]\n   a.sort                    #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;]\n   a.sort {|x,y| y &lt;=&gt; x }   #=&gt; [&quot;e&quot;, &quot;d&quot;, &quot;c&quot;, &quot;b&quot;, &quot;a&quot;]\n"
full_name: Array#sort!
is_singleton: false
name: sort!
params: |
  array.sort!                   -> array
  array.sort! {| a,b | block }  -> array 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the element at <em>index</em>. A negative index counts from the end of <em>self</em>. Returns <tt>nil</tt> if the index is out of range. See also <tt>Array#[]</tt>. (<tt>Array#at</tt> is slightly faster than <tt>Array#[]</tt>, as it does not accept ranges and so on.)
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot; ]\n   a.at(0)     #=&gt; &quot;a&quot;\n   a.at(-1)    #=&gt; &quot;e&quot;\n"
full_name: Array#at
is_singleton: false
name: at
params: |
  array.at(index)   ->   obj  or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Builds a command line string from an argument list <tt>array</tt> joining all elements escaped for Bourne shell and separated by a space. See +Shellwords::shelljoin+ for details.
full_name: Array#shelljoin
is_singleton: false
name: shelljoin
params: |
  array.shelljoin => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flattens <em>self</em> in place. Returns <tt>nil</tt> if no modifications were made (i.e., <em>array</em> contains no subarrays.) If the optional <em>level</em> argument determines the level of recursion to flatten.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ 1, 2, [3, [4, 5] ] ]\n   a.flatten!   #=&gt; [1, 2, 3, 4, 5]\n   a.flatten!   #=&gt; nil\n   a            #=&gt; [1, 2, 3, 4, 5]\n   a = [ 1, 2, [3, [4, 5] ] ]\n   a.flatten!(1) #=&gt; [1, 2, 3, [4, 5]]\n"
full_name: Array#flatten!
is_singleton: false
name: flatten!
params: |
  array.flatten! -> array or nil
  array.flatten!(level) -> array or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves a value from the PStore file data, by <em>name</em>. The hierarchy of Ruby objects stored under that root <em>name</em> will be returned.
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#[]
is_singleton: false
name: "[]"
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ends the current PStore#transaction, committing any changes to the data store immediately.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: " require &quot;pstore&quot;\n\n store = PStore.new(&quot;data_file.pstore&quot;)\n store.transaction do  # begin transaction\n   # load some data into the store...\n   store[:one] = 1\n   store[:two] = 2\n\n   store.commit        # end transaction here, committing changes\n\n   store[:three] = 3   # this change is never reached\n end\n"
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#commit
is_singleton: false
name: commit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method is just like PStore#[], save that you may also provide a <em>default</em> value for the object. In the event the specified <em>name</em> is not found in the data store, your <em>default</em> will be returned instead. If you do not specify a default, PStore::Error will be raised if the object is not found.
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#fetch
is_singleton: false
name: fetch
params: (name, default=PStore::Error)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The error type thrown by all PStore methods.
constants: []

full_name: PStore::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises PStore::Error if the calling code is not in a PStore#transaction or if the code is in a read-only PStore#transaction.
full_name: PStore#in_transaction_wr
is_singleton: false
name: in_transaction_wr
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Commits changes to the data store file.
full_name: PStore#commit_new
is_singleton: false
name: commit_new
params: (f)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the path to the data store file.
full_name: PStore#path
is_singleton: false
name: path
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: pstore
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a new transaction for the data store. Code executed inside a block passed to this method may read and write data to and from the data store file.
- !ruby/struct:SM::Flow::P 
  body: At the end of the block, changes are committed to the data store automatically. You may exit the transaction early with a call to either PStore#commit or PStore#abort. See those methods for details about how changes are handled. Raising an uncaught Exception in the block is equivalent to calling PStore#abort.
- !ruby/struct:SM::Flow::P 
  body: If <em>read_only</em> is set to <tt>true</tt>, you will only be allowed to read from the data store during the transaction and any attempts to change the data will raise a PStore::Error.
- !ruby/struct:SM::Flow::P 
  body: Note that PStore does not support nested transactions.
full_name: PStore#transaction
is_singleton: false
name: transaction
params: (read_only=false) {|pstore| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the supplied <em>name</em> is currently in the data store.
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#root?
is_singleton: false
name: root?
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: To construct a PStore object, pass in the <em>file</em> path where you would like the data to be stored.
full_name: PStore::new
is_singleton: true
name: new
params: (file)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes an object hierarchy from the data store, by <em>name</em>.
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction and it cannot be read-only. It will raise PStore::Error if called at any other time."
full_name: PStore#delete
is_singleton: false
name: delete
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ends the current PStore#transaction, discarding any changes to the data store.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: " require &quot;pstore&quot;\n\n store = PStore.new(&quot;data_file.pstore&quot;)\n store.transaction do  # begin transaction\n   store[:one] = 1     # this change is not applied, see below...\n   store[:two] = 2     # this change is not applied, see below...\n\n   store.abort         # end transaction here, discard all changes\n\n   store[:three] = 3   # this change is never reached\n end\n"
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#abort
is_singleton: false
name: abort
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: PStore implements a file based persistence mechanism based on a Hash. User code can store hierarchies of Ruby objects (values) into the data store file by name (keys). An object hierarchy may be just a single object. User code may later read values back from the data store or even update data, as needed.
- !ruby/struct:SM::Flow::P 
  body: The transactional behavior ensures that any changes succeed or fail together. This can be used to ensure that the data store is not left in a transitory state, where some values were updated but others were not.
- !ruby/struct:SM::Flow::P 
  body: Behind the scenes, Ruby objects are stored to the data store file with Marshal. That carries the usual limitations. Proc objects cannot be marshalled, for example.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: "Usage example:"
- !ruby/struct:SM::Flow::VERB 
  body: " require &quot;pstore&quot;\n\n # a mock wiki object...\n class WikiPage\n   def initialize( page_name, author, contents )\n     @page_name = page_name\n     @revisions = Array.new\n\n     add_revision(author, contents)\n   end\n\n   attr_reader :page_name\n\n   def add_revision( author, contents )\n     @revisions &lt;&lt; { :created  =&gt; Time.now,\n                     :author   =&gt; author,\n                     :contents =&gt; contents }\n   end\n\n   def wiki_page_references\n     [@page_name] + @revisions.last[:contents].scan(/\\b(?:[A-Z]+[a-z]+){2,}/)\n   end\n\n   # ...\n end\n\n # create a new page...\n home_page = WikiPage.new( &quot;HomePage&quot;, &quot;James Edward Gray II&quot;,\n                           &quot;A page about the JoysOfDocumentation...&quot; )\n\n # then we want to update page data and the index together, or not at all...\n wiki = PStore.new(&quot;wiki_pages.pstore&quot;)\n wiki.transaction do  # begin transaction; do all of this or none of it\n   # store page...\n   wiki[home_page.page_name] = home_page\n   # ensure that an index has been created...\n   wiki[:wiki_index] ||= Array.new\n   # update wiki index...\n   wiki[:wiki_index].push(*home_page.wiki_page_references)\n end                   # commit changes to wiki data store file\n\n ### Some time later... ###\n\n # read wiki data...\n wiki.transaction(true) do  # begin read-only transaction, no changes allowed\n   wiki.roots.each do |data_root_name|\n     p data_root_name\n     p wiki[data_root_name]\n   end\n end\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RDWR_ACCESS
  value: File::RDWR | File::CREAT | binmode
- !ruby/object:RI::Constant 
  comment: 
  name: RD_ACCESS
  value: File::RDONLY | binmode
- !ruby/object:RI::Constant 
  comment: 
  name: WR_ACCESS
  value: File::WRONLY | File::CREAT | File::TRUNC | binmode
full_name: PStore
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: abort
- !ruby/object:RI::MethodSummary 
  name: commit
- !ruby/object:RI::MethodSummary 
  name: commit_new
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: in_transaction
- !ruby/object:RI::MethodSummary 
  name: in_transaction_wr
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: root?
- !ruby/object:RI::MethodSummary 
  name: roots
- !ruby/object:RI::MethodSummary 
  name: transaction
name: PStore
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Stores an individual Ruby object or a hierarchy of Ruby objects in the data store file under the root <em>name</em>. Assigning to a <em>name</em> already in the data store clobbers the old data.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: " require &quot;pstore&quot;\n\n store = PStore.new(&quot;data_file.pstore&quot;)\n store.transaction do  # begin transaction\n   # load some data into the store...\n   store[:single_object] = &quot;My data...&quot;\n   store[:obj_heirarchy] = { &quot;Kev Jackson&quot; =&gt; [&quot;rational.rb&quot;, &quot;pstore.rb&quot;],\n                             &quot;James Gray&quot;  =&gt; [&quot;erb.rb&quot;, &quot;pstore.rb&quot;] }\n end                   # commit changes to data store file\n"
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction and it cannot be read-only. It will raise PStore::Error if called at any other time."
full_name: PStore#[]=
is_singleton: false
name: "[]="
params: (name, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the names of all object hierarchies currently in the store.
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method is only valid in a PStore#transaction. It will raise PStore::Error if called at any other time."
full_name: PStore#roots
is_singleton: false
name: roots
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises PStore::Error if the calling code is not in a PStore#transaction.
full_name: PStore#in_transaction
is_singleton: false
name: in_transaction
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Implements the Observable design pattern as a mixin so that other objects can be notified of changes in state. See observer.rb for details and an example.
constants: []

full_name: Observable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_observer
- !ruby/object:RI::MethodSummary 
  name: changed
- !ruby/object:RI::MethodSummary 
  name: changed?
- !ruby/object:RI::MethodSummary 
  name: count_observers
- !ruby/object:RI::MethodSummary 
  name: delete_observer
- !ruby/object:RI::MethodSummary 
  name: delete_observers
- !ruby/object:RI::MethodSummary 
  name: notify_observers
name: Observable
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Delete all observers associated with this object.
full_name: Observable#delete_observers
is_singleton: false
name: delete_observers
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add <tt>observer</tt> as an observer on this object. <tt>observer</tt> will now receive notifications.
full_name: Observable#add_observer
is_singleton: false
name: add_observer
params: (observer)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If this object's changed state is <tt>true</tt>, invoke the update method in each currently associated observer in turn, passing it the given arguments. The changed state is then set to <tt>false</tt>.
full_name: Observable#notify_observers
is_singleton: false
name: notify_observers
params: (*arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Delete <tt>observer</tt> as an observer on this object. It will no longer receive notifications.
full_name: Observable#delete_observer
is_singleton: false
name: delete_observer
params: (observer)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the changed state of this object. Notifications will be sent only if the changed <tt>state</tt> is <tt>true</tt>.
full_name: Observable#changed
is_singleton: false
name: changed
params: (state=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the number of observers associated with this object.
full_name: Observable#count_observers
is_singleton: false
name: count_observers
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Query the changed state of this object.
full_name: Observable#changed?
is_singleton: false
name: changed?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS::Assigner::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XSD::NS::Assigner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: assign
name: Assigner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS::Assigner#assign
is_singleton: false
name: assign
params: (ns)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#compare
is_singleton: false
name: compare
params: (ns, name, rhs)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::NS::FormatError
includes: []

instance_methods: []

name: FormatError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#assigned_tag?
is_singleton: false
name: assigned_tag?
params: (tag)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#clone_ns
is_singleton: false
name: clone_ns
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#name
is_singleton: false
name: name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#assigned?
is_singleton: false
name: assigned?
params: (ns)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (ns, tag)
comment: 
full_name: XSD::NS#each_ns
is_singleton: false
name: each_ns
params: () {|ns, tag| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS::new
is_singleton: true
name: new
params: (tag2ns = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#parse
is_singleton: false
name: parse
params: (str, local = false)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: default_namespace
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: $1 and $2 are necessary.
  name: ParseRegexp
  value: Regexp.new('^([^:]+)(?::(.+))?$')
full_name: XSD::NS
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: assign
- !ruby/object:RI::MethodSummary 
  name: assigned?
- !ruby/object:RI::MethodSummary 
  name: assigned_tag?
- !ruby/object:RI::MethodSummary 
  name: assigner=
- !ruby/object:RI::MethodSummary 
  name: clone_ns
- !ruby/object:RI::MethodSummary 
  name: compare
- !ruby/object:RI::MethodSummary 
  name: each_ns
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: parse_local
name: NS
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For local attribute key parsing
- !ruby/struct:SM::Flow::VERB 
  body: "  &lt;foo xmlns=&quot;urn:a&quot; xmlns:n1=&quot;urn:a&quot; bar=&quot;1&quot; n1:baz=&quot;2&quot; /&gt;\n    =&gt;\n  {}bar, {urn:a}baz\n"
full_name: XSD::NS#parse_local
is_singleton: false
name: parse_local
params: (elem)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#assign
is_singleton: false
name: assign
params: (ns, tag = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NS#assigner=
is_singleton: false
name: assigner=
params: (assigner)
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::ValueSpaceError
includes: []

instance_methods: []

name: ValueSpaceError
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: day
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: hour
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: min
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: month
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sec
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: sign
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: year
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, DurationLiteral)
full_name: XSD::XSDDuration
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDDuration
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDuration#_set
is_singleton: false
name: _set
params: (data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDuration::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDuration#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDuration#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::is_utf8
is_singleton: true
name: is_utf8
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::init
is_singleton: true
name: init
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::Charset::XSDError
includes: []

instance_methods: []

name: XSDError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::is_ces
is_singleton: true
name: is_ces
params: (str, code = $KCODE)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::is_euc
is_singleton: true
name: is_euc
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::encoding=
is_singleton: true
name: encoding=
params: (encoding)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::Charset::CharsetError
includes: []

instance_methods: []

name: CharsetError
superclass: XSDError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::is_sjis
is_singleton: true
name: is_sjis
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::encoding_to_xml
is_singleton: true
name: encoding_to_xml
params: (str, charset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::charset_label
is_singleton: true
name: charset_label
params: (encoding)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::is_us_ascii
is_singleton: true
name: is_us_ascii
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: charset_label
- !ruby/object:RI::MethodSummary 
  name: charset_str
- !ruby/object:RI::MethodSummary 
  name: encoding
- !ruby/object:RI::MethodSummary 
  name: encoding=
- !ruby/object:RI::MethodSummary 
  name: encoding_conv
- !ruby/object:RI::MethodSummary 
  name: encoding_from_xml
- !ruby/object:RI::MethodSummary 
  name: encoding_to_xml
- !ruby/object:RI::MethodSummary 
  name: init
- !ruby/object:RI::MethodSummary 
  name: is_ces
- !ruby/object:RI::MethodSummary 
  name: is_euc
- !ruby/object:RI::MethodSummary 
  name: is_sjis
- !ruby/object:RI::MethodSummary 
  name: is_us_ascii
- !ruby/object:RI::MethodSummary 
  name: is_utf8
- !ruby/object:RI::MethodSummary 
  name: xml_encoding_label
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Maps
  name: EncodingConvertMap
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: CharsetMap
  value: "{     'NONE' => 'us-ascii',     'EUC' => 'euc-jp',     'SJIS' => 'shift_jis',     'UTF8' => 'utf-8',     'X_ISO_8859_1' => 'iso-8859-1',     'X_UNKNOWN' => nil,   }"
- !ruby/object:RI::Constant 
  comment: 
  name: USASCIIRegexp
  value: Regexp.new("\\A#{us_ascii}*\\z", nil, "NONE")
- !ruby/object:RI::Constant 
  comment: 
  name: EUCRegexp
  value: Regexp.new("\\A#{character_euc}*\\z", nil, "NONE")
- !ruby/object:RI::Constant 
  comment: 
  name: SJISRegexp
  value: Regexp.new("\\A#{character_sjis}*\\z", nil, "NONE")
- !ruby/object:RI::Constant 
  comment: 
  name: UTF8Regexp
  value: Regexp.new("\\A#{character_utf8}*\\z", nil, "NONE")
full_name: XSD::Charset
includes: []

instance_methods: []

name: Charset
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::Charset::UnknownCharsetError
includes: []

instance_methods: []

name: UnknownCharsetError
superclass: CharsetError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::xml_encoding_label
is_singleton: true
name: xml_encoding_label
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::Charset::CharsetConversionError
includes: []

instance_methods: []

name: CharsetConversionError
superclass: CharsetError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::encoding_conv
is_singleton: true
name: encoding_conv
params: (str, enc_from, enc_to)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::encoding_from_xml
is_singleton: true
name: encoding_from_xml
params: (str, charset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: handlers
full_name: XSD::Charset::encoding
is_singleton: true
name: encoding
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Charset::charset_str
is_singleton: true
name: charset_str
params: (label)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "@data represents canonical space (ex. Integer: 123)."
  name: data
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "@is_nil represents this data is nil or not."
  name: is_nil
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The base class of XSD datatypes.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, AnySimpleTypeLiteral)
full_name: XSD::XSDAnySimpleType
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSD
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: check_lexical_format
- !ruby/object:RI::MethodSummary 
  name: init
- !ruby/object:RI::MethodSummary 
  name: screen_data
- !ruby/object:RI::MethodSummary 
  name: set
- !ruby/object:RI::MethodSummary 
  name: to_s
name: XSDAnySimpleType
superclass: NSDBase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnySimpleType#_set
is_singleton: false
name: _set
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnySimpleType::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnySimpleType#init
is_singleton: false
name: init
params: (type, value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "to_s creates a string which follows lexical space (ex. String: &quot;123&quot;)."
full_name: XSD::XSDAnySimpleType#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnySimpleType#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "set accepts a string which follows lexical space (ex. String: &quot;+123&quot;), or an object which follows canonical space (ex. Integer: 123)."
full_name: XSD::XSDAnySimpleType#set
is_singleton: false
name: set
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: raises ValueSpaceError if check failed
full_name: XSD::XSDAnySimpleType#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true or raise
full_name: XSD::XSDAnySimpleType#check_lexical_format
is_singleton: false
name: check_lexical_format
params: (value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, GYearLiteral)
full_name: XSD::XSDGYear
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDGYear
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYear#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYear::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYear#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Mapping::obj2xml
is_singleton: true
name: obj2xml
params: (obj, elename = nil, io = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::Mapping::xml2obj
is_singleton: true
name: xml2obj
params: (stream)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: obj2xml
- !ruby/object:RI::MethodSummary 
  name: xml2obj
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: MappingRegistry
  value: SOAP::Mapping::WSDLLiteralRegistry.new
- !ruby/object:RI::Constant 
  comment: 
  name: MappingOpt
  value: "{:default_encodingstyle => SOAP::LiteralNamespace}"
full_name: XSD::Mapping
includes: []

instance_methods: []

name: Mapping
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDecimal#screen_data_str
is_singleton: false
name: screen_data_str
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDecimal#nonzero?
is_singleton: false
name: nonzero?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDecimal#_set
is_singleton: false
name: _set
params: (data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDecimal::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, DecimalLiteral)
full_name: XSD::XSDDecimal
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: nonzero?
- !ruby/object:RI::MethodSummary 
  name: screen_data
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDDecimal
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: 0.0 -&gt; 0; right?
full_name: XSD::XSDDecimal#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDecimal#screen_data
is_singleton: false
name: screen_data
params: (d)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, ByteLiteral)
full_name: XSD::XSDByte
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDByte
superclass: XSDShort
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDByte#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDByte::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDByte#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::MethodDef#dump_method_def_end
is_singleton: false
name: dump_method_def_end
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::MethodDef#dump_method_def
is_singleton: false
name: dump_method_def
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if block_given?
comment: 
full_name: XSD::CodeGen::MethodDef::new
is_singleton: true
name: new
params: (name, *params) {|if block_given?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::MethodDef#dump_definition
is_singleton: false
name: dump_definition
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::MethodDef#dump
is_singleton: false
name: dump
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: definition
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XSD::CodeGen::MethodDef
includes: 
- !ruby/object:RI::IncludedModule 
  name: GenSupport
- !ruby/object:RI::IncludedModule 
  name: CommentDef
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_definition
- !ruby/object:RI::MethodSummary 
  name: dump_method_def
- !ruby/object:RI::MethodSummary 
  name: dump_method_def_end
name: MethodDef
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#def_classvar
is_singleton: false
name: def_classvar
params: (var, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_attribute
is_singleton: false
name: dump_attribute
params: (attrname, writable, varname)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_class_def_end
is_singleton: false
name: dump_class_def_end
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_attributes
is_singleton: false
name: dump_attributes
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef::new
is_singleton: true
name: new
params: (name, baseclass = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_classvar
is_singleton: false
name: dump_classvar
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_class_def
is_singleton: false
name: dump_class_def
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump
is_singleton: false
name: dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#def_attr
is_singleton: false
name: def_attr
params: (attrname, writable = true, varname = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XSD::CodeGen::ClassDef
includes: 
- !ruby/object:RI::IncludedModule 
  name: GenSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_attr
- !ruby/object:RI::MethodSummary 
  name: def_classvar
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_accessor
- !ruby/object:RI::MethodSummary 
  name: dump_attribute
- !ruby/object:RI::MethodSummary 
  name: dump_attributes
- !ruby/object:RI::MethodSummary 
  name: dump_class_def
- !ruby/object:RI::MethodSummary 
  name: dump_class_def_end
- !ruby/object:RI::MethodSummary 
  name: dump_classvar
name: ClassDef
superclass: ModuleDef
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ClassDef#dump_accessor
is_singleton: false
name: dump_accessor
params: (attrname, writable)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_value
is_singleton: false
name: dump_value
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_module_def_end
is_singleton: false
name: dump_module_def_end
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_static
is_singleton: false
name: dump_static
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_module_def
is_singleton: false
name: dump_module_def
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if block_given?
comment: 
full_name: XSD::CodeGen::ModuleDef#def_privatemethod
is_singleton: false
name: def_privatemethod
params: (name, *params) {|if block_given?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if block_given?
comment: 
full_name: XSD::CodeGen::ModuleDef#def_protectedmethod
is_singleton: false
name: def_protectedmethod
params: (name, *params) {|if block_given?| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XSD::CodeGen::ModuleDef
includes: 
- !ruby/object:RI::IncludedModule 
  name: GenSupport
- !ruby/object:RI::IncludedModule 
  name: CommentDef
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_method
- !ruby/object:RI::MethodSummary 
  name: def_code
- !ruby/object:RI::MethodSummary 
  name: def_const
- !ruby/object:RI::MethodSummary 
  name: def_method
- !ruby/object:RI::MethodSummary 
  name: def_privatemethod
- !ruby/object:RI::MethodSummary 
  name: def_protectedmethod
- !ruby/object:RI::MethodSummary 
  name: def_publicmethod
- !ruby/object:RI::MethodSummary 
  name: def_require
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_code
- !ruby/object:RI::MethodSummary 
  name: dump_const
- !ruby/object:RI::MethodSummary 
  name: dump_methods
- !ruby/object:RI::MethodSummary 
  name: dump_module_def
- !ruby/object:RI::MethodSummary 
  name: dump_module_def_end
- !ruby/object:RI::MethodSummary 
  name: dump_package_def
- !ruby/object:RI::MethodSummary 
  name: dump_package_def_end
- !ruby/object:RI::MethodSummary 
  name: dump_requirepath
- !ruby/object:RI::MethodSummary 
  name: dump_static
- !ruby/object:RI::MethodSummary 
  name: dump_value
name: ModuleDef
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_code
is_singleton: false
name: dump_code
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#def_code
is_singleton: false
name: def_code
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef::new
is_singleton: true
name: new
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_package_def_end
is_singleton: false
name: dump_package_def_end
params: (package)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: def_publicmethod
block_params: if block_given?
comment: 
full_name: XSD::CodeGen::ModuleDef#def_method
is_singleton: false
name: def_method
params: (name, *params) {|if block_given?| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump
is_singleton: false
name: dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_requirepath
is_singleton: false
name: dump_requirepath
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #def_method"
full_name: XSD::CodeGen::ModuleDef#def_publicmethod
is_singleton: false
name: def_publicmethod
params: (name, *params)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_methods
is_singleton: false
name: dump_methods
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#add_method
is_singleton: false
name: add_method
params: (m, visibility = :public)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_package_def
is_singleton: false
name: dump_package_def
params: (package)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#def_require
is_singleton: false
name: def_require
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#def_const
is_singleton: false
name: def_const
params: (const, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::ModuleDef#dump_const
is_singleton: false
name: dump_const
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: from the file 'keywords' in 1.9.
  name: KEYWORD
  value: "{}"
full_name: XSD::CodeGen
includes: []

instance_methods: []

name: CodeGen
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safeconstname?
is_singleton: false
name: safeconstname?
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safemethodname
is_singleton: false
name: safemethodname
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#dump_emptyline
is_singleton: false
name: dump_emptyline
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safevarname?
is_singleton: false
name: safevarname?
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#capitalize
is_singleton: false
name: capitalize
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safemethodname?
is_singleton: false
name: safemethodname?
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#untab
is_singleton: false
name: untab
params: (line, ts = 8)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::CodeGen::GenSupport
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: capitalize
- !ruby/object:RI::MethodSummary 
  name: dump_emptyline
- !ruby/object:RI::MethodSummary 
  name: format
- !ruby/object:RI::MethodSummary 
  name: keyword?
- !ruby/object:RI::MethodSummary 
  name: safeconstname
- !ruby/object:RI::MethodSummary 
  name: safeconstname?
- !ruby/object:RI::MethodSummary 
  name: safemethodname
- !ruby/object:RI::MethodSummary 
  name: safemethodname?
- !ruby/object:RI::MethodSummary 
  name: safevarname
- !ruby/object:RI::MethodSummary 
  name: safevarname?
- !ruby/object:RI::MethodSummary 
  name: trim_eol
- !ruby/object:RI::MethodSummary 
  name: trim_indent
- !ruby/object:RI::MethodSummary 
  name: uncapitalize
- !ruby/object:RI::MethodSummary 
  name: untab
name: GenSupport
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#keyword?
is_singleton: false
name: keyword?
params: (word)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#format
is_singleton: false
name: format
params: (str, indent = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safevarname
is_singleton: false
name: safevarname
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#trim_indent
is_singleton: false
name: trim_indent
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#uncapitalize
is_singleton: false
name: uncapitalize
params: (target)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#safeconstname
is_singleton: false
name: safeconstname
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::GenSupport#trim_eol
is_singleton: false
name: trim_eol
params: (str)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: RW
class_methods: []

comment: 
constants: []

full_name: XSD::CodeGen::CommentDef
includes: 
- !ruby/object:RI::IncludedModule 
  name: GenSupport
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump_comment
name: CommentDef
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::CodeGen::CommentDef#dump_comment
is_singleton: false
name: dump_comment
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#validate
is_singleton: false
name: validate
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#screen_data_str
is_singleton: false
name: screen_data_str
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#_set
is_singleton: false
name: _set
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#positive
is_singleton: false
name: positive
params: (v)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInteger#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, IntegerLiteral)
- !ruby/object:RI::Constant 
  comment: 
  name: PositiveMinInclusive
  value: "1"
full_name: XSD::XSDInteger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
- !ruby/object:RI::MethodSummary 
  name: positive
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
- !ruby/object:RI::MethodSummary 
  name: validate
name: XSDInteger
superclass: XSDDecimal
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#to_time
is_singleton: false
name: to_time
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#add_tz
is_singleton: false
name: add_tz
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#of2tz
is_singleton: false
name: of2tz
params: (offset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#tz2of
is_singleton: false
name: tz2of
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SecInDay
  value: "86400"
full_name: XSD::XSDDateTimeImpl
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_tz
- !ruby/object:RI::MethodSummary 
  name: of2tz
- !ruby/object:RI::MethodSummary 
  name: screen_data
- !ruby/object:RI::MethodSummary 
  name: to_date
- !ruby/object:RI::MethodSummary 
  name: to_datetime
- !ruby/object:RI::MethodSummary 
  name: to_obj
- !ruby/object:RI::MethodSummary 
  name: to_time
- !ruby/object:RI::MethodSummary 
  name: tz2of
name: XSDDateTimeImpl
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#to_datetime
is_singleton: false
name: to_datetime
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#to_obj
is_singleton: false
name: to_obj
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#to_date
is_singleton: false
name: to_date
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTimeImpl#screen_data
is_singleton: false
name: screen_data
params: (t)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonPositiveInteger#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonPositiveInteger::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, NonPositiveIntegerLiteral)
full_name: XSD::XSDNonPositiveInteger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDNonPositiveInteger
superclass: XSDInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonPositiveInteger#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonthDay#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, GMonthDayLiteral)
full_name: XSD::XSDGMonthDay
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDGMonthDay
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonthDay::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonthDay#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#epilogue
is_singleton: false
name: epilogue
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#text
is_singleton: false
name: text
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#do_parse
is_singleton: false
name: do_parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#tag_start
is_singleton: false
name: tag_start
params: (name, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::REXMLParser#tag_end
is_singleton: false
name: tag_end
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::REXMLParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: REXML::StreamListener
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_parse
- !ruby/object:RI::MethodSummary 
  name: epilogue
- !ruby/object:RI::MethodSummary 
  name: tag_end
- !ruby/object:RI::MethodSummary 
  name: tag_start
- !ruby/object:RI::MethodSummary 
  name: text
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: REXMLParser
superclass: XSD::XMLParser::Parser
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::XMLParser::Listener
includes: 
- !ruby/object:RI::IncludedModule 
  name: XML::Encoding_ja
instance_methods: []

name: Listener
superclass: XML::Parser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLParser#do_parse
is_singleton: false
name: do_parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::XMLParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_parse
name: XMLParser
superclass: XSD::XMLParser::Parser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser::factory
is_singleton: true
name: factory
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#prologue
is_singleton: false
name: prologue
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#epilogue
is_singleton: false
name: epilogue
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::FormatDecodeError
includes: []

instance_methods: []

name: FormatDecodeError
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#end_element
is_singleton: false
name: end_element
params: (name)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::ElementConstraintError
includes: []

instance_methods: []

name: ElementConstraintError
superclass: FormatDecodeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::ParseError
includes: []

instance_methods: []

name: ParseError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#start_element
is_singleton: false
name: start_element
params: (name, attrs)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#characters
is_singleton: false
name: characters
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#do_parse
is_singleton: false
name: do_parse
params: (string_or_readable)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser::new
is_singleton: true
name: new
params: (host, opt = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: charset
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_factory
- !ruby/object:RI::MethodSummary 
  name: create_parser
- !ruby/object:RI::MethodSummary 
  name: factory
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XSD::XMLParser::Parser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: characters
- !ruby/object:RI::MethodSummary 
  name: do_parse
- !ruby/object:RI::MethodSummary 
  name: end_element
- !ruby/object:RI::MethodSummary 
  name: epilogue
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: prologue
- !ruby/object:RI::MethodSummary 
  name: start_element
- !ruby/object:RI::MethodSummary 
  name: xmldecl_encoding=
name: Parser
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::UnknownAttributeError
includes: []

instance_methods: []

name: UnknownAttributeError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser::create_parser
is_singleton: true
name: create_parser
params: (host, opt = {})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::UnexpectedElementError
includes: []

instance_methods: []

name: UnexpectedElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#parse
is_singleton: false
name: parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XSD::XMLParser::Parser::UnknownElementError
includes: []

instance_methods: []

name: UnknownElementError
superclass: FormatDecodeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser::add_factory
is_singleton: true
name: add_factory
params: (factory)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::Parser#xmldecl_encoding=
is_singleton: false
name: xmldecl_encoding=
params: (charset)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser#filter_ns
is_singleton: false
name: filter_ns
params: (ns, attrs)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: $1 is necessary.
  name: NSParseRegexp
  value: Regexp.new('^xmlns:?(.*)$')
full_name: XSD::XMLParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: create_parser
- !ruby/object:RI::MethodSummary 
  name: filter_ns
name: XMLParser
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser#create_parser
is_singleton: false
name: create_parser
params: (host, opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_attr_value
is_singleton: false
name: on_attr_value
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def on_attribute_end(name); end
full_name: XSD::XMLParser::XMLScanner#on_stag_end_empty
is_singleton: false
name: on_stag_end_empty
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#valid_error
is_singleton: false
name: valid_error
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_charref_hex
is_singleton: false
name: on_charref_hex
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_stag_end
is_singleton: false
name: on_stag_end
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_attr_charref
is_singleton: false
name: on_attr_charref
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def on_end_document; end
full_name: XSD::XMLParser::XMLScanner#on_stag
is_singleton: false
name: on_stag
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def on_cdata(str); end
full_name: XSD::XMLParser::XMLScanner#on_etag
is_singleton: false
name: on_etag
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def on_xmldecl; end
full_name: XSD::XMLParser::XMLScanner#on_xmldecl_version
is_singleton: false
name: on_xmldecl_version
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_attr_entityref
is_singleton: false
name: on_attr_entityref
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#do_parse
is_singleton: false
name: do_parse
params: (string_or_readable)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: def on_pi(target, pi); end
full_name: XSD::XMLParser::XMLScanner#on_chardata
is_singleton: false
name: on_chardata
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#wellformed_error
is_singleton: false
name: wellformed_error
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#parse_error
is_singleton: false
name: parse_error
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_attribute
is_singleton: false
name: on_attribute
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_xmldecl_encoding
is_singleton: false
name: on_xmldecl_encoding
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_attr_charref_hex
is_singleton: false
name: on_attr_charref_hex
params: (code)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#warning
is_singleton: false
name: warning
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#scanner_kcode=
is_singleton: false
name: scanner_kcode=
params: (charset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_entityref
is_singleton: false
name: on_entityref
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XMLParser::XMLScanner#on_charref
is_singleton: false
name: on_charref
params: (code)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITY_REF_MAP
  value: "{     'lt' => '<',     'gt' => '>',     'amp' => '&',     'quot' => '\"',     'apos' => '\\''"
full_name: XSD::XMLParser::XMLScanner
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLScan::Visitor
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_parse
- !ruby/object:RI::MethodSummary 
  name: on_attr_charref
- !ruby/object:RI::MethodSummary 
  name: on_attr_charref_hex
- !ruby/object:RI::MethodSummary 
  name: on_attr_entityref
- !ruby/object:RI::MethodSummary 
  name: on_attr_value
- !ruby/object:RI::MethodSummary 
  name: on_attribute
- !ruby/object:RI::MethodSummary 
  name: on_chardata
- !ruby/object:RI::MethodSummary 
  name: on_charref
- !ruby/object:RI::MethodSummary 
  name: on_charref_hex
- !ruby/object:RI::MethodSummary 
  name: on_entityref
- !ruby/object:RI::MethodSummary 
  name: on_etag
- !ruby/object:RI::MethodSummary 
  name: on_stag
- !ruby/object:RI::MethodSummary 
  name: on_stag_end
- !ruby/object:RI::MethodSummary 
  name: on_stag_end_empty
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_encoding
- !ruby/object:RI::MethodSummary 
  name: on_xmldecl_version
- !ruby/object:RI::MethodSummary 
  name: parse_error
- !ruby/object:RI::MethodSummary 
  name: scanner_kcode=
- !ruby/object:RI::MethodSummary 
  name: valid_error
- !ruby/object:RI::MethodSummary 
  name: warning
- !ruby/object:RI::MethodSummary 
  name: wellformed_error
name: XMLScanner
superclass: XSD::XMLParser::Parser
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedByte#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedByte::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, UnsignedByteLiteral)
full_name: XSD::XSDUnsignedByte
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDUnsignedByte
superclass: XSDUnsignedShort
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedByte#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDouble::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ruby's Float is double-precision 64-bit floating point value.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, DoubleLiteral)
full_name: XSD::XSDDouble
includes: 
- !ruby/object:RI::IncludedModule 
  name: FloatConstants
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDDouble
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDouble#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDouble#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::IconvCharset::safe_iconv
is_singleton: true
name: safe_iconv
params: (to, from, str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: safe_iconv
comment: 
constants: []

full_name: XSD::IconvCharset
includes: []

instance_methods: []

name: IconvCharset
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDPositiveInteger#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDPositiveInteger::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, PositiveIntegerLiteral)
full_name: XSD::XSDPositiveInteger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDPositiveInteger
superclass: XSDNonNegativeInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDPositiveInteger#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This program is copyrighted free software by NAKAMURA, Hiroshi. You can redistribute it and/or modify it under the same terms of Ruby's license; either the dual license version in 2003, or any later version.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Namespace
  value: "'http://www.w3.org/2001/XMLSchema'"
- !ruby/object:RI::Constant 
  comment: 
  name: InstanceNamespace
  value: "'http://www.w3.org/2001/XMLSchema-instance'"
- !ruby/object:RI::Constant 
  comment: 
  name: AttrType
  value: "'type'"
- !ruby/object:RI::Constant 
  comment: 
  name: NilValue
  value: "'true'"
- !ruby/object:RI::Constant 
  comment: 
  name: AnyTypeLiteral
  value: "'anyType'"
- !ruby/object:RI::Constant 
  comment: 
  name: AnySimpleTypeLiteral
  value: "'anySimpleType'"
- !ruby/object:RI::Constant 
  comment: 
  name: NilLiteral
  value: "'nil'"
- !ruby/object:RI::Constant 
  comment: 
  name: StringLiteral
  value: "'string'"
- !ruby/object:RI::Constant 
  comment: 
  name: BooleanLiteral
  value: "'boolean'"
- !ruby/object:RI::Constant 
  comment: 
  name: DecimalLiteral
  value: "'decimal'"
- !ruby/object:RI::Constant 
  comment: 
  name: FloatLiteral
  value: "'float'"
- !ruby/object:RI::Constant 
  comment: 
  name: DoubleLiteral
  value: "'double'"
- !ruby/object:RI::Constant 
  comment: 
  name: DurationLiteral
  value: "'duration'"
- !ruby/object:RI::Constant 
  comment: 
  name: DateTimeLiteral
  value: "'dateTime'"
- !ruby/object:RI::Constant 
  comment: 
  name: TimeLiteral
  value: "'time'"
- !ruby/object:RI::Constant 
  comment: 
  name: DateLiteral
  value: "'date'"
- !ruby/object:RI::Constant 
  comment: 
  name: GYearMonthLiteral
  value: "'gYearMonth'"
- !ruby/object:RI::Constant 
  comment: 
  name: GYearLiteral
  value: "'gYear'"
- !ruby/object:RI::Constant 
  comment: 
  name: GMonthDayLiteral
  value: "'gMonthDay'"
- !ruby/object:RI::Constant 
  comment: 
  name: GDayLiteral
  value: "'gDay'"
- !ruby/object:RI::Constant 
  comment: 
  name: GMonthLiteral
  value: "'gMonth'"
- !ruby/object:RI::Constant 
  comment: 
  name: HexBinaryLiteral
  value: "'hexBinary'"
- !ruby/object:RI::Constant 
  comment: 
  name: Base64BinaryLiteral
  value: "'base64Binary'"
- !ruby/object:RI::Constant 
  comment: 
  name: AnyURILiteral
  value: "'anyURI'"
- !ruby/object:RI::Constant 
  comment: 
  name: QNameLiteral
  value: "'QName'"
- !ruby/object:RI::Constant 
  comment: 
  name: NormalizedStringLiteral
  value: "'normalizedString'"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: 3.3.2 token 3.3.3 language 3.3.4 NMTOKEN 3.3.5 NMTOKENS 3.3.6 Name 3.3.7 NCName 3.3.8 ID 3.3.9 IDREF 3.3.10 IDREFS 3.3.11 ENTITY 3.3.12 ENTITIES
  name: IntegerLiteral
  value: "'integer'"
- !ruby/object:RI::Constant 
  comment: 
  name: NonPositiveIntegerLiteral
  value: "'nonPositiveInteger'"
- !ruby/object:RI::Constant 
  comment: 
  name: NegativeIntegerLiteral
  value: "'negativeInteger'"
- !ruby/object:RI::Constant 
  comment: 
  name: LongLiteral
  value: "'long'"
- !ruby/object:RI::Constant 
  comment: 
  name: IntLiteral
  value: "'int'"
- !ruby/object:RI::Constant 
  comment: 
  name: ShortLiteral
  value: "'short'"
- !ruby/object:RI::Constant 
  comment: 
  name: ByteLiteral
  value: "'byte'"
- !ruby/object:RI::Constant 
  comment: 
  name: NonNegativeIntegerLiteral
  value: "'nonNegativeInteger'"
- !ruby/object:RI::Constant 
  comment: 
  name: UnsignedLongLiteral
  value: "'unsignedLong'"
- !ruby/object:RI::Constant 
  comment: 
  name: UnsignedIntLiteral
  value: "'unsignedInt'"
- !ruby/object:RI::Constant 
  comment: 
  name: UnsignedShortLiteral
  value: "'unsignedShort'"
- !ruby/object:RI::Constant 
  comment: 
  name: UnsignedByteLiteral
  value: "'unsignedByte'"
- !ruby/object:RI::Constant 
  comment: 
  name: PositiveIntegerLiteral
  value: "'positiveInteger'"
- !ruby/object:RI::Constant 
  comment: 
  name: AttrTypeName
  value: QName.new(InstanceNamespace, AttrType)
- !ruby/object:RI::Constant 
  comment: 
  name: AttrNilName
  value: QName.new(InstanceNamespace, NilLiteral)
- !ruby/object:RI::Constant 
  comment: 
  name: AnyTypeName
  value: QName.new(Namespace, AnyTypeLiteral)
- !ruby/object:RI::Constant 
  comment: 
  name: AnySimpleTypeName
  value: QName.new(Namespace, AnySimpleTypeLiteral)
full_name: XSD
includes: []

instance_methods: []

name: XSD
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NaN
  value: 0.0/0.0
- !ruby/object:RI::Constant 
  comment: 
  name: POSITIVE_INF
  value: +1.0/0.0
- !ruby/object:RI::Constant 
  comment: 
  name: NEGATIVE_INF
  value: -1.0/0.0
- !ruby/object:RI::Constant 
  comment: 
  name: POSITIVE_ZERO
  value: +1.0/POSITIVE_INF
- !ruby/object:RI::Constant 
  comment: 
  name: NEGATIVE_ZERO
  value: -1.0/POSITIVE_INF
- !ruby/object:RI::Constant 
  comment: 
  name: MIN_POSITIVE_SINGLE
  value: 2.0 ** -149
full_name: XSD::FloatConstants
includes: []

instance_methods: []

name: FloatConstants
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDTime#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDTime#_set
is_singleton: false
name: _set
params: (data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDTime::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, TimeLiteral)
full_name: XSD::XSDTime
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDTime
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDTime#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYearMonth#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYearMonth::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGYearMonth#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, GYearMonthLiteral)
full_name: XSD::XSDGYearMonth
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDGYearMonth
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NSDBase::types
is_singleton: true
name: types
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NSDBase::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NSDBase::inherited
is_singleton: true
name: inherited
params: (klass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NSDBase#init
is_singleton: false
name: init
params: (type)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: type
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: inherited
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: types
comment: 
- !ruby/struct:SM::Flow::P 
  body: The base class of all datatypes with Namespace.
constants: []

full_name: XSD::NSDBase
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: init
name: NSDBase
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDShort#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDShort::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, ShortLiteral)
full_name: XSD::XSDShort
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDShort
superclass: XSDInt
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDShort#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, LongLiteral)
full_name: XSD::XSDLong
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDLong
superclass: XSDInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDLong#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDLong::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDLong#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGDay#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGDay::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, GDayLiteral)
full_name: XSD::XSDGDay
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDGDay
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGDay#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDFloat::positive?
is_singleton: true
name: positive?
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDFloat::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: positive?
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, FloatLiteral)
full_name: XSD::XSDFloat
includes: 
- !ruby/object:RI::IncludedModule 
  name: FloatConstants
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: narrow32bit
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDFloat
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert to single-precision 32-bit floating point value.
full_name: XSD::XSDFloat#narrow32bit
is_singleton: false
name: narrow32bit
params: (f)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDFloat#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDFloat#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, NegativeIntegerLiteral)
full_name: XSD::XSDNegativeInteger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDNegativeInteger
superclass: XSDNonPositiveInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNegativeInteger#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNegativeInteger::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNegativeInteger#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTime#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTime#_set
is_singleton: false
name: _set
params: (data)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, DateTimeLiteral)
full_name: XSD::XSDDateTime
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDDateTime
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTime::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDateTime#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonNegativeInteger#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonNegativeInteger::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, NonNegativeIntegerLiteral)
full_name: XSD::XSDNonNegativeInteger
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDNonNegativeInteger
superclass: XSDInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNonNegativeInteger#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, QNameLiteral)
full_name: XSD::XSDQName
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _set
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDQName
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDQName#_set
is_singleton: false
name: _set
params: (data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDQName::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDQName#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDQName#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, AnyURILiteral)
full_name: XSD::XSDAnyURI
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDAnyURI
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnyURI::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDAnyURI#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, UnsignedIntLiteral)
full_name: XSD::XSDUnsignedInt
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDUnsignedInt
superclass: XSDUnsignedLong
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedInt#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedInt::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedInt#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, UnsignedLongLiteral)
full_name: XSD::XSDUnsignedLong
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDUnsignedLong
superclass: XSDNonNegativeInteger
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedLong#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedLong::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedLong#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, UnsignedShortLiteral)
full_name: XSD::XSDUnsignedShort
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDUnsignedShort
superclass: XSDUnsignedInt
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedShort#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedShort::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDUnsignedShort#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#[]
is_singleton: false
name: "[]"
params: (idx)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Empty
  value: NamedElements.new.freeze
full_name: XSD::NamedElements
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: concat
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: dup
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: elements
- !ruby/object:RI::MethodSummary 
  name: elements=
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: find_name
- !ruby/object:RI::MethodSummary 
  name: freeze
- !ruby/object:RI::MethodSummary 
  name: keys
- !ruby/object:RI::MethodSummary 
  name: size
name: NamedElements
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#dup
is_singleton: false
name: dup
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#elements
is_singleton: false
name: elements
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#find_name
is_singleton: false
name: find_name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#delete
is_singleton: false
name: delete
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#elements=
is_singleton: false
name: elements=
params: (rhs)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (element)
comment: 
full_name: XSD::NamedElements#each
is_singleton: false
name: each
params: () {|element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#+
is_singleton: false
name: +
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#<<
is_singleton: false
name: "<<"
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#concat
is_singleton: false
name: concat
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#keys
is_singleton: false
name: keys
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::NamedElements#freeze
is_singleton: false
name: freeze
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDString::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Primitive datatypes.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, StringLiteral)
full_name: XSD::XSDString
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDString
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDString#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNormalizedString::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Derived types
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, NormalizedStringLiteral)
full_name: XSD::XSDNormalizedString
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDNormalizedString
superclass: XSDString
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNormalizedString#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInt#mininclusive
is_singleton: false
name: mininclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInt::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, IntLiteral)
full_name: XSD::XSDInt
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: maxinclusive
- !ruby/object:RI::MethodSummary 
  name: mininclusive
name: XSDInt
superclass: XSDLong
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDInt#maxinclusive
is_singleton: false
name: maxinclusive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonth#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonth::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDGMonth#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, GMonthLiteral)
full_name: XSD::XSDGMonth
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDGMonth
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDBoolean::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, BooleanLiteral)
full_name: XSD::XSDBoolean
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
name: XSDBoolean
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDBoolean#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, DateLiteral)
full_name: XSD::XSDDate
includes: 
- !ruby/object:RI::IncludedModule 
  name: XSDDateTimeImpl
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _to_s
- !ruby/object:RI::MethodSummary 
  name: screen_data_str
name: XSDDate
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDate#screen_data_str
is_singleton: false
name: screen_data_str
params: (t)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDate::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDDate#_to_s
is_singleton: false
name: _to_s
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#eql?
is_singleton: false
name: eql?
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#===
is_singleton: false
name: ===
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#==
is_singleton: false
name: ==
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: namespace
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: source
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NormalizedNameRegexp
  value: /^\{([^}]*)\}(.*)$/
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY
  value: QName.new.freeze
full_name: XSD::QName
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dup_name
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: to_s
name: QName
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName::new
is_singleton: true
name: new
params: (namespace = nil, name = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#match
is_singleton: false
name: match
params: (rhs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#parse
is_singleton: false
name: parse
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#dump
is_singleton: false
name: dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::QName#dup_name
is_singleton: false
name: dup_name
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDHexBinary#string
is_singleton: false
name: string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: String in Ruby could be a binary.
full_name: XSD::XSDHexBinary::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, HexBinaryLiteral)
full_name: XSD::XSDHexBinary
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
- !ruby/object:RI::MethodSummary 
  name: set_encoded
- !ruby/object:RI::MethodSummary 
  name: string
name: XSDHexBinary
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDHexBinary#set_encoded
is_singleton: false
name: set_encoded
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDHexBinary#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDNil::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, NilLiteral)
- !ruby/object:RI::Constant 
  comment: 
  name: Value
  value: "'true'"
full_name: XSD::XSDNil
includes: []

instance_methods: []

name: XSDNil
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDBase64Binary#string
is_singleton: false
name: string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: String in Ruby could be a binary.
full_name: XSD::XSDBase64Binary::new
is_singleton: true
name: new
params: (value = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Type
  value: QName.new(Namespace, Base64BinaryLiteral)
full_name: XSD::XSDBase64Binary
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: screen_data
- !ruby/object:RI::MethodSummary 
  name: set_encoded
- !ruby/object:RI::MethodSummary 
  name: string
name: XSDBase64Binary
superclass: XSDAnySimpleType
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDBase64Binary#set_encoded
is_singleton: false
name: set_encoded
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XSD::XSDBase64Binary#screen_data
is_singleton: false
name: screen_data
params: (value)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: LoadError
includes: []

instance_methods: []

name: LoadError
superclass: ScriptError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RiDisplay::append_features
is_singleton: true
name: append_features
params: (display_class)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RiDisplay::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is a kind of 'flag' module. If you want to write your own 'ri' display module (perhaps because you'r writing an IDE or somesuch beast), you simply write a class which implements the various 'display' methods in 'DefaultDisplay', and include the 'RiDisplay' module in that class.
- !ruby/struct:SM::Flow::P 
  body: To access your class from the command line, you can do
- !ruby/struct:SM::Flow::VERB 
  body: "   ruby -r &lt;your source file&gt;  ../ri ....\n"
- !ruby/struct:SM::Flow::P 
  body: If folks <em>really</em> want to do this from the command line, I'll build an option in
constants: []

full_name: RiDisplay
includes: []

instance_methods: []

name: RiDisplay
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: UNIXSocket
includes: []

instance_methods: []

name: UNIXSocket
superclass: BasicSocket
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin::ConditionVariable#create_timer
is_singleton: false
name: create_timer
params: (timeout)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wake up all the waiters.
full_name: MonitorMixin::ConditionVariable#broadcast
is_singleton: false
name: broadcast
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "call #wait while the supplied block returns <tt>true</tt>."
full_name: MonitorMixin::ConditionVariable#wait_while
is_singleton: false
name: wait_while
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wake up and run the next waiter
full_name: MonitorMixin::ConditionVariable#signal
is_singleton: false
name: signal
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: MonitorMixin::ConditionVariable::Timeout
includes: []

instance_methods: []

name: Timeout
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin::ConditionVariable::new
is_singleton: true
name: new
params: (monitor)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin::ConditionVariable#count_waiters
is_singleton: false
name: count_waiters
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME: This isn't documented in Nutshell."
- !ruby/struct:SM::Flow::P 
  body: Since MonitorMixin.new_cond returns a ConditionVariable, and the example above calls while_wait and signal, this class should be documented.
constants: []

full_name: MonitorMixin::ConditionVariable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: broadcast
- !ruby/object:RI::MethodSummary 
  name: count_waiters
- !ruby/object:RI::MethodSummary 
  name: create_timer
- !ruby/object:RI::MethodSummary 
  name: signal
- !ruby/object:RI::MethodSummary 
  name: wait
- !ruby/object:RI::MethodSummary 
  name: wait_until
- !ruby/object:RI::MethodSummary 
  name: wait_while
name: ConditionVariable
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Create a new timer with the argument timeout, and add the current thread to the list of waiters. Then the thread is stopped. It will be resumed when a corresponding #signal occurs."
full_name: MonitorMixin::ConditionVariable#wait
is_singleton: false
name: wait
params: (timeout = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "call #wait until the supplied block returns <tt>true</tt>."
full_name: MonitorMixin::ConditionVariable#wait_until
is_singleton: false
name: wait_until
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Throw a ThreadError exception if the current thread does't own the monitor
full_name: MonitorMixin#mon_check_owner
is_singleton: false
name: mon_check_owner
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin::extend_object
is_singleton: true
name: extend_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: try_mon_enter
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempts to enter exclusive section. Returns <tt>false</tt> if lock fails.
full_name: MonitorMixin#mon_try_enter
is_singleton: false
name: mon_try_enter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: synchronize
block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enters exclusive section and executes the block. Leaves the exclusive section automatically when the block exits. See example under <tt>MonitorMixin</tt>.
full_name: MonitorMixin#mon_synchronize
is_singleton: false
name: mon_synchronize
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Leaves exclusive section.
full_name: MonitorMixin#mon_exit
is_singleton: false
name: mon_exit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin#mon_enter_for_cond
is_singleton: false
name: mon_enter_for_cond
params: (count)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin#mon_acquire
is_singleton: false
name: mon_acquire
params: (queue)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Adds monitor functionality to an arbitrary object by mixing the module with <tt>include</tt>. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'monitor.rb'\n\n   buf = []\n   buf.extend(MonitorMixin)\n   empty_cond = buf.new_cond\n\n   # consumer\n   Thread.start do\n     loop do\n       buf.synchronize do\n         empty_cond.wait_while { buf.empty? }\n         print buf.shift\n       end\n     end\n   end\n\n   # producer\n   while line = ARGF.gets\n     buf.synchronize do\n       buf.push(line)\n       empty_cond.signal\n     end\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: The consumer thread waits for the producer thread to push a line to buf while buf.empty?, and the producer thread (main thread) reads a line from ARGF and push it to buf, then call empty_cond.signal.
constants: []

full_name: MonitorMixin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: mon_acquire
- !ruby/object:RI::MethodSummary 
  name: mon_check_owner
- !ruby/object:RI::MethodSummary 
  name: mon_enter
- !ruby/object:RI::MethodSummary 
  name: mon_enter_for_cond
- !ruby/object:RI::MethodSummary 
  name: mon_exit
- !ruby/object:RI::MethodSummary 
  name: mon_exit_for_cond
- !ruby/object:RI::MethodSummary 
  name: mon_initialize
- !ruby/object:RI::MethodSummary 
  name: mon_release
- !ruby/object:RI::MethodSummary 
  name: mon_synchronize
- !ruby/object:RI::MethodSummary 
  name: mon_try_enter
- !ruby/object:RI::MethodSummary 
  name: new_cond
- !ruby/object:RI::MethodSummary 
  name: synchronize
- !ruby/object:RI::MethodSummary 
  name: try_mon_enter
name: MonitorMixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: mon_release requires Thread.critical == true
full_name: MonitorMixin#mon_release
is_singleton: false
name: mon_release
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME: This isn't documented in Nutshell."
- !ruby/struct:SM::Flow::P 
  body: "Create a new condition variable for this monitor. This facilitates control of the monitor with #signal and #wait."
full_name: MonitorMixin#new_cond
is_singleton: false
name: new_cond
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: MonitorMixin#mon_exit_for_cond
is_singleton: false
name: mon_exit_for_cond
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: called by initialize method to set defaults for instance variables.
full_name: MonitorMixin#mon_initialize
is_singleton: false
name: mon_initialize
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #mon_try_enter"
full_name: MonitorMixin#try_mon_enter
is_singleton: false
name: try_mon_enter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #mon_synchronize"
full_name: MonitorMixin#synchronize
is_singleton: false
name: synchronize
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enters exclusive section.
full_name: MonitorMixin#mon_enter
is_singleton: false
name: mon_enter
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: TailGroup
includes: []

instance_methods: []

name: TailGroup
superclass: Test::Unit::TestCase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <em>errno</em> corresponds to a known system error code, constructs the appropriate <tt>Errno</tt> class for that error, otherwise constructs a generic <tt>SystemCallError</tt> object. The error number is subsequently available via the <tt>errno</tt> method.
full_name: SystemCallError::new
is_singleton: true
name: new
params: |
  SystemCallError.new(msg, errno)  => system_call_error_subclass

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: SystemCallError
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: errno
name: SystemCallError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if the receiver is a generic <tt>SystemCallError</tt>, or if the error numbers <em>self</em> and <em>other</em> are the same.
full_name: SystemCallError::===
is_singleton: true
name: ===
params: |
  system_call_error === other  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return this SystemCallError's error number.
full_name: SystemCallError#errno
is_singleton: false
name: errno
params: |
  system_call_error.errno   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: delete
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unlinks the file. On UNIX-like systems, it is often a good idea to unlink a temporary file immediately after creating and opening it, because it leaves other programs zero chance to access the file.
full_name: Tempfile#unlink
is_singleton: false
name: unlink
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: length
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of the temporary file. As a side effect, the IO buffer is flushed before determining the size.
full_name: Tempfile#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: A class for managing temporary files. This library is written to be thread safe.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: MAX_TRY
  value: "10"
full_name: Tempfile
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: close!
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: make_tmpname
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: unlink
name: Tempfile
superclass: DelegateClass(File)
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (tempfile)
comment: 
- !ruby/struct:SM::Flow::P 
  body: If no block is given, this is a synonym for new().
- !ruby/struct:SM::Flow::P 
  body: If a block is given, it will be passed tempfile as an argument, and the tempfile will automatically be closed when the block terminates. In this case, open() returns nil.
full_name: Tempfile::open
is_singleton: true
name: open
params: (*args) {|tempfile| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the full path name of the temporary file.
full_name: Tempfile#path
is_singleton: false
name: path
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a temporary file of mode 0600 in the temporary directory, opens it with mode &quot;w+&quot;, and returns a Tempfile object which represents the created temporary file. A Tempfile object can be treated just like a normal File object.
- !ruby/struct:SM::Flow::P 
  body: The basename parameter is used to determine the name of a temporary file. If an Array is given, the first element is used as prefix string and the second as suffix string, respectively. Otherwise it is treated as prefix string.
- !ruby/struct:SM::Flow::P 
  body: If tmpdir is omitted, the temporary directory is determined by Dir::tmpdir provided by 'tmpdir.rb'. When $SAFE &gt; 0 and the given tmpdir is tainted, it uses /tmp. (Note that ENV values are tainted by default)
full_name: Tempfile::new
is_singleton: true
name: new
params: (basename, tmpdir=Dir::tmpdir)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the file. If the optional flag is true, unlinks the file after closing.
- !ruby/struct:SM::Flow::P 
  body: If you don't explicitly unlink the temporary file, the removal will be delayed until the object is finalized.
full_name: Tempfile#close
is_singleton: false
name: close
params: (unlink_now=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #size"
full_name: Tempfile#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #unlink"
full_name: Tempfile#delete
is_singleton: false
name: delete
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes and unlinks the file.
full_name: Tempfile#close!
is_singleton: false
name: close!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Tempfile#make_tmpname
is_singleton: false
name: make_tmpname
params: (basename, n)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens or reopens the file with mode &quot;r+&quot;.
full_name: Tempfile#open
is_singleton: false
name: open
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP::StringInputMethod#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP::StringInputMethod#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP::StringInputMethod::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XMP::StringInputMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: puts
name: StringInputMethod
superclass: IRB::InputMethod
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP::StringInputMethod#puts
is_singleton: false
name: puts
params: (exps)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP::new
is_singleton: true
name: new
params: (bind = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: XMP#puts
is_singleton: false
name: puts
params: (exps)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: XMP
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: puts
name: XMP
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ExceptionForMatrix
includes: []

instance_methods: []

name: ExceptionForMatrix
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: shellwords
- !ruby/object:RI::AliasName 
  name: split
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Splits a string into an array of tokens in the same way the UNIX Bourne shell does.
- !ruby/struct:SM::Flow::VERB 
  body: "  argv = Shellwords.split('here are &quot;two words&quot;')\n  argv #=&gt; [&quot;here&quot;, &quot;are&quot;, &quot;two words&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: +String#shellsplit+ is a shorthand for this function.
- !ruby/struct:SM::Flow::VERB 
  body: "  argv = 'here are &quot;two words&quot;'.shellsplit\n  argv #=&gt; [&quot;here&quot;, &quot;are&quot;, &quot;two words&quot;]\n"
full_name: Shellwords#shellsplit
is_singleton: false
name: shellsplit
params: (line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #shellsplit"
full_name: Shellwords#split
is_singleton: false
name: split
params: (line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #shellescape"
full_name: Shellwords#escape
is_singleton: false
name: escape
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This module manipulates strings according to the word parsing rules of the UNIX Bourne shell.
- !ruby/struct:SM::Flow::P 
  body: The shellwords() function was originally a port of shellwords.pl, but modified to conform to POSIX / SUSv3 (IEEE Std 1003.1-2001).
- !ruby/struct:SM::Flow::P 
  body: "Authors:"
- !ruby/struct:SM::Flow::VERB 
  body: "  - Wakou Aoyama\n  - Akinori MUSHA &lt;knu@iDaemons.org&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: "Contact:"
- !ruby/struct:SM::Flow::VERB 
  body: "  - Akinori MUSHA &lt;knu@iDaemons.org&gt; (current maintainer)\n"
constants: []

full_name: Shellwords
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: shellescape
- !ruby/object:RI::MethodSummary 
  name: shelljoin
- !ruby/object:RI::MethodSummary 
  name: shellsplit
- !ruby/object:RI::MethodSummary 
  name: shellwords
- !ruby/object:RI::MethodSummary 
  name: split
name: Shellwords
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: escape
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escapes a string so that it can be safely used in a Bourne shell command line.
- !ruby/struct:SM::Flow::P 
  body: Note that a resulted string should be used unquoted and is not intended for use in double quotes nor in single quotes.
- !ruby/struct:SM::Flow::VERB 
  body: "  open(&quot;| grep #{Shellwords.escape(pattern)} file&quot;) { |pipe|\n    # ...\n  }\n"
- !ruby/struct:SM::Flow::P 
  body: +String#shellescape+ is a shorthand for this function.
- !ruby/struct:SM::Flow::VERB 
  body: "  open(&quot;| grep #{pattern.shellescape} file&quot;) { |pipe|\n    # ...\n  }\n"
full_name: Shellwords#shellescape
is_singleton: false
name: shellescape
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #shelljoin"
full_name: Shellwords#join
is_singleton: false
name: join
params: (array)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #shellsplit"
full_name: Shellwords#shellwords
is_singleton: false
name: shellwords
params: (line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: join
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Builds a command line string from an argument list <tt>array</tt> joining all elements escaped for Bourne shell and separated by a space.
- !ruby/struct:SM::Flow::VERB 
  body: "  open('|' + Shellwords.join(['grep', pattern, *files])) { |pipe|\n    # ...\n  }\n"
- !ruby/struct:SM::Flow::P 
  body: +Array#shelljoin+ is a shorthand for this function.
- !ruby/struct:SM::Flow::VERB 
  body: "  open('|' + ['grep', pattern, *files].shelljoin) { |pipe|\n    # ...\n  }\n"
full_name: Shellwords#shelljoin
is_singleton: false
name: shelljoin
params: (array)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Numeric#divmod</tt>.
full_name: Bignum#divmod
is_singleton: false
name: divmod
params: |
  big.divmod(numeric)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bit Reference---Returns the <em>n</em>th bit in the (assumed) binary representation of <em>big</em>, where <em>big</em>[0] is the least significant bit.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = 9**15\n   50.downto(0) do |n|\n     print a[n]\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   000101110110100000111000011110010100111100010111001\n"
full_name: Bignum#[]
is_singleton: false
name: "[]"
params: |
  big[n] -> 0, 1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the floating point result of dividing <em>big</em> by <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   -1234567890987654321.quo(13731)      #=&gt; -89910996357705.5\n   -1234567890987654321.quo(13731.24)   #=&gt; -89909424858035.7\n"
full_name: Bignum#fdiv
is_singleton: false
name: fdiv
params: |
  big.quo(numeric) -> float
  big.fdiv(numeric) -> float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of bytes in the machine representation of <em>big</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (256**10 - 1).size   #=&gt; 12\n   (256**20 - 1).size   #=&gt; 20\n   (256**40 - 1).size   #=&gt; 40\n"
full_name: Bignum#size
is_singleton: false
name: size
params: |
  big.size -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inverts the bits in big. As Bignums are conceptually infinite length, the result acts as if it had an infinite number of one bits to the left. In hex representations, this is displayed as two periods to the left of the digits.
- !ruby/struct:SM::Flow::VERB 
  body: "  sprintf(&quot;%X&quot;, ~0x1122334455)    #=&gt; &quot;..FEEDDCCBBAA&quot;\n"
full_name: Bignum#~
is_singleton: false
name: "~"
params: |
  ~big  =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unary minus (returns a new Bignum whose value is 0-big)
full_name: Bignum#-@
is_singleton: false
name: -@
params: |
  -big   =>  other_big

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> only if <em>obj</em> is a <tt>Bignum</tt> with the same value as <em>big</em>. Contrast this with <tt>Bignum#==</tt>, which performs type conversions.
- !ruby/struct:SM::Flow::VERB 
  body: "   68719476736.eql?(68719476736.0)   #=&gt; false\n"
full_name: Bignum#eql?
is_singleton: false
name: eql?
params: |
  big.eql?(obj)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Performs bitwise <tt>and</tt> between <em>big</em> and <em>numeric</em>.
full_name: Bignum#&
is_singleton: false
name: "&"
params: |
  big & numeric   =>  integer

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Bignum objects hold integers outside the range of Fixnum. Bignum objects are created automatically when integer calculations would otherwise overflow a Fixnum. When a calculation involving Bignum objects returns a result that will fit in a Fixnum, the result is automatically converted.
- !ruby/struct:SM::Flow::P 
  body: For the purposes of the bitwise operations and <tt>[]</tt>, a Bignum is treated as if it were an infinite-length bitstring with 2's complement representation.
- !ruby/struct:SM::Flow::P 
  body: While Fixnum values are immediate, Bignum objects are not---assignment and parameter passing work with references to objects, not the objects themselves.
constants: []

full_name: Bignum
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: -@
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ">>"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: div
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: fdiv
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: modulo
- !ruby/object:RI::MethodSummary 
  name: power!
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: rdiv
- !ruby/object:RI::MethodSummary 
  name: remainder
- !ruby/object:RI::MethodSummary 
  name: rpower
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: "|"
- !ruby/object:RI::MethodSummary 
  name: "~"
name: Bignum
superclass: Integer
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comparison---Returns -1, 0, or +1 depending on whether <em>big</em> is less than, equal to, or greater than <em>numeric</em>. This is the basis for the tests in <tt>Comparable</tt>.
full_name: Bignum#<=>
is_singleton: false
name: <=>
params: |
  big <=> numeric   => -1, 0, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the remainder after dividing <em>big</em> by <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   -1234567890987654321.remainder(13731)      #=&gt; -6966\n   -1234567890987654321.remainder(13731.24)   #=&gt; -9906.22531493148\n"
full_name: Bignum#remainder
is_singleton: false
name: remainder
params: |
  big.remainder(numeric)    => number

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #quo"
full_name: Bignum#rdiv
is_singleton: false
name: rdiv
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> only if <em>obj</em> has the same value as <em>big</em>. Contrast this with <tt>Bignum#eql?</tt>, which requires <em>obj</em> to be a <tt>Bignum</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   68719476736 == 68719476736.0   #=&gt; true\n"
full_name: Bignum#==
is_singleton: false
name: ==
params: |
  big == obj  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shifts big right <em>numeric</em> positions (left if <em>numeric</em> is negative).
full_name: Bignum#>>
is_singleton: false
name: ">>"
params: |
  big >> numeric   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Multiplies big and other, returning the result.
full_name: Bignum#*
is_singleton: false
name: "*"
params: |
  big * other  => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compute a hash based on the value of <em>big</em>.
full_name: Bignum#hash
is_singleton: false
name: hash
params: |
  big.hash   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Divides big by other, returning the result.
full_name: Bignum#div
is_singleton: false
name: div
params: |
  big / other     => Numeric
  big.div(other)  => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #**"
full_name: Bignum#power!
is_singleton: false
name: power!
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Performs bitwise +exclusive or+ between <em>big</em> and <em>numeric</em>.
full_name: Bignum#^
is_singleton: false
name: ^
params: |
  big ^ numeric   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: power!
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises <em>big</em> to the <em>exponent</em> power (which may be an integer, float, or anything that will coerce to a number). The result may be a Fixnum, Bignum, or Float
- !ruby/struct:SM::Flow::VERB 
  body: "  123456789 ** 2      #=&gt; 15241578750190521\n  123456789 ** 1.2    #=&gt; 5126464716.09932\n  123456789 ** -2     #=&gt; 6.5610001194102e-17\n"
full_name: Bignum#**
is_singleton: false
name: "**"
params: |
  big ** exponent   #=> numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns big modulo other. See Numeric.divmod for more information.
full_name: Bignum#modulo
is_singleton: false
name: modulo
params: |
  big % other         => Numeric
  big.modulo(other)   => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns big modulo other. See Numeric.divmod for more information.
full_name: Bignum#%
is_singleton: false
name: "%"
params: |
  big % other         => Numeric
  big.modulo(other)   => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "**"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a Rational number if the result is in fact rational (i.e. <tt>other</tt> &lt; 0).
full_name: Bignum#rpower
is_singleton: false
name: rpower
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the representation of <em>big</em> radix <em>base</em> (2 through 36).
- !ruby/struct:SM::Flow::VERB 
  body: "   12345654321.to_s         #=&gt; &quot;12345654321&quot;\n   12345654321.to_s(2)      #=&gt; &quot;1011011111110110111011110000110001&quot;\n   12345654321.to_s(8)      #=&gt; &quot;133766736061&quot;\n   12345654321.to_s(16)     #=&gt; &quot;2dfdbbc31&quot;\n   78546939656932.to_s(36)  #=&gt; &quot;rubyrules&quot;\n"
full_name: Bignum#to_s
is_singleton: false
name: to_s
params: |
  big.to_s(base=10)   =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: Bignum#coerce
is_singleton: false
name: coerce
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value of <em>big</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   -1234567890987654321.abs   #=&gt; 1234567890987654321\n"
full_name: Bignum#abs
is_singleton: false
name: abs
params: |
  big.abs -> aBignum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: /
- !ruby/object:RI::AliasName 
  name: rdiv
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the floating point result of dividing <em>big</em> by <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   -1234567890987654321.quo(13731)      #=&gt; -89910996357705.5\n   -1234567890987654321.quo(13731.24)   #=&gt; -89909424858035.7\n"
full_name: Bignum#quo
is_singleton: false
name: quo
params: |
  big.quo(numeric) -> float
  big.fdiv(numeric) -> float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #quo"
full_name: Bignum#/
is_singleton: false
name: /
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds big and other, returning the result.
full_name: Bignum#+
is_singleton: false
name: +
params: |
  big + other  => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Performs bitwise <tt>or</tt> between <em>big</em> and <em>numeric</em>.
full_name: Bignum#|
is_singleton: false
name: "|"
params: |
  big | numeric   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shifts big left <em>numeric</em> positions (right if <em>numeric</em> is negative).
full_name: Bignum#<<
is_singleton: false
name: "<<"
params: |
  big << numeric   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Subtracts other from big, returning the result.
full_name: Bignum#-
is_singleton: false
name: "-"
params: |
  big - other  => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>big</em> to a <tt>Float</tt>. If <em>big</em> doesn't fit in a <tt>Float</tt>, the result is infinity.
full_name: Bignum#to_f
is_singleton: false
name: to_f
params: |
  big.to_f -> float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by converting the native IPv4 address into an IPv4-mapped IPv6 address.
full_name: IPAddr#ipv4_mapped
is_singleton: false
name: ipv4_mapped
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the ipaddr is an IPv4-mapped IPv6 address.
full_name: IPAddr#ipv4_mapped?
is_singleton: false
name: ipv4_mapped?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the ipaddr is an IPv4-compatible IPv6 address.
full_name: IPAddr#ipv4_compat?
is_singleton: false
name: ipv4_compat?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the ipaddr is an IPv6 address.
full_name: IPAddr#ipv6?
is_singleton: false
name: ipv6?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#addr_mask
is_singleton: false
name: addr_mask
params: (addr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string for DNS reverse lookup compatible with RFC3172.
full_name: IPAddr#ip6_arpa
is_singleton: false
name: ip6_arpa
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by bitwise negation.
full_name: IPAddr#~
is_singleton: false
name: "~"
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by bitwise AND.
full_name: IPAddr#&
is_singleton: false
name: "&"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string for DNS reverse lookup compatible with RFC1886.
full_name: IPAddr#ip6_int
is_singleton: false
name: ip6_int
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares the ipaddr with another.
full_name: IPAddr#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the integer representation of the ipaddr.
full_name: IPAddr#to_i
is_singleton: false
name: to_i
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ===
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the given ipaddr is in the range.
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ipaddr'\n  net1 = IPAddr.new(&quot;192.168.2.0/24&quot;)\n  net2 = IPAddr.new(&quot;192.168.2.100&quot;)\n  net3 = IPAddr.new(&quot;192.168.3.0&quot;)\n  p net1.include?(net2)     #=&gt; true\n  p net1.include?(net3)     #=&gt; false\n"
full_name: IPAddr#include?
is_singleton: false
name: include?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#_to_string
is_singleton: false
name: _to_string
params: (addr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #include?"
full_name: IPAddr#===
is_singleton: false
name: ===
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if two ipaddrs are equal.
full_name: IPAddr#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by bitwise right-shift.
full_name: IPAddr#>>
is_singleton: false
name: ">>"
params: (num)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string containing a human-readable representation of the ipaddr. (&quot;#&lt;IPAddr: family:address/mask&gt;&quot;)"
full_name: IPAddr#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by converting the IPv6 address into a native IPv4 address. If the IP address is not an IPv4-mapped or IPv4-compatible IPv6 address, returns self.
full_name: IPAddr#native
is_singleton: false
name: native
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the ipaddr is an IPv4 address.
full_name: IPAddr#ipv4?
is_singleton: false
name: ipv4?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#mask!
is_singleton: false
name: mask!
params: (mask)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#in6_addr
is_singleton: false
name: in6_addr
params: (left)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by masking IP address with the given prefixlen/netmask. (e.g. 8, 64, &quot;255.255.255.0&quot;, etc.)
full_name: IPAddr#mask
is_singleton: false
name: mask
params: (prefixlen)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#_reverse
is_singleton: false
name: _reverse
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the successor to the ipaddr.
full_name: IPAddr#succ
is_singleton: false
name: succ
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#in_addr
is_singleton: false
name: in_addr
params: (addr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new ipaddr object either from a human readable IP address representation in string, or from a packed in_addr value followed by an address family.
- !ruby/struct:SM::Flow::P 
  body: "In the former case, the following are the valid formats that will be recognized: &quot;address&quot;, &quot;address/prefixlen&quot; and &quot;address/mask&quot;, where IPv6 address may be enclosed in square brackets (`[' and `]'). If a prefixlen or a mask is specified, it returns a masked IP address. Although the address family is determined automatically from a specified string, you can specify one explicitly by the optional second argument."
- !ruby/struct:SM::Flow::P 
  body: Otherwise an IP addess is generated from a packed in_addr value and an address family.
- !ruby/struct:SM::Flow::P 
  body: The IPAddr class defines many methods and operators, and some of those, such as &amp;, |, include? and ==, accept a string, or a packed in_addr value instead of an IPAddr object.
full_name: IPAddr::new
is_singleton: true
name: new
params: (addr = '::', family = Socket::AF_UNSPEC)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#coerce_other
is_singleton: false
name: coerce_other
params: (other)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by converting the native IPv4 address into an IPv4-compatible IPv6 address.
full_name: IPAddr#ipv4_compat
is_singleton: false
name: ipv4_compat
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the IP address representation.
full_name: IPAddr#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a Range object for the network address.
full_name: IPAddr#to_range
is_singleton: false
name: to_range
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by bitwise OR.
full_name: IPAddr#|
is_singleton: false
name: "|"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new ipaddr built by bitwise left shift.
full_name: IPAddr#<<
is_singleton: false
name: "<<"
params: (num)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new ipaddr containing the given network byte ordered string form of an IP address.
full_name: IPAddr::new_ntoh
is_singleton: true
name: new_ntoh
params: (addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a network byte ordered string form of the IP address.
full_name: IPAddr#hton
is_singleton: false
name: hton
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string for DNS reverse lookup. It returns a string in RFC3172 form for an IPv6 address.
full_name: IPAddr#reverse
is_singleton: false
name: reverse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: IPAddr#set
is_singleton: false
name: set
params: (addr, *family)
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns the address family of this IP address.
  name: family
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new_ntoh
- !ruby/object:RI::MethodSummary 
  name: ntop
comment: 
- !ruby/struct:SM::Flow::P 
  body: IPAddr provides a set of methods to manipulate an IP address. Both IPv4 and IPv6 are supported.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ipaddr'\n\n  ipaddr1 = IPAddr.new &quot;3ffe:505:2::1&quot;\n\n  p ipaddr1                   #=&gt; #&lt;IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff&gt;\n\n  p ipaddr1.to_s              #=&gt; &quot;3ffe:505:2::1&quot;\n\n  ipaddr2 = ipaddr1.mask(48)  #=&gt; #&lt;IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0000/ffff:ffff:ffff:0000:0000:0000:0000:0000&gt;\n\n  p ipaddr2.to_s              #=&gt; &quot;3ffe:505:2::&quot;\n\n  ipaddr3 = IPAddr.new &quot;192.168.2.0/24&quot;\n\n  p ipaddr3                   #=&gt; #&lt;IPAddr: IPv4:192.168.2.0/255.255.255.0&gt;\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: IN4MASK
  value: "0xffffffff"
- !ruby/object:RI::Constant 
  comment: 
  name: IN6MASK
  value: "0xffffffffffffffffffffffffffffffff"
- !ruby/object:RI::Constant 
  comment: 
  name: IN6FORMAT
  value: (["%.4x"] * 8).join(':')
full_name: IPAddr
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: ">>"
- !ruby/object:RI::MethodSummary 
  name: _reverse
- !ruby/object:RI::MethodSummary 
  name: _to_string
- !ruby/object:RI::MethodSummary 
  name: addr_mask
- !ruby/object:RI::MethodSummary 
  name: coerce_other
- !ruby/object:RI::MethodSummary 
  name: hton
- !ruby/object:RI::MethodSummary 
  name: in6_addr
- !ruby/object:RI::MethodSummary 
  name: in_addr
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: ip6_arpa
- !ruby/object:RI::MethodSummary 
  name: ip6_int
- !ruby/object:RI::MethodSummary 
  name: ipv4?
- !ruby/object:RI::MethodSummary 
  name: ipv4_compat
- !ruby/object:RI::MethodSummary 
  name: ipv4_compat?
- !ruby/object:RI::MethodSummary 
  name: ipv4_mapped
- !ruby/object:RI::MethodSummary 
  name: ipv4_mapped?
- !ruby/object:RI::MethodSummary 
  name: ipv6?
- !ruby/object:RI::MethodSummary 
  name: mask
- !ruby/object:RI::MethodSummary 
  name: mask!
- !ruby/object:RI::MethodSummary 
  name: native
- !ruby/object:RI::MethodSummary 
  name: reverse
- !ruby/object:RI::MethodSummary 
  name: set
- !ruby/object:RI::MethodSummary 
  name: succ
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_range
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_string
- !ruby/object:RI::MethodSummary 
  name: "|"
- !ruby/object:RI::MethodSummary 
  name: "~"
name: IPAddr
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a network byte ordered string form of an IP address into human readable form.
full_name: IPAddr::ntop
is_singleton: true
name: ntop
params: (addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the IP address representation in canonical form.
full_name: IPAddr#to_string
is_singleton: false
name: to_string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns <tt>true</tt> only if <em>obj</em> is a Range, has equivalent beginning and end items (by comparing them with #eql?), and has the same #exclude_end? setting as <em>rng</em>."
- !ruby/struct:SM::Flow::VERB 
  body: "  (0..2) == (0..2)            #=&gt; true\n  (0..2) == Range.new(0,2)    #=&gt; true\n  (0..2) == (0...2)           #=&gt; false\n"
full_name: Range#eql?
is_singleton: false
name: eql?
params: |
  rng.eql?(obj)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>obj</em> is an element of <em>rng</em>, <tt>false</tt> otherwise. Conveniently, <tt>===</tt> is the comparison operator used by <tt>case</tt> statements.
- !ruby/struct:SM::Flow::VERB 
  body: "   case 79\n   when 1..50   then   print &quot;low\\n&quot;\n   when 51..75  then   print &quot;medium\\n&quot;\n   when 76..100 then   print &quot;high\\n&quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   high\n"
full_name: Range#include?
is_singleton: false
name: include?
params: |
  rng === obj       =>  true or false
  rng.member?(val)  =>  true or false
  rng.include?(val) =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object that defines the end of <em>rng</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).end    #=&gt; 10\n   (1...10).end   #=&gt; 10\n"
full_name: Range#end
is_singleton: false
name: end
params: |
  rng.end    => obj
  rng.last   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>obj</em> is an element of <em>rng</em>, <tt>false</tt> otherwise. Conveniently, <tt>===</tt> is the comparison operator used by <tt>case</tt> statements.
- !ruby/struct:SM::Flow::VERB 
  body: "   case 79\n   when 1..50   then   print &quot;low\\n&quot;\n   when 51..75  then   print &quot;medium\\n&quot;\n   when 76..100 then   print &quot;high\\n&quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   high\n"
full_name: Range#===
is_singleton: false
name: ===
params: |
  rng === obj       =>  true or false
  rng.member?(val)  =>  true or false
  rng.include?(val) =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns <tt>true</tt> only if <em>obj</em> is a Range, has equivalent beginning and end items (by comparing them with <tt>==</tt>), and has the same #exclude_end? setting as &lt;i&gt;rng&lt;/t&gt;."
- !ruby/struct:SM::Flow::VERB 
  body: "  (0..2) == (0..2)            #=&gt; true\n  (0..2) == Range.new(0,2)    #=&gt; true\n  (0..2) == (0...2)           #=&gt; false\n"
full_name: Range#==
is_singleton: false
name: ==
params: |
  rng == obj    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert this range object to a printable form (using <tt>inspect</tt> to convert the start and end objects).
full_name: Range#inspect
is_singleton: false
name: inspect
params: |
  rng.inspect  => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Range::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate a hash value such that two ranges with the same start and end points, and the same value for the &quot;exclude end&quot; flag, generate the same hash value.
full_name: Range#hash
is_singleton: false
name: hash
params: |
  rng.hash    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over <em>rng</em>, passing each <em>n</em>th element to the block. If the range contains numbers, <em>n</em> is added for each iteration. Otherwise <tt>step</tt> invokes <tt>succ</tt> to iterate through range elements. The following code uses class <tt>Xs</tt>, which is defined in the class-level documentation.
- !ruby/struct:SM::Flow::VERB 
  body: "   range = Xs.new(1)..Xs.new(10)\n   range.step(2) {|x| puts x}\n   range.step(3) {|x| puts x}\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "    1 x\n    3 xxx\n    5 xxxxx\n    7 xxxxxxx\n    9 xxxxxxxxx\n    1 x\n    4 xxxx\n    7 xxxxxxx\n   10 xxxxxxxxxx\n"
full_name: Range#step
is_singleton: false
name: step
params: |
  rng.step(n=1) {| obj | block }    => rng

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructs a range using the given <em>start</em> and <em>end</em>. If the third parameter is omitted or is <tt>false</tt>, the <em>range</em> will include the end object; otherwise, it will be excluded.
full_name: Range::new
is_singleton: true
name: new
params: |
  Range.new(start, end, exclusive=false)    => range

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>obj</em> is an element of <em>rng</em>, <tt>false</tt> otherwise. Conveniently, <tt>===</tt> is the comparison operator used by <tt>case</tt> statements.
- !ruby/struct:SM::Flow::VERB 
  body: "   case 79\n   when 1..50   then   print &quot;low\\n&quot;\n   when 51..75  then   print &quot;medium\\n&quot;\n   when 76..100 then   print &quot;high\\n&quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   high\n"
full_name: Range#member?
is_singleton: false
name: member?
params: |
  rng === obj       =>  true or false
  rng.member?(val)  =>  true or false
  rng.include?(val) =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert this range object to a printable form.
full_name: Range#to_s
is_singleton: false
name: to_s
params: |
  rng.to_s   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first object in <em>rng</em>.
full_name: Range#first
is_singleton: false
name: first
params: |
  rng.first    => obj
  rng.begin    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over the elements <em>rng</em>, passing each in turn to the block. You can only iterate if the start object of the range supports the <tt>succ</tt> method (which means that you can't iterate over ranges of <tt>Float</tt> objects).
- !ruby/struct:SM::Flow::VERB 
  body: "   (10..15).each do |n|\n      print n, ' '\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   10 11 12 13 14 15\n"
full_name: Range#each
is_singleton: false
name: each
params: |
  rng.each {| i | block } => rng

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: yaml_new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A <tt>Range</tt> represents an interval---a set of values with a start and an end. Ranges may be constructed using the <em>s</em><tt>..</tt><em>e</em> and <em>s</em><tt>...</tt><em>e</em> literals, or with <tt>Range::new</tt>. Ranges constructed using <tt>..</tt> run from the start to the end inclusively. Those created using <tt>...</tt> exclude the end value. When used as an iterator, ranges return each value in the sequence.
- !ruby/struct:SM::Flow::VERB 
  body: "   (-1..-5).to_a      #=&gt; []\n   (-5..-1).to_a      #=&gt; [-5, -4, -3, -2, -1]\n   ('a'..'e').to_a    #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;]\n   ('a'...'e').to_a   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: Ranges can be constructed using objects of any type, as long as the objects can be compared using their <tt>&lt;=&gt;</tt> operator and they support the <tt>succ</tt> method to return the next object in sequence.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Xs                # represent a string of 'x's\n     include Comparable\n     attr :length\n     def initialize(n)\n       @length = n\n     end\n     def succ\n       Xs.new(@length + 1)\n     end\n     def &lt;=&gt;(other)\n       @length &lt;=&gt; other.length\n     end\n     def to_s\n       sprintf &quot;%2d #{inspect}&quot;, @length\n     end\n     def inspect\n       'x' * @length\n     end\n   end\n\n   r = Xs.new(3)..Xs.new(6)   #=&gt; xxx..xxxxxx\n   r.to_a                     #=&gt; [xxx, xxxx, xxxxx, xxxxxx]\n   r.member?(Xs.new(5))       #=&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: In the previous code example, class <tt>Xs</tt> includes the <tt>Comparable</tt> module. This is because <tt>Enumerable#member?</tt> checks for equality using <tt>==</tt>. Including <tt>Comparable</tt> ensures that the <tt>==</tt> method is defined in terms of the <tt>&lt;=&gt;</tt> method implemented in <tt>Xs</tt>.
constants: []

full_name: Range
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: begin
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: end
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: exclude_end?
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: last
- !ruby/object:RI::MethodSummary 
  name: member?
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: step
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: Range
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Range#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first object in <em>rng</em>.
full_name: Range#begin
is_singleton: false
name: begin
params: |
  rng.first    => obj
  rng.begin    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the object that defines the end of <em>rng</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   (1..10).end    #=&gt; 10\n   (1...10).end   #=&gt; 10\n"
full_name: Range#last
is_singleton: false
name: last
params: |
  rng.end    => obj
  rng.last   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Range#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>rng</em> excludes its end value.
full_name: Range#exclude_end?
is_singleton: false
name: exclude_end?
params: |
  rng.exclude_end?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>mod</em> is a subclass of <em>other</em> or is the same as <em>other</em>. Returns <tt>nil</tt> if there's no relationship between the two. (Think of the relationship in terms of the class definition: &quot;class A&lt;B&quot; implies &quot;A&lt;B&quot;)."
full_name: Module#<=
is_singleton: false
name: <=
params: |
  mod <= other   =>  true, false, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if a constant with the given name is defined by <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Math.const_defined? &quot;PI&quot;   #=&gt; true\n"
full_name: Module#const_defined?
is_singleton: false
name: const_defined?
params: |
  mod.const_defined?(sym)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a list of the private instance methods defined in <em>mod</em>. If the optional parameter is not <tt>false</tt>, the methods of any ancestors are included.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     def method1()  end\n     private :method1\n     def method2()  end\n   end\n   Mod.instance_methods           #=&gt; [&quot;method2&quot;]\n   Mod.private_instance_methods   #=&gt; [&quot;method1&quot;]\n"
full_name: Module#private_instance_methods
is_singleton: false
name: private_instance_methods
params: |
  mod.private_instance_methods(include_super=true)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the list of <tt>Modules</tt> nested at the point of call.
- !ruby/struct:SM::Flow::VERB 
  body: "   module M1\n     module M2\n       $a = Module.nesting\n     end\n   end\n   $a           #=&gt; [M1::M2, M1]\n   $a[0].name   #=&gt; &quot;M1::M2&quot;\n"
full_name: Module::nesting
is_singleton: true
name: nesting
params: |
  Module.nesting    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not documented
full_name: Module#extended
is_singleton: false
name: extended
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not documented
full_name: Module#method_removed
is_singleton: false
name: method_removed
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of the given class variable (or throws a <tt>NameError</tt> exception). The <tt>@@</tt> part of the variable name should be included for regular class variables
- !ruby/struct:SM::Flow::VERB 
  body: "   class Fred\n     @@foo = 99\n   end\n\n   def Fred.foo\n     class_variable_get(:@@foo)     #=&gt; 99\n   end\n"
full_name: Module#class_variable_get
is_singleton: false
name: class_variable_get
params: |
  mod.class_variable_get(symbol)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the class variable names by <em>symbol</em> to <em>object</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Fred\n     @@foo = 99\n     def foo\n       @@foo\n     end\n   end\n\n   def Fred.foo\n     class_variable_set(:@@foo, 101)      #=&gt; 101\n   end\n   Fred.foo\n   Fred.new.foo                             #=&gt; 101\n"
full_name: Module#class_variable_set
is_singleton: false
name: class_variable_set
params: |
  obj.class_variable_set(symbol, obj)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named protected method is defined by <em>mod</em> (or its included modules and, if <em>mod</em> is a class, its ancestors).
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n     def method1()  end\n   end\n   class B\n     protected\n     def method2()  end\n   end\n   class C &lt; B\n     include A\n     def method3()  end\n   end\n\n   A.method_defined? :method1              #=&gt; true\n   C.protected_method_defined? &quot;method1&quot;   #=&gt; false\n   C.protected_method_defined? &quot;method2&quot;   #=&gt; true\n   C.method_defined? &quot;method2&quot;             #=&gt; true\n"
full_name: Module#protected_method_defined?
is_singleton: false
name: protected_method_defined?
params: |
  mod.protected_method_defined?(symbol)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comparison---Returns -1 if <em>mod</em> includes <em>other_mod</em>, 0 if <em>mod</em> is the same as <em>other_mod</em>, and +1 if <em>mod</em> is included by <em>other_mod</em> or if <em>mod</em> has no relationship with <em>other_mod</em>. Returns <tt>nil</tt> if <em>other_mod</em> is not a module.
full_name: Module#<=>
is_singleton: false
name: <=>
params: |
  mod <=> other_mod   => -1, 0, +1, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the names of class variables in <em>mod</em> and the ancestors of <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class One\n     @@var1 = 1\n   end\n   class Two &lt; One\n     @@var2 = 2\n   end\n   One.class_variables   #=&gt; [&quot;@@var1&quot;]\n   Two.class_variables   #=&gt; [&quot;@@var2&quot;, &quot;@@var1&quot;]\n"
full_name: Module#class_variables
is_singleton: false
name: class_variables
params: |
  mod.class_variables   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Makes <em>new_name</em> a new copy of the method <em>old_name</em>. This can be used to retain access to methods that are overridden.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     alias_method :orig_exit, :exit\n     def exit(code=0)\n       puts &quot;Exiting with code #{code}&quot;\n       orig_exit(code)\n     end\n   end\n   include Mod\n   exit(99)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Exiting with code 99\n"
full_name: Module#alias_method
is_singleton: false
name: alias_method
params: |
  alias_method(new_name, old_name)   => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a list of modules included in <em>mod</em> (including <em>mod</em> itself).
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     include Math\n     include Comparable\n   end\n\n   Mod.ancestors    #=&gt; [Mod, Comparable, Math]\n   Math.ancestors   #=&gt; [Math]\n"
full_name: Module#ancestors
is_singleton: false
name: ancestors
params: |
  mod.ancestors -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the names of the constants accessible in <em>mod</em>. This includes the names of constants in any included modules (example at start of section).
full_name: Module#constants
is_singleton: false
name: constants
params: |
  mod.constants    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given class variable is defined in <em>obj</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Fred\n     @@foo = 99\n   end\n   Fred.class_variable_defined?(:@@foo)    #=&gt; true\n   Fred.class_variable_defined?(:@@bar)    #=&gt; false\n"
full_name: Module#class_variable_defined?
is_singleton: false
name: class_variable_defined?
params: |
  obj.class_variable_defined?(symbol)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prevents the current class from responding to calls to the named method. Contrast this with <tt>remove_method</tt>, which deletes the method from the particular class; Ruby will still search superclasses and mixed-in modules for a possible receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Parent\n     def hello\n       puts &quot;In parent&quot;\n     end\n   end\n   class Child &lt; Parent\n     def hello\n       puts &quot;In child&quot;\n     end\n   end\n\n   c = Child.new\n   c.hello\n\n   class Child\n     remove_method :hello  # remove from child, still in parent\n   end\n   c.hello\n\n   class Child\n     undef_method :hello   # prevent any calls to 'hello'\n   end\n   c.hello\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   In child\n   In parent\n   prog.rb:23: undefined method `hello' for #&lt;Child:0x401b3bb4&gt; (NoMethodError)\n"
full_name: Module#undef_method
is_singleton: false
name: undef_method
params: |
  undef_method(symbol)    => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not documented
full_name: Module#method_added
is_singleton: false
name: method_added
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>module</em> is included in <em>mod</em> or one of <em>mod</em>'s ancestors.
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n   end\n   class B\n     include A\n   end\n   class C &lt; B\n   end\n   B.include?(A)   #=&gt; true\n   C.include?(A)   #=&gt; true\n   A.include?(A)   #=&gt; false\n"
full_name: Module#include?
is_singleton: false
name: include?
params: |
  mod.include?(module)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes the definition of the given constant, returning that constant's value. Predefined classes and singleton objects (such as <em>true</em>) cannot be removed.
full_name: Module#remove_const
is_singleton: false
name: remove_const
params: |
  remove_const(sym)   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Case Equality---Returns <tt>true</tt> if <em>anObject</em> is an instance of <em>mod</em> or one of <em>mod</em>'s descendents. Of limited use for modules, but can be used in <tt>case</tt> statements to classify objects by class.
full_name: Module#===
is_singleton: false
name: ===
params: |
  mod === obj    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---At the <tt>Object</tt> level, <tt>==</tt> returns <tt>true</tt> only if <em>obj</em> and <em>other</em> are the same object. Typically, this method is overridden in descendent classes to provide class-specific meaning.
- !ruby/struct:SM::Flow::P 
  body: "Unlike <tt>==</tt>, the <tt>equal?</tt> method should never be overridden by subclasses: it is used to determine object identity (that is, <tt>a.equal?(b)</tt> iff <tt>a</tt> is the same object as <tt>b</tt>)."
- !ruby/struct:SM::Flow::P 
  body: "The <tt>eql?</tt> method returns <tt>true</tt> if <em>obj</em> and <em>anObject</em> have the same value. Used by <tt>Hash</tt> to test members for equality. For objects of class <tt>Object</tt>, <tt>eql?</tt> is synonymous with <tt>==</tt>. Subclasses normally continue this tradition, but there are exceptions. <tt>Numeric</tt> types, for example, perform type conversion across <tt>==</tt>, but not across <tt>eql?</tt>, so:"
- !ruby/struct:SM::Flow::VERB 
  body: "   1 == 1.0     #=&gt; true\n   1.eql? 1.0   #=&gt; false\n"
full_name: Module#==
is_singleton: false
name: ==
params: |
  obj == other        => true or false
  obj.equal?(other)   => true or false
  obj.eql?(other)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>mod</em> is a subclass of <em>other</em>. Returns <tt>nil</tt> if there's no relationship between the two. (Think of the relationship in terms of the class definition: &quot;class A&lt;B&quot; implies &quot;A&lt;B&quot;)."
full_name: Module#<
is_singleton: false
name: <
params: |
  mod < other   =>  true, false, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to calling ``<tt>attr</tt><em>symbol</em><tt>, true</tt>'' on each <em>symbol</em> in turn.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     attr_accessor(:one, :two)\n   end\n   Mod.instance_methods.sort   #=&gt; [&quot;one&quot;, &quot;one=&quot;, &quot;two&quot;, &quot;two=&quot;]\n"
full_name: Module#attr_accessor
is_singleton: false
name: attr_accessor
params: |
  attr_accessor(symbol, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the module <em>mod</em>.
full_name: Module#name
is_singleton: false
name: name
params: |
  mod.name    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the string or block in the context of <em>mod</em>. This can be used to add methods to a class. <tt>module_eval</tt> returns the result of evaluating its argument. The optional <em>filename</em> and <em>lineno</em> parameters set the text for error messages.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Thing\n   end\n   a = %q{def hello() &quot;Hello there!&quot; end}\n   Thing.module_eval(a)\n   puts Thing.new.hello()\n   Thing.module_eval(&quot;invalid code&quot;, &quot;dummy&quot;, 123)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello there!\n   dummy:123:in `module_eval': undefined local variable\n       or method `code' for Thing:Class\n"
full_name: Module#class_eval
is_singleton: false
name: class_eval
params: |
  mod.class_eval(string [, filename [, lineno]])  => obj
  mod.module_eval {|| block }                     => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Invoked when a reference is made to an undefined constant in <em>mod</em>. It is passed a symbol for the undefined constant, and returns a value to be used for that constant. The following code is a (very bad) example: if reference is made to an undefined constant, it attempts to load a file whose name is the lowercase version of the constant (thus class <tt>Fred</tt> is assumed to be in file <tt>fred.rb</tt>). If found, it returns the value of the loaded class. It therefore implements a perverse kind of autoload facility."
- !ruby/struct:SM::Flow::VERB 
  body: "  def Object.const_missing(name)\n    @looked_for ||= {}\n    str_name = name.to_s\n    raise &quot;Class not found: #{name}&quot; if @looked_for[str_name]\n    @looked_for[str_name] = 1\n    file = str_name.downcase\n    require file\n    klass = const_get(name)\n    return klass if klass\n    raise &quot;Class not found: #{name}&quot;\n  end\n"
full_name: Module#const_missing
is_singleton: false
name: const_missing
params: |
  mod.const_missing(sym)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the names of all constants defined in the system. This list includes the names of all modules and classes.
- !ruby/struct:SM::Flow::VERB 
  body: "   p Module.constants.sort[1..5]\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   [&quot;ARGV&quot;, &quot;ArgumentError&quot;, &quot;Array&quot;, &quot;Bignum&quot;, &quot;Binding&quot;]\n"
full_name: Module::constants
is_singleton: true
name: constants
params: |
  Module.constants   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named public method is defined by <em>mod</em> (or its included modules and, if <em>mod</em> is a class, its ancestors).
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n     def method1()  end\n   end\n   class B\n     protected\n     def method2()  end\n   end\n   class C &lt; B\n     include A\n     def method3()  end\n   end\n\n   A.method_defined? :method1           #=&gt; true\n   C.public_method_defined? &quot;method1&quot;   #=&gt; true\n   C.public_method_defined? &quot;method2&quot;   #=&gt; false\n   C.method_defined? &quot;method2&quot;          #=&gt; true\n"
full_name: Module#public_method_defined?
is_singleton: false
name: public_method_defined?
params: |
  mod.public_method_defined?(symbol)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Registers <em>filename</em> to be loaded (using <tt>Kernel::require</tt>) the first time that <em>name</em> (which may be a <tt>String</tt> or a symbol) is accessed in the namespace of <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n   end\n   A.autoload(:B, &quot;b&quot;)\n   A::B.doit            # autoloads &quot;b&quot;\n"
full_name: Module#autoload
is_singleton: false
name: autoload
params: |
  mod.autoload(name, filename)   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a list of the public instance methods defined in <em>mod</em>. If the optional parameter is not <tt>false</tt>, the methods of any ancestors are included.
full_name: Module#public_instance_methods
is_singleton: false
name: public_instance_methods
params: |
  mod.public_instance_methods(include_super=true)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Makes existing class methods private. Often used to hide the default constructor <tt>new</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class SimpleSingleton  # Not thread safe\n     private_class_method :new\n     def SimpleSingleton.create(*args, &amp;block)\n       @me = new(*args, &amp;block) if ! @me\n       @me\n     end\n   end\n"
full_name: Module#private_class_method
is_singleton: false
name: private_class_method
params: |
  mod.private_class_method(symbol, ...)   => mod

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no arguments, sets the default visibility for subsequently defined methods to protected. With arguments, sets the named methods to have protected visibility.
full_name: Module#protected
is_singleton: false
name: protected
params: |
  protected                => self
  protected(symbol, ...)   => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new anonymous module. If a block is given, it is passed the module object, and the block is evaluated in the context of this module using <tt>module_eval</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Fred = Module.new do\n     def meth1\n       &quot;hello&quot;\n     end\n     def meth2\n       &quot;bye&quot;\n     end\n   end\n   a = &quot;my string&quot;\n   a.extend(Fred)   #=&gt; &quot;my string&quot;\n   a.meth1          #=&gt; &quot;hello&quot;\n   a.meth2          #=&gt; &quot;bye&quot;\n"
full_name: Module::new
is_singleton: true
name: new
params: |
  Module.new                  => mod
  Module.new {|mod| block }   => mod

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Defines a named attribute for this module, where the name is <em>symbol.</em><tt>id2name</tt>, creating an instance variable (<tt>@name</tt>) and a corresponding access method to read it. If the optional <em>writable</em> argument is <tt>true</tt>, also creates a method called <tt>name=</tt> to set the attribute.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     attr  :size, true\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>is equivalent to:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     def size\n       @size\n     end\n     def size=(val)\n       @size = val\n     end\n   end\n"
full_name: Module#attr
is_singleton: false
name: attr
params: |
  attr(symbol, writable=false)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no arguments, sets the default visibility for subsequently defined methods to public. With arguments, sets the named methods to have public visibility.
full_name: Module#public
is_singleton: false
name: public
params: |
  public                 => self
  public(symbol, ...)    => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no arguments, sets the default visibility for subsequently defined methods to private. With arguments, sets the named methods to have private visibility.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     def a()  end\n     def b()  end\n     private\n     def c()  end\n     private :a\n   end\n   Mod.private_instance_methods   #=&gt; [&quot;a&quot;, &quot;c&quot;]\n"
full_name: Module#private
is_singleton: false
name: private
params: |
  private                 => self
  private(symbol, ...)    => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a string representing this module or class. For basic classes and modules, this is the name. For singletons, we show information on the thing we're attached to as well.
full_name: Module#to_s
is_singleton: false
name: to_s
params: |
  mod.to_s   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a list of the protected instance methods defined in <em>mod</em>. If the optional parameter is not <tt>false</tt>, the methods of any ancestors are included.
full_name: Module#protected_instance_methods
is_singleton: false
name: protected_instance_methods
params: |
  mod.protected_instance_methods(include_super=true)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Defines an instance method in the receiver. The <em>method</em> parameter can be a <tt>Proc</tt> or <tt>Method</tt> object. If a block is specified, it is used as the method body. This block is evaluated using <tt>instance_eval</tt>, a point that is tricky to demonstrate because <tt>define_method</tt> is private. (This is why we resort to the <tt>send</tt> hack in this example.)
- !ruby/struct:SM::Flow::VERB 
  body: "   class A\n     def fred\n       puts &quot;In Fred&quot;\n     end\n     def create_method(name, &amp;block)\n       self.class.send(:define_method, name, &amp;block)\n     end\n     define_method(:wilma) { puts &quot;Charge it!&quot; }\n   end\n   class B &lt; A\n     define_method(:barney, instance_method(:fred))\n   end\n   a = B.new\n   a.barney\n   a.wilma\n   a.create_method(:betty) { p self }\n   a.betty\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   In Fred\n   Charge it!\n   #&lt;B:0x401b39e8&gt;\n"
full_name: Module#define_method
is_singleton: false
name: define_method
params: |
  define_method(symbol, method)     => new_method
  define_method(symbol) { block }   => proc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes the method identified by <em>symbol</em> from the current class. For an example, see <tt>Module.undef_method</tt>.
full_name: Module#remove_method
is_singleton: false
name: remove_method
params: |
  remove_method(symbol)   => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named method is defined by <em>mod</em> (or its included modules and, if <em>mod</em> is a class, its ancestors). Public and protected methods are matched.
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n     def method1()  end\n   end\n   class B\n     def method2()  end\n   end\n   class C &lt; B\n     include A\n     def method3()  end\n   end\n\n   A.method_defined? :method1    #=&gt; true\n   C.method_defined? &quot;method1&quot;   #=&gt; true\n   C.method_defined? &quot;method2&quot;   #=&gt; true\n   C.method_defined? &quot;method3&quot;   #=&gt; true\n   C.method_defined? &quot;method4&quot;   #=&gt; false\n"
full_name: Module#method_defined?
is_singleton: false
name: method_defined?
params: |
  mod.method_defined?(symbol)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates an accessor method to allow assignment to the attribute <em>aSymbol</em><tt>.id2name</tt>.
full_name: Module#attr_writer
is_singleton: false
name: attr_writer
params: |
  attr_writer(symbol, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>filename</em> to be loaded if <em>name</em> is registered as <tt>autoload</tt> in the namespace of <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n   end\n   A.autoload(:B, &quot;b&quot;)\n   A.autoload?(:B)            # =&gt; &quot;b&quot;\n"
full_name: Module#autoload?
is_singleton: false
name: autoload?
params: |
  mod.autoload?(name)   => String or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Makes a list of existing class methods public.
full_name: Module#public_class_method
is_singleton: false
name: public_class_method
params: |
  mod.public_class_method(symbol, ...)    => mod

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the string or block in the context of <em>mod</em>. This can be used to add methods to a class. <tt>module_eval</tt> returns the result of evaluating its argument. The optional <em>filename</em> and <em>lineno</em> parameters set the text for error messages.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Thing\n   end\n   a = %q{def hello() &quot;Hello there!&quot; end}\n   Thing.module_eval(a)\n   puts Thing.new.hello()\n   Thing.module_eval(&quot;invalid code&quot;, &quot;dummy&quot;, 123)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello there!\n   dummy:123:in `module_eval': undefined local variable\n       or method `code' for Thing:Class\n"
full_name: Module#module_eval
is_singleton: false
name: module_eval
params: |
  mod.class_eval(string [, filename [, lineno]])  => obj
  mod.module_eval {|| block }                     => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extends the specified object by adding this module's constants and methods (which are added as singleton methods). This is the callback method used by <tt>Object#extend</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Picky\n     def Picky.extend_object(o)\n       if String === o\n         puts &quot;Can't add Picky to a String&quot;\n       else\n         puts &quot;Picky added to #{o.class}&quot;\n         super\n       end\n     end\n   end\n   (s = Array.new).extend Picky  # Call Object.extend\n   (s = &quot;quick brown fox&quot;).extend Picky\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Picky added to Array\n   Can't add Picky to a String\n"
full_name: Module#extend_object
is_singleton: false
name: extend_object
params: |
  extend_object(obj)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Callback invoked whenever the receiver is included in another module or class. This should be used in preference to <tt>Module.append_features</tt> if your code wants to perform some action when a module is included in another.
- !ruby/struct:SM::Flow::VERB 
  body: "       module A\n         def A.included(mod)\n           puts &quot;#{self} included in #{mod}&quot;\n         end\n       end\n       module Enumerable\n         include A\n       end\n"
full_name: Module#included
is_singleton: false
name: included
params: |
  included( othermod )

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of the named constant in <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Math.const_get(:PI)   #=&gt; 3.14159265358979\n"
full_name: Module#const_get
is_singleton: false
name: const_get
params: |
  mod.const_get(sym)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the named constant to the given object, returning that object. Creates a new constant if no constant with the given name previously existed.
- !ruby/struct:SM::Flow::VERB 
  body: "   Math.const_set(&quot;HIGH_SCHOOL_PI&quot;, 22.0/7.0)   #=&gt; 3.14285714285714\n   Math::HIGH_SCHOOL_PI - Math::PI              #=&gt; 0.00126448926734968\n"
full_name: Module#const_set
is_singleton: false
name: const_set
params: |
  mod.const_set(sym, obj)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>mod</em> is an ancestor of <em>other</em>. Returns <tt>nil</tt> if there's no relationship between the two. (Think of the relationship in terms of the class definition: &quot;class A&lt;B&quot; implies &quot;B&gt;A&quot;)."
full_name: Module#>
is_singleton: false
name: ">"
params: |
  mod > other   =>  true, false, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes <tt>Module.append_features</tt> on each parameter in turn.
full_name: Module#include
is_singleton: false
name: include
params: |
  include(module, ...)    => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the names of public instance methods in the receiver. For a module, these are the public methods; for a class, they are the instance (not singleton) methods. With no argument, or with an argument that is <tt>false</tt>, the instance methods in <em>mod</em> are returned, otherwise the methods in <em>mod</em> and <em>mod</em>'s superclasses are returned.
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n     def method1()  end\n   end\n   class B\n     def method2()  end\n   end\n   class C &lt; B\n     def method3()  end\n   end\n\n   A.instance_methods                #=&gt; [&quot;method1&quot;]\n   B.instance_methods(false)         #=&gt; [&quot;method2&quot;]\n   C.instance_methods(false)         #=&gt; [&quot;method3&quot;]\n   C.instance_methods(true).length   #=&gt; 43\n"
full_name: Module#instance_methods
is_singleton: false
name: instance_methods
params: |
  mod.instance_methods(include_super=true)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named private method is defined by _ mod_ (or its included modules and, if <em>mod</em> is a class, its ancestors).
- !ruby/struct:SM::Flow::VERB 
  body: "   module A\n     def method1()  end\n   end\n   class B\n     private\n     def method2()  end\n   end\n   class C &lt; B\n     include A\n     def method3()  end\n   end\n\n   A.method_defined? :method1            #=&gt; true\n   C.private_method_defined? &quot;method1&quot;   #=&gt; false\n   C.private_method_defined? &quot;method2&quot;   #=&gt; true\n   C.method_defined? &quot;method2&quot;           #=&gt; false\n"
full_name: Module#private_method_defined?
is_singleton: false
name: private_method_defined?
params: |
  mod.private_method_defined?(symbol)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the given block in the context of the class/module. The method defined in the block will belong to the receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Thing\n   end\n   Thing.class_exec{\n     def hello() &quot;Hello there!&quot; end\n   }\n   puts Thing.new.hello()\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello there!\n"
full_name: Module#module_exec
is_singleton: false
name: module_exec
params: |
  mod.module_exec(arg...) {|var...| block }       => obj
  mod.class_exec(arg...) {|var...| block }        => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates the given block in the context of the class/module. The method defined in the block will belong to the receiver.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Thing\n   end\n   Thing.class_exec{\n     def hello() &quot;Hello there!&quot; end\n   }\n   puts Thing.new.hello()\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello there!\n"
full_name: Module#class_exec
is_singleton: false
name: class_exec
params: |
  mod.module_exec(arg...) {|var...| block }       => obj
  mod.class_exec(arg...) {|var...| block }        => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates module functions for the named methods. These functions may be called with the module as a receiver, and also become available as instance methods to classes that mix in the module. Module functions are copies of the original, and so may be changed independently. The instance-method versions are made private. If used with no arguments, subsequently defined methods become module functions.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     def one\n       &quot;This is one&quot;\n     end\n     module_function :one\n   end\n   class Cls\n     include Mod\n     def callOne\n       one\n     end\n   end\n   Mod.one     #=&gt; &quot;This is one&quot;\n   c = Cls.new\n   c.callOne   #=&gt; &quot;This is one&quot;\n   module Mod\n     def one\n       &quot;This is the new one&quot;\n     end\n   end\n   Mod.one     #=&gt; &quot;This is one&quot;\n   c.callOne   #=&gt; &quot;This is the new one&quot;\n"
full_name: Module#module_function
is_singleton: false
name: module_function
params: |
  module_function(symbol, ...)    => self

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates instance variables and corresponding methods that return the value of each instance variable. Equivalent to calling ``<tt>attr</tt><em>:name</em>'' on each name in turn.
full_name: Module#attr_reader
is_singleton: false
name: attr_reader
params: |
  attr_reader(symbol, ...)    => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an <tt>UnboundMethod</tt> representing the given instance method in <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Interpreter\n     def do_a() print &quot;there, &quot;; end\n     def do_d() print &quot;Hello &quot;;  end\n     def do_e() print &quot;!\\n&quot;;     end\n     def do_v() print &quot;Dave&quot;;    end\n     Dispatcher = {\n      ?a =&gt; instance_method(:do_a),\n      ?d =&gt; instance_method(:do_d),\n      ?e =&gt; instance_method(:do_e),\n      ?v =&gt; instance_method(:do_v)\n     }\n     def interpret(string)\n       string.each_byte {|b| Dispatcher[b].bind(self).call }\n     end\n   end\n\n   interpreter = Interpreter.new\n   interpreter.interpret('dave')\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Hello there, Dave!\n"
full_name: Module#instance_method
is_singleton: false
name: instance_method
params: |
  mod.instance_method(symbol)   => unbound_method

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>mod</em> is an ancestor of <em>other</em>, or the two modules are the same. Returns <tt>nil</tt> if there's no relationship between the two. (Think of the relationship in terms of the class definition: &quot;class A&lt;B&quot; implies &quot;B&gt;A&quot;)."
full_name: Module#>=
is_singleton: false
name: ">="
params: |
  mod >= other   =>  true, false, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the list of modules included in <em>mod</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mixin\n   end\n\n   module Outer\n     include Mixin\n   end\n\n   Mixin.included_modules   #=&gt; []\n   Outer.included_modules   #=&gt; [Mixin]\n"
full_name: Module#included_modules
is_singleton: false
name: included_modules
params: |
  mod.included_modules -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not documented
full_name: Module#method_undefined
is_singleton: false
name: method_undefined
params: (p1)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: constants
- !ruby/object:RI::MethodSummary 
  name: nesting
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A <tt>Module</tt> is a collection of methods and constants. The methods in a module may be instance methods or module methods. Instance methods appear as methods in a class when the module is included, module methods do not. Conversely, module methods may be called without creating an encapsulating object, while instance methods may not. (See <tt>Module#module_function</tt>)
- !ruby/struct:SM::Flow::P 
  body: In the descriptions that follow, the parameter <em>syml</em> refers to a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as <tt>:name</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   module Mod\n     include Math\n     CONST = 1\n     def meth\n       #  ...\n     end\n   end\n   Mod.class              #=&gt; Module\n   Mod.constants          #=&gt; [&quot;E&quot;, &quot;PI&quot;, &quot;CONST&quot;]\n   Mod.instance_methods   #=&gt; [&quot;meth&quot;]\n"
constants: []

full_name: Module
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <
- !ruby/object:RI::MethodSummary 
  name: <=
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: ">"
- !ruby/object:RI::MethodSummary 
  name: ">="
- !ruby/object:RI::MethodSummary 
  name: alias_method
- !ruby/object:RI::MethodSummary 
  name: ancestors
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: attr
- !ruby/object:RI::MethodSummary 
  name: attr_accessor
- !ruby/object:RI::MethodSummary 
  name: attr_reader
- !ruby/object:RI::MethodSummary 
  name: attr_writer
- !ruby/object:RI::MethodSummary 
  name: autoload
- !ruby/object:RI::MethodSummary 
  name: autoload?
- !ruby/object:RI::MethodSummary 
  name: class_eval
- !ruby/object:RI::MethodSummary 
  name: class_exec
- !ruby/object:RI::MethodSummary 
  name: class_variable_defined?
- !ruby/object:RI::MethodSummary 
  name: class_variable_get
- !ruby/object:RI::MethodSummary 
  name: class_variable_set
- !ruby/object:RI::MethodSummary 
  name: class_variables
- !ruby/object:RI::MethodSummary 
  name: const_defined?
- !ruby/object:RI::MethodSummary 
  name: const_get
- !ruby/object:RI::MethodSummary 
  name: const_missing
- !ruby/object:RI::MethodSummary 
  name: const_set
- !ruby/object:RI::MethodSummary 
  name: constants
- !ruby/object:RI::MethodSummary 
  name: define_method
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: extended
- !ruby/object:RI::MethodSummary 
  name: freeze
- !ruby/object:RI::MethodSummary 
  name: include
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: included
- !ruby/object:RI::MethodSummary 
  name: included_modules
- !ruby/object:RI::MethodSummary 
  name: instance_method
- !ruby/object:RI::MethodSummary 
  name: instance_methods
- !ruby/object:RI::MethodSummary 
  name: method_added
- !ruby/object:RI::MethodSummary 
  name: method_defined?
- !ruby/object:RI::MethodSummary 
  name: method_removed
- !ruby/object:RI::MethodSummary 
  name: method_undefined
- !ruby/object:RI::MethodSummary 
  name: module_eval
- !ruby/object:RI::MethodSummary 
  name: module_exec
- !ruby/object:RI::MethodSummary 
  name: module_function
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: private
- !ruby/object:RI::MethodSummary 
  name: private_class_method
- !ruby/object:RI::MethodSummary 
  name: private_instance_methods
- !ruby/object:RI::MethodSummary 
  name: private_method_defined?
- !ruby/object:RI::MethodSummary 
  name: protected
- !ruby/object:RI::MethodSummary 
  name: protected_instance_methods
- !ruby/object:RI::MethodSummary 
  name: protected_method_defined?
- !ruby/object:RI::MethodSummary 
  name: public
- !ruby/object:RI::MethodSummary 
  name: public_class_method
- !ruby/object:RI::MethodSummary 
  name: public_instance_methods
- !ruby/object:RI::MethodSummary 
  name: public_method_defined?
- !ruby/object:RI::MethodSummary 
  name: remove_class_variable
- !ruby/object:RI::MethodSummary 
  name: remove_const
- !ruby/object:RI::MethodSummary 
  name: remove_method
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: undef_method
name: Module
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: When this module is included in another, Ruby calls <tt>append_features</tt> in this module, passing it the receiving module in <em>mod</em>. Ruby's default implementation is to add the constants, methods, and module variables of this module to <em>mod</em> if this module has not already been added to <em>mod</em> or one of its ancestors. See also <tt>Module#include</tt>.
full_name: Module#append_features
is_singleton: false
name: append_features
params: |
  append_features(mod)   => mod

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes the definition of the <em>sym</em>, returning that constant's value.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Dummy\n     @@var = 99\n     puts @@var\n     remove_class_variable(:@@var)\n     puts(defined? @@var)\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   99\n   nil\n"
full_name: Module#remove_class_variable
is_singleton: false
name: remove_class_variable
params: |
  remove_class_variable(sym)    => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prevents further modifications to <em>mod</em>.
full_name: Module#freeze
is_singleton: false
name: freeze
params: |
  mod.freeze

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the current working directory of the process to the given string. When called without an argument, changes the directory to the value of the environment variable <tt>HOME</tt>, or <tt>LOGDIR</tt>. <tt>SystemCallError</tt> (probably <tt>Errno::ENOENT</tt>) if the target directory does not exist.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, it is passed the name of the new current directory, and the block is executed with that as the current directory. The original working directory is restored when the block exits. The return value of <tt>chdir</tt> is the value of the block. <tt>chdir</tt> blocks can be nested, but in a multi-threaded program an error will be raised if a thread attempts to open a <tt>chdir</tt> block while another thread has one open.
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir.chdir(&quot;/var/spool/mail&quot;)\n   puts Dir.pwd\n   Dir.chdir(&quot;/tmp&quot;) do\n     puts Dir.pwd\n     Dir.chdir(&quot;/usr&quot;) do\n       puts Dir.pwd\n     end\n     puts Dir.pwd\n   end\n   puts Dir.pwd\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   /var/spool/mail\n   /tmp\n   /usr\n   /tmp\n   /var/spool/mail\n"
full_name: Dir::chdir
is_singleton: true
name: chdir
params: |
  Dir.chdir( [ string] ) => 0
  Dir.chdir( [ string] ) {| path | block }  => anObject

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a string describing this Dir object.
full_name: Dir#inspect
is_singleton: false
name: inspect
params: |
  dir.inspect => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeks to a particular location in <em>dir</em>. <em>integer</em> must be a value returned by <tt>Dir#tell</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)   #=&gt; #&lt;Dir:0x401b3c40&gt;\n   d.read                   #=&gt; &quot;.&quot;\n   i = d.tell               #=&gt; 12\n   d.read                   #=&gt; &quot;..&quot;\n   d.seek(i)                #=&gt; #&lt;Dir:0x401b3c40&gt;\n   d.read                   #=&gt; &quot;..&quot;\n"
full_name: Dir#seek
is_singleton: false
name: seek
params: |
  dir.seek( integer ) => dir

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: With no block, <tt>open</tt> is a synonym for <tt>Dir::new</tt>. If a block is present, it is passed <em>aDir</em> as a parameter. The directory is closed at the end of the block, and <tt>Dir::open</tt> returns the value of the block.
full_name: Dir::open
is_singleton: true
name: open
params: |
  Dir.open( string ) => aDir
  Dir.open( string ) {| aDir | block } => anObject

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the path parameter passed to <em>dir</em>'s constructor.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;..&quot;)\n   d.path   #=&gt; &quot;..&quot;\n"
full_name: Dir#path
is_singleton: false
name: path
params: |
  dir.path => string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the path to the current working directory of this process as a string.
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir.chdir(&quot;/tmp&quot;)   #=&gt; 0\n   Dir.getwd           #=&gt; &quot;/tmp&quot;\n"
full_name: Dir::pwd
is_singleton: true
name: pwd
params: |
  Dir.getwd => string
  Dir.pwd => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Repositions <em>dir</em> to the first entry.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.read     #=&gt; &quot;.&quot;\n   d.rewind   #=&gt; #&lt;Dir:0x401b3fb0&gt;\n   d.read     #=&gt; &quot;.&quot;\n"
full_name: Dir#rewind
is_singleton: false
name: rewind
params: |
  dir.rewind => dir

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new directory object for the named directory.
full_name: Dir::new
is_singleton: true
name: new
params: |
  Dir.new( string ) -> aDir

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the directory stream. Any further attempts to access <em>dir</em> will raise an <tt>IOError</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.close   #=&gt; nil\n"
full_name: Dir#close
is_singleton: false
name: close
params: |
  dir.close => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the named directory. Raises a subclass of <tt>SystemCallError</tt> if the directory isn't empty.
full_name: Dir::unlink
is_singleton: true
name: unlink
params: |
  Dir.delete( string ) => 0
  Dir.rmdir( string ) => 0
  Dir.unlink( string ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to calling <tt>Dir.glob(</tt><em>array,</em><tt>0)</tt> and <tt>Dir.glob([</tt><em>string,...</em><tt>],0)</tt>.
full_name: Dir::[]
is_singleton: true
name: "[]"
params: |
  Dir[ array ]                 => array
  Dir[ string [, string ...] ] => array

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: chdir
- !ruby/object:RI::MethodSummary 
  name: chroot
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: entries
- !ruby/object:RI::MethodSummary 
  name: foreach
- !ruby/object:RI::MethodSummary 
  name: getwd
- !ruby/object:RI::MethodSummary 
  name: glob
- !ruby/object:RI::MethodSummary 
  name: mkdir
- !ruby/object:RI::MethodSummary 
  name: mktmpdir
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: pwd
- !ruby/object:RI::MethodSummary 
  name: rmdir
- !ruby/object:RI::MethodSummary 
  name: tmpdir
- !ruby/object:RI::MethodSummary 
  name: unlink
comment: 
- !ruby/struct:SM::Flow::P 
  body: Objects of class <tt>Dir</tt> are directory streams representing directories in the underlying file system. They provide a variety of ways to list directories and their contents. See also <tt>File</tt>.
- !ruby/struct:SM::Flow::P 
  body: The directory used in these examples contains the two regular files (<tt>config.h</tt> and <tt>main.rb</tt>), the parent directory (<tt>..</tt>), and the directory itself (<tt>.</tt>).
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CSIDL_LOCAL_APPDATA
  value: "0x001c"
full_name: Dir
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: pos=
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: seek
- !ruby/object:RI::MethodSummary 
  name: tell
name: Dir
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads the next entry from <em>dir</em> and returns it as a string. Returns <tt>nil</tt> at the end of the stream.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.read   #=&gt; &quot;.&quot;\n   d.read   #=&gt; &quot;..&quot;\n   d.read   #=&gt; &quot;config.h&quot;\n"
full_name: Dir#read
is_singleton: false
name: read
params: |
  dir.read => string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes this process's idea of the file system root. Only a privileged process may make this call. Not available on all platforms. On Unix systems, see <tt>chroot(2)</tt> for more information.
full_name: Dir::chroot
is_singleton: true
name: chroot
params: |
  Dir.chroot( string ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the block once for each entry in the named directory, passing the filename of each entry as a parameter to the block.
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir.foreach(&quot;testdir&quot;) {|x| puts &quot;Got #{x}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Got .\n   Got ..\n   Got config.h\n   Got main.rb\n"
full_name: Dir::foreach
is_singleton: true
name: foreach
params: |
  Dir.foreach( dirname ) {| filename | block }  => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the filenames found by expanding <em>pattern</em> which is an <tt>Array</tt> of the patterns or the pattern <tt>String</tt>, either as an <em>array</em> or as parameters to the block. Note that this pattern is not a regexp (it's closer to a shell glob). See <tt>File::fnmatch</tt> for the meaning of the <em>flags</em> parameter. Note that case sensitivity depends on your system (so <tt>File::FNM_CASEFOLD</tt> is ignored)
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<code>*</code>:"
    body: Matches any file. Can be restricted by other values in the glob. <tt>*</tt> will match all files; <tt>c*</tt> will match all files beginning with <tt>c</tt>; <tt>*c</tt> will match all files ending with <tt>c</tt>; and <b><tt>c</tt></b> will match all files that have <tt>c</tt> in them (including at the beginning or end). Equivalent to <tt>/ .* /x</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>**</code>:"
    body: Matches directories recursively.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>?</code>:"
    body: Matches any one character. Equivalent to <tt>/.{1}/</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>[set]</code>:"
    body: Matches any one character in <tt>set</tt>. Behaves exactly like character sets in Regexp, including set negation (<tt>[^a-z]</tt>).
  - !ruby/struct:SM::Flow::LI 
    label: "<code>{p,q}</code>:"
    body: Matches either literal <tt>p</tt> or literal <tt>q</tt>. Matching literals may be more than one character in length. More than two literals may be specified. Equivalent to pattern alternation in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>\\</code>:"
    body: Escapes the next metacharacter.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir[&quot;config.?&quot;]                     #=&gt; [&quot;config.h&quot;]\n   Dir.glob(&quot;config.?&quot;)                #=&gt; [&quot;config.h&quot;]\n   Dir.glob(&quot;*.[a-z][a-z]&quot;)            #=&gt; [&quot;main.rb&quot;]\n   Dir.glob(&quot;*.[^r]*&quot;)                 #=&gt; [&quot;config.h&quot;]\n   Dir.glob(&quot;*.{rb,h}&quot;)                #=&gt; [&quot;main.rb&quot;, &quot;config.h&quot;]\n   Dir.glob(&quot;*&quot;)                       #=&gt; [&quot;config.h&quot;, &quot;main.rb&quot;]\n   Dir.glob(&quot;*&quot;, File::FNM_DOTMATCH)   #=&gt; [&quot;.&quot;, &quot;..&quot;, &quot;config.h&quot;, &quot;main.rb&quot;]\n\n   rbfiles = File.join(&quot;**&quot;, &quot;*.rb&quot;)\n   Dir.glob(rbfiles)                   #=&gt; [&quot;main.rb&quot;,\n                                            &quot;lib/song.rb&quot;,\n                                            &quot;lib/song/karaoke.rb&quot;]\n   libdirs = File.join(&quot;**&quot;, &quot;lib&quot;)\n   Dir.glob(libdirs)                   #=&gt; [&quot;lib&quot;]\n\n   librbfiles = File.join(&quot;**&quot;, &quot;lib&quot;, &quot;**&quot;, &quot;*.rb&quot;)\n   Dir.glob(librbfiles)                #=&gt; [&quot;lib/song.rb&quot;,\n                                            &quot;lib/song/karaoke.rb&quot;]\n\n   librbfiles = File.join(&quot;**&quot;, &quot;lib&quot;, &quot;*.rb&quot;)\n   Dir.glob(librbfiles)                #=&gt; [&quot;lib/song.rb&quot;]\n"
full_name: Dir::glob
is_singleton: true
name: glob
params: |
  Dir.glob( pattern, [flags] ) => array
  Dir.glob( pattern, [flags] ) {| filename | block }  => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the block once for each entry in this directory, passing the filename of each entry as a parameter to the block.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.each  {|x| puts &quot;Got #{x}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Got .\n   Got ..\n   Got config.h\n   Got main.rb\n"
full_name: Dir#each
is_singleton: false
name: each
params: |
  dir.each { |filename| block }  => dir

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for <tt>Dir#seek</tt>, but returns the position parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)   #=&gt; #&lt;Dir:0x401b3c40&gt;\n   d.read                   #=&gt; &quot;.&quot;\n   i = d.pos                #=&gt; 12\n   d.read                   #=&gt; &quot;..&quot;\n   d.pos = i                #=&gt; 12\n   d.read                   #=&gt; &quot;..&quot;\n"
full_name: Dir#pos=
is_singleton: false
name: pos=
params: |
  dir.pos( integer ) => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Makes a new directory named by <em>string</em>, with permissions specified by the optional parameter <em>anInteger</em>. The permissions may be modified by the value of <tt>File::umask</tt>, and are ignored on NT. Raises a <tt>SystemCallError</tt> if the directory cannot be created. See also the discussion of permissions in the class documentation for <tt>File</tt>.
full_name: Dir::mkdir
is_singleton: true
name: mkdir
params: |
  Dir.mkdir( string [, integer] ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current position in <em>dir</em>. See also <tt>Dir#seek</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.tell   #=&gt; 0\n   d.read   #=&gt; &quot;.&quot;\n   d.tell   #=&gt; 12\n"
full_name: Dir#tell
is_singleton: false
name: tell
params: |
  dir.pos => integer
  dir.tell => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the operating system's temporary file path.
full_name: Dir::tmpdir
is_singleton: true
name: tmpdir
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: path
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dir.mktmpdir creates a temporary directory.
- !ruby/struct:SM::Flow::P 
  body: The directory is created with 0700 permission.
- !ruby/struct:SM::Flow::P 
  body: The prefix and suffix of the name of the directory is specified by the optional first argument, <em>prefix_suffix</em>.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: If it is not specified or nil, &quot;d&quot; is used as the prefix and no suffix is used.
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: If it is a string, it is used as the prefix and no suffix is used.
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: If it is an array, first element is used as the prefix and second element is used as a suffix.
  type: :BULLET
- !ruby/struct:SM::Flow::VERB 
  body: " Dir.mktmpdir {|dir| dir is &quot;.../d...&quot; }\n Dir.mktmpdir(&quot;foo&quot;) {|dir| dir is &quot;.../foo...&quot; }\n Dir.mktmpdir([&quot;foo&quot;, &quot;bar&quot;]) {|dir| dir is &quot;.../foo...bar&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: The directory is created under Dir.tmpdir or the optional second argument <em>tmpdir</em> if non-nil value is given.
- !ruby/struct:SM::Flow::VERB 
  body: " Dir.mktmpdir {|dir| dir is &quot;#{Dir.tmpdir}/d...&quot; }\n Dir.mktmpdir(nil, &quot;/var/tmp&quot;) {|dir| dir is &quot;/var/tmp/d...&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: If a block is given, it is yielded with the path of the directory. The directory and its contents are removed using FileUtils.remove_entry_secure before Dir.mktmpdir returns. The value of the block is returned.
- !ruby/struct:SM::Flow::VERB 
  body: " Dir.mktmpdir {|dir|\n   # use the directory...\n   open(&quot;#{dir}/foo&quot;, &quot;w&quot;) { ... }\n }\n"
- !ruby/struct:SM::Flow::P 
  body: If a block is not given, The path of the directory is returned. In this case, Dir.mktmpdir doesn't remove the directory.
- !ruby/struct:SM::Flow::VERB 
  body: " dir = Dir.mktmpdir\n begin\n   # use the directory...\n   open(&quot;#{dir}/foo&quot;, &quot;w&quot;) { ... }\n ensure\n   # remove the directory.\n   FileUtils.remove_entry_secure dir\n end\n"
full_name: Dir::mktmpdir
is_singleton: true
name: mktmpdir
params: (prefix_suffix=nil, tmpdir=nil) {|path| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current position in <em>dir</em>. See also <tt>Dir#seek</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   d = Dir.new(&quot;testdir&quot;)\n   d.tell   #=&gt; 0\n   d.read   #=&gt; &quot;.&quot;\n   d.tell   #=&gt; 12\n"
full_name: Dir#pos
is_singleton: false
name: pos
params: |
  dir.pos => integer
  dir.tell => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the named directory. Raises a subclass of <tt>SystemCallError</tt> if the directory isn't empty.
full_name: Dir::rmdir
is_singleton: true
name: rmdir
params: |
  Dir.delete( string ) => 0
  Dir.rmdir( string ) => 0
  Dir.unlink( string ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the path to the current working directory of this process as a string.
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir.chdir(&quot;/tmp&quot;)   #=&gt; 0\n   Dir.getwd           #=&gt; &quot;/tmp&quot;\n"
full_name: Dir::getwd
is_singleton: true
name: getwd
params: |
  Dir.getwd => string
  Dir.pwd => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the named directory. Raises a subclass of <tt>SystemCallError</tt> if the directory isn't empty.
full_name: Dir::delete
is_singleton: true
name: delete
params: |
  Dir.delete( string ) => 0
  Dir.rmdir( string ) => 0
  Dir.unlink( string ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing all of the filenames in the given directory. Will raise a <tt>SystemCallError</tt> if the named directory doesn't exist.
- !ruby/struct:SM::Flow::VERB 
  body: "   Dir.entries(&quot;testdir&quot;)   #=&gt; [&quot;.&quot;, &quot;..&quot;, &quot;config.h&quot;, &quot;main.rb&quot;]\n"
full_name: Dir::entries
is_singleton: true
name: entries
params: |
  Dir.entries( dirname ) => array

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: fatal
includes: []

instance_methods: []

name: fatal
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::true
is_singleton: true
name: "true"
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::string_length
is_singleton: true
name: string_length
params: ( string )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::local_name
is_singleton: true
name: local_name
params: ( node_set=nil )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: boolean
- !ruby/object:RI::MethodSummary 
  name: ceiling
- !ruby/object:RI::MethodSummary 
  name: compare_language
- !ruby/object:RI::MethodSummary 
  name: concat
- !ruby/object:RI::MethodSummary 
  name: contains
- !ruby/object:RI::MethodSummary 
  name: context=
- !ruby/object:RI::MethodSummary 
  name: count
- !ruby/object:RI::MethodSummary 
  name: "false"
- !ruby/object:RI::MethodSummary 
  name: floor
- !ruby/object:RI::MethodSummary 
  name: get_namespace
- !ruby/object:RI::MethodSummary 
  name: id
- !ruby/object:RI::MethodSummary 
  name: lang
- !ruby/object:RI::MethodSummary 
  name: last
- !ruby/object:RI::MethodSummary 
  name: local_name
- !ruby/object:RI::MethodSummary 
  name: method_missing
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: namespace_context
- !ruby/object:RI::MethodSummary 
  name: namespace_context=
- !ruby/object:RI::MethodSummary 
  name: namespace_uri
- !ruby/object:RI::MethodSummary 
  name: normalize_space
- !ruby/object:RI::MethodSummary 
  name: not
- !ruby/object:RI::MethodSummary 
  name: number
- !ruby/object:RI::MethodSummary 
  name: position
- !ruby/object:RI::MethodSummary 
  name: processing_instruction
- !ruby/object:RI::MethodSummary 
  name: round
- !ruby/object:RI::MethodSummary 
  name: starts_with
- !ruby/object:RI::MethodSummary 
  name: string
- !ruby/object:RI::MethodSummary 
  name: string_length
- !ruby/object:RI::MethodSummary 
  name: string_value
- !ruby/object:RI::MethodSummary 
  name: substring
- !ruby/object:RI::MethodSummary 
  name: substring_after
- !ruby/object:RI::MethodSummary 
  name: substring_before
- !ruby/object:RI::MethodSummary 
  name: sum
- !ruby/object:RI::MethodSummary 
  name: text
- !ruby/object:RI::MethodSummary 
  name: translate
- !ruby/object:RI::MethodSummary 
  name: "true"
- !ruby/object:RI::MethodSummary 
  name: variables
- !ruby/object:RI::MethodSummary 
  name: variables=
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If you add a method, keep in mind two things: (1) the first argument will always be a list of nodes from which to filter. In the case of context methods (such as position), the function should return an array with a value for each child in the array. (2) all method calls from XML will have &quot;-&quot; replaced with &quot;_&quot;. Therefore, in XML, &quot;local-name()&quot; is identical (and actually becomes) &quot;local_name()&quot;"
constants: []

full_name: REXML::Functions
includes: []

instance_methods: []

name: Functions
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::string_value
is_singleton: true
name: string_value
params: ( o )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::variables=
is_singleton: true
name: variables=
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::normalize_space
is_singleton: true
name: normalize_space
params: ( string=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fixed by Mike Stok
full_name: REXML::Functions::starts_with
is_singleton: true
name: starts_with
params: ( string, test )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::count
is_singleton: true
name: count
params: ( node_set )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::name
is_singleton: true
name: name
params: ( node_set=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::compare_language
is_singleton: true
name: compare_language
params: (lang1, lang2)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::round
is_singleton: true
name: round
params: ( number )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::namespace_context
is_singleton: true
name: namespace_context
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::position
is_singleton: true
name: position
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::method_missing
is_singleton: true
name: method_missing
params: ( id )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::last
is_singleton: true
name: last
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::text
is_singleton: true
name: text
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::false
is_singleton: true
name: "false"
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::boolean
is_singleton: true
name: boolean
params: ( object=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::namespace_uri
is_singleton: true
name: namespace_uri
params: ( node_set=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fixed by Mike Stok
full_name: REXML::Functions::contains
is_singleton: true
name: contains
params: ( string, test )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::ceiling
is_singleton: true
name: ceiling
params: ( number )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::processing_instruction
is_singleton: true
name: processing_instruction
params: ( node )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::context=
is_singleton: true
name: context=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: a string that consists of optional whitespace followed by an optional minus sign followed by a Number followed by whitespace is converted to the IEEE 754 number that is nearest (according to the IEEE 754 round-to-nearest rule) to the mathematical value represented by the string; any other string is converted to NaN
- !ruby/struct:SM::Flow::P 
  body: boolean true is converted to 1; boolean false is converted to 0
- !ruby/struct:SM::Flow::P 
  body: a node-set is first converted to a string as if by a call to the string function and then converted in the same way as a string argument
- !ruby/struct:SM::Flow::P 
  body: an object of a type other than the four basic types is converted to a number in a way that is dependent on that type
full_name: REXML::Functions::number
is_singleton: true
name: number
params: ( object=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is entirely Mike Stok's beast
full_name: REXML::Functions::translate
is_singleton: true
name: translate
params: ( string, tr1, tr2 )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::lang
is_singleton: true
name: lang
params: ( language )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::variables
is_singleton: true
name: variables
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::floor
is_singleton: true
name: floor
params: ( number )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Since REXML is non-validating, this method is not implemented as it requires a DTD
full_name: REXML::Functions::id
is_singleton: true
name: id
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::not
is_singleton: true
name: not
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Take equal portions of Mike Stok and Sean Russell; mix vigorously, and pour into a tall, chilled glass. Serves 10,000.
full_name: REXML::Functions::substring
is_singleton: true
name: substring
params: ( string, start, length=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: UNTESTED
full_name: REXML::Functions::concat
is_singleton: true
name: concat
params: ( *objects )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: "@@context[:node] if defined? @@context[:node].namespace"
comment: 
- !ruby/struct:SM::Flow::P 
  body: Helper method.
full_name: REXML::Functions::get_namespace
is_singleton: true
name: get_namespace
params: ( node_set = nil ) {|@@context[:node] if defined? @@context[:node].namespace| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Kouhei fixed this too
full_name: REXML::Functions::substring_after
is_singleton: true
name: substring_after
params: ( string, test )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Kouhei fixed this
full_name: REXML::Functions::substring_before
is_singleton: true
name: substring_before
params: ( string, test )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::namespace_context=
is_singleton: true
name: namespace_context=
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Functions::sum
is_singleton: true
name: sum
params: ( nodes )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A node-set is converted to a string by returning the string-value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned.
- !ruby/struct:SM::Flow::P 
  body: A number is converted to a string as follows
- !ruby/struct:SM::Flow::P 
  body: NaN is converted to the string NaN
- !ruby/struct:SM::Flow::P 
  body: positive zero is converted to the string 0
- !ruby/struct:SM::Flow::P 
  body: negative zero is converted to the string 0
- !ruby/struct:SM::Flow::P 
  body: positive infinity is converted to the string Infinity
- !ruby/struct:SM::Flow::P 
  body: negative infinity is converted to the string -Infinity
- !ruby/struct:SM::Flow::P 
  body: if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative
- !ruby/struct:SM::Flow::P 
  body: otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values.
- !ruby/struct:SM::Flow::P 
  body: The boolean false value is converted to the string false. The boolean true value is converted to the string true.
- !ruby/struct:SM::Flow::P 
  body: An object of a type other than the four basic types is converted to a string in a way that is dependent on that type.
full_name: REXML::Functions::string
is_singleton: true
name: string
params: ( object=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes this attribute (EG, puts 'key=&quot;value&quot;' to the output)
full_name: REXML::Attribute#write
is_singleton: false
name: write
params: ( output, indent=-1 )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes this Attribute from the tree, and returns true if successfull
- !ruby/struct:SM::Flow::P 
  body: This method is usually not called directly.
full_name: REXML::Attribute#remove
is_singleton: false
name: remove
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Attribute#xpath
is_singleton: false
name: xpath
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if other is an Attribute and has the same name and value, false otherwise.
full_name: REXML::Attribute#==
is_singleton: false
name: ==
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a copy of this attribute
full_name: REXML::Attribute#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Attribute#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates (and returns) a hash from both the name and value
full_name: REXML::Attribute#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the namespace URL, if defined, or nil otherwise
- !ruby/struct:SM::Flow::VERB 
  body: " e = Element.new(&quot;el&quot;)\n e.add_attributes({&quot;xmlns:ns&quot;, &quot;http://url&quot;})\n e.namespace( &quot;ns&quot; )              # -&gt; &quot;http://url&quot;\n"
full_name: REXML::Attribute#namespace
is_singleton: false
name: namespace
params: (arg=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Constructor. FIXME: The parser doesn't catch illegal characters in attributes"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "first:"
    body: "Either: an Attribute, which this new attribute will become a clone of; or a String, which is the name of this attribute"
  - !ruby/struct:SM::Flow::LI 
    label: "second:"
    body: If <tt>first</tt> is an Attribute, then this may be an Element, or nil. If nil, then the Element parent of this attribute is the parent of the <tt>first</tt> Attribute. If the first argument is a String, then this must also be a String, and is the content of the attribute. If this is the content, it must be fully normalized (contain no illegal characters).
  - !ruby/struct:SM::Flow::LI 
    label: "parent:"
    body: Ignored unless <tt>first</tt> is a String; otherwise, may be the Element parent of this attribute, or nil.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " Attribute.new( attribute_to_clone )\n Attribute.new( attribute_to_clone, parent_element )\n Attribute.new( &quot;attr&quot;, &quot;attr_value&quot; )\n Attribute.new( &quot;attr&quot;, &quot;attr_value&quot;, parent_element )\n"
full_name: REXML::Attribute::new
is_singleton: true
name: new
params: ( first, second=nil, parent=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the UNNORMALIZED value of this attribute. That is, entities have been expanded to their values
full_name: REXML::Attribute#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the attribute value, with entities replaced
full_name: REXML::Attribute#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Attribute#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The element to which this attribute belongs
  name: element
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The normalized value of this attribute. That is, the attribute with entities intact.
  name: normalized
  rw: W
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Defines an Element Attribute; IE, a attribute=value pair, as in: &lt;element attribute=&quot;value&quot;/&gt;. Attributes can be in their own namespaces. General users of REXML will not interact with the Attribute class much."
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: PATTERN
  value: /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um
full_name: REXML::Attribute
includes: 
- !ruby/object:RI::IncludedModule 
  name: Node
- !ruby/object:RI::IncludedModule 
  name: Namespace
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: element=
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: namespace
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: prefix
- !ruby/object:RI::MethodSummary 
  name: remove
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_string
- !ruby/object:RI::MethodSummary 
  name: value
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: xpath
name: Attribute
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the namespace of the attribute.
- !ruby/struct:SM::Flow::VERB 
  body: " e = Element.new( &quot;elns:myelement&quot; )\n e.add_attribute( &quot;nsa:a&quot;, &quot;aval&quot; )\n e.add_attribute( &quot;b&quot;, &quot;bval&quot; )\n e.attributes.get_attribute( &quot;a&quot; ).prefix   # -&gt; &quot;nsa&quot;\n e.attributes.get_attribute( &quot;b&quot; ).prefix   # -&gt; &quot;elns&quot;\n a = Attribute.new( &quot;x&quot;, &quot;y&quot; )\n a.prefix                                   # -&gt; &quot;&quot;\n"
full_name: REXML::Attribute#prefix
is_singleton: false
name: prefix
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the element of which this object is an attribute. Normally, this is not directly called.
- !ruby/struct:SM::Flow::P 
  body: Returns this attribute
full_name: REXML::Attribute#element=
is_singleton: false
name: element=
params: ( element )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns this attribute out as XML source, expanding the name
- !ruby/struct:SM::Flow::VERB 
  body: " a = Attribute.new( &quot;x&quot;, &quot;y&quot; )\n a.to_string     # -&gt; &quot;x='y'&quot;\n b = Attribute.new( &quot;ns:x&quot;, &quot;y&quot; )\n b.to_string     # -&gt; &quot;ns:x='y'&quot;\n"
full_name: REXML::Attribute#to_string
is_singleton: false
name: to_string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See REXML::Formatters
full_name: REXML::Text#write
is_singleton: false
name: write
params: ( writer, indent=-1, transitive=false, ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unescapes all possible entities
full_name: REXML::Text::unnormalize
is_singleton: true
name: unnormalize
params: ( string, doctype=nil, filter=nil, illegal=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>other</tt> a String or a Text <tt>returns</tt> the result of (to_s &lt;=&gt; arg.to_s)
full_name: REXML::Text#<=>
is_singleton: false
name: <=>
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: FIXME This probably won't work properly
full_name: REXML::Text#xpath
is_singleton: false
name: xpath
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text::expand
is_singleton: true
name: expand
params: (ref, doctype, filter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes out text, substituting special characters beforehand. <tt>out</tt> A String, IO, or any other object supporting &lt;&lt;( String ) <tt>input</tt> the text to substitute and the write out
- !ruby/struct:SM::Flow::VERB 
  body: "  z=utf8.unpack(&quot;U*&quot;)\n  ascOut=&quot;&quot;\n  z.each{|r|\n    if r &lt;  0x100\n      ascOut.concat(r.chr)\n    else\n      ascOut.concat(sprintf(&quot;&amp;#x%x;&quot;, r))\n    end\n  }\n  puts ascOut\n"
full_name: REXML::Text#write_with_substitution
is_singleton: false
name: write_with_substitution
params: (out, input)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#indent_text
is_singleton: false
name: indent_text
params: (string, level=1, style="\t", indentfirstline=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor <tt>arg</tt> if a String, the content is set to the String. If a Text, the object is shallowly cloned.
- !ruby/struct:SM::Flow::P 
  body: <tt>respect_whitespace</tt> (boolean, false) if true, whitespace is respected
- !ruby/struct:SM::Flow::P 
  body: <tt>parent</tt> (nil) if this is a Parent object, the parent will be set to this.
- !ruby/struct:SM::Flow::P 
  body: <tt>raw</tt> (nil) This argument can be given three values. If true, then the value of used to construct this object is expected to contain no unescaped XML markup, and REXML will not change the text. If this value is false, the string may contain any characters, and REXML will escape any and all defined entities whose values are contained in the text. If this value is nil (the default), then the raw value of the parent will be used as the raw value for this node. If there is no raw value for the parent, and no value is supplied, the default is false. Use this field if you have entities defined for some text, and you don't want REXML to escape that text in output.
- !ruby/struct:SM::Flow::VERB 
  body: "  Text.new( &quot;&lt;&amp;&quot;, false, nil, false ) #-&gt; &quot;&amp;lt;&amp;amp;&quot;\n  Text.new( &quot;&amp;lt;&amp;amp;&quot;, false, nil, false ) #-&gt; &quot;&amp;amp;lt;&amp;amp;amp;&quot;\n  Text.new( &quot;&lt;&amp;&quot;, false, nil, true )  #-&gt; Parse exception\n  Text.new( &quot;&amp;lt;&amp;amp;&quot;, false, nil, true )  #-&gt; &quot;&amp;lt;&amp;amp;&quot;\n  # Assume that the entity &quot;s&quot; is defined to be &quot;sean&quot;\n  # and that the entity    &quot;r&quot; is defined to be &quot;russell&quot;\n  Text.new( &quot;sean russell&quot; )          #-&gt; &quot;&amp;s; &amp;r;&quot;\n  Text.new( &quot;sean russell&quot;, false, nil, true ) #-&gt; &quot;sean russell&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <tt>entity_filter</tt> (nil) This can be an array of entities to match in the supplied text. This argument is only useful if <tt>raw</tt> is set to false.
- !ruby/struct:SM::Flow::VERB 
  body: "  Text.new( &quot;sean russell&quot;, false, nil, false, [&quot;s&quot;] ) #-&gt; &quot;&amp;s; russell&quot;\n  Text.new( &quot;sean russell&quot;, false, nil, true, [&quot;s&quot;] ) #-&gt; &quot;sean russell&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: In the last example, the <tt>entity_filter</tt> argument is ignored.
- !ruby/struct:SM::Flow::P 
  body: <tt>pattern</tt> INTERNAL USE ONLY
full_name: REXML::Text::new
is_singleton: true
name: new
params: (arg, respect_whitespace=false, parent=nil, raw=nil, entity_filter=nil, illegal=ILLEGAL )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the string value of this text. This is the text without entities, as it might be used programmatically, or printed to the console. This ignores the 'raw' attribute setting, and any entity_filter.
- !ruby/struct:SM::Flow::VERB 
  body: "  # Assume that the entity &quot;s&quot; is defined to be &quot;sean&quot;, and that the\n  # entity &quot;r&quot; is defined to be &quot;russell&quot;\n  t = Text.new( &quot;&lt; &amp; sean russell&quot;, false, nil, false, ['s'] )\n  t.value   #-&gt; &quot;&lt; &amp; sean russell&quot;\n  t = Text.new( &quot;&lt; &amp; &amp;s; russell&quot;, false, nil, false )\n  t.value   #-&gt; &quot;&lt; &amp; sean russell&quot;\n  u = Text.new( &quot;sean russell&quot;, false, nil, true )\n  u.value   #-&gt; &quot;sean russell&quot;\n"
full_name: REXML::Text#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#wrap
is_singleton: false
name: wrap
params: (string, width, addnewline=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the string value of this text node. This string is always escaped, meaning that it is a valid XML text node string, and all entities that can be escaped, have been inserted. This method respects the entity filter set in the constructor.
- !ruby/struct:SM::Flow::VERB 
  body: "  # Assume that the entity &quot;s&quot; is defined to be &quot;sean&quot;, and that the\n  # entity &quot;r&quot; is defined to be &quot;russell&quot;\n  t = Text.new( &quot;&lt; &amp; sean russell&quot;, false, nil, false, ['s'] )\n  t.to_s   #-&gt; &quot;&amp;lt; &amp;amp; &amp;s; russell&quot;\n  t = Text.new( &quot;&lt; &amp; &amp;s; russell&quot;, false, nil, false )\n  t.to_s   #-&gt; &quot;&amp;lt; &amp;amp; &amp;s; russell&quot;\n  u = Text.new( &quot;sean russell&quot;, false, nil, true )\n  u.to_s   #-&gt; &quot;sean russell&quot;\n"
full_name: REXML::Text#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Text#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: If <tt>raw</tt> is true, then REXML leaves the value alone
  name: raw
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: expand
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: read_with_substitution
- !ruby/object:RI::MethodSummary 
  name: unnormalize
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents text nodes in an XML document
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The order in which the substitutions occur
  name: SPECIALS
  value: "[ /&(?!#?[\\w-]+;)/u, /</u, />/u, /\"/u, /'/u, /\\r/u ]"
- !ruby/object:RI::Constant 
  comment: 
  name: SUBSTITUTES
  value: "['&amp;', '&lt;', '&gt;', '&quot;', '&apos;', '&#13;']"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Characters which are substituted in written strings
  name: SLAICEPS
  value: "[ '<', '>', '\"', \"'\", '&' ]"
- !ruby/object:RI::Constant 
  comment: 
  name: SETUTITSBUS
  value: "[ /&lt;/u, /&gt;/u, /&quot;/u, /&apos;/u, /&amp;/u ]"
- !ruby/object:RI::Constant 
  comment: 
  name: ILLEGAL
  value: /(<|&(?!(#{Entity::NAME})|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));))/um
- !ruby/object:RI::Constant 
  comment: 
  name: NUMERICENTITY
  value: /&#0*((?:\d+)|(?:x[a-fA-F0-9]+));/
- !ruby/object:RI::Constant 
  comment: 
  name: REFERENCE
  value: /#{Entity::REFERENCE}/
- !ruby/object:RI::Constant 
  comment: 
  name: EREFERENCE
  value: /&(?!#{Entity::NAME};)/
full_name: REXML::Text
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: indent_text
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: value
- !ruby/object:RI::MethodSummary 
  name: value=
- !ruby/object:RI::MethodSummary 
  name: wrap
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: write_with_substitution
- !ruby/object:RI::MethodSummary 
  name: xpath
name: Text
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends text to this text node. The text is appended in the <tt>raw</tt> mode of this text node.
full_name: REXML::Text#<<
is_singleton: false
name: "<<"
params: ( to_append )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escapes all possible entities
full_name: REXML::Text::normalize
is_singleton: true
name: normalize
params: ( input, doctype=nil, entity_filter=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads text, substituting entities
full_name: REXML::Text::read_with_substitution
is_singleton: true
name: read_with_substitution
params: ( input, illegal=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the contents of this text node. This expects the text to be unnormalized. It returns self.
- !ruby/struct:SM::Flow::VERB 
  body: "  e = Element.new( &quot;a&quot; )\n  e.add_text( &quot;foo&quot; )   # &lt;a&gt;foo&lt;/a&gt;\n  e[0].value = &quot;bar&quot;    # &lt;a&gt;bar&lt;/a&gt;\n  e[0].value = &quot;&lt;a&gt;&quot;    # &lt;a&gt;&amp;lt;a&amp;gt;&lt;/a&gt;\n"
full_name: REXML::Text#value=
is_singleton: false
name: value=
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: Ignored. There must be no whitespace before an XML declaration
  - !ruby/struct:SM::Flow::LI 
    label: "transitive:"
    body: Ignored
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Ignored
  type: :NOTE
full_name: REXML::XMLDecl#write
is_singleton: false
name: write
params: (writer, indent=-1, transitive=false, ie_hack=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#content
is_singleton: false
name: content
params: (enc)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Only use this if you do not want the XML declaration to be written; this object is ignored by the XML writer. Otherwise, instantiate your own XMLDecl and add it to the document.
- !ruby/struct:SM::Flow::P 
  body: Note that XML 1.1 documents <b>must</b> include an XML declaration
full_name: REXML::XMLDecl::default
is_singleton: true
name: default
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: standalone
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: version
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: writeencoding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: writethis
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: default
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: NEEDS DOCUMENTATION
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_VERSION
  value: "\"1.0\";"
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_ENCODING
  value: "\"UTF-8\";"
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_STANDALONE
  value: "\"no\";"
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "'<\\?xml';"
- !ruby/object:RI::Constant 
  comment: 
  name: STOP
  value: "'\\?>';"
full_name: REXML::XMLDecl
includes: 
- !ruby/object:RI::IncludedModule 
  name: Encoding
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: content
- !ruby/object:RI::MethodSummary 
  name: dowrite
- !ruby/object:RI::MethodSummary 
  name: encoding=
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: nowrite
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: XMLDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#==
is_singleton: false
name: ==
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#dowrite
is_singleton: false
name: dowrite
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl::new
is_singleton: true
name: new
params: (version=DEFAULT_VERSION, encoding=nil, standalone=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#encoding=
is_singleton: false
name: encoding=
params: ( enc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#nowrite
is_singleton: false
name: nowrite
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XMLDecl#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Defines a number of tokens used for parsing XML. Not for general consumption.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NCNAME_STR
  value: "'[\\w:][\\-\\w\\d.]*'"
- !ruby/object:RI::Constant 
  comment: 
  name: NAME_STR
  value: "\"(?:#{NCNAME_STR}:)?#{NCNAME_STR}\""
- !ruby/object:RI::Constant 
  comment: 
  name: NAMECHAR
  value: "'[\\-\\w\\d\\.:]'"
- !ruby/object:RI::Constant 
  comment: 
  name: NAME
  value: "\"([\\\\w:]#{NAMECHAR}*)\""
- !ruby/object:RI::Constant 
  comment: 
  name: NMTOKEN
  value: "\"(?:#{NAMECHAR})+\""
- !ruby/object:RI::Constant 
  comment: 
  name: NMTOKENS
  value: "\"#{NMTOKEN}(\\\\s+#{NMTOKEN})*\""
- !ruby/object:RI::Constant 
  comment: 
  name: REFERENCE
  value: "\"(?:&#{NAME};|&#\\\\d+;|&#x[0-9a-fA-F]+;)\""
full_name: REXML::XMLTokens
includes: []

instance_methods: []

name: XMLTokens
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ParseException#position
is_singleton: false
name: position
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ParseException::new
is_singleton: true
name: new
params: ( message, source=nil, parser=nil, exception=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ParseException#line
is_singleton: false
name: line
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: continued_exception
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: parser
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: source
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::ParseException
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: context
- !ruby/object:RI::MethodSummary 
  name: line
- !ruby/object:RI::MethodSummary 
  name: position
- !ruby/object:RI::MethodSummary 
  name: to_s
name: ParseException
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ParseException#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ParseException#context
is_singleton: false
name: context
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::DTD
includes: []

instance_methods: []

name: DTD
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: \s*(((([&quot;']).*?\5)|[^\/'&quot;&gt;]*)*?)(\/)?&gt;/um, true)
full_name: REXML::DTD::ElementDecl::new
is_singleton: true
name: new
params: (match)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!ELEMENT\""
- !ruby/object:RI::Constant 
  comment: 
  name: START_RE
  value: /^\s*#{START}/um
- !ruby/object:RI::Constant 
  comment: 
  name: PATTERN_RE
  value: /^\s*(#{START}.*?)>/um
- !ruby/object:RI::Constant 
  comment: 
  name: PATTERN_RE
  value: /^\s*#{START}\s+((?:[:\w_][-\.\w_]*:)?[-!\*\.\w_]*)(.*?)>/
full_name: REXML::DTD::ElementDecl
includes: []

instance_methods: []

name: ElementDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Takes a String and parses it out
full_name: REXML::DTD::Parser::parse_helper
is_singleton: true
name: parse_helper
params: ( input )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: parse_helper
comment: 
constants: []

full_name: REXML::DTD::Parser
includes: []

instance_methods: []

name: Parser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::Parser::parse
is_singleton: true
name: parse
params: ( input )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::NotationDecl#write
is_singleton: false
name: write
params: ( output, indent )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::NotationDecl::parse_source
is_singleton: true
name: parse_source
params: (source, listener)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::NotationDecl::new
is_singleton: true
name: new
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::NotationDecl#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse_source
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!NOTATION\""
- !ruby/object:RI::Constant 
  comment: 
  name: START_RE
  value: /^\s*#{START}/um
- !ruby/object:RI::Constant 
  comment: 
  name: PUBLIC
  value: /^\s*#{START}\s+(\w[\w-]*)\s+(PUBLIC)\s+((["']).*?\4)\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEM
  value: /^\s*#{START}\s+(\w[\w-]*)\s+(SYSTEM)\s+((["']).*?\4)\s*>/um
full_name: REXML::DTD::NotationDecl
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: write
name: NotationDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::EntityDecl#write
is_singleton: false
name: write
params: ( output, indent )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::EntityDecl::parse_source
is_singleton: true
name: parse_source
params: (source, listener)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!ENTITY name SYSTEM &quot;...&quot;&gt; &lt;!ENTITY name &quot;...&quot;&gt;"
full_name: REXML::DTD::EntityDecl::new
is_singleton: true
name: new
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DTD::EntityDecl#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse_source
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!ENTITY\""
- !ruby/object:RI::Constant 
  comment: 
  name: START_RE
  value: /^\s*#{START}/um
- !ruby/object:RI::Constant 
  comment: 
  name: PUBLIC
  value: /^\s*#{START}\s+(?:%\s+)?(\w+)\s+PUBLIC\s+((["']).*?\3)\s+((["']).*?\5)\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEM
  value: /^\s*#{START}\s+(?:%\s+)?(\w+)\s+SYSTEM\s+((["']).*?\3)(?:\s+NDATA\s+\w+)?\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: PLAIN
  value: /^\s*#{START}\s+(\w+)\s+((["']).*?\3)\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: PERCENT
  value: /^\s*#{START}\s+%\s+(\w+)\s+((["']).*?\3)\s*>/um
full_name: REXML::DTD::EntityDecl
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: write
name: EntityDecl
superclass: Child
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!ATTLIST\""
- !ruby/object:RI::Constant 
  comment: 
  name: START_RE
  value: /^\s*#{START}/um
- !ruby/object:RI::Constant 
  comment: 
  name: PATTERN_RE
  value: /\s*(#{START}.*?>)/um
full_name: REXML::DTD::AttlistDecl
includes: []

instance_methods: []

name: AttlistDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See the rexml/formatters package
full_name: REXML::Instruction#write
is_singleton: false
name: write
params: (writer, indent=-1, transitive=false, ie_hack=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return true if other is an Instruction, and the content and target of the other matches the target and content of this object."
full_name: REXML::Instruction#==
is_singleton: false
name: ==
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Instruction#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Instruction#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructs a new Instruction @param target can be one of a number of things. If String, then the target of this instruction is set to this. If an Instruction, then the Instruction is shallowly cloned (target and content are copied). If a Source, then the source is scanned and parsed for an Instruction declaration. @param content Must be either a String, or a Parent. Can only be a Parent if the target argument is a Source. Otherwise, this String is set as the content of this instruction.
full_name: REXML::Instruction::new
is_singleton: true
name: new
params: (target, content=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: target is the &quot;name&quot; of the Instruction; IE, the &quot;tag&quot; in &lt;?tag ...?&gt; content is everything else.
  name: content
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: target is the &quot;name&quot; of the Instruction; IE, the &quot;tag&quot; in &lt;?tag ...?&gt; content is everything else.
  name: target
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Represents an XML Instruction; IE, &lt;? ... ?&gt; TODO: Add parent arg (3rd arg) to constructor"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "'<\\?'"
- !ruby/object:RI::Constant 
  comment: 
  name: STOP
  value: "'\\?>'"
full_name: REXML::Instruction
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: write
name: Instruction
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Instruction#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches an attribute value. If you want to get the Attribute itself, use get_attribute()
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: an XPath attribute name. Namespaces are relevant here.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the String value of the matching attribute, or <tt>nil</tt> if no matching attribute was found. This is the unnormalized value (with entities expanded).
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a foo:att='1' bar:att='2' att='&amp;lt;'/&gt;&quot;\n doc.root.attributes['att']         #-&gt; '&lt;'\n doc.root.attributes['bar:att']     #-&gt; '2'\n"
full_name: REXML::Attributes#[]
is_singleton: false
name: "[]"
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #length"
full_name: REXML::Attributes#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Attributes#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds an attribute, overriding any existing attribute by the same name. Namespaces are significant.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "attribute:"
    body: An Attribute
  type: :NOTE
full_name: REXML::Attributes#add
is_singleton: false
name: add
params: ( attribute )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches an attribute
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: the name by which to search for the attribute. Can be a <tt>prefix:name</tt> namespace name.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: The first matching attribute, or nil if there was none. This
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: value is an Attribute node, not the String value of the attribute.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a x:foo=&quot;1&quot; foo=&quot;2&quot; bar=&quot;3&quot;/&gt;'\n doc.root.attributes.get_attribute(&quot;foo&quot;).value    #-&gt; &quot;2&quot;\n doc.root.attributes.get_attribute(&quot;x:foo&quot;).value  #-&gt; &quot;1&quot;\n"
full_name: REXML::Attributes#get_attribute
is_singleton: false
name: get_attribute
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes all attributes matching a name. Namespaces are significant.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: A String; all attributes that match this path will be removed
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: an Array of the Attributes that were removed
  type: :NOTE
full_name: REXML::Attributes#delete_all
is_singleton: false
name: delete_all
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Attributes#namespaces
is_singleton: false
name: namespaces
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>get_attribute_ns</tt> method retrieves a method by its namespace and name. Thus it is possible to reliably identify an attribute even if an XML processor has changed the prefix.
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::Attributes#get_attribute_ns
is_singleton: false
name: get_attribute_ns
params: (namespace, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: the Element of which this is an Attribute
  type: :NOTE
full_name: REXML::Attributes::new
is_singleton: true
name: new
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: size
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of attributes the owning Element contains.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document &quot;&lt;a x='1' y='2' foo:x='3'/&gt;&quot;\n doc.root.attributes.length        #-&gt; 3\n"
full_name: REXML::Attributes#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns an array of Strings containing all of the prefixes declared by this set of # attributes. The array does not include the default namespace declaration, if one exists."
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new(&quot;&lt;a xmlns='foo' xmlns:x='bar' xmlns:y='twee' &quot;+\n       &quot;z='glorp' p:k='gru'/&gt;&quot;)\n prefixes = doc.root.attributes.prefixes    #-&gt; ['x', 'y']\n"
full_name: REXML::Attributes#prefixes
is_singleton: false
name: prefixes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes an attribute
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "attribute:"
    body: either a String, which is the name of the attribute to remove -- namespaces are significant here -- or the attribute to remove.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the owning element
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a y:foo='0' x:foo='1' foo='3' z:foo='4'/&gt;&quot;\n doc.root.attributes.delete 'foo'   #-&gt; &lt;a y:foo='0' x:foo='1' z:foo='4'/&gt;&quot;\n doc.root.attributes.delete 'x:foo' #-&gt; &lt;a y:foo='0' z:foo='4'/&gt;&quot;\n attr = doc.root.attributes.get_attribute('y:foo')\n doc.root.attributes.delete attr    #-&gt; &lt;a z:foo='4'/&gt;&quot;\n"
full_name: REXML::Attributes#delete
is_singleton: false
name: delete
params: ( attribute )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: attr.expanded_name, attr.value
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over each attribute of an Element, yielding the expanded name and value as a pair of Strings.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a x=&quot;1&quot; y=&quot;2&quot;/&gt;'\n doc.root.attributes.each {|name, value| p name+&quot; =&gt; &quot;+value }\n"
full_name: REXML::Attributes#each
is_singleton: false
name: each
params: () {|attr.expanded_name, attr.value| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: attribute
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over the attributes of an Element. Yields actual Attribute nodes, not String values.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a x=&quot;1&quot; y=&quot;2&quot;/&gt;'\n doc.root.attributes.each_attribute {|attr|\n   p attr.expanded_name+&quot; =&gt; &quot;+attr.value\n }\n"
full_name: REXML::Attributes#each_attribute
is_singleton: false
name: each_attribute
params: ( {|attribute| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A class that defines the set of Attributes of an Element and provides operations for accessing elements in that set.
constants: []

full_name: REXML::Attributes
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_all
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_attribute
- !ruby/object:RI::MethodSummary 
  name: get_attribute
- !ruby/object:RI::MethodSummary 
  name: get_attribute_ns
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: namespaces
- !ruby/object:RI::MethodSummary 
  name: prefixes
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_a
name: Attributes
superclass: Hash
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: REXML::Attributes#<<
is_singleton: false
name: "<<"
params: ( attribute )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets an attribute, overwriting any existing attribute value by the same name. Namespace is significant.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: the name of the attribute
  - !ruby/struct:SM::Flow::LI 
    label: "value:"
    body: (optional) If supplied, the value of the attribute. If nil, any existing matching attribute is deleted.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: Owning element
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a x:foo='1' foo='3'/&gt;&quot;\n doc.root.attributes['y:foo'] = '2'\n doc.root.attributes['foo'] = '4'\n doc.root.attributes['x:foo'] = nil\n"
full_name: REXML::Attributes#[]=
is_singleton: false
name: "[]="
params: ( name, value )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Parsers::TreeParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: parse
name: TreeParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::TreeParser::new
is_singleton: true
name: new
params: ( source, build_context = Document.new )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::TreeParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::TreeParser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::BaseParser#stream=
is_singleton: false
name: stream=
params: ( source )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the next event. This is a <tt>PullEvent</tt> object.
full_name: REXML::Parsers::BaseParser#pull
is_singleton: false
name: pull
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unescapes all possible entities
full_name: REXML::Parsers::BaseParser#unnormalize
is_singleton: false
name: unnormalize
params: ( string, entities=nil, filter=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::BaseParser#position
is_singleton: false
name: position
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Push an event back on the head of the stream. This method has (theoretically) infinite depth.
full_name: REXML::Parsers::BaseParser#unshift
is_singleton: false
name: unshift
params: (token)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: source
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Using the Pull Parser
- !ruby/struct:SM::Flow::P 
  body: <em>This API is experimental, and subject to change.</em>
- !ruby/struct:SM::Flow::VERB 
  body: " parser = PullParser.new( &quot;&lt;a&gt;text&lt;b att='val'/&gt;txet&lt;/a&gt;&quot; )\n while parser.has_next?\n   res = parser.next\n   puts res[1]['att'] if res.start_tag? and res[0] == 'b'\n end\n"
- !ruby/struct:SM::Flow::P 
  body: See the PullEvent class for information on the content of the results. The data is identical to the arguments passed for the various events to the StreamListener API.
- !ruby/struct:SM::Flow::P 
  body: "Notice that:"
- !ruby/struct:SM::Flow::VERB 
  body: " parser = PullParser.new( &quot;&lt;a&gt;BAD DOCUMENT&quot; )\n while parser.has_next?\n   res = parser.next\n   raise res[1] if res.error?\n end\n"
- !ruby/struct:SM::Flow::P 
  body: Nat Price gave me some good ideas for the API.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NCNAME_STR
  value: "'[\\w:][\\-\\w\\d.]*'"
- !ruby/object:RI::Constant 
  comment: 
  name: NAME_STR
  value: "\"(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})\""
- !ruby/object:RI::Constant 
  comment: 
  name: UNAME_STR
  value: "\"(?:#{NCNAME_STR}:)?#{NCNAME_STR}\""
- !ruby/object:RI::Constant 
  comment: 
  name: NAMECHAR
  value: "'[\\-\\w\\d\\.:]'"
- !ruby/object:RI::Constant 
  comment: 
  name: NAME
  value: "\"([\\\\w:]#{NAMECHAR}*)\""
- !ruby/object:RI::Constant 
  comment: 
  name: NMTOKEN
  value: "\"(?:#{NAMECHAR})+\""
- !ruby/object:RI::Constant 
  comment: 
  name: NMTOKENS
  value: "\"#{NMTOKEN}(\\\\s+#{NMTOKEN})*\""
- !ruby/object:RI::Constant 
  comment: 
  name: REFERENCE
  value: "\"(?:&#{NAME};|&#\\\\d+;|&#x[0-9a-fA-F]+;)\""
- !ruby/object:RI::Constant 
  comment: 
  name: REFERENCE_RE
  value: /#{REFERENCE}/
- !ruby/object:RI::Constant 
  comment: 
  name: DOCTYPE_START
  value: /\A\s*<!DOCTYPE\s/um
- !ruby/object:RI::Constant 
  comment: 
  name: DOCTYPE_PATTERN
  value: /\s*<!DOCTYPE\s+(.*?)(\[|>)/um
- !ruby/object:RI::Constant 
  comment: 
  name: ATTRIBUTE_PATTERN
  value: /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\4/um
- !ruby/object:RI::Constant 
  comment: 
  name: COMMENT_START
  value: /\A<!--/u
- !ruby/object:RI::Constant 
  comment: 
  name: COMMENT_PATTERN
  value: /<!--(.*?)-->/um
- !ruby/object:RI::Constant 
  comment: 
  name: CDATA_START
  value: /\A<!\[CDATA\[/u
- !ruby/object:RI::Constant 
  comment: 
  name: CDATA_END
  value: /^\s*\]\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: CDATA_PATTERN
  value: /<!\[CDATA\[(.*?)\]\]>/um
- !ruby/object:RI::Constant 
  comment: 
  name: XMLDECL_START
  value: /\A<\?xml\s/u;
- !ruby/object:RI::Constant 
  comment: 
  name: XMLDECL_PATTERN
  value: /<\?xml\s+(.*?)\?>/um
- !ruby/object:RI::Constant 
  comment: 
  name: INSTRUCTION_START
  value: /\A<\?/u
- !ruby/object:RI::Constant 
  comment: 
  name: INSTRUCTION_PATTERN
  value: /<\?(.*?)(\s+.*?)?\?>/um
- !ruby/object:RI::Constant 
  comment: 
  name: TAG_MATCH
  value: /^<((?>#{NAME_STR}))\s*((?>\s+#{UNAME_STR}\s*=\s*(["']).*?\5)*)\s*(\/)?>/um
- !ruby/object:RI::Constant 
  comment: 
  name: CLOSE_MATCH
  value: /^\s*<\/(#{NAME_STR})\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: /\bversion\s*=\s*["'](.*?)['"]/um
- !ruby/object:RI::Constant 
  comment: 
  name: ENCODING
  value: /\bencoding\s*=\s*["'](.*?)['"]/um
- !ruby/object:RI::Constant 
  comment: 
  name: STANDALONE
  value: /\bstandalone\s*=\s["'](.*?)['"]/um
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITY_START
  value: /^\s*<!ENTITY/
- !ruby/object:RI::Constant 
  comment: 
  name: IDENTITY
  value: /^([!\*\w\-]+)(\s+#{NCNAME_STR})?(\s+["'](.*?)['"])?(\s+['"](.*?)["'])?/u
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTDECL_START
  value: /^\s*<!ELEMENT/um
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTDECL_PATTERN
  value: /^\s*(<!ELEMENT.*?)>/um
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEMENTITY
  value: /^\s*(%.*?;)\s*$/um
- !ruby/object:RI::Constant 
  comment: 
  name: ENUMERATION
  value: "\"\\\\(\\\\s*#{NMTOKEN}(?:\\\\s*\\\\|\\\\s*#{NMTOKEN})*\\\\s*\\\\)\""
- !ruby/object:RI::Constant 
  comment: 
  name: NOTATIONTYPE
  value: "\"NOTATION\\\\s+\\\\(\\\\s*#{NAME}(?:\\\\s*\\\\|\\\\s*#{NAME})*\\\\s*\\\\)\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENUMERATEDTYPE
  value: "\"(?:(?:#{NOTATIONTYPE})|(?:#{ENUMERATION}))\""
- !ruby/object:RI::Constant 
  comment: 
  name: ATTTYPE
  value: "\"(CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS|#{ENUMERATEDTYPE})\""
- !ruby/object:RI::Constant 
  comment: 
  name: ATTVALUE
  value: "\"(?:\\\"((?:[^<&\\\"]|#{REFERENCE})*)\\\")|(?:'((?:[^<&']|#{REFERENCE})*)')\""
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULTDECL
  value: "\"(#REQUIRED|#IMPLIED|(?:(#FIXED\\\\s+)?#{ATTVALUE}))\""
- !ruby/object:RI::Constant 
  comment: 
  name: ATTDEF
  value: "\"\\\\s+#{NAME}\\\\s+#{ATTTYPE}\\\\s+#{DEFAULTDECL}\""
- !ruby/object:RI::Constant 
  comment: 
  name: ATTDEF_RE
  value: /#{ATTDEF}/
- !ruby/object:RI::Constant 
  comment: 
  name: ATTLISTDECL_START
  value: /^\s*<!ATTLIST/um
- !ruby/object:RI::Constant 
  comment: 
  name: ATTLISTDECL_PATTERN
  value: /^\s*<!ATTLIST\s+#{NAME}(?:#{ATTDEF})*\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: NOTATIONDECL_START
  value: /^\s*<!NOTATION/um
- !ruby/object:RI::Constant 
  comment: 
  name: PUBLIC
  value: /^\s*<!NOTATION\s+(\w[\-\w]*)\s+(PUBLIC)\s+(["'])(.*?)\3(?:\s+(["'])(.*?)\5)?\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEM
  value: /^\s*<!NOTATION\s+(\w[\-\w]*)\s+(SYSTEM)\s+(["'])(.*?)\3\s*>/um
- !ruby/object:RI::Constant 
  comment: 
  name: TEXT_PATTERN
  value: /\A([^<]*)/um
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Entity constants
  name: PUBIDCHAR
  value: "\"\\x20\\x0D\\x0Aa-zA-Z0-9\\\\-()+,./:=?;!*@$_%#\""
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEMLITERAL
  value: "%Q{((?:\"[^\"]*\")|(?:'[^']*'))}"
- !ruby/object:RI::Constant 
  comment: 
  name: PUBIDLITERAL
  value: "%Q{(\"[#{PUBIDCHAR}']*\"|'[#{PUBIDCHAR}]*')}"
- !ruby/object:RI::Constant 
  comment: 
  name: EXTERNALID
  value: "\"(?:(?:(SYSTEM)\\\\s+#{SYSTEMLITERAL})|(?:(PUBLIC)\\\\s+#{PUBIDLITERAL}\\\\s+#{SYSTEMLITERAL}))\""
- !ruby/object:RI::Constant 
  comment: 
  name: NDATADECL
  value: "\"\\\\s+NDATA\\\\s+#{NAME}\""
- !ruby/object:RI::Constant 
  comment: 
  name: PEREFERENCE
  value: "\"%#{NAME};\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYVALUE
  value: "%Q{((?:\"(?:[^%&\"]|#{PEREFERENCE}|#{REFERENCE})*\")|(?:'([^%&']|#{PEREFERENCE}|#{REFERENCE})*'))}"
- !ruby/object:RI::Constant 
  comment: 
  name: PEDEF
  value: "\"(?:#{ENTITYVALUE}|#{EXTERNALID})\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYDEF
  value: "\"(?:#{ENTITYVALUE}|(?:#{EXTERNALID}(#{NDATADECL})?))\""
- !ruby/object:RI::Constant 
  comment: 
  name: PEDECL
  value: "\"<!ENTITY\\\\s+(%)\\\\s+#{NAME}\\\\s+#{PEDEF}\\\\s*>\""
- !ruby/object:RI::Constant 
  comment: 
  name: GEDECL
  value: "\"<!ENTITY\\\\s+#{NAME}\\\\s+#{ENTITYDEF}\\\\s*>\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYDECL
  value: /\s*(?:#{GEDECL})|(?:#{PEDECL})/um
- !ruby/object:RI::Constant 
  comment: 
  name: EREFERENCE
  value: /&(?!#{NAME};)/
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_ENTITIES
  value: "{          'gt' => [/&gt;/, '&gt;', '>', />/],          'lt' => [/&lt;/, '&lt;', '<', /</],          'quot' => [/&quot;/, '&quot;', '\"', /\"/],          \"apos\" => [/&apos;/, \"&apos;\", \"'\", /'/]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: These are patterns to identify common markup errors, to make the error messages more informative.
  name: MISSING_ATTRIBUTE_QUOTES
  value: /^<#{NAME_STR}\s+#{NAME_STR}\s*=\s*[^"']/um
full_name: REXML::Parsers::BaseParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: entity
- !ruby/object:RI::MethodSummary 
  name: has_next?
- !ruby/object:RI::MethodSummary 
  name: normalize
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: position
- !ruby/object:RI::MethodSummary 
  name: pull
- !ruby/object:RI::MethodSummary 
  name: stream=
- !ruby/object:RI::MethodSummary 
  name: unnormalize
- !ruby/object:RI::MethodSummary 
  name: unshift
name: BaseParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if there are no more events
full_name: REXML::Parsers::BaseParser#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::BaseParser::new
is_singleton: true
name: new
params: ( source )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::BaseParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escapes all possible entities
full_name: REXML::Parsers::BaseParser#normalize
is_singleton: false
name: normalize
params: ( input, entities=nil, entity_filter=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Peek at the <tt>depth</tt> event in the stack. The first element on the stack is at depth 0. If <tt>depth</tt> is -1, will parse to the end of the input stream and return the last event, which is always :end_document. Be aware that this causes the stream to be parsed up to the <tt>depth</tt> event, so you can effectively pre-parse the entire document (pull the entire thing into memory) using this method.
full_name: REXML::Parsers::BaseParser#peek
is_singleton: false
name: peek
params: (depth=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::BaseParser#entity
is_singleton: false
name: entity
params: ( reference, entities )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if there are more events. Synonymous with !empty?
full_name: REXML::Parsers::BaseParser#has_next?
is_singleton: false
name: has_next?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Parsers::LightParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: rewind
name: LightParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::LightParser#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::LightParser::new
is_singleton: true
name: new
params: (stream)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::LightParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::LightParser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String version, String encoding, String standalone ]"
full_name: REXML::Parsers::PullEvent#xmldecl?
is_singleton: false
name: xmldecl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullEvent#[]
is_singleton: false
name: "[]"
params: ( start, endd=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A parsing event. The contents of the event are accessed as an +Array?, and the type is given either by the ...? methods, or by accessing the <tt>type</tt> accessor. The contents of this object vary from event to event, but are identical to the arguments passed to +StreamListener+s for each event.
constants: []

full_name: REXML::Parsers::PullEvent
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: attlistdecl?
- !ruby/object:RI::MethodSummary 
  name: cdata?
- !ruby/object:RI::MethodSummary 
  name: comment?
- !ruby/object:RI::MethodSummary 
  name: doctype?
- !ruby/object:RI::MethodSummary 
  name: elementdecl?
- !ruby/object:RI::MethodSummary 
  name: end_element?
- !ruby/object:RI::MethodSummary 
  name: entity?
- !ruby/object:RI::MethodSummary 
  name: entitydecl?
- !ruby/object:RI::MethodSummary 
  name: error?
- !ruby/object:RI::MethodSummary 
  name: event_type
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: instruction?
- !ruby/object:RI::MethodSummary 
  name: notationdecl?
- !ruby/object:RI::MethodSummary 
  name: start_element?
- !ruby/object:RI::MethodSummary 
  name: text?
- !ruby/object:RI::MethodSummary 
  name: xmldecl?
name: PullEvent
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String tag_name, Hash attributes ]"
full_name: REXML::Parsers::PullEvent#start_element?
is_singleton: false
name: start_element?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String name, String pub_sys, String long_name, String uri ]"
full_name: REXML::Parsers::PullEvent#doctype?
is_singleton: false
name: doctype?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullEvent#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#elementdecl?
is_singleton: false
name: elementdecl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String tag_name ]"
full_name: REXML::Parsers::PullEvent#end_element?
is_singleton: false
name: end_element?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String raw_text, String unnormalized_text ]"
full_name: REXML::Parsers::PullEvent#text?
is_singleton: false
name: text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#attlistdecl?
is_singleton: false
name: attlistdecl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The type of this event. Will be one of :tag_start, :tag_end, :text, :processing_instruction, :comment, :doctype, :attlistdecl, :entitydecl, :notationdecl, :entity, :cdata, :xmldecl, or :error.
full_name: REXML::Parsers::PullEvent::new
is_singleton: true
name: new
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#notationdecl?
is_singleton: false
name: notationdecl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullEvent#event_type
is_singleton: false
name: event_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#cdata?
is_singleton: false
name: cdata?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Due to the wonders of DTDs, an entity declaration can be just about anything. There's no way to normalize it; you'll have to interpret the content yourself. However, the following is true:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "If the entity declaration is an internal entity: [ String name, String value ]"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#entitydecl?
is_singleton: false
name: entitydecl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#comment?
is_singleton: false
name: comment?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#instruction?
is_singleton: false
name: instruction?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullEvent#error?
is_singleton: false
name: error?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Content: [ String text ]"
full_name: REXML::Parsers::PullEvent#entity?
is_singleton: false
name: entity?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| EqualityExpr ('=' | '!=') RelationalExpr | RelationalExpr"
full_name: REXML::Parsers::XPathParser#EqualityExpr
is_singleton: false
name: EqualityExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Filters the supplied nodeset on the predicate(s)
full_name: REXML::Parsers::XPathParser#Predicate
is_singleton: false
name: Predicate
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ( path )
comment: 
full_name: REXML::Parsers::XPathParser#predicate_to_string
is_singleton: false
name: predicate_to_string
params: ( path, &block ) {|path| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: You don't want to use this class. Really. Use XPath, which is a wrapper for this class. Believe me. You don't want to poke around in here. There is strange, dark magic at work in this code. Beware. Go back! Go back while you still can!
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: LITERAL
  value: /^'([^']*)'|^"([^"]*)"/u
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: RelativeLocationPath
  - !ruby/struct:SM::Flow::VERB 
    body: "  |                                                    Step\n    | (AXIS_NAME '::' | '@' | '')                     AxisSpecifier\n      NodeTest\n        Predicate\n    | '.' | '..'                                      AbbreviatedStep\n  |  RelativeLocationPath '/' Step\n  | RelativeLocationPath '//' Step\n"
  name: AXIS
  value: /^(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::/
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::VERB 
    body: " Returns a 1-1 map of the nodeset\n The contents of the resulting array are either:\n   true/false, if a positive match\n   String, if a name match\n"
  - !ruby/struct:SM::Flow::P 
    body: NodeTest
  - !ruby/struct:SM::Flow::VERB 
    body: "  | ('*' | NCNAME ':' '*' | QNAME)                NameTest\n  | NODE_TYPE '(' ')'                              NodeType\n  | PI '(' LITERAL ')'                            PI\n    | '[' expr ']'                                Predicate\n"
  name: NCNAMETEST
  value: /^(#{NCNAME_STR}):\*/u
- !ruby/object:RI::Constant 
  comment: 
  name: QNAME
  value: Namespace::NAMESPLIT
- !ruby/object:RI::Constant 
  comment: 
  name: NODE_TYPE
  value: /^(comment|text|node)\(\s*\)/m
- !ruby/object:RI::Constant 
  comment: 
  name: PI
  value: /^processing-instruction\(/
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "| VARIABLE_REFERENCE | '(' expr ')' | LITERAL | NUMBER | FunctionCall"
  name: VARIABLE_REFERENCE
  value: /^\$(#{NAME_STR})/u
- !ruby/object:RI::Constant 
  comment: 
  name: NUMBER
  value: /^(\d*\.?\d+)/
- !ruby/object:RI::Constant 
  comment: 
  name: NT
  value: /^comment|text|processing-instruction|node$/
full_name: REXML::Parsers::XPathParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: AdditiveExpr
- !ruby/object:RI::MethodSummary 
  name: AndExpr
- !ruby/object:RI::MethodSummary 
  name: EqualityExpr
- !ruby/object:RI::MethodSummary 
  name: FilterExpr
- !ruby/object:RI::MethodSummary 
  name: FunctionCall
- !ruby/object:RI::MethodSummary 
  name: LocationPath
- !ruby/object:RI::MethodSummary 
  name: MultiplicativeExpr
- !ruby/object:RI::MethodSummary 
  name: NodeTest
- !ruby/object:RI::MethodSummary 
  name: OrExpr
- !ruby/object:RI::MethodSummary 
  name: PathExpr
- !ruby/object:RI::MethodSummary 
  name: Predicate
- !ruby/object:RI::MethodSummary 
  name: PrimaryExpr
- !ruby/object:RI::MethodSummary 
  name: RelationalExpr
- !ruby/object:RI::MethodSummary 
  name: RelativeLocationPath
- !ruby/object:RI::MethodSummary 
  name: UnaryExpr
- !ruby/object:RI::MethodSummary 
  name: UnionExpr
- !ruby/object:RI::MethodSummary 
  name: abbreviate
- !ruby/object:RI::MethodSummary 
  name: expand
- !ruby/object:RI::MethodSummary 
  name: get_group
- !ruby/object:RI::MethodSummary 
  name: namespaces=
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: parse_args
- !ruby/object:RI::MethodSummary 
  name: predicate
- !ruby/object:RI::MethodSummary 
  name: predicate_to_string
name: XPathParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#NodeTest
is_singleton: false
name: NodeTest
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: LocationPath
- !ruby/struct:SM::Flow::VERB 
  body: "  | RelativeLocationPath\n  | '/' RelativeLocationPath?\n  | '//' RelativeLocationPath\n"
full_name: REXML::Parsers::XPathParser#LocationPath
is_singleton: false
name: LocationPath
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'"
full_name: REXML::Parsers::XPathParser#FunctionCall
is_singleton: false
name: FunctionCall
params: (rest, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| '-' UnaryExpr | UnionExpr"
full_name: REXML::Parsers::XPathParser#UnaryExpr
is_singleton: false
name: UnaryExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| RelationalExpr ('&lt;' | '&gt;' | '&lt;=' | '&gt;=') AdditiveExpr | AdditiveExpr"
full_name: REXML::Parsers::XPathParser#RelationalExpr
is_singleton: false
name: RelationalExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: get_group( '[foo]bar' ) -&gt; ['bar', '[foo]']
full_name: REXML::Parsers::XPathParser#get_group
is_singleton: false
name: get_group
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#PrimaryExpr
is_singleton: false
name: PrimaryExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#expand
is_singleton: false
name: expand
params: ( path )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#predicate
is_singleton: false
name: predicate
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| FilterExpr Predicate | PrimaryExpr"
full_name: REXML::Parsers::XPathParser#FilterExpr
is_singleton: false
name: FilterExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| UnionExpr '|' PathExpr | PathExpr"
full_name: REXML::Parsers::XPathParser#UnionExpr
is_singleton: false
name: UnionExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#parse_args
is_singleton: false
name: parse_args
params: ( string )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#namespaces=
is_singleton: false
name: namespaces=
params: ( namespaces )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#parse
is_singleton: false
name: parse
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| AdditiveExpr ('+' | S '-') MultiplicativeExpr | MultiplicativeExpr"
full_name: REXML::Parsers::XPathParser#AdditiveExpr
is_singleton: false
name: AdditiveExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr | UnaryExpr"
full_name: REXML::Parsers::XPathParser#MultiplicativeExpr
is_singleton: false
name: MultiplicativeExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| LocationPath | FilterExpr ('/' | '//') RelativeLocationPath"
full_name: REXML::Parsers::XPathParser#PathExpr
is_singleton: false
name: PathExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#abbreviate
is_singleton: false
name: abbreviate
params: ( path )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| OrExpr S 'or' S AndExpr | AndExpr"
full_name: REXML::Parsers::XPathParser#OrExpr
is_singleton: false
name: OrExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::XPathParser#RelativeLocationPath
is_singleton: false
name: RelativeLocationPath
params: (path, parsed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "| AndExpr S 'and' S EqualityExpr | EqualityExpr"
full_name: REXML::Parsers::XPathParser#AndExpr
is_singleton: false
name: AndExpr
params: (path, parsed)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Parsers::UltraLightParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: rewind
name: UltraLightParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::UltraLightParser#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::UltraLightParser::new
is_singleton: true
name: new
params: (stream)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::UltraLightParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::UltraLightParser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullParser#pull
is_singleton: false
name: pull
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Using the Pull Parser
- !ruby/struct:SM::Flow::P 
  body: <em>This API is experimental, and subject to change.</em>
- !ruby/struct:SM::Flow::VERB 
  body: " parser = PullParser.new( &quot;&lt;a&gt;text&lt;b att='val'/&gt;txet&lt;/a&gt;&quot; )\n while parser.has_next?\n   res = parser.next\n   puts res[1]['att'] if res.start_tag? and res[0] == 'b'\n end\n"
- !ruby/struct:SM::Flow::P 
  body: See the PullEvent class for information on the content of the results. The data is identical to the arguments passed for the various events to the StreamListener API.
- !ruby/struct:SM::Flow::P 
  body: "Notice that:"
- !ruby/struct:SM::Flow::VERB 
  body: " parser = PullParser.new( &quot;&lt;a&gt;BAD DOCUMENT&quot; )\n while parser.has_next?\n   res = parser.next\n   raise res[1] if res.error?\n end\n"
- !ruby/struct:SM::Flow::P 
  body: Nat Price gave me some good ideas for the API.
constants: []

full_name: REXML::Parsers::PullParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: pull
- !ruby/object:RI::MethodSummary 
  name: unshift
name: PullParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullParser#unshift
is_singleton: false
name: unshift
params: (token)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullParser::new
is_singleton: true
name: new
params: (stream)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: self.pull
comment: 
full_name: REXML::Parsers::PullParser#each
is_singleton: false
name: each
params: () {|self.pull| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::PullParser#peek
is_singleton: false
name: peek
params: (depth=0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#deafen
is_singleton: false
name: deafen
params: ( listener=nil, &blok )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#add
is_singleton: false
name: add
params: ( pair )
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: SAX2Parser
constants: []

full_name: REXML::Parsers::SAX2Parser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: deafen
- !ruby/object:RI::MethodSummary 
  name: get_listeners
- !ruby/object:RI::MethodSummary 
  name: get_namespace
- !ruby/object:RI::MethodSummary 
  name: get_procs
- !ruby/object:RI::MethodSummary 
  name: handle
- !ruby/object:RI::MethodSummary 
  name: listen
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: source
name: SAX2Parser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#handle
is_singleton: false
name: handle
params: ( symbol, *arguments )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#source
is_singleton: false
name: source
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser::new
is_singleton: true
name: new
params: (source)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#get_listeners
is_singleton: false
name: get_listeners
params: ( symbol, name )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Listen arguments:"
- !ruby/struct:SM::Flow::P 
  body: Symbol, Array, Block
- !ruby/struct:SM::Flow::VERB 
  body: "   Listen to Symbol events on Array elements\n"
- !ruby/struct:SM::Flow::P 
  body: Symbol, Block
- !ruby/struct:SM::Flow::VERB 
  body: "  Listen to Symbol events\n"
- !ruby/struct:SM::Flow::P 
  body: Array, Listener
- !ruby/struct:SM::Flow::VERB 
  body: "   Listen to all events on Array elements\n"
- !ruby/struct:SM::Flow::P 
  body: Array, Block
- !ruby/struct:SM::Flow::VERB 
  body: "   Listen to :start_element events on Array elements\n"
- !ruby/struct:SM::Flow::P 
  body: Listener
- !ruby/struct:SM::Flow::VERB 
  body: "   Listen to All events\n"
- !ruby/struct:SM::Flow::P 
  body: "Symbol can be one of: :start_element, :end_element, :start_prefix_mapping, :end_prefix_mapping, :characters, :processing_instruction, :doctype, :attlistdecl, :elementdecl, :entitydecl, :notationdecl, :cdata, :xmldecl, :comment"
- !ruby/struct:SM::Flow::P 
  body: "There is an additional symbol that can be listened for: :progress. This will be called for every event generated, passing in the current stream position."
- !ruby/struct:SM::Flow::P 
  body: Array contains regular expressions or strings which will be matched against fully qualified element names.
- !ruby/struct:SM::Flow::P 
  body: Listener must implement the methods in SAX2Listener
- !ruby/struct:SM::Flow::P 
  body: Block will be passed the same arguments as a SAX2Listener method would be, where the method name is the same as the matched Symbol. See the SAX2Listener for more information.
full_name: REXML::Parsers::SAX2Parser#listen
is_singleton: false
name: listen
params: ( *args, &blok )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The following methods are duplicates, but it is faster than using a helper
full_name: REXML::Parsers::SAX2Parser#get_procs
is_singleton: false
name: get_procs
params: ( symbol, name )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::SAX2Parser#get_namespace
is_singleton: false
name: get_namespace
params: ( prefix )
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Parsers
includes: []

instance_methods: []

name: Parsers
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Parsers::StreamParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_listener
- !ruby/object:RI::MethodSummary 
  name: parse
name: StreamParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::StreamParser::new
is_singleton: true
name: new
params: (source, listener)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::StreamParser#add_listener
is_singleton: false
name: add_listener
params: ( listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parsers::StreamParser#parse
is_singleton: false
name: parse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::UndefinedNamespaceException::new
is_singleton: true
name: new
params: ( prefix, source, parser )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::UndefinedNamespaceException
includes: []

instance_methods: []

name: UndefinedNamespaceException
superclass: ParseException
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the entity expansion limit. By default the limit is set to 10240.
full_name: REXML::entity_expansion_text_limit
is_singleton: true
name: entity_expansion_text_limit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See REXML::Formatters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: Where to write the string
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: An integer. If -1, no indenting will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount.
  - !ruby/struct:SM::Flow::LI 
    label: "transitive:"
    body: Ignored by this class. The contents of comments are never modified.
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Needed for conformity to the child API, but not used by this class.
  type: :NOTE
full_name: REXML::Comment#write
is_singleton: false
name: write
params: ( output, indent=-1, transitive=false, ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares this Comment to another; the contents of the comment are used in the comparison.
full_name: REXML::Comment#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares this Comment to another; the contents of the comment are used in the comparison.
full_name: REXML::Comment#==
is_singleton: false
name: ==
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Comment#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The content text
  name: string
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents an XML comment; that is, text between &lt;!-- ... --&gt;
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!--\""
- !ruby/object:RI::Constant 
  comment: 
  name: STOP
  value: "\"-->\""
full_name: REXML::Comment
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: write
name: Comment
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Constructor. The first argument can be one of three types: @param first If String, the contents of this comment are set to the argument. If Comment, the argument is duplicated. If Source, the argument is scanned for a comment. @param second If the first argument is a Source, this argument should be nil, not supplied, or a Parent to be set as the parent of this object"
full_name: REXML::Comment::new
is_singleton: true
name: new
params: ( first, second = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Comment#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_text_limit
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_text_limit=
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class was contributed by Mikko Tiihonen mikko DOT tiihonen AT hut DOT fi
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: COPYRIGHT
  value: "\"Copyright \\xC2\\xA9 2001-2006 Sean Russell <ser@germane-software.com>\""
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: "\"3.1.7.3\""
- !ruby/object:RI::Constant 
  comment: 
  name: DATE
  value: "\"2007/275\""
- !ruby/object:RI::Constant 
  comment: 
  name: REVISION
  value: "\"$Revision: 40812 $\".gsub(/\\$Revision:|\\$/,'').strip"
- !ruby/object:RI::Constant 
  comment: 
  name: Copyright
  value: COPYRIGHT
- !ruby/object:RI::Constant 
  comment: 
  name: Version
  value: VERSION
full_name: REXML
includes: []

instance_methods: []

name: REXML
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ElementDecl::new
is_singleton: true
name: new
params: ( src )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::ElementDecl
includes: []

instance_methods: []

name: ElementDecl
superclass: Declaration
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for Element.to_a This is a little slower than calling elements.each directly.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "xpath:"
    body: any XPath by which to search for elements in the tree
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: an array of Elements that match the supplied path
  type: :NOTE
full_name: REXML::Element#get_elements
is_singleton: false
name: get_elements
params: ( xpath )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See REXML::Formatters
- !ruby/struct:SM::Flow::P 
  body: Writes out this element, and recursively, all children.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: output an object which supports '&lt;&lt; string'; this is where the
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: "  document will be written.\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: An integer. If -1, no indenting will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount. Defaults to -1
  - !ruby/struct:SM::Flow::LI 
    label: "transitive:"
    body: If transitive is true and indent is &gt;= 0, then the output will be pretty-printed in such a way that the added whitespace does not affect the parse tree of the document
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Internet Explorer is the worst piece of crap to have ever been written, with the possible exception of Windows itself. Since IE is unable to parse proper XML, we have to provide a hack to generate XML that IE's limited abilities can handle. This hack inserts a space before the /&gt; on empty tags. Defaults to false
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " out = ''\n doc.write( out )     #-&gt; doc is written to the string 'out'\n doc.write( $stdout ) #-&gt; doc written to the console\n"
full_name: REXML::Element#write
is_singleton: false
name: write
params: (writer=$stdout, indent=-1, transitive=false, ie_hack=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to <tt>true</tt> if this element has at least one Text child
full_name: REXML::Element#has_text?
is_singleton: false
name: has_text?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first child Text node, if any, or <tt>nil</tt> otherwise. This method returns the actual <tt>Text</tt> node, rather than the String content.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;p&gt;some text <b>this is bold!</b> more text&lt;/p&gt;&quot;\n # The element 'p' has two text elements, &quot;some text &quot; and &quot; more text&quot;.\n doc.root.get_text.value            #-&gt; &quot;some text &quot;\n"
full_name: REXML::Element#get_text
is_singleton: false
name: get_text
params: (path = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: Element
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates through the children, yielding for each Element that has a particular text set.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "text:"
    body: the text to search for. If nil, or not supplied, will iterate over all <tt>Element</tt> children that contain at least one <tt>Text</tt> node.
  - !ruby/struct:SM::Flow::LI 
    label: "max:"
    body: (optional) causes this method to return after yielding for this number of matching children
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: (optional) if supplied, this is an XPath that filters the children to check.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;<b>b</b>&lt;c&gt;b&lt;/c&gt;&lt;d&gt;d&lt;/d&gt;&lt;e/&gt;&lt;/a&gt;'\n # Yields b, c, d\n doc.each_element_with_text {|e|p e}\n # Yields b, c\n doc.each_element_with_text('b'){|e|p e}\n # Yields b\n doc.each_element_with_text('b', 1){|e|p e}\n # Yields d\n doc.each_element_with_text(nil, 0, 'd'){|e|p e}\n"
full_name: REXML::Element#each_element_with_text
is_singleton: false
name: each_element_with_text
params: ( text=nil, max=0, name=nil ) {|Element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#__to_xpath_helper
is_singleton: false
name: __to_xpath_helper
params: (node)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get an array of all Instruction children. IMMUTABLE
full_name: REXML::Element#instructions
is_singleton: false
name: instructions
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: Element
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for Element.elements.each
full_name: REXML::Element#each_element
is_singleton: false
name: each_element
params: ( xpath=nil ) {|Element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to <tt>true</tt> if this element has any attributes set, false otherwise.
full_name: REXML::Element#has_attributes?
is_singleton: false
name: has_attributes?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds an attribute to this element, overwriting any existing attribute by the same name.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "key:"
    body: can be either an Attribute or a String. If an Attribute, the attribute is added to the list of Element attributes. If String, the argument is used as the name of the new attribute, and the value parameter must be supplied.
  - !ruby/struct:SM::Flow::LI 
    label: "value:"
    body: Required if <tt>key</tt> is a String, and ignored if the first argument is an Attribute. This is a String, and is used as the value of the new Attribute. This should be the unnormalized value of the attribute (without entities).
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the Attribute added
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " e = Element.new 'e'\n e.add_attribute( 'a', 'b' )               #-&gt; &lt;e a='b'/&gt;\n e.add_attribute( 'x:a', 'c' )             #-&gt; &lt;e a='b' x:a='c'/&gt;\n e.add_attribute Attribute.new('b', 'd')   #-&gt; &lt;e a='b' x:a='c' b='d'/&gt;\n"
full_name: REXML::Element#add_attribute
is_singleton: false
name: add_attribute
params: ( key, value=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#xpath
is_singleton: false
name: xpath
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get an array of all Text children. IMMUTABLE
full_name: REXML::Element#texts
is_singleton: false
name: texts
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a namespace from this node. This only works if the namespace is actually declared in this node. If no argument is passed, deletes the default namespace.
- !ruby/struct:SM::Flow::P 
  body: "Evaluates to: this element"
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a xmlns:foo='bar' xmlns='twiddle'/&gt;&quot;\n doc.root.delete_namespace\n puts doc     # -&gt; &lt;a xmlns:foo='bar'/&gt;\n doc.root.delete_namespace 'foo'\n puts doc     # -&gt; &lt;a/&gt;\n"
full_name: REXML::Element#delete_namespace
is_singleton: false
name: delete_namespace
params: (namespace="xmlns")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Mechanisms for accessing attributes and child elements of this element.
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The context holds information about the processing environment, such as whitespace handling.
  name: context
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Mechanisms for accessing attributes and child elements of this element.
  name: elements
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a tagged XML element. Elements are characterized by having children, attributes, and names, and can themselves be children.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: UNDEFINED
  value: "\"UNDEFINED\";"
full_name: REXML::Element
includes: 
- !ruby/object:RI::IncludedModule 
  name: Namespace
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __to_xpath_helper
- !ruby/object:RI::MethodSummary 
  name: add_attribute
- !ruby/object:RI::MethodSummary 
  name: add_attributes
- !ruby/object:RI::MethodSummary 
  name: add_element
- !ruby/object:RI::MethodSummary 
  name: add_namespace
- !ruby/object:RI::MethodSummary 
  name: add_text
- !ruby/object:RI::MethodSummary 
  name: attribute
- !ruby/object:RI::MethodSummary 
  name: cdatas
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: comments
- !ruby/object:RI::MethodSummary 
  name: delete_attribute
- !ruby/object:RI::MethodSummary 
  name: delete_element
- !ruby/object:RI::MethodSummary 
  name: delete_namespace
- !ruby/object:RI::MethodSummary 
  name: document
- !ruby/object:RI::MethodSummary 
  name: each_element
- !ruby/object:RI::MethodSummary 
  name: each_element_with_attribute
- !ruby/object:RI::MethodSummary 
  name: each_element_with_text
- !ruby/object:RI::MethodSummary 
  name: each_with_something
- !ruby/object:RI::MethodSummary 
  name: get_elements
- !ruby/object:RI::MethodSummary 
  name: get_text
- !ruby/object:RI::MethodSummary 
  name: has_attributes?
- !ruby/object:RI::MethodSummary 
  name: has_elements?
- !ruby/object:RI::MethodSummary 
  name: has_text?
- !ruby/object:RI::MethodSummary 
  name: ignore_whitespace_nodes
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: instructions
- !ruby/object:RI::MethodSummary 
  name: namespace
- !ruby/object:RI::MethodSummary 
  name: namespaces
- !ruby/object:RI::MethodSummary 
  name: next_element
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: prefixes
- !ruby/object:RI::MethodSummary 
  name: previous_element
- !ruby/object:RI::MethodSummary 
  name: raw
- !ruby/object:RI::MethodSummary 
  name: root
- !ruby/object:RI::MethodSummary 
  name: root_node
- !ruby/object:RI::MethodSummary 
  name: text
- !ruby/object:RI::MethodSummary 
  name: text=
- !ruby/object:RI::MethodSummary 
  name: texts
- !ruby/object:RI::MethodSummary 
  name: whitespace
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: xpath
name: Element
superclass: Parent
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a shallow copy of self.
- !ruby/struct:SM::Flow::VERB 
  body: "  d = Document.new &quot;&lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;c&gt;&lt;d/&gt;&lt;/c&gt;&lt;/a&gt;&quot;\n  new_a = d.root.clone\n  puts new_a  # =&gt; &quot;&lt;a/&gt;&quot;\n"
full_name: REXML::Element#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#root
is_singleton: false
name: root
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Attributes #"
full_name: REXML::Element#attribute
is_singleton: false
name: attribute
params: ( name, namespace=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A convenience method which returns the String value of the <em>first</em> child text element, if one exists, and <tt>nil</tt> otherwise.
- !ruby/struct:SM::Flow::P 
  body: <em>Note that an element may have multiple Text elements, perhaps separated by other children</em>. Be aware that this method only returns the first Text node.
- !ruby/struct:SM::Flow::P 
  body: This method returns the <tt>value</tt> of the first text child node, which ignores the <tt>raw</tt> setting, so always returns normalized text. See the Text::value documentation.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;p&gt;some text <b>this is bold!</b> more text&lt;/p&gt;&quot;\n # The element 'p' has two text elements, &quot;some text &quot; and &quot; more text&quot;.\n doc.root.text              #-&gt; &quot;some text &quot;\n"
full_name: REXML::Element#text
is_singleton: false
name: text
params: ( path = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#namespaces
is_singleton: false
name: namespaces
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evalutas to the URI for a prefix, or the empty string if no such namespace is declared for this element. Evaluates recursively for ancestors. Returns the default namespace, if there is one.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "prefix:"
    body: the prefix to search for. If not supplied, returns the default namespace if one exists
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the namespace URI as a String, or nil if no such namespace exists. If the namespace is undefined, returns an empty string
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new(&quot;&lt;a xmlns='1' xmlns:y='2'&gt;&lt;b/&gt;&lt;c xmlns:z='3'/&gt;&lt;/a&gt;&quot;)\n b = doc.elements['//b']\n b.namespace           # -&gt; '1'\n b.namespace(&quot;y&quot;)      # -&gt; '2'\n"
full_name: REXML::Element#namespace
is_singleton: false
name: namespace
params: (prefix=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to the document to which this element belongs, or nil if this element doesn't belong to a document.
full_name: REXML::Element#document
is_singleton: false
name: document
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "arg:"
    body: if not supplied, will be set to the default value. If a String, the name of this object will be set to the argument. If an Element, the object will be shallowly cloned; name, attributes, and namespaces will be copied. Children will <tt>not</tt> be copied.
  - !ruby/struct:SM::Flow::LI 
    label: "parent:"
    body: if supplied, must be a Parent, and will be used as the parent of this object.
  - !ruby/struct:SM::Flow::LI 
    label: "context:"
    body: "If supplied, must be a hash containing context items. Context items include:"
  type: :NOTE
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>:respect_whitespace</tt> the value of this is :<tt>all</tt> or an array of strings being the names of the elements to respect whitespace for. Defaults to :<tt>all</tt>.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>:compress_whitespace</tt> the value can be :<tt>all</tt> or an array of strings being the names of the elements to ignore whitespace on. Overrides :<tt>respect_whitespace</tt>.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>:ignore_whitespace_nodes</tt> the value can be :<tt>all</tt> or an array of strings being the names of the elements in which to ignore whitespace-only nodes. If this is set, Text nodes which contain only whitespace will not be added to the document tree.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>:raw</tt> can be :<tt>all</tt>, or an array of strings being the names of the elements to process in raw mode. In raw mode, special characters in text is not converted to or from entities.
  type: :BULLET
full_name: REXML::Element::new
is_singleton: true
name: new
params: ( arg = UNDEFINED, parent=nil, context=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to <tt>true</tt> if raw mode is set for this element. This is the case if the context has :<tt>raw</tt> set to :<tt>all</tt> or an array containing the name of this element.
- !ruby/struct:SM::Flow::P 
  body: The evaluation is tested against <tt>expanded_name</tt>, and so is namespace sensitive.
full_name: REXML::Element#raw
is_singleton: false
name: raw
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: Element
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates through the child elements, yielding for each Element that has a particular attribute set.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "key:"
    body: the name of the attribute to search for
  - !ruby/struct:SM::Flow::LI 
    label: "value:"
    body: the value of the attribute
  - !ruby/struct:SM::Flow::LI 
    label: "max:"
    body: (optional) causes this method to return after yielding for this number of matching children
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: (optional) if supplied, this is an XPath that filters the children to check.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a&gt;&lt;b @id='1'/&gt;&lt;c @id='2'/&gt;&lt;d @id='1'/&gt;&lt;e/&gt;&lt;/a&gt;&quot;\n # Yields b, c, d\n doc.root.each_element_with_attribute( 'id' ) {|e| p e}\n # Yields b, d\n doc.root.each_element_with_attribute( 'id', '1' ) {|e| p e}\n # Yields b\n doc.root.each_element_with_attribute( 'id', '1', 1 ) {|e| p e}\n # Yields d\n doc.root.each_element_with_attribute( 'id', '1', 0, 'd' ) {|e| p e}\n"
full_name: REXML::Element#each_element_with_attribute
is_singleton: false
name: each_element_with_attribute
params: ( key, value=nil, max=0, name=nil ) {|Element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the next sibling that is an element, or nil if there is no Element sibling after this one
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;text&lt;c/&gt;&lt;/a&gt;'\n doc.root.elements['b'].next_element          #-&gt; &lt;c/&gt;\n doc.root.elements['c'].next_element          #-&gt; nil\n"
full_name: REXML::Element#next_element
is_singleton: false
name: next_element
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A helper method to add a Text child. Actual Text instances can be added with regular Parent methods, such as add() and &lt;&lt;()
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "text:"
    body: if a String, a new Text instance is created and added to the parent. If Text, the object is added directly.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: this Element
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " e = Element.new('a')          #-&gt; &lt;e/&gt;\n e.add_text 'foo'              #-&gt; &lt;e&gt;foo&lt;/e&gt;\n e.add_text Text.new(' bar')    #-&gt; &lt;e&gt;foo bar&lt;/e&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: Note that at the end of this example, the branch has <b>3</b> nodes; the 'e' element and <b>2</b> Text node children.
full_name: REXML::Element#add_text
is_singleton: false
name: add_text
params: ( text )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes a child element.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: Must be an <tt>Element</tt>, <tt>String</tt>, or <tt>Integer</tt>. If Element, the element is removed. If String, the element is found (via XPath) and removed. &lt;em&gt;This means that any parent can remove any descendant.&lt;em&gt; If Integer, the Element indexed by that number will be removed.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the element that was removed.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc.delete_element &quot;/a/b/c[@id='4']&quot;\n doc.delete_element doc.elements[&quot;//k&quot;]\n doc.delete_element 1\n"
full_name: REXML::Element#delete_element
is_singleton: false
name: delete_element
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to an <tt>Array</tt> containing the prefixes (names) of all defined namespaces at this context node.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new(&quot;&lt;a xmlns:x='1' xmlns:y='2'&gt;&lt;b/&gt;&lt;c xmlns:z='3'/&gt;&lt;/a&gt;&quot;)\n doc.elements['//b'].prefixes # -&gt; ['x', 'y']\n"
full_name: REXML::Element#prefixes
is_singleton: false
name: prefixes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get an array of all Comment children. IMMUTABLE
full_name: REXML::Element#comments
is_singleton: false
name: comments
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes an attribute
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "key:"
    body: either an Attribute or a String. In either case, the attribute is found by matching the attribute name to the argument, and then removed. If no attribute is found, no action is taken.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the attribute removed, or nil if this Element did not contain a matching attribute
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " e = Element.new('E')\n e.add_attribute( 'name', 'Sean' )             #-&gt; &lt;E name='Sean'/&gt;\n r = e.add_attribute( 'sur:name', 'Russell' )  #-&gt; &lt;E name='Sean' sur:name='Russell'/&gt;\n e.delete_attribute( 'name' )                  #-&gt; &lt;E sur:name='Russell'/&gt;\n e.delete_attribute( r )                       #-&gt; &lt;E/&gt;\n"
full_name: REXML::Element#delete_attribute
is_singleton: false
name: delete_attribute
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the previous sibling that is an element, or nil if there is no Element sibling prior to this one
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;text&lt;c/&gt;&lt;/a&gt;'\n doc.root.elements['c'].previous_element          #-&gt; &lt;b/&gt;\n doc.root.elements['b'].previous_element          #-&gt; nil\n"
full_name: REXML::Element#previous_element
is_singleton: false
name: previous_element
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Evaluates to <tt>true</tt> if whitespace is respected for this element. This is the case if:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Neither :<tt>respect_whitespace</tt> nor :<tt>compress_whitespace</tt> has any value
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: The context has :<tt>respect_whitespace</tt> set to :<tt>all</tt> or an array containing the name of this element, and :<tt>compress_whitespace</tt> isn't set to :<tt>all</tt> or an array containing the name of this element.
  type: :NUMBER
- !ruby/struct:SM::Flow::P 
  body: The evaluation is tested against <tt>expanded_name</tt>, and so is namespace sensitive.
full_name: REXML::Element#whitespace
is_singleton: false
name: whitespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add multiple attributes to this element.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "hash:"
    body: is either a hash, or array of arrays
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " el.add_attributes( {&quot;name1&quot;=&gt;&quot;value1&quot;, &quot;name2&quot;=&gt;&quot;value2&quot;} )\n el.add_attributes( [ [&quot;name1&quot;,&quot;value1&quot;], [&quot;name2&quot;=&gt;&quot;value2&quot;] ] )\n"
full_name: REXML::Element#add_attributes
is_singleton: false
name: add_attributes
params: (hash)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#ignore_whitespace_nodes
is_singleton: false
name: ignore_whitespace_nodes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Element#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to <tt>true</tt> if this element has at least one child Element
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new &quot;&lt;a&gt;&lt;b/&gt;&lt;c&gt;Text&lt;/c&gt;&lt;/a&gt;&quot;\n doc.root.has_elements               # -&gt; true\n doc.elements[&quot;/a/b&quot;].has_elements   # -&gt; false\n doc.elements[&quot;/a/c&quot;].has_elements   # -&gt; false\n"
full_name: REXML::Element#has_elements?
is_singleton: false
name: has_elements?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the first Text child of this object. See text() for a discussion about Text children.
- !ruby/struct:SM::Flow::P 
  body: If a Text child already exists, the child is replaced by this content. This means that Text content can be deleted by calling this method with a nil argument. In this case, the next Text child becomes the first Text child. In no case is the order of any siblings disturbed.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "text:"
    body: If a String, a new Text child is created and added to this Element as the first Text child. If Text, the text is set as the first Child element. If nil, then any existing first Text child is removed.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: this Element.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'\n doc.root.text = 'Sean'      #-&gt; '&lt;a&gt;&lt;b/&gt;Sean&lt;/a&gt;'\n doc.root.text = 'Elliott'   #-&gt; '&lt;a&gt;&lt;b/&gt;Elliott&lt;/a&gt;'\n doc.root.add_element 'c'    #-&gt; '&lt;a&gt;&lt;b/&gt;Elliott&lt;c/&gt;&lt;/a&gt;'\n doc.root.text = 'Russell'   #-&gt; '&lt;a&gt;&lt;b/&gt;Russell&lt;c/&gt;&lt;/a&gt;'\n doc.root.text = nil         #-&gt; '&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;'\n"
full_name: REXML::Element#text=
is_singleton: false
name: text=
params: ( text )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get an array of all CData children. IMMUTABLE
full_name: REXML::Element#cdatas
is_singleton: false
name: cdatas
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: child if test.call(child) and num += 1
comment: 
- !ruby/struct:SM::Flow::P 
  body: A private helper method
full_name: REXML::Element#each_with_something
is_singleton: false
name: each_with_something
params: ( test, max=0, name=nil ) {|child if test.call(child) and num += 1| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds a child to this element, optionally setting attributes in the element.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: optional. If Element, the element is added. Otherwise, a new Element is constructed with the argument (see Element.initialize).
  - !ruby/struct:SM::Flow::LI 
    label: "attrs:"
    body: If supplied, must be a Hash containing String name,value pairs, which will be used to set the attributes of the new Element.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the Element that was added
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " el = doc.add_element 'my-tag'\n el = doc.add_element 'my-tag', {'attr1'=&gt;'val1', 'attr2'=&gt;'val2'}\n el = Element.new 'my-tag'\n doc.add_element el\n"
full_name: REXML::Element#add_element
is_singleton: false
name: add_element
params: (element, attrs=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds a namespace to this element.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "prefix:"
    body: the prefix string, or the namespace URI if <tt>uri</tt> is not supplied
  - !ruby/struct:SM::Flow::LI 
    label: "uri:"
    body: the namespace URI. May be nil, in which <tt>prefix</tt> is used as the URI
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: "Evaluates to: this Element"
- !ruby/struct:SM::Flow::VERB 
  body: " a = Element.new(&quot;a&quot;)\n a.add_namespace(&quot;xmlns:foo&quot;, &quot;bar&quot; )\n a.add_namespace(&quot;foo&quot;, &quot;bar&quot;)  # shorthand for previous line\n a.add_namespace(&quot;twiddle&quot;)\n puts a   #-&gt; &lt;a xmlns:foo='bar' xmlns='twiddle'/&gt;\n"
full_name: REXML::Element#add_namespace
is_singleton: false
name: add_namespace
params: ( prefix, uri=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to the root node of the document that this element belongs to. If this element doesn't belong to a document, but does belong to another Element, the parent's root will be returned, until the earliest ancestor is found.
- !ruby/struct:SM::Flow::P 
  body: "Note that this is not the same as the document element. In the following example, &lt;a&gt; is the document element, and the root node is the parent node of the document element. You may ask yourself why the root node is useful: consider the doctype and XML declaration, and any processing instructions before the document element... they are children of the root node, or siblings of the document element. The only time this isn't true is when an Element is created that is not part of any Document. In this case, the ancestor that has no parent acts as the root node."
- !ruby/struct:SM::Flow::VERB 
  body: " d = Document.new '&lt;a&gt;<b>&lt;c/&gt;</b>&lt;/a&gt;'\n a = d[1] ; c = a[1][1]\n d.root_node == d   # TRUE\n a.root_node        # namely, d\n c.root_node        # again, d\n"
full_name: REXML::Element#root_node
is_singleton: false
name: root_node
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the entity expansion limit. By default the limit is set to 10240.
full_name: REXML::entity_expansion_text_limit=
is_singleton: true
name: entity_expansion_text_limit=
params: ( val )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Light
includes: []

instance_methods: []

name: Light
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#namesplit
is_singleton: false
name: namesplit
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#[]
is_singleton: false
name: "[]"
params: ( reference, ns=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#children
is_singleton: false
name: children
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#namespace_of
is_singleton: false
name: namespace_of
params: ( node, prefix=nil )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#root
is_singleton: false
name: root
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#=~
is_singleton: false
name: =~
params: ( path )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#namespace
is_singleton: false
name: namespace
params: ( prefix=prefix() )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#parent
is_singleton: false
name: parent
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new element.
full_name: REXML::Light::Node::new
is_singleton: true
name: new
params: (node=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ( at(x+4) )
comment: 
full_name: REXML::Light::Node#each
is_singleton: false
name: each
params: ( &block ) {|at(x+4 )| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#local_name=
is_singleton: false
name: local_name=
params: ( name_str )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Append a child to this element, optionally under a provided namespace. The namespace argument is ignored if the element argument is an Element object. Otherwise, the element argument is a string, the namespace (if provided) is the namespace the element is created in.
full_name: REXML::Light::Node#<<
is_singleton: false
name: "<<"
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#namespace=
is_singleton: false
name: namespace=
params: ( namespace )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#has_name?
is_singleton: false
name: has_name?
params: ( name, namespace = '' )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a tagged XML element. Elements are characterized by having children, attributes, and names, and can themselves be children.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NAMESPLIT
  value: /^(?:(#{XMLTokens::NCNAME_STR}):)?(#{XMLTokens::NCNAME_STR})/u
- !ruby/object:RI::Constant 
  comment: 
  name: PARENTS
  value: "[ :element, :document, :doctype ]"
full_name: REXML::Light::Node
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: =~
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: children
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: has_name?
- !ruby/object:RI::MethodSummary 
  name: local_name
- !ruby/object:RI::MethodSummary 
  name: local_name=
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: name=
- !ruby/object:RI::MethodSummary 
  name: namespace
- !ruby/object:RI::MethodSummary 
  name: namespace=
- !ruby/object:RI::MethodSummary 
  name: namespace_of
- !ruby/object:RI::MethodSummary 
  name: namesplit
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: parent
- !ruby/object:RI::MethodSummary 
  name: parent=
- !ruby/object:RI::MethodSummary 
  name: prefix
- !ruby/object:RI::MethodSummary 
  name: prefix_of
- !ruby/object:RI::MethodSummary 
  name: root
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: text=
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Node
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#prefix
is_singleton: false
name: prefix
params: ( namespace=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#name=
is_singleton: false
name: name=
params: ( name_str, ns=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#local_name
is_singleton: false
name: local_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#text=
is_singleton: false
name: text=
params: ( foo )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Doesn't handle namespaces yet
full_name: REXML::Light::Node#[]=
is_singleton: false
name: "[]="
params: ( reference, ns, value=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#parent=
is_singleton: false
name: parent=
params: ( node )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Light::Node#prefix_of
is_singleton: false
name: prefix_of
params: ( node, namespace=nil )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write the XML tree out, optionally with indent. This writes out the entire XML document, including XML declarations, doctype declarations, and processing instructions (if any are given).
- !ruby/struct:SM::Flow::P 
  body: A controversial point is whether Document should always write the XML declaration (&lt;?xml version='1.0'?&gt;) whether or not one is given by the user (or source document). REXML does not write one if one was not specified, because it adds unnecessary bandwidth to applications such as XML-RPC.
- !ruby/struct:SM::Flow::P 
  body: See also the classes in the rexml/formatters package for the proper way to change the default formatting of XML output
- !ruby/struct:SM::Flow::P 
  body: <em>Examples</em>
- !ruby/struct:SM::Flow::VERB 
  body: "  Document.new(&quot;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&quot;).serialize\n\n  output_string = &quot;&quot;\n  tr = Transitive.new( output_string )\n  Document.new(&quot;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&quot;).serialize( tr )\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: output an object which supports '&lt;&lt; string'; this is where the
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: "  document will be written.\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: An integer. If -1, no indenting will be used; otherwise, the indentation will be twice this number of spaces, and children will be indented an additional amount. For a value of 3, every item will be indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1
  - !ruby/struct:SM::Flow::LI 
    label: "trans:"
    body: If transitive is true and indent is &gt;= 0, then the output will be pretty-printed in such a way that the added whitespace does not affect the absolute <b>value</b> of the document -- that is, it leaves the value and number of Text nodes in the document unchanged.
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Internet Explorer is the worst piece of crap to have ever been written, with the possible exception of Windows itself. Since IE is unable to parse proper XML, we have to provide a hack to generate XML that IE's limited abilities can handle. This hack inserts a space before the /&gt; on empty tags. Defaults to false
  type: :NOTE
full_name: REXML::Document#write
is_singleton: false
name: write
params: ( output=$stdout, indent=-1, trans=false, ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the XMLDecl standalone value of this document as a String. If no XMLDecl has been set, returns the default setting."
full_name: REXML::Document#stand_alone?
is_singleton: false
name: stand_alone?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the XMLDecl of this document; if no XMLDecl has been set, the default declaration is returned."
full_name: REXML::Document#xml_decl
is_singleton: false
name: xml_decl
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: We override this, because XMLDecls and DocTypes must go at the start of the document
full_name: REXML::Document#add
is_singleton: false
name: add
params: ( child )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the DocType child of the document, if one exists, and nil otherwise."
full_name: REXML::Document#doctype
is_singleton: false
name: doctype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the entity expansion limit. By default the limit is set to 10000.
full_name: REXML::Document::entity_expansion_limit=
is_singleton: true
name: entity_expansion_limit=
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the entity expansion limit. By default the limit is set to 10000.
- !ruby/struct:SM::Flow::P 
  body: Deprecated. Use REXML.entity_expansion_text_limit instead.
full_name: REXML::Document::entity_expansion_text_limit
is_singleton: true
name: entity_expansion_text_limit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the entity expansion limit. By default the limit is set to 10240.
- !ruby/struct:SM::Flow::P 
  body: Deprecated. Use REXML.entity_expansion_text_limit= instead.
full_name: REXML::Document::entity_expansion_text_limit=
is_singleton: true
name: entity_expansion_text_limit=
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #expanded_name"
full_name: REXML::Document#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Should be obvious
full_name: REXML::Document#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Document#build
is_singleton: false
name: build
params: ( source )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the root Element of the document, or nil if this document has no children."
full_name: REXML::Document#root
is_singleton: false
name: root
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: entity_expansion_count
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_limit
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_limit=
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_text_limit
- !ruby/object:RI::MethodSummary 
  name: entity_expansion_text_limit=
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse_stream
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a full XML document, including PIs, a doctype, etc. A Document has a single child that can be accessed by root(). Note that if you want to have an XML declaration written for a document you create, you must add one; REXML documents do not write a default declaration for you. See |DECLARATION| and |write|.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "A convenient default XML declaration. If you want an XML declaration, the easiest way to add one is mydoc &lt;&lt; Document::DECLARATION <tt>DEPRECATED</tt> Use: mydoc &lt;&lt; XMLDecl.default"
  name: DECLARATION
  value: XMLDecl.default
full_name: REXML::Document
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: add_element
- !ruby/object:RI::MethodSummary 
  name: build
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: doctype
- !ruby/object:RI::MethodSummary 
  name: encoding
- !ruby/object:RI::MethodSummary 
  name: expanded_name
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: record_entity_expansion
- !ruby/object:RI::MethodSummary 
  name: root
- !ruby/object:RI::MethodSummary 
  name: stand_alone?
- !ruby/object:RI::MethodSummary 
  name: version
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: xml_decl
name: Document
superclass: Element
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the XMLDecl version of this document as a String. If no XMLDecl has been set, returns the default version."
full_name: REXML::Document#version
is_singleton: false
name: version
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor @param source if supplied, must be a Document, String, or IO. Documents have their context and Element attributes cloned. Strings are expected to be valid XML documents. IOs are expected to be sources of valid XML documents. @param context if supplied, contains the context of the document; this should be a Hash.
full_name: REXML::Document::new
is_singleton: true
name: new
params: ( source = nil, context = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: name
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: According to the XML spec, a root node has no expanded name
full_name: REXML::Document#expanded_name
is_singleton: false
name: expanded_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Document#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: REXML::Document#<<
is_singleton: false
name: "<<"
params: ( child )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Document#record_entity_expansion
is_singleton: false
name: record_entity_expansion
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Document::parse_stream
is_singleton: true
name: parse_stream
params: ( source, listener )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Document#add_element
is_singleton: false
name: add_element
params: (arg=nil, arg2=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the entity expansion limit. By default the limit is set to 10000.
full_name: REXML::Document::entity_expansion_limit
is_singleton: true
name: entity_expansion_limit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the XMLDecl encoding of this document as a String. If no XMLDecl has been set, returns the default encoding."
full_name: REXML::Document#encoding
is_singleton: false
name: encoding
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the current line in the source"
full_name: REXML::IOSource#current_line
is_singleton: false
name: current_line
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#position
is_singleton: false
name: position
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#scan
is_singleton: false
name: scan
params: (pattern, cons=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Source that wraps an IO. See the Source class for method documentation
constants: []

full_name: REXML::IOSource
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: consume
- !ruby/object:RI::MethodSummary 
  name: current_line
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: position
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: scan
name: IOSource
superclass: Source
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: block_size has been deprecated
full_name: REXML::IOSource::new
is_singleton: true
name: new
params: (arg, block_size=500, encoding=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#read
is_singleton: false
name: read
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#match
is_singleton: false
name: match
params: ( pattern, cons=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::IOSource#consume
is_singleton: false
name: consume
params: ( pattern )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See the rexml/formatters package
- !ruby/struct:SM::Flow::P 
  body: Generates XML output of this object
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: Where to write the string. Defaults to $stdout
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: The amount to indent this node by
  - !ruby/struct:SM::Flow::LI 
    label: "transitive:"
    body: Ignored
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Ignored
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: <em>Examples</em>
- !ruby/struct:SM::Flow::VERB 
  body: " c = CData.new( &quot; Some text &quot; )\n c.write( $stdout )     #-&gt;  &lt;![CDATA[ Some text ]]&gt;\n"
full_name: REXML::CData#write
is_singleton: false
name: write
params: ( output=$stdout, indent=-1, transitive=false, ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Make a copy of this object
- !ruby/struct:SM::Flow::P 
  body: <em>Examples</em>
- !ruby/struct:SM::Flow::VERB 
  body: " c = CData.new( &quot;Some text&quot; )\n d = c.clone\n d.to_s        # -&gt; &quot;Some text&quot;\n"
full_name: REXML::CData#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: "    Constructor.  CData is data between &lt;![CDATA[ ... ]]&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Examples</em>
- !ruby/struct:SM::Flow::VERB 
  body: " CData.new( source )\n CData.new( &quot;Here is some CDATA&quot; )\n CData.new( &quot;Some unprocessed data&quot;, respect_whitespace_TF, parent_element )\n"
full_name: REXML::CData::new
is_singleton: true
name: new
params: ( first, whitespace=true, parent=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::CData#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the content of this CData object
- !ruby/struct:SM::Flow::P 
  body: <em>Examples</em>
- !ruby/struct:SM::Flow::VERB 
  body: " c = CData.new( &quot;Some text&quot; )\n c.to_s        # -&gt; &quot;Some text&quot;\n"
full_name: REXML::CData#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "'<![CDATA['"
- !ruby/object:RI::Constant 
  comment: 
  name: STOP
  value: "']]>'"
- !ruby/object:RI::Constant 
  comment: 
  name: ILLEGAL
  value: /(\]\]>)/
full_name: REXML::CData
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: value
- !ruby/object:RI::MethodSummary 
  name: write
name: CData
superclass: Text
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: DEPRECATED
- !ruby/struct:SM::Flow::P 
  body: See REXML::Formatters
full_name: REXML::Declaration#write
is_singleton: false
name: write
params: ( output, indent )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Declaration::new
is_singleton: true
name: new
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Declaration#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is an abstract class. You never use this directly; it serves as a parent class for the specific declarations.
constants: []

full_name: REXML::Declaration
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: write
name: Declaration
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each"
full_name: REXML::Parent#each_child
is_singleton: false
name: each_child
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches a child at a given index @param index the Integer index of the child to fetch
full_name: REXML::Parent#[]
is_singleton: false
name: "[]"
params: ( index )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: length
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the number of children of this parent"
full_name: REXML::Parent#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: children
block_params: 
comment: 
full_name: REXML::Parent#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #to_a"
full_name: REXML::Parent#children
is_singleton: false
name: children
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inserts an child after another child @param child1 this is either an xpath or an Element. If an Element, child2 will be inserted after child1 in the child list of the parent. If an xpath, child2 will be inserted after the first child to match the xpath. @param child2 the child to insert @return the parent (self)
full_name: REXML::Parent#insert_after
is_singleton: false
name: insert_after
params: ( child1, child2 )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: push
block_params: 
comment: 
full_name: REXML::Parent#add
is_singleton: false
name: add
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: REXML::Parent#push
is_singleton: false
name: push
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#parent?
is_singleton: false
name: parent?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#unshift
is_singleton: false
name: unshift
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#delete_if
is_singleton: false
name: delete_if
params: ( &block )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deeply clones this object. This creates a complete duplicate of this Parent, including all descendants.
full_name: REXML::Parent#deep_clone
is_singleton: false
name: deep_clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces one child with another, making sure the nodelist is correct @param to_replace the child to replace (must be a Child) @param replacement the child to insert into the nodelist (must be a Child)
full_name: REXML::Parent#replace_child
is_singleton: false
name: replace_child
params: ( to_replace, replacement )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor @param parent if supplied, will be set as the parent of this object
full_name: REXML::Parent::new
is_singleton: true
name: new
params: (parent=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #size"
full_name: REXML::Parent#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#delete
is_singleton: false
name: delete
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each_child
block_params: 
comment: 
full_name: REXML::Parent#each
is_singleton: false
name: each
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#each_index
is_singleton: false
name: each_index
params: ( &block )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #push"
full_name: REXML::Parent#<<
is_singleton: false
name: "<<"
params: ( object )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inserts an child before another child @param child1 this is either an xpath or an Element. If an Element, child2 will be inserted before child1 in the child list of the parent. If an xpath, child2 will be inserted before the first child to match the xpath. @param child2 the child to insert @return the parent (self)
full_name: REXML::Parent#insert_before
is_singleton: false
name: insert_before
params: ( child1, child2 )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches the index of a given child @param child the child to get the index of @return the index of the child, or nil if the object is not a child of this parent.
full_name: REXML::Parent#index
is_singleton: false
name: index
params: ( child )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set an index entry. See Array.[]= @param index the index of the element to set @param opt either the object to set, or an Integer length @param child if opt is an Integer, this is the child to set @return the parent (self)
full_name: REXML::Parent#[]=
is_singleton: false
name: "[]="
params: ( *args )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Parent#delete_at
is_singleton: false
name: delete_at
params: ( index )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A parent has children, and has methods for accessing them. The Parent class is never encountered except as the superclass for some other object.
constants: []

full_name: REXML::Parent
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: children
- !ruby/object:RI::MethodSummary 
  name: deep_clone
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_at
- !ruby/object:RI::MethodSummary 
  name: delete_if
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_child
- !ruby/object:RI::MethodSummary 
  name: each_index
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: insert_after
- !ruby/object:RI::MethodSummary 
  name: insert_before
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: parent?
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: replace_child
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: unshift
name: Parent
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write out a fully formed, correct entity definition (assuming the Entity object itself is valid.)
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "out:"
    body: An object implementing &lt;TT&gt;&amp;lt;&amp;lt;&lt;TT&gt; to which the entity will be output
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: <b>DEPRECATED</b> and ignored
  type: :NOTE
full_name: REXML::Entity#write
is_singleton: false
name: write
params: (out, indent=-1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates whether the given string matchs an entity definition, returning true if so, and false otherwise.
full_name: REXML::Entity::matches?
is_singleton: true
name: matches?
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Create a new entity. Simple entities can be constructed by passing a name, value to the constructor; this creates a generic, plain entity reference. For anything more complicated, you have to pass a Source to the constructor with the entity definiton, or use the accessor methods. <tt>WARNING</tt>: There is no validation of entity state except when the entity is read from a stream. If you start poking around with the accessors, you can easily create a non-conformant Entity. The best thing to do is dump the stupid DTDs and use XMLSchema instead."
- !ruby/struct:SM::Flow::VERB 
  body: " e = Entity.new( 'amp', '&amp;' )\n"
full_name: REXML::Entity::new
is_singleton: true
name: new
params: (stream, value=nil, parent=nil, reference=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the value of this entity. At the moment, only internal entities are processed. If the value contains internal references (IE, %blah;), those are replaced with their values. IE, if the doctype contains:"
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;!ENTITY % foo &quot;bar&quot;&gt;\n &lt;!ENTITY yada &quot;nanoo %foo; nanoo&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: "then:"
- !ruby/struct:SM::Flow::VERB 
  body: " doctype.entity('yada').value   #-&gt; &quot;nanoo bar nanoo&quot;\n"
full_name: REXML::Entity#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns this entity as a string. See write().
full_name: REXML::Entity#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Evaluates to the unnormalized value of this entity; that is, replacing all entities -- both %ent; and &amp;ent; entities. This differs from +value()+ in that <tt>value</tt> only replaces %ent; entities.
full_name: REXML::Entity#unnormalized
is_singleton: false
name: unnormalized
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: external
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: ndata
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: pubid
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: ref
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: God, I hate DTDs. I really do. Why this idiot standard still plagues us is beyond me.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: PUBIDCHAR
  value: "\"\\x20\\x0D\\x0Aa-zA-Z0-9\\\\-()+,./:=?;!*@$_%#\""
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEMLITERAL
  value: "%Q{((?:\"[^\"]*\")|(?:'[^']*'))}"
- !ruby/object:RI::Constant 
  comment: 
  name: PUBIDLITERAL
  value: "%Q{(\"[#{PUBIDCHAR}']*\"|'[#{PUBIDCHAR}]*')}"
- !ruby/object:RI::Constant 
  comment: 
  name: EXTERNALID
  value: "\"(?:(?:(SYSTEM)\\\\s+#{SYSTEMLITERAL})|(?:(PUBLIC)\\\\s+#{PUBIDLITERAL}\\\\s+#{SYSTEMLITERAL}))\""
- !ruby/object:RI::Constant 
  comment: 
  name: NDATADECL
  value: "\"\\\\s+NDATA\\\\s+#{NAME}\""
- !ruby/object:RI::Constant 
  comment: 
  name: PEREFERENCE
  value: "\"%#{NAME};\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYVALUE
  value: "%Q{((?:\"(?:[^%&\"]|#{PEREFERENCE}|#{REFERENCE})*\")|(?:'([^%&']|#{PEREFERENCE}|#{REFERENCE})*'))}"
- !ruby/object:RI::Constant 
  comment: 
  name: PEDEF
  value: "\"(?:#{ENTITYVALUE}|#{EXTERNALID})\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYDEF
  value: "\"(?:#{ENTITYVALUE}|(?:#{EXTERNALID}(#{NDATADECL})?))\""
- !ruby/object:RI::Constant 
  comment: 
  name: PEDECL
  value: "\"<!ENTITY\\\\s+(%)\\\\s+#{NAME}\\\\s+#{PEDEF}\\\\s*>\""
- !ruby/object:RI::Constant 
  comment: 
  name: GEDECL
  value: "\"<!ENTITY\\\\s+#{NAME}\\\\s+#{ENTITYDEF}\\\\s*>\""
- !ruby/object:RI::Constant 
  comment: 
  name: ENTITYDECL
  value: /\s*(?:#{GEDECL})|(?:#{PEDECL})/um
- !ruby/object:RI::Constant 
  comment: 
  name: PEREFERENCE_RE
  value: /#{PEREFERENCE}/um
full_name: REXML::Entity
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: normalized
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: unnormalized
- !ruby/object:RI::MethodSummary 
  name: value
- !ruby/object:RI::MethodSummary 
  name: write
name: Entity
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of this entity unprocessed -- raw. This is the normalized value; that is, with all %ent; and &amp;ent; entities intact
full_name: REXML::Entity#normalized
is_singleton: false
name: normalized
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#check_encoding
is_singleton: false
name: check_encoding
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding::encoding_method
is_singleton: true
name: encoding_method
params: (enc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_utf8
is_singleton: false
name: encode_utf8
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding::apply
is_singleton: true
name: apply
params: (obj, enc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert to UTF-8
full_name: REXML::Encoding#decode_ascii
is_singleton: false
name: decode_ascii
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_sjis
is_singleton: false
name: decode_sjis
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_utf8
is_singleton: false
name: decode_utf8
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_eucjp
is_singleton: false
name: decode_eucjp
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert from UTF-8
full_name: REXML::Encoding#encode_ascii
is_singleton: false
name: encode_ascii
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_unile
is_singleton: false
name: decode_unile
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_utf16
is_singleton: false
name: decode_utf16
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encoding=
is_singleton: false
name: encoding=
params: ( enc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_utf16
is_singleton: false
name: encode_utf16
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert to UTF-8
full_name: REXML::Encoding#from_iso_8859_15
is_singleton: false
name: from_iso_8859_15
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_eucjp
is_singleton: false
name: encode_eucjp
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding::register
is_singleton: true
name: register
params: (enc, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#decode_iconv
is_singleton: false
name: decode_iconv
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_sjis
is_singleton: false
name: encode_sjis
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert to UTF-8
full_name: REXML::Encoding#decode_cp1252
is_singleton: false
name: decode_cp1252
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: ID ---&gt; Encoding name
  name: encoding
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: apply
- !ruby/object:RI::MethodSummary 
  name: encoding_method
- !ruby/object:RI::MethodSummary 
  name: register
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Native, default format is UTF-8, so it is declared here rather than in an encodings/ definition.
  name: UTF_8
  value: "'UTF-8'"
- !ruby/object:RI::Constant 
  comment: 
  name: UTF_16
  value: "'UTF-16'"
- !ruby/object:RI::Constant 
  comment: 
  name: UNILE
  value: "'UNILE'"
- !ruby/object:RI::Constant 
  comment: 
  name: SJISTOU8
  value: "'-Swm0x'"
- !ruby/object:RI::Constant 
  comment: 
  name: U8TOSJIS
  value: "'-Wsm0x'"
- !ruby/object:RI::Constant 
  comment: 
  name: EUCTOU8
  value: "'-Ewm0'"
- !ruby/object:RI::Constant 
  comment: 
  name: U8TOEUC
  value: "'-Wem0'"
full_name: REXML::Encoding
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_encoding
- !ruby/object:RI::MethodSummary 
  name: decode_ascii
- !ruby/object:RI::MethodSummary 
  name: decode_cp1252
- !ruby/object:RI::MethodSummary 
  name: decode_eucjp
- !ruby/object:RI::MethodSummary 
  name: decode_eucjp
- !ruby/object:RI::MethodSummary 
  name: decode_iconv
- !ruby/object:RI::MethodSummary 
  name: decode_sjis
- !ruby/object:RI::MethodSummary 
  name: decode_sjis
- !ruby/object:RI::MethodSummary 
  name: decode_unile
- !ruby/object:RI::MethodSummary 
  name: decode_utf16
- !ruby/object:RI::MethodSummary 
  name: decode_utf8
- !ruby/object:RI::MethodSummary 
  name: encode_ascii
- !ruby/object:RI::MethodSummary 
  name: encode_cp1252
- !ruby/object:RI::MethodSummary 
  name: encode_eucjp
- !ruby/object:RI::MethodSummary 
  name: encode_eucjp
- !ruby/object:RI::MethodSummary 
  name: encode_iconv
- !ruby/object:RI::MethodSummary 
  name: encode_sjis
- !ruby/object:RI::MethodSummary 
  name: encode_sjis
- !ruby/object:RI::MethodSummary 
  name: encode_unile
- !ruby/object:RI::MethodSummary 
  name: encode_utf16
- !ruby/object:RI::MethodSummary 
  name: encode_utf8
- !ruby/object:RI::MethodSummary 
  name: encoding=
- !ruby/object:RI::MethodSummary 
  name: from_iso_8859_15
- !ruby/object:RI::MethodSummary 
  name: to_iso_8859_15
name: Encoding
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert from UTF-8
full_name: REXML::Encoding#to_iso_8859_15
is_singleton: false
name: to_iso_8859_15
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert from UTF-8
full_name: REXML::Encoding#encode_cp1252
is_singleton: false
name: encode_cp1252
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_iconv
is_singleton: false
name: encode_iconv
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Encoding#encode_unile
is_singleton: false
name: encode_unile
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#compare
is_singleton: false
name: compare
params: (a, op, b)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: node
comment: 
full_name: REXML::XPathParser#recurse
is_singleton: false
name: recurse
params: ( nodeset, &block ) {|node| ...}
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: You don't want to use this class. Really. Use XPath, which is a wrapper for this class. Believe me. You don't want to poke around in here. There is strange, dark magic at work in this code. Beware. Go back! Go back while you still can!
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: LITERAL
  value: /^'([^']*)'|^"([^"]*)"/u
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Expr takes a stack of path elements and a set of nodes (either a Parent or an Array and returns an Array of matching nodes
  name: ALL
  value: "[ :attribute, :element, :text, :processing_instruction, :comment ]"
- !ruby/object:RI::Constant 
  comment: 
  name: ELEMENTS
  value: "[ :element ]"
full_name: REXML::XPathParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: compare
- !ruby/object:RI::MethodSummary 
  name: d_o_s
- !ruby/object:RI::MethodSummary 
  name: descendant_or_self
- !ruby/object:RI::MethodSummary 
  name: document_order
- !ruby/object:RI::MethodSummary 
  name: equality_relational_compare
- !ruby/object:RI::MethodSummary 
  name: expr
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: following
- !ruby/object:RI::MethodSummary 
  name: following_node_of
- !ruby/object:RI::MethodSummary 
  name: get_first
- !ruby/object:RI::MethodSummary 
  name: get_namespace
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: namespaces=
- !ruby/object:RI::MethodSummary 
  name: next_sibling_node
- !ruby/object:RI::MethodSummary 
  name: norm
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: preceding
- !ruby/object:RI::MethodSummary 
  name: preceding_node_of
- !ruby/object:RI::MethodSummary 
  name: predicate
- !ruby/object:RI::MethodSummary 
  name: recurse
- !ruby/object:RI::MethodSummary 
  name: variables=
name: XPathParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#d_o_s
is_singleton: false
name: d_o_s
params: ( p, ns, r )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Builds a nodeset of all of the preceding nodes of the supplied node, in reverse document order
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "preceding:"
    body: includes every element in the document that precedes this node,
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: except for ancestors
full_name: REXML::XPathParser#preceding
is_singleton: false
name: preceding
params: ( node )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#expr
is_singleton: false
name: expr
params: ( path_stack, nodeset, context=nil )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#next_sibling_node
is_singleton: false
name: next_sibling_node
params: (node)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#following_node_of
is_singleton: false
name: following_node_of
params: ( node )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#norm
is_singleton: false
name: norm
params: (b)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser::new
is_singleton: true
name: new
params: ( )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#predicate
is_singleton: false
name: predicate
params: (path, nodeset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#namespaces=
is_singleton: false
name: namespaces=
params: ( namespaces={} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#match
is_singleton: false
name: match
params: ( path_stack, nodeset )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#following
is_singleton: false
name: following
params: ( node )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#equality_relational_compare
is_singleton: false
name: equality_relational_compare
params: ( set1, op, set2 )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#parse
is_singleton: false
name: parse
params: (path, nodeset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Performs a depth-first (document order) XPath search, and returns the first match. This is the fastest, lightest way to return a single result.
- !ruby/struct:SM::Flow::P 
  body: "FIXME: This method is incomplete!"
full_name: REXML::XPathParser#first
is_singleton: false
name: first
params: ( path_stack, node )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#preceding_node_of
is_singleton: false
name: preceding_node_of
params: ( node )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reorders an array of nodes so that they are in document order It tries to do this efficiently.
- !ruby/struct:SM::Flow::P 
  body: "FIXME: I need to get rid of this, but the issue is that most of the XPath interpreter functions as a filter, which means that we lose context going in and out of function calls. If I knew what the index of the nodes was, I wouldn't have to do this. Maybe add a document IDX for each node? Problems with mutable documents. Or, rewrite everything."
full_name: REXML::XPathParser#document_order
is_singleton: false
name: document_order
params: ( array_of_nodes )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#variables=
is_singleton: false
name: variables=
params: ( vars={} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#[]=
is_singleton: false
name: "[]="
params: ( variable_name, value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::XPathParser#get_first
is_singleton: false
name: get_first
params: (path, nodeset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a String namespace for a node, given a prefix The rules are:"
- !ruby/struct:SM::Flow::VERB 
  body: " 1. Use the supplied namespace mapping first.\n 2. If no mapping was supplied, use the context node to look up the namespace\n"
full_name: REXML::XPathParser#get_namespace
is_singleton: false
name: get_namespace
params: ( node, prefix )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME The next two methods are BAD MOJO! This is my achilles heel. If anybody thinks of a better way of doing this, be my guest. This really sucks, but it is a wonder it works at all. ########################################################"
full_name: REXML::XPathParser#descendant_or_self
is_singleton: false
name: descendant_or_self
params: ( path_stack, nodeset )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::OneOrMore#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::OneOrMore
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: reset
name: OneOrMore
superclass: State
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::OneOrMore#matches?
is_singleton: false
name: matches?
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::OneOrMore#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::OneOrMore::new
is_singleton: true
name: new
params: (context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::OneOrMore#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::ZeroOrMore#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Validation::ZeroOrMore
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: next
name: ZeroOrMore
superclass: Optional
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::ZeroOrMore#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Ref#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Ref::new
is_singleton: true
name: new
params: (value)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::Ref
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Ref
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Ref#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#previous=
is_singleton: false
name: previous=
params: ( previous )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#generate_event
is_singleton: false
name: generate_event
params: ( event )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State::new
is_singleton: true
name: new
params: ( context )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::State
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: add_event_to_arry
- !ruby/object:RI::MethodSummary 
  name: expand_ref_in
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: generate_event
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: previous=
- !ruby/object:RI::MethodSummary 
  name: reset
- !ruby/object:RI::MethodSummary 
  name: to_s
name: State
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#<<
is_singleton: false
name: "<<"
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#add_event_to_arry
is_singleton: false
name: add_event_to_arry
params: ( arry, evt )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::State#expand_ref_in
is_singleton: false
name: expand_ref_in
params: ( arry, ind )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Optional#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Optional#matches?
is_singleton: false
name: matches?
params: (event)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Optional#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Validation::Optional
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: next
name: Optional
superclass: State
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NILEVENT
  value: "[ nil ]"
full_name: REXML::Validation::Validator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: reset
- !ruby/object:RI::MethodSummary 
  name: validate
name: Validator
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Validator#validate
is_singleton: false
name: validate
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Validator#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Validator#dump
is_singleton: false
name: dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::ValidationException::new
is_singleton: true
name: new
params: (msg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::ValidationException
includes: []

instance_methods: []

name: ValidationException
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Sequence#matches?
is_singleton: false
name: matches?
params: (event)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Validation::Sequence
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: matches?
name: Sequence
superclass: State
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#next_current
is_singleton: false
name: next_current
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#matches?
is_singleton: false
name: matches?
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave::new
is_singleton: true
name: new
params: (context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Interleave#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::Interleave
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: next_current
- !ruby/object:RI::MethodSummary 
  name: reset
name: Interleave
superclass: Choice
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Validation
includes: []

instance_methods: []

name: Validation
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#next
is_singleton: false
name: next
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#matches?
is_singleton: false
name: matches?
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice::new
is_singleton: true
name: new
params: (context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#expected
is_singleton: false
name: expected
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#<<
is_singleton: false
name: "<<"
params: ( event )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Choice#add_event_to_arry
is_singleton: false
name: add_event_to_arry
params: ( arry, evt )
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::Choice
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: add_event_to_arry
- !ruby/object:RI::MethodSummary 
  name: expected
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: reset
name: Choice
superclass: State
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: count
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: current
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: references
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Implemented:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: empty
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: element
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: attribute
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: text
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: optional
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: choice
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: oneOrMore
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: zeroOrMore
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: group
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: value
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: interleave
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: mixed
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: ref
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: grammar
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: start
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: define
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Not implemented:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: data
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: param
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: include
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: externalRef
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: notAllowed
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: anyName
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: nsName
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: except
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: name
  type: :BULLET
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: INFINITY
  value: 1.0 / 0.0
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY
  value: Event.new( nil )
- !ruby/object:RI::Constant 
  comment: 
  name: TEXT
  value: "[:start_element, \"text\"]"
full_name: REXML::Validation::RelaxNG
includes: 
- !ruby/object:RI::IncludedModule 
  name: Validator
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: receive
name: RelaxNG
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::RelaxNG#receive
is_singleton: false
name: receive
params: (event)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME: Namespaces"
full_name: REXML::Validation::RelaxNG::new
is_singleton: true
name: new
params: (source)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#matches?
is_singleton: false
name: matches?
params: ( event )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: event_arg
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: event_type
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Validation::Event
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: done?
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: matches?
- !ruby/object:RI::MethodSummary 
  name: single?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Event
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#==
is_singleton: false
name: ==
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#single?
is_singleton: false
name: single?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#done?
is_singleton: false
name: done?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event::new
is_singleton: true
name: new
params: (event_type, event_arg=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Validation::Event#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Called when an instruction is encountered. EG: &lt;?xsl sheet='foo'?&gt; @p name the instruction name; in the example, &quot;xsl&quot; @p instruction the rest of the instruction. In the example, &quot;sheet='foo'&quot;"
full_name: REXML::StreamListener#instruction
is_singleton: false
name: instruction
params: (name, instruction)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Handles a doctype declaration. Any attributes of the doctype which are not supplied will be nil. # EG, &lt;!DOCTYPE me PUBLIC &quot;foo&quot; &quot;bar&quot;&gt; @p name the name of the doctype; EG, &quot;me&quot; @p pub_sys &quot;PUBLIC&quot;, &quot;SYSTEM&quot;, or nil. EG, &quot;PUBLIC&quot; @p long_name the supplied long name, or nil. EG, &quot;foo&quot; @p uri the uri of the doctype, or nil. EG, &quot;bar&quot;"
full_name: REXML::StreamListener#doctype
is_singleton: false
name: doctype
params: (name, pub_sys, long_name, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!NOTATION ...&gt;"
full_name: REXML::StreamListener#notationdecl
is_singleton: false
name: notationdecl
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If a doctype includes an ATTLIST declaration, it will cause this method to be called. The content is the declaration itself, unparsed. EG, &lt;!ATTLIST el attr CDATA #REQUIRED&gt; will come to this method as &quot;el attr CDATA #REQUIRED&quot;. This is the same for all of the .*decl methods."
full_name: REXML::StreamListener#attlistdecl
is_singleton: false
name: attlistdecl
params: (element_name, attributes, raw_content)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A template for stream parser listeners. Note that the declarations (attlistdecl, elementdecl, etc) are trivially processed; REXML doesn't yet handle doctype entity declarations, so you have to parse them out yourself.
constants: []

full_name: REXML::StreamListener
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: attlistdecl
- !ruby/object:RI::MethodSummary 
  name: cdata
- !ruby/object:RI::MethodSummary 
  name: comment
- !ruby/object:RI::MethodSummary 
  name: doctype
- !ruby/object:RI::MethodSummary 
  name: doctype_end
- !ruby/object:RI::MethodSummary 
  name: elementdecl
- !ruby/object:RI::MethodSummary 
  name: entity
- !ruby/object:RI::MethodSummary 
  name: entitydecl
- !ruby/object:RI::MethodSummary 
  name: instruction
- !ruby/object:RI::MethodSummary 
  name: notationdecl
- !ruby/object:RI::MethodSummary 
  name: tag_end
- !ruby/object:RI::MethodSummary 
  name: tag_start
- !ruby/object:RI::MethodSummary 
  name: text
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: StreamListener
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Called when an XML PI is encountered in the document. EG: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf&quot;?&gt; @p version the version attribute value. EG, &quot;1.0&quot; @p encoding the encoding attribute value, or nil. EG, &quot;utf&quot; @p standalone the standalone attribute value, or nil. EG, nil"
full_name: REXML::StreamListener#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when text is encountered in the document @p text the text content.
full_name: REXML::StreamListener#text
is_singleton: false
name: text
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!ENTITY ...&gt; The argument passed to this method is an array of the entity declaration. It can be in a number of formats, but in general it returns (example, result):"
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;!ENTITY % YN '&quot;Yes&quot;'&gt;\n [&quot;%&quot;, &quot;YN&quot;, &quot;'\\&quot;Yes\\&quot;'&quot;, &quot;\\&quot;&quot;]\n &lt;!ENTITY % YN 'Yes'&gt;\n [&quot;%&quot;, &quot;YN&quot;, &quot;'Yes'&quot;, &quot;s&quot;]\n &lt;!ENTITY WhatHeSaid &quot;He said %YN;&quot;&gt;\n [&quot;WhatHeSaid&quot;, &quot;\\&quot;He said %YN;\\&quot;&quot;, &quot;YN&quot;]\n &lt;!ENTITY open-hatch SYSTEM &quot;http://www.textuality.com/boilerplate/OpenHatch.xml&quot;&gt;\n [&quot;open-hatch&quot;, &quot;SYSTEM&quot;, &quot;\\&quot;http://www.textuality.com/boilerplate/OpenHatch.xml\\&quot;&quot;]\n &lt;!ENTITY open-hatch PUBLIC &quot;-//Textuality//TEXT Standard open-hatch boilerplate//EN&quot; &quot;http://www.textuality.com/boilerplate/OpenHatch.xml&quot;&gt;\n [&quot;open-hatch&quot;, &quot;PUBLIC&quot;, &quot;\\&quot;-//Textuality//TEXT Standard open-hatch boilerplate//EN\\&quot;&quot;, &quot;\\&quot;http://www.textuality.com/boilerplate/OpenHatch.xml\\&quot;&quot;]\n &lt;!ENTITY hatch-pic SYSTEM &quot;../grafix/OpenHatch.gif&quot; NDATA gif&gt;\n [&quot;hatch-pic&quot;, &quot;SYSTEM&quot;, &quot;\\&quot;../grafix/OpenHatch.gif\\&quot;&quot;, &quot;\\n\\t\\t\\t\\t\\t\\t\\tNDATA gif&quot;, &quot;gif&quot;]\n"
full_name: REXML::StreamListener#entitydecl
is_singleton: false
name: entitydecl
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Called when a tag is encountered. @p name the tag name @p attrs an array of arrays of attribute/value pairs, suitable for use with assoc or rassoc. IE, &lt;tag attr1=&quot;value1&quot; attr2=&quot;value2&quot;&gt; will result in tag_start( &quot;tag&quot;, # [[&quot;attr1&quot;,&quot;value1&quot;],[&quot;attr2&quot;,&quot;value2&quot;]])"
full_name: REXML::StreamListener#tag_start
is_singleton: false
name: tag_start
params: (name, attrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when &lt;![CDATA[ ... ]]&gt; is encountered in a document. @p content &quot;...&quot;
full_name: REXML::StreamListener#cdata
is_singleton: false
name: cdata
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!ELEMENT ...&gt;"
full_name: REXML::StreamListener#elementdecl
is_singleton: false
name: elementdecl
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when the doctype is done
full_name: REXML::StreamListener#doctype_end
is_singleton: false
name: doctype_end
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when %foo; is encountered in a doctype declaration. @p content &quot;foo&quot;
full_name: REXML::StreamListener#entity
is_singleton: false
name: entity
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when a comment is encountered. @p comment The content of the comment
full_name: REXML::StreamListener#comment
is_singleton: false
name: comment
params: (comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when the end tag is reached. In the case of &lt;tag/&gt;, tag_end will be called immidiately after tag_start @p the name of the tag
full_name: REXML::StreamListener#tag_end
is_singleton: false
name: tag_end
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::NotationDecl#write
is_singleton: false
name: write
params: ( output, indent=-1 )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method retrieves the name of the notation.
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::NotationDecl#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::NotationDecl::new
is_singleton: true
name: new
params: (name, middle, pub, sys)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::NotationDecl#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: public
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: system
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::NotationDecl
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: write
name: NotationDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the current line in the source"
full_name: REXML::Source#current_line
is_singleton: false
name: current_line
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#position
is_singleton: false
name: position
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Scans the source for a given pattern. Note, that this is not your usual scan() method. For one thing, the pattern argument has some requirements; for another, the source can be consumed. You can easily confuse this method. Originally, the patterns were easier to construct and this method more robust, because this method generated search regexes on the fly; however, this was computationally expensive and slowed down the entire REXML package considerably, since this is by far the most commonly called method. @param pattern must be a Regexp, and must be in the form of /^\s*(#{your pattern, with no groups})(.*)/. The first group will be returned; the second group is used if the consume flag is set. @param consume if true, the pattern returned will be consumed, leaving everything after it in the Source. @return the pattern, if found, or nil if the Source is empty or the pattern is not found.
full_name: REXML::Source#scan
is_singleton: false
name: scan
params: (pattern, cons=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return true if the Source is exhausted"
full_name: REXML::Source#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor @param arg must be a String, and should be a valid XML document @param encoding if non-null, sets the encoding of the source to this value, overriding all encoding detection
full_name: REXML::Source::new
is_singleton: true
name: new
params: (arg, encoding=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The current buffer (what we're going to read next)
  name: buffer
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: encoding
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The line number of the last consumed text
  name: line
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Source can be searched for patterns, and wraps buffers and other objects and provides consumption of text
constants: []

full_name: REXML::Source
includes: 
- !ruby/object:RI::IncludedModule 
  name: Encoding
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: consume
- !ruby/object:RI::MethodSummary 
  name: current_line
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: encoding=
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: match_to
- !ruby/object:RI::MethodSummary 
  name: match_to_consume
- !ruby/object:RI::MethodSummary 
  name: position
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: scan
name: Source
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#match_to
is_singleton: false
name: match_to
params: ( char, pattern )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#read
is_singleton: false
name: read
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inherited from Encoding Overridden to support optimized en/decoding
full_name: REXML::Source#encoding=
is_singleton: false
name: encoding=
params: (enc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#match
is_singleton: false
name: match
params: (pattern, cons=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#match_to_consume
is_singleton: false
name: match_to_consume
params: ( char, pattern )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Source#consume
is_singleton: false
name: consume
params: ( pattern )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Node#indent
is_singleton: false
name: indent
params: (to, ind)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the previous sibling (nil if unset)"
full_name: REXML::Node#previous_sibling_node
is_singleton: false
name: previous_sibling_node
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Node#parent?
is_singleton: false
name: parent?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "@return the next sibling (nil if unset)"
full_name: REXML::Node#next_sibling_node
is_singleton: false
name: next_sibling_node
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the position that <tt>self</tt> holds in its parent's array, indexed from 1.
full_name: REXML::Node#index_in_parent
is_singleton: false
name: index_in_parent
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: <b>DEPRECATED</b> This parameter is now ignored. See the formatters in the REXML::Formatters package for changing the output style.
  type: :NOTE
full_name: REXML::Node#to_s
is_singleton: false
name: to_s
params: (indent=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: node
comment: 
- !ruby/struct:SM::Flow::P 
  body: Visit all subnodes of <tt>self</tt> recursively
full_name: REXML::Node#each_recursive
is_singleton: false
name: each_recursive
params: () {|node| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: node
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find (and return) first subnode (recursively) for which the block evaluates to true. Returns <tt>nil</tt> if none was found.
full_name: REXML::Node#find_first_recursive
is_singleton: false
name: find_first_recursive
params: () {|node| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a node in the tree. Nodes are never encountered except as superclasses of other objects. Nodes have siblings.
constants: []

full_name: REXML::Node
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_recursive
- !ruby/object:RI::MethodSummary 
  name: find_first_recursive
- !ruby/object:RI::MethodSummary 
  name: indent
- !ruby/object:RI::MethodSummary 
  name: index_in_parent
- !ruby/object:RI::MethodSummary 
  name: next_sibling_node
- !ruby/object:RI::MethodSummary 
  name: parent?
- !ruby/object:RI::MethodSummary 
  name: previous_sibling_node
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Node
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This is a set of entity constants -- the ones defined in the XML specification. These are <tt>gt</tt>, <tt>lt</tt>, <tt>amp</tt>, <tt>quot</tt> and <tt>apos</tt>.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: +&gt;+
  name: GT
  value: Entity.new( 'gt', '>' )
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: +&lt;+
  name: LT
  value: Entity.new( 'lt', '<' )
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: +&amp;+
  name: AMP
  value: Entity.new( 'amp', '&' )
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: +&quot;+
  name: QUOT
  value: Entity.new( 'quot', '"' )
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: +'+
  name: APOS
  value: Entity.new( 'apos', "'" )
full_name: REXML::EntityConst
includes: []

instance_methods: []

name: EntityConst
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write out exactly what we got in.
full_name: REXML::AttlistDecl#write
is_singleton: false
name: write
params: (out, indent=-1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Access the attlist attribute/value pairs.
- !ruby/struct:SM::Flow::VERB 
  body: " value = attlist_decl[ attribute_name ]\n"
full_name: REXML::AttlistDecl#[]
is_singleton: false
name: "[]"
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: What is this? Got me.
  name: element_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This class needs:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Documentation
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Work! Not all types of attlists are intelligently parsed, so we just
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: spew back out what we get in. This works, but it would be better if we formatted the output ourselves.
- !ruby/struct:SM::Flow::P 
  body: AttlistDecls provide <b>just</b> enough support to allow namespace declarations. If you need some sort of generalized support, or have an interesting idea about how to map the hideous, terrible design of DTD AttlistDecls onto an intuitive Ruby interface, let me know. I'm desperate for anything to make DTDs more palateable.
constants: []

full_name: REXML::AttlistDecl
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: write
name: AttlistDecl
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Whether an attlist declaration includes the given attribute definition
- !ruby/struct:SM::Flow::VERB 
  body: " if attlist_decl.include? &quot;xmlns:foobar&quot;\n"
full_name: REXML::AttlistDecl#include?
is_singleton: false
name: include?
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create an AttlistDecl, pulling the information from a Source. Notice that this isn't very convenient; to create an AttlistDecl, you basically have to format it yourself, and then have the initializer parse it. Sorry, but for the forseeable future, DTD support in REXML is pretty weak on convenience. Have I mentioned how much I hate DTDs?
full_name: REXML::AttlistDecl::new
is_singleton: true
name: new
params: (source)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Iterate over the key/value pairs:"
- !ruby/struct:SM::Flow::VERB 
  body: " attlist_decl.each { |attribute_name, attribute_value| ... }\n"
full_name: REXML::AttlistDecl#each
is_singleton: false
name: each
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::AttlistDecl#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: REXML::Formatters
includes: []

instance_methods: []

name: Formatters
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Transitive#write_element
is_singleton: false
name: write_element
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Transitive#write_text
is_singleton: false
name: write_text
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Transitive::new
is_singleton: true
name: new
params: ( indentation=2 )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The Transitive formatter writes an XML document that parses to an identical document as the source document. This means that no extra whitespace nodes are inserted, and whitespace within text nodes is preserved. Within these constraints, the document is pretty-printed, with whitespace inserted into the metadata to introduce formatting.
- !ruby/struct:SM::Flow::P 
  body: Note that this is only useful if the original XML is not already formatted. Since this formatter does not alter whitespace nodes, the results of formatting already formatted XML will be odd.
constants: []

full_name: REXML::Formatters::Transitive
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: write_element
- !ruby/object:RI::MethodSummary 
  name: write_text
name: Transitive
superclass: Default
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#write_element
is_singleton: false
name: write_element
params: (node, output)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#write_text
is_singleton: false
name: write_text
params: ( node, output )
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: If compact is set to true, then the formatter will attempt to use as little space as possible
  name: compact
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The width of a page. Used for formatting text
  name: width
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pretty-prints an XML document. This destroys whitespace in text nodes and will insert carriage returns and indentations.
- !ruby/struct:SM::Flow::P 
  body: "TODO: Add an option to print attributes on new lines"
constants: []

full_name: REXML::Formatters::Pretty
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: indent_text
- !ruby/object:RI::MethodSummary 
  name: wrap
- !ruby/object:RI::MethodSummary 
  name: write_cdata
- !ruby/object:RI::MethodSummary 
  name: write_comment
- !ruby/object:RI::MethodSummary 
  name: write_document
- !ruby/object:RI::MethodSummary 
  name: write_element
- !ruby/object:RI::MethodSummary 
  name: write_text
name: Pretty
superclass: Default
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#write_comment
is_singleton: false
name: write_comment
params: ( node, output)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#indent_text
is_singleton: false
name: indent_text
params: (string, level=1, style="\t", indentfirstline=true)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new pretty printer.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: An object implementing '&lt;&lt;(String)', to which the output will be written.
  - !ruby/struct:SM::Flow::LI 
    label: "indentation:"
    body: An integer greater than 0. The indentation of each level will be this number of spaces. If this is &lt; 1, the behavior of this object is undefined. Defaults to 2.
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: If true, the printer will insert whitespace before closing empty tags, thereby allowing Internet Explorer's feeble XML parser to function. Defaults to false.
  type: :NOTE
full_name: REXML::Formatters::Pretty::new
is_singleton: true
name: new
params: ( indentation=2, ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#wrap
is_singleton: false
name: wrap
params: (string, width)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#write_document
is_singleton: false
name: write_document
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Pretty#write_cdata
is_singleton: false
name: write_cdata
params: ( node, output)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_element
is_singleton: false
name: write_element
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Writes the node to some output.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "node:"
    body: The node to write
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: A class implementing <tt>&amp;lt;&amp;lt;</tt>. Pass in an Output object to change the output encoding.
  type: :NOTE
full_name: REXML::Formatters::Default#write
is_singleton: false
name: write
params: ( node, output )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_text
is_singleton: false
name: write_text
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_comment
is_singleton: false
name: write_comment
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_instruction
is_singleton: false
name: write_instruction
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prints out the XML document with no formatting -- except if id_hack is set.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: If set to true, then inserts whitespace before the close of an empty tag, so that IE's bad XML parser doesn't choke.
  type: :NOTE
full_name: REXML::Formatters::Default::new
is_singleton: true
name: new
params: ( ie_hack=false )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_document
is_singleton: false
name: write_document
params: ( node, output )
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Formatters::Default#write_cdata
is_singleton: false
name: write_cdata
params: ( node, output )
visibility: protected
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Formatters::Default
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: write
- !ruby/object:RI::MethodSummary 
  name: write_cdata
- !ruby/object:RI::MethodSummary 
  name: write_comment
- !ruby/object:RI::MethodSummary 
  name: write_document
- !ruby/object:RI::MethodSummary 
  name: write_element
- !ruby/object:RI::MethodSummary 
  name: write_instruction
- !ruby/object:RI::MethodSummary 
  name: write_text
name: Default
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of enumerated Enumerable objects, i.e. the size of each row.
full_name: REXML::SyncEnumerator#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::SyncEnumerator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: size
name: SyncEnumerator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new SyncEnumerator which enumerates rows of given Enumerable objects.
full_name: REXML::SyncEnumerator::new
is_singleton: true
name: new
params: (*enums)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of enumerated Enumerable objects, i.e. the size of each row.
full_name: REXML::SyncEnumerator#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (*a[1..-1])
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enumerates rows of the Enumerable objects.
full_name: REXML::SyncEnumerator#each
is_singleton: false
name: each
params: () {|*a[1..-1]| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the previous sibling of this child. This can be used to insert a child before some other child.
- !ruby/struct:SM::Flow::VERB 
  body: " a = Element.new(&quot;a&quot;)\n b = a.add_element(&quot;b&quot;)\n c = Element.new(&quot;c&quot;)\n b.previous_sibling = c\n # =&gt; &lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;\n"
full_name: REXML::Child#previous_sibling=
is_singleton: false
name: previous_sibling=
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes this child from the parent.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: self
  type: :NOTE
full_name: REXML::Child#remove
is_singleton: false
name: remove
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces this object with another object. Basically, calls Parent.replace_child
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: self
  type: :NOTE
full_name: REXML::Child#replace_with
is_singleton: false
name: replace_with
params: ( child )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the document this child belongs to, or nil if this child
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: belongs to no document
full_name: REXML::Child#document
is_singleton: false
name: document
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Child object is something contained by a parent, and this class contains methods to support that. Most user code will not use this class directly.
constants: []

full_name: REXML::Child
includes: 
- !ruby/object:RI::IncludedModule 
  name: Node
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bytes
- !ruby/object:RI::MethodSummary 
  name: document
- !ruby/object:RI::MethodSummary 
  name: next_sibling=
- !ruby/object:RI::MethodSummary 
  name: parent=
- !ruby/object:RI::MethodSummary 
  name: previous_sibling=
- !ruby/object:RI::MethodSummary 
  name: remove
- !ruby/object:RI::MethodSummary 
  name: replace_with
name: Child
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor. Any inheritors of this class should call super to make sure this method is called.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "parent:"
    body: if supplied, the parent of this child will be set to the supplied value, and self will be added to the parent
  type: :NOTE
full_name: REXML::Child::new
is_singleton: true
name: new
params: ( parent = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the next sibling of this child. This can be used to insert a child after some other child.
- !ruby/struct:SM::Flow::VERB 
  body: " a = Element.new(&quot;a&quot;)\n b = a.add_element(&quot;b&quot;)\n c = Element.new(&quot;c&quot;)\n b.next_sibling = c\n # =&gt; &lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;\n"
full_name: REXML::Child#next_sibling=
is_singleton: false
name: next_sibling=
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the parent of this child to the supplied argument.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "other:"
    body: Must be a Parent object. If this object is the same object as the existing parent of this child, no action is taken. Otherwise, this child is removed from the current parent (if one exists), and is added to the new parent.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: The parent added
  type: :NOTE
full_name: REXML::Child#parent=
is_singleton: false
name: parent=
params: ( other )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This doesn't yet handle encodings
full_name: REXML::Child#bytes
is_singleton: false
name: bytes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#start_document
is_singleton: false
name: start_document
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#progress
is_singleton: false
name: progress
params: (position)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Handles a doctype declaration. Any attributes of the doctype which are not supplied will be nil. # EG, &lt;!DOCTYPE me PUBLIC &quot;foo&quot; &quot;bar&quot;&gt; @p name the name of the doctype; EG, &quot;me&quot; @p pub_sys &quot;PUBLIC&quot;, &quot;SYSTEM&quot;, or nil. EG, &quot;PUBLIC&quot; @p long_name the supplied long name, or nil. EG, &quot;foo&quot; @p uri the uri of the doctype, or nil. EG, &quot;bar&quot;"
full_name: REXML::SAX2Listener#doctype
is_singleton: false
name: doctype
params: (name, pub_sys, long_name, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#end_element
is_singleton: false
name: end_element
params: (uri, localname, qname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!NOTATION ...&gt;"
full_name: REXML::SAX2Listener#notationdecl
is_singleton: false
name: notationdecl
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If a doctype includes an ATTLIST declaration, it will cause this method to be called. The content is the declaration itself, unparsed. EG, &lt;!ATTLIST el attr CDATA #REQUIRED&gt; will come to this method as &quot;el attr CDATA #REQUIRED&quot;. This is the same for all of the .*decl methods."
full_name: REXML::SAX2Listener#attlistdecl
is_singleton: false
name: attlistdecl
params: (element, pairs, contents)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Called when an XML PI is encountered in the document. EG: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf&quot;?&gt; @p version the version attribute value. EG, &quot;1.0&quot; @p encoding the encoding attribute value, or nil. EG, &quot;utf&quot; @p standalone the standalone attribute value, or nil. EG, nil @p spaced the declaration is followed by a line break"
full_name: REXML::SAX2Listener#xmldecl
is_singleton: false
name: xmldecl
params: (version, encoding, standalone)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#start_element
is_singleton: false
name: start_element
params: (uri, localname, qname, attributes)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#characters
is_singleton: false
name: characters
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#end_prefix_mapping
is_singleton: false
name: end_prefix_mapping
params: (prefix)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!ENTITY ...&gt; The argument passed to this method is an array of the entity declaration. It can be in a number of formats, but in general it returns (example, result):"
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;!ENTITY % YN '&quot;Yes&quot;'&gt;\n [&quot;%&quot;, &quot;YN&quot;, &quot;'\\&quot;Yes\\&quot;'&quot;, &quot;\\&quot;&quot;]\n &lt;!ENTITY % YN 'Yes'&gt;\n [&quot;%&quot;, &quot;YN&quot;, &quot;'Yes'&quot;, &quot;s&quot;]\n &lt;!ENTITY WhatHeSaid &quot;He said %YN;&quot;&gt;\n [&quot;WhatHeSaid&quot;, &quot;\\&quot;He said %YN;\\&quot;&quot;, &quot;YN&quot;]\n &lt;!ENTITY open-hatch SYSTEM &quot;http://www.textuality.com/boilerplate/OpenHatch.xml&quot;&gt;\n [&quot;open-hatch&quot;, &quot;SYSTEM&quot;, &quot;\\&quot;http://www.textuality.com/boilerplate/OpenHatch.xml\\&quot;&quot;]\n &lt;!ENTITY open-hatch PUBLIC &quot;-//Textuality//TEXT Standard open-hatch boilerplate//EN&quot; &quot;http://www.textuality.com/boilerplate/OpenHatch.xml&quot;&gt;\n [&quot;open-hatch&quot;, &quot;PUBLIC&quot;, &quot;\\&quot;-//Textuality//TEXT Standard open-hatch boilerplate//EN\\&quot;&quot;, &quot;\\&quot;http://www.textuality.com/boilerplate/OpenHatch.xml\\&quot;&quot;]\n &lt;!ENTITY hatch-pic SYSTEM &quot;../grafix/OpenHatch.gif&quot; NDATA gif&gt;\n [&quot;hatch-pic&quot;, &quot;SYSTEM&quot;, &quot;\\&quot;../grafix/OpenHatch.gif\\&quot;&quot;, &quot;\\n\\t\\t\\t\\t\\t\\t\\tNDATA gif&quot;, &quot;gif&quot;]\n"
full_name: REXML::SAX2Listener#entitydecl
is_singleton: false
name: entitydecl
params: (name, decl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#start_prefix_mapping
is_singleton: false
name: start_prefix_mapping
params: (prefix, uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#processing_instruction
is_singleton: false
name: processing_instruction
params: (target, data)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when &lt;![CDATA[ ... ]]&gt; is encountered in a document. @p content &quot;...&quot;
full_name: REXML::SAX2Listener#cdata
is_singleton: false
name: cdata
params: (content)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A template for stream parser listeners. Note that the declarations (attlistdecl, elementdecl, etc) are trivially processed; REXML doesn't yet handle doctype entity declarations, so you have to parse them out yourself.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Missing methods from SAX2
- !ruby/struct:SM::Flow::VERB 
  body: " ignorable_whitespace\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Methods extending SAX2
- !ruby/struct:SM::Flow::P 
  body: <tt>WARNING</tt> These methods are certainly going to change, until DTDs are fully supported. Be aware of this.
- !ruby/struct:SM::Flow::VERB 
  body: " start_document\n end_document\n doctype\n elementdecl\n attlistdecl\n entitydecl\n notationdecl\n cdata\n xmldecl\n comment\n"
constants: []

full_name: REXML::SAX2Listener
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: attlistdecl
- !ruby/object:RI::MethodSummary 
  name: cdata
- !ruby/object:RI::MethodSummary 
  name: characters
- !ruby/object:RI::MethodSummary 
  name: comment
- !ruby/object:RI::MethodSummary 
  name: doctype
- !ruby/object:RI::MethodSummary 
  name: elementdecl
- !ruby/object:RI::MethodSummary 
  name: end_document
- !ruby/object:RI::MethodSummary 
  name: end_element
- !ruby/object:RI::MethodSummary 
  name: end_prefix_mapping
- !ruby/object:RI::MethodSummary 
  name: entitydecl
- !ruby/object:RI::MethodSummary 
  name: notationdecl
- !ruby/object:RI::MethodSummary 
  name: processing_instruction
- !ruby/object:RI::MethodSummary 
  name: progress
- !ruby/object:RI::MethodSummary 
  name: start_document
- !ruby/object:RI::MethodSummary 
  name: start_element
- !ruby/object:RI::MethodSummary 
  name: start_prefix_mapping
- !ruby/object:RI::MethodSummary 
  name: xmldecl
name: SAX2Listener
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "&lt;!ELEMENT ...&gt;"
full_name: REXML::SAX2Listener#elementdecl
is_singleton: false
name: elementdecl
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called when a comment is encountered. @p comment The content of the comment
full_name: REXML::SAX2Listener#comment
is_singleton: false
name: comment
params: (comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::SAX2Listener#end_document
is_singleton: false
name: end_document
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches a child element. Filters only Element children, regardless of the XPath match.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "index:"
    body: the search parameter. This is either an Integer, which will be used to find the index'th child Element, or an XPath, which will be used to search for the Element. <em>Because of the nature of XPath searches, any element in the connected XML document can be fetched through any other element.</em> <b>The Integer index is 1-based, not 0-based.</b> This means that the first child element is at index 1, not 0, and the +n+th element is at index <tt>n</tt>, not <tt>n-1</tt>. This is because XPath indexes element children starting from 1, not 0, and the indexes should be the same.
  - !ruby/struct:SM::Flow::LI 
    label: "name:"
    body: optional, and only used in the first argument is an Integer. In that case, the index'th child Element that has the supplied name will be returned. Note again that the indexes start at 1.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the first matching Element, or nil if no child matched
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;&lt;c id=&quot;1&quot;/&gt;&lt;c id=&quot;2&quot;/&gt;&lt;d/&gt;&lt;/a&gt;'\n doc.root.elements[1]       #-&gt; &lt;b/&gt;\n doc.root.elements['c']     #-&gt; &lt;c id=&quot;1&quot;/&gt;\n doc.root.elements[2,'c']   #-&gt; &lt;c id=&quot;2&quot;/&gt;\n"
full_name: REXML::Elements#[]
is_singleton: false
name: "[]"
params: ( index, name=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of <tt>Element</tt> children of the parent object.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;sean&lt;b/&gt;elliott&lt;b/&gt;russell&lt;b/&gt;&lt;/a&gt;'\n doc.root.size            #-&gt; 6, 3 element and 3 text nodes\n doc.root.elements.size   #-&gt; 3\n"
full_name: REXML::Elements#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an Array of Element children. An XPath may be supplied to filter the children. Only Element children are returned, even if the supplied XPath matches non-Element children.
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;sean&lt;b/&gt;elliott&lt;c/&gt;&lt;/a&gt;'\n doc.root.elements.to_a                  #-&gt; [ &lt;b/&gt;, &lt;c/&gt; ]\n doc.root.elements.to_a(&quot;child::node()&quot;) #-&gt; [ &lt;b/&gt;, &lt;c/&gt; ]\n XPath.match(doc.root, &quot;child::node()&quot;)  #-&gt; [ sean, &lt;b/&gt;, elliott, &lt;c/&gt; ]\n"
full_name: REXML::Elements#to_a
is_singleton: false
name: to_a
params: ( xpath=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds an element
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: if supplied, is either an Element, String, or Source (see Element.initialize). If not supplied or nil, a new, default Element will be constructed
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the added Element
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " a = Element.new('a')\n a.elements.add(Element.new('b'))  #-&gt; &lt;a&gt;&lt;b/&gt;&lt;/a&gt;\n a.elements.add('c')               #-&gt; &lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;\n"
full_name: REXML::Elements#add
is_singleton: false
name: add
params: (element=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Private helper class. Removes quotes from quoted strings
full_name: REXML::Elements#literalize
is_singleton: false
name: literalize
params: (name)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A class which provides filtering of children for Elements, and XPath search support. You are expected to only encounter this class as the <tt>element.elements</tt> object. Therefore, you are <em>not</em> expected to instantiate this yourself.
constants: []

full_name: REXML::Elements
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_all
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: inject
- !ruby/object:RI::MethodSummary 
  name: literalize
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_a
name: Elements
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes multiple elements. Filters for Element children, regardless of XPath matching.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "xpath:"
    body: all elements matching this String path are removed.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: an Array of Elements that have been removed
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;c/&gt;&lt;c/&gt;&lt;c/&gt;&lt;c/&gt;&lt;/a&gt;'\n deleted = doc.elements.delete_all 'a/c' #-&gt; [&lt;c/&gt;, &lt;c/&gt;, &lt;c/&gt;, &lt;c/&gt;]\n"
full_name: REXML::Elements#delete_all
is_singleton: false
name: delete_all
params: ( xpath )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if there are no <tt>Element</tt> children, <tt>false</tt> otherwise
full_name: REXML::Elements#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "parent:"
    body: the parent Element
  type: :NOTE
full_name: REXML::Elements::new
is_singleton: true
name: new
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ( initial, e )
comment: 
full_name: REXML::Elements#inject
is_singleton: false
name: inject
params: ( xpath=nil, initial=nil, &block ) {|initial, e| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes a child Element
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: Either an Element, which is removed directly; an xpath, where the first matching child is removed; or an Integer, where the n'th Element is removed.
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: the removed child
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;c id=&quot;1&quot;/&gt;&lt;/a&gt;'\n b = doc.root.elements[1]\n doc.root.elements.delete b           #-&gt; &lt;a&gt;&lt;c/&gt;&lt;c id=&quot;1&quot;/&gt;&lt;/a&gt;\n doc.elements.delete(&quot;a/c[@id='1']&quot;)  #-&gt; &lt;a&gt;&lt;c/&gt;&lt;/a&gt;\n doc.root.elements.delete 1           #-&gt; &lt;a/&gt;\n"
full_name: REXML::Elements#delete
is_singleton: false
name: delete
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e if e.kind_of? Element
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates through all of the child Elements, optionally filtering them by a given XPath
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "xpath:"
    body: optional. If supplied, this is a String XPath, and is used to filter the children, so that only matching children are yielded. Note that XPaths are automatically filtered for Elements, so that non-Element children will not be yielded
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;d/&gt;sean&lt;b/&gt;&lt;c/&gt;&lt;d/&gt;&lt;/a&gt;'\n doc.root.each {|e|p e}       #-&gt; Yields b, c, d, b, c, d elements\n doc.root.each('b') {|e|p e}  #-&gt; Yields b, b elements\n doc.root.each('child::node()')  {|e|p e}\n #-&gt; Yields &lt;b/&gt;, &lt;c/&gt;, &lt;d/&gt;, &lt;b/&gt;, &lt;c/&gt;, &lt;d/&gt;\n XPath.each(doc.root, 'child::node()', &amp;block)\n #-&gt; Yields &lt;b/&gt;, &lt;c/&gt;, &lt;d/&gt;, sean, &lt;b/&gt;, &lt;c/&gt;, &lt;d/&gt;\n"
full_name: REXML::Elements#each
is_singleton: false
name: each
params: ( xpath=nil, &block) {|e if e.kind_of? Element| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (e)
comment: 
full_name: REXML::Elements#collect
is_singleton: false
name: collect
params: ( xpath=nil, &block ) {|e| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: REXML::Elements#<<
is_singleton: false
name: "<<"
params: (element=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the index of the supplied child (starting at 1), or -1 if the element is not a child
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: an <tt>Element</tt> child
  type: :NOTE
full_name: REXML::Elements#index
is_singleton: false
name: index
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets an element, replacing any previous matching element. If no existing element is found ,the element is added.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "index:"
    body: Used to find a matching element to replace. See []().
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: The element to replace the existing element with the previous element
  - !ruby/struct:SM::Flow::LI 
    label: "Returns:"
    body: nil if no previous element was found.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " doc = Document.new '&lt;a/&gt;'\n doc.root.elements[10] = Element.new('b')    #-&gt; &lt;a&gt;&lt;b/&gt;&lt;/a&gt;\n doc.root.elements[1]                        #-&gt; &lt;b/&gt;\n doc.root.elements[1] = Element.new('c')     #-&gt; &lt;a&gt;&lt;c/&gt;&lt;/a&gt;\n doc.root.elements['c'] = Element.new('d')   #-&gt; &lt;a&gt;&lt;d/&gt;&lt;/a&gt;\n"
full_name: REXML::Elements#[]=
is_singleton: false
name: "[]="
params: ( index, element )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "output:"
    body: Where to write the string
  - !ruby/struct:SM::Flow::LI 
    label: "indent:"
    body: An integer. If -1, no indentation will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount.
  - !ruby/struct:SM::Flow::LI 
    label: "transitive:"
    body: Ignored
  - !ruby/struct:SM::Flow::LI 
    label: "ie_hack:"
    body: Ignored
  type: :NOTE
full_name: REXML::DocType#write
is_singleton: false
name: write
params: ( output, indent=0, transitive=false, ie_hack=false )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: name is the name of the doctype external_id is the referenced DTD, if given
  name: entities
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: name is the name of the doctype external_id is the referenced DTD, if given
  name: external_id
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: name is the name of the doctype external_id is the referenced DTD, if given
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: name is the name of the doctype external_id is the referenced DTD, if given
  name: namespaces
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents an XML DOCTYPE declaration; that is, the contents of &lt;!DOCTYPE ... &gt;. DOCTYPES can be used to declare the DTD of a document, as well as being used to declare entities used in the document.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: START
  value: "\"<!DOCTYPE\""
- !ruby/object:RI::Constant 
  comment: 
  name: STOP
  value: "\">\""
- !ruby/object:RI::Constant 
  comment: 
  name: SYSTEM
  value: "\"SYSTEM\""
- !ruby/object:RI::Constant 
  comment: 
  name: PUBLIC
  value: "\"PUBLIC\""
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_ENTITIES
  value: "{        'gt'=>EntityConst::GT,        'lt'=>EntityConst::LT,        'quot'=>EntityConst::QUOT,        \"apos\"=>EntityConst::APOS"
full_name: REXML::DocType
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: attribute_of
- !ruby/object:RI::MethodSummary 
  name: attributes_of
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: context
- !ruby/object:RI::MethodSummary 
  name: entity
- !ruby/object:RI::MethodSummary 
  name: node_type
- !ruby/object:RI::MethodSummary 
  name: notation
- !ruby/object:RI::MethodSummary 
  name: notations
- !ruby/object:RI::MethodSummary 
  name: public
- !ruby/object:RI::MethodSummary 
  name: strip_quotes
- !ruby/object:RI::MethodSummary 
  name: system
- !ruby/object:RI::MethodSummary 
  name: write
name: DocType
superclass: Parent
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#add
is_singleton: false
name: add
params: (child)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method returns a list of notations that have been declared in the <em>internal</em> DTD subset. Notations in the external DTD subset are not listed.
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::DocType#notations
is_singleton: false
name: notations
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves a named notation. Only notations declared in the internal DTD subset can be retrieved.
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::DocType#notation
is_singleton: false
name: notation
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructor
- !ruby/struct:SM::Flow::VERB 
  body: "  dt = DocType.new( 'foo', '-//I/Hate/External/IDs' )\n  # &lt;!DOCTYPE foo '-//I/Hate/External/IDs'&gt;\n  dt = DocType.new( doctype_to_clone )\n  # Incomplete.  Shallow clone of doctype\n"
- !ruby/struct:SM::Flow::P 
  body: "<tt>Note</tt> that the constructor:"
- !ruby/struct:SM::Flow::VERB 
  body: " Doctype.new( Source.new( &quot;&lt;!DOCTYPE foo 'bar'&gt;&quot; ) )\n"
- !ruby/struct:SM::Flow::P 
  body: is <em>deprecated</em>. Do not use it. It will probably disappear.
full_name: REXML::DocType::new
is_singleton: true
name: new
params: ( first, parent=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method retrieves the system identifier identifying the document's DTD
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::DocType#system
is_singleton: false
name: system
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method retrieves the public identifier identifying the document's DTD.
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::DocType#public
is_singleton: false
name: public
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#node_type
is_singleton: false
name: node_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#attribute_of
is_singleton: false
name: attribute_of
params: (element, attribute)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Method contributed by Henrik Martensson
full_name: REXML::DocType#strip_quotes
is_singleton: false
name: strip_quotes
params: (quoted_string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#attributes_of
is_singleton: false
name: attributes_of
params: (element)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#entity
is_singleton: false
name: entity
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::DocType#context
is_singleton: false
name: context
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::match
is_singleton: true
name: match
params: (element, path, namespaces=EMPTY_HASH)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::axe
is_singleton: true
name: axe
params: ( elements, axe_name, rest )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::parse_args
is_singleton: true
name: parse_args
params: ( element, string )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A predicate filters a node-set with respect to an axis to produce a new node-set. For each node in the node-set to be filtered, the PredicateExpr is evaluated with that node as the context node, with the number of nodes in the node-set as the context size, and with the proximity position of the node in the node-set with respect to the axis as the context position; if PredicateExpr evaluates to true for that node, the node is included in the new node-set; otherwise, it is not included.
- !ruby/struct:SM::Flow::P 
  body: A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the context position and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function. Thus a location path para[3] is equivalent to para[position()=3].
full_name: REXML::QuickPath::predicate
is_singleton: true
name: predicate
params: ( elements, path )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::attribute
is_singleton: true
name: attribute
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::function
is_singleton: true
name: function
params: ( elements, fname, rest )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::name
is_singleton: true
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::method_missing
is_singleton: true
name: method_missing
params: ( id, *args )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::each
is_singleton: true
name: each
params: (element, path, namespaces=EMPTY_HASH, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::QuickPath::first
is_singleton: true
name: first
params: (element, path, namespaces=EMPTY_HASH)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: attribute
- !ruby/object:RI::MethodSummary 
  name: axe
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: filter
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: function
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: method_missing
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: parse_args
- !ruby/object:RI::MethodSummary 
  name: predicate
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY_HASH
  value: "{}"
full_name: REXML::QuickPath
includes: 
- !ruby/object:RI::IncludedModule 
  name: Functions
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: []

name: QuickPath
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given an array of nodes it filters the array based on the path. The result is that when this method returns, the array will contain elements which match the path
full_name: REXML::QuickPath::filter
is_singleton: true
name: filter
params: (elements, path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of nodes matching a given XPath.
full_name: REXML::XPath::match
is_singleton: true
name: match
params: (element, path=nil, namespaces=nil, variables={})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: first
- !ruby/object:RI::MethodSummary 
  name: match
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wrapper class. Use this class to access the XPath functions.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY_HASH
  value: "{}"
full_name: REXML::XPath
includes: 
- !ruby/object:RI::IncludedModule 
  name: Functions
instance_methods: []

name: XPath
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over nodes that match the given path, calling the supplied block with the match.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: The context element
  - !ruby/struct:SM::Flow::LI 
    label: "path:"
    body: The xpath to search for. If not supplied or nil, defaults to '*'
  - !ruby/struct:SM::Flow::LI 
    label: "namespaces:"
    body: If supplied, a Hash which defines a namespace mapping
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " XPath.each( node ) { |el| ... }\n XPath.each( node, '/*[@attr='v']' ) { |el| ... }\n XPath.each( node, 'ancestor::x' ) { |el| ... }\n"
full_name: REXML::XPath::each
is_singleton: true
name: each
params: (element, path=nil, namespaces=nil, variables={})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finds and returns the first node that matches the supplied xpath.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "element:"
    body: The context element
  - !ruby/struct:SM::Flow::LI 
    label: "path:"
    body: The xpath to search for. If not supplied or nil, returns the first node matching '*'.
  - !ruby/struct:SM::Flow::LI 
    label: "namespaces:"
    body: If supplied, a Hash which defines a namespace mapping.
  type: :NOTE
- !ruby/struct:SM::Flow::VERB 
  body: " XPath.first( node )\n XPath.first( doc, &quot;//b&quot;} )\n XPath.first( node, &quot;a/x:b&quot;, { &quot;x&quot;=&gt;&quot;http://doofus&quot; } )\n"
full_name: REXML::XPath::first
is_singleton: true
name: first
params: (element, path=nil, namespaces=nil, variables={})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ExternalEntity#write
is_singleton: false
name: write
params: ( output, indent )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::ExternalEntity
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: write
name: ExternalEntity
superclass: Child
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ExternalEntity::new
is_singleton: true
name: new
params: ( src )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::ExternalEntity#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generates a Source object @param arg Either a String, or an IO @return a Source, or nil if a bad argument was given
full_name: REXML::SourceFactory::create_from
is_singleton: true
name: create_from
params: (arg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: create_from
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generates Source-s. USE THIS CLASS.
constants: []

full_name: REXML::SourceFactory
includes: []

instance_methods: []

name: SourceFactory
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Output::new
is_singleton: true
name: new
params: (real_IO, encd="iso-8859-1")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: encoding
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: REXML::Output
includes: 
- !ruby/object:RI::IncludedModule 
  name: Encoding
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Output
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Output#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: REXML::Output#<<
is_singleton: false
name: "<<"
params: ( content )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The name of the object, valid if set
  name: expanded_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The name of the object, valid if set
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The expanded name of the object, valid if name is set
  name: prefix
  rw: RW
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds named attributes to an object.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NAMESPLIT
  value: /^(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})/u
full_name: REXML::Namespace
includes: 
- !ruby/object:RI::IncludedModule 
  name: XMLTokens
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: fully_expanded_name
- !ruby/object:RI::MethodSummary 
  name: has_name?
- !ruby/object:RI::MethodSummary 
  name: name=
name: Namespace
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares names optionally WITH namespaces
full_name: REXML::Namespace#has_name?
is_singleton: false
name: has_name?
params: ( other, ns=nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the name and the expanded name
full_name: REXML::Namespace#name=
is_singleton: false
name: name=
params: ( name )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fully expand the name, even if the prefix wasn't specified in the source file.
full_name: REXML::Namespace#fully_expanded_name
is_singleton: false
name: fully_expanded_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when ambiguously completable string is encountered.
constants: []

full_name: AmbiguousOption
includes: []

instance_methods: []

name: AmbiguousOption
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #succ"
full_name: Prime#next
is_singleton: false
name: next
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: next
block_params: 
comment: 
full_name: Prime#succ
is_singleton: false
name: succ
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Prime::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: succ
comment: 
full_name: Prime#each
is_singleton: false
name: each
params: () {|succ| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Prime
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: succ
name: Prime
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Locks or unlocks a file according to <em>locking_constant</em> (a logical <em>or</em> of the values in the table below). Returns <tt>false</tt> if <tt>File::LOCK_NB</tt> is specified and the operation would otherwise have blocked. Not available on all platforms.
- !ruby/struct:SM::Flow::P 
  body: "Locking constants (in class File):"
- !ruby/struct:SM::Flow::VERB 
  body: "   LOCK_EX   | Exclusive lock. Only one process may hold an\n             | exclusive lock for a given file at a time.\n   ----------+------------------------------------------------\n   LOCK_NB   | Don't block when locking. May be combined\n             | with other lock options using logical or.\n   ----------+------------------------------------------------\n   LOCK_SH   | Shared lock. Multiple processes may each hold a\n             | shared lock for a given file at the same time.\n   ----------+------------------------------------------------\n   LOCK_UN   | Unlock.\n"
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).flock(File::LOCK_UN)   #=&gt; 0\n"
full_name: File#flock
is_singleton: false
name: flock
params: |
  file.flock (locking_constant ) =>  0 or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the owner and group of <em>file</em> to the given numeric owner and group id's. Only a process with superuser privileges may change the owner of a file. The current owner of a file may change the file's group to any group to which the owner belongs. A <tt>nil</tt> or -1 owner or group id is ignored. Follows symbolic links. See also <tt>File#lchown</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).chown(502, 1000)\n"
full_name: File#chown
is_singleton: false
name: chown
params: |
  file.chown(owner_int, group_int )   => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is writable by the effective user id of this process.
full_name: File::writable?
is_singleton: true
name: writable?
params: |
  File.writable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the file referenced by the given link. Not available on all platforms.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.symlink(&quot;testfile&quot;, &quot;link2test&quot;)   #=&gt; 0\n   File.readlink(&quot;link2test&quot;)              #=&gt; &quot;testfile&quot;\n"
full_name: File::readlink
is_singleton: true
name: readlink
params: |
  File.readlink(link_name) -> file_name

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>path</em> matches against <em>pattern</em> The pattern is not a regular expression; instead it follows rules similar to shell filename globbing. It may contain the following metacharacters:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<code>*</code>:"
    body: Matches any file. Can be restricted by other values in the glob. <tt>*</tt> will match all files; <tt>c*</tt> will match all files beginning with <tt>c</tt>; <tt>*c</tt> will match all files ending with <tt>c</tt>; and <b><tt>c</tt></b> will match all files that have <tt>c</tt> in them (including at the beginning or end). Equivalent to <tt>/ .* /x</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>**</code>:"
    body: Matches directories recursively or files expansively.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>?</code>:"
    body: Matches any one character. Equivalent to <tt>/.{1}/</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>[set]</code>:"
    body: Matches any one character in <tt>set</tt>. Behaves exactly like character sets in Regexp, including set negation (<tt>[^a-z]</tt>).
  - !ruby/struct:SM::Flow::LI 
    label: "<code>\\</code>:"
    body: Escapes the next metacharacter.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: <em>flags</em> is a bitwise OR of the <tt>FNM_xxx</tt> parameters. The same glob pattern and flags are used by <tt>Dir::glob</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.fnmatch('cat',       'cat')        #=&gt; true  : match entire string\n   File.fnmatch('cat',       'category')   #=&gt; false : only match partial string\n   File.fnmatch('c{at,ub}s', 'cats')       #=&gt; false : { } isn't supported\n\n   File.fnmatch('c?t',     'cat')          #=&gt; true  : '?' match only 1 character\n   File.fnmatch('c??t',    'cat')          #=&gt; false : ditto\n   File.fnmatch('c*',      'cats')         #=&gt; true  : '*' match 0 or more characters\n   File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  : ditto\n   File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  : inclusive bracket expression\n   File.fnmatch('ca[^t]',  'cat')          #=&gt; false : exclusive bracket expression ('^' or '!')\n\n   File.fnmatch('cat', 'CAT')                     #=&gt; false : case sensitive\n   File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  : case insensitive\n\n   File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false : wildcard doesn't match '/' on FNM_PATHNAME\n   File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false : ditto\n   File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false : ditto\n\n   File.fnmatch('\\?',   '?')                       #=&gt; true  : escaped wildcard becomes ordinary\n   File.fnmatch('\\a',   'a')                       #=&gt; true  : escaped ordinary remains ordinary\n   File.fnmatch('\\a',   '\\a', File::FNM_NOESCAPE)  #=&gt; true  : FNM_NOESACPE makes '\\' ordinary\n   File.fnmatch('[\\?]', '?')                       #=&gt; true  : can escape inside bracket expression\n\n   File.fnmatch('*',   '.profile')                      #=&gt; false : wildcard doesn't match leading\n   File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true    period by default.\n   File.fnmatch('.*',  '.profile')                      #=&gt; true\n\n   rbfiles = '**' '/' '*.rb' # you don't have to do like this. just write in single string.\n   File.fnmatch(rbfiles, 'main.rb')                    #=&gt; false\n   File.fnmatch(rbfiles, './main.rb')                  #=&gt; false\n   File.fnmatch(rbfiles, 'lib/song.rb')                #=&gt; true\n   File.fnmatch('**.rb', 'main.rb')                    #=&gt; true\n   File.fnmatch('**.rb', './main.rb')                  #=&gt; false\n   File.fnmatch('**.rb', 'lib/song.rb')                #=&gt; true\n   File.fnmatch('*',           'dave/.profile')                      #=&gt; true\n\n   pattern = '*' '/' '*'\n   File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME)  #=&gt; false\n   File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true\n\n   pattern = '**' '/' 'foo'\n   File.fnmatch(pattern, 'a/b/c/foo', File::FNM_PATHNAME)     #=&gt; true\n   File.fnmatch(pattern, '/a/b/c/foo', File::FNM_PATHNAME)    #=&gt; true\n   File.fnmatch(pattern, 'c:/a/b/c/foo', File::FNM_PATHNAME)  #=&gt; true\n   File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME)    #=&gt; false\n   File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true\n"
full_name: File::fnmatch?
is_singleton: true
name: fnmatch?
params: |
  File.fnmatch( pattern, path, [flags] ) => (true or false)
  File.fnmatch?( pattern, path, [flags] ) => (true or false)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a character device.
full_name: File::chardev?
is_singleton: true
name: chardev?
params: |
  File.chardev?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: o_chmod
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes permission bits on <em>file</em> to the bit pattern represented by <em>mode_int</em>. Actual effects are platform dependent; on Unix systems, see <tt>chmod(2)</tt> for details. Follows symbolic links. Also see <tt>File#lchmod</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;out&quot;, &quot;w&quot;);\n   f.chmod(0644)   #=&gt; 0\n"
full_name: File#chmod
is_singleton: false
name: chmod
params: |
  file.chmod(mode_int)   => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt> if <tt>file_name</tt> doesn't exist or has zero size, the size of the file otherwise.
full_name: File::size?
is_singleton: true
name: size?
params: |
  File.size?(file_name)   => Integer or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Renames the given file to the new name. Raises a <tt>SystemCallError</tt> if the file cannot be renamed.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.rename(&quot;afile&quot;, &quot;afile.bak&quot;)   #=&gt; 0\n"
full_name: File::rename
is_singleton: true
name: rename
params: |
  File.rename(old_name, new_name)   => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a directory, <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.directory?(&quot;.&quot;)\n"
full_name: File::directory?
is_singleton: true
name: directory?
params: |
  File.directory?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the change time for <em>file</em> (that is, the time directory information about the file was changed, not the file itself).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).ctime   #=&gt; Wed Apr 09 08:53:14 CDT 2003\n"
full_name: File#ctime
is_singleton: false
name: ctime
params: |
  file.ctime -> time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the sticky bit set.
full_name: File::sticky?
is_singleton: true
name: sticky?
params: |
  File.sticky?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the setuid bit set.
full_name: File::setuid?
is_singleton: true
name: setuid?
params: |
  File.setuid?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last access time (a <tt>Time</tt> object)
- !ruby/struct:SM::Flow::VERB 
  body: " for <em>file</em>, or epoch if <em>file</em> has not been accessed.\n\n   File.new(&quot;testfile&quot;).atime   #=&gt; Wed Dec 31 18:00:00 CST 1969\n"
full_name: File#atime
is_singleton: false
name: atime
params: |
  file.atime    => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <tt>to</tt> is a valid directory, <tt>from</tt> will be appended to <tt>to</tt>, adding and escaping backslashes as necessary. Otherwise, <tt>to</tt> will be returned. Useful for appending <tt>from</tt> to <tt>to</tt> only if the filename was not specified in <tt>to</tt>.
full_name: File::catname
is_singleton: true
name: catname
params: (from, to)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns true if <em>path</em> matches against <em>pattern</em> The pattern is not a regular expression; instead it follows rules similar to shell filename globbing. It may contain the following metacharacters:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<code>*</code>:"
    body: Matches any file. Can be restricted by other values in the glob. <tt>*</tt> will match all files; <tt>c*</tt> will match all files beginning with <tt>c</tt>; <tt>*c</tt> will match all files ending with <tt>c</tt>; and <b><tt>c</tt></b> will match all files that have <tt>c</tt> in them (including at the beginning or end). Equivalent to <tt>/ .* /x</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>**</code>:"
    body: Matches directories recursively or files expansively.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>?</code>:"
    body: Matches any one character. Equivalent to <tt>/.{1}/</tt> in regexp.
  - !ruby/struct:SM::Flow::LI 
    label: "<code>[set]</code>:"
    body: Matches any one character in <tt>set</tt>. Behaves exactly like character sets in Regexp, including set negation (<tt>[^a-z]</tt>).
  - !ruby/struct:SM::Flow::LI 
    label: "<code>\\</code>:"
    body: Escapes the next metacharacter.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: <em>flags</em> is a bitwise OR of the <tt>FNM_xxx</tt> parameters. The same glob pattern and flags are used by <tt>Dir::glob</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.fnmatch('cat',       'cat')        #=&gt; true  : match entire string\n   File.fnmatch('cat',       'category')   #=&gt; false : only match partial string\n   File.fnmatch('c{at,ub}s', 'cats')       #=&gt; false : { } isn't supported\n\n   File.fnmatch('c?t',     'cat')          #=&gt; true  : '?' match only 1 character\n   File.fnmatch('c??t',    'cat')          #=&gt; false : ditto\n   File.fnmatch('c*',      'cats')         #=&gt; true  : '*' match 0 or more characters\n   File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  : ditto\n   File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  : inclusive bracket expression\n   File.fnmatch('ca[^t]',  'cat')          #=&gt; false : exclusive bracket expression ('^' or '!')\n\n   File.fnmatch('cat', 'CAT')                     #=&gt; false : case sensitive\n   File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  : case insensitive\n\n   File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false : wildcard doesn't match '/' on FNM_PATHNAME\n   File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false : ditto\n   File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false : ditto\n\n   File.fnmatch('\\?',   '?')                       #=&gt; true  : escaped wildcard becomes ordinary\n   File.fnmatch('\\a',   'a')                       #=&gt; true  : escaped ordinary remains ordinary\n   File.fnmatch('\\a',   '\\a', File::FNM_NOESCAPE)  #=&gt; true  : FNM_NOESACPE makes '\\' ordinary\n   File.fnmatch('[\\?]', '?')                       #=&gt; true  : can escape inside bracket expression\n\n   File.fnmatch('*',   '.profile')                      #=&gt; false : wildcard doesn't match leading\n   File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true    period by default.\n   File.fnmatch('.*',  '.profile')                      #=&gt; true\n\n   rbfiles = '**' '/' '*.rb' # you don't have to do like this. just write in single string.\n   File.fnmatch(rbfiles, 'main.rb')                    #=&gt; false\n   File.fnmatch(rbfiles, './main.rb')                  #=&gt; false\n   File.fnmatch(rbfiles, 'lib/song.rb')                #=&gt; true\n   File.fnmatch('**.rb', 'main.rb')                    #=&gt; true\n   File.fnmatch('**.rb', './main.rb')                  #=&gt; false\n   File.fnmatch('**.rb', 'lib/song.rb')                #=&gt; true\n   File.fnmatch('*',           'dave/.profile')                      #=&gt; true\n\n   pattern = '*' '/' '*'\n   File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME)  #=&gt; false\n   File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true\n\n   pattern = '**' '/' 'foo'\n   File.fnmatch(pattern, 'a/b/c/foo', File::FNM_PATHNAME)     #=&gt; true\n   File.fnmatch(pattern, '/a/b/c/foo', File::FNM_PATHNAME)    #=&gt; true\n   File.fnmatch(pattern, 'c:/a/b/c/foo', File::FNM_PATHNAME)  #=&gt; true\n   File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME)    #=&gt; false\n   File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true\n"
full_name: File::fnmatch
is_singleton: true
name: fnmatch
params: |
  File.fnmatch( pattern, path, [flags] ) => (true or false)
  File.fnmatch?( pattern, path, [flags] ) => (true or false)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if the named file exists.
full_name: File::exists?
is_singleton: true
name: exists?
params: |
  File.exist?(file_name)    =>  true or false
  File.exists?(file_name)   =>  true or false    (obsolete)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns all components of the filename given in <em>file_name</em> except the last one. The filename must be formed using forward slashes (``<tt>/</tt>'') regardless of the separator used on the local file system.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.dirname(&quot;/home/gumby/work/ruby.rb&quot;)   #=&gt; &quot;/home/gumby/work&quot;\n"
full_name: File::dirname
is_singleton: true
name: dirname
params: |
  File.dirname(file_name ) -> dir_name

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a socket.
full_name: File::socket?
is_singleton: true
name: socket?
params: |
  File.socket?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and is a regular file.
full_name: File::file?
is_singleton: true
name: file?
params: |
  File.file?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Splits the given string into a directory and a file component and returns them in a two-element array. See also <tt>File::dirname</tt> and <tt>File::basename</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.split(&quot;/home/gumby/.profile&quot;)   #=&gt; [&quot;/home/gumby&quot;, &quot;.profile&quot;]\n"
full_name: File::split
is_singleton: true
name: split
params: |
  File.split(file_name)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current umask value for this process. If the optional argument is given, set the umask to that value and return the previous value. Umask values are <em>subtracted</em> from the default permissions, so a umask of <tt>0222</tt> would make a file read-only for everyone.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.umask(0006)   #=&gt; 18\n   File.umask         #=&gt; 6\n"
full_name: File::umask
is_singleton: true
name: umask
params: |
  File.umask()          => integer
  File.umask(integer)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <tt>src</tt> is not the same as <tt>dest</tt>, copies it and changes the permission mode to <tt>mode</tt>. If <tt>dest</tt> is a directory, destination is <tt>dest/src</tt>. If <tt>mode</tt> is not set, default is used. If <tt>verbose</tt> is set to true, the name of each file copied will be printed.
full_name: File::install
is_singleton: true
name: install
params: (from, to, mode = nil, verbose = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is readable by the real user id of this process.
full_name: File::readable_real?
is_singleton: true
name: readable_real?
params: |
  File.readable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes permission bits on the named file(s) to the bit pattern represented by <em>mode_int</em>. Actual effects are operating system dependent (see the beginning of this section). On Unix systems, see <tt>chmod(2)</tt> for details. Returns the number of files processed.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.chmod(0644, &quot;testfile&quot;, &quot;out&quot;)   #=&gt; 2\n"
full_name: File::chmod
is_singleton: true
name: chmod
params: |
  File.chmod(mode_int, file_name, ... ) -> integer

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: this is IO's method
constants: []

full_name: File::Constants
includes: []

instance_methods: []

name: Constants
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file has the setgid bit set.
full_name: File::setgid?
is_singleton: true
name: setgid?
params: |
  File.setgid?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts a pathname to an absolute pathname. Relative paths are referenced from the current working directory of the process unless <em>dir_string</em> is given, in which case it will be used as the starting point. The given pathname may start with a ``<tt>~</tt>'', which expands to the process owner's home directory (the environment variable <tt>HOME</tt> must be set correctly). ``<tt>~</tt><em>user</em>'' expands to the named user's home directory.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.expand_path(&quot;~oracle/bin&quot;)           #=&gt; &quot;/home/oracle/bin&quot;\n   File.expand_path(&quot;../../bin&quot;, &quot;/tmp/x&quot;)   #=&gt; &quot;/bin&quot;\n"
full_name: File::expand_path
is_singleton: true
name: expand_path
params: |
  File.expand_path(file_name [, dir_string] ) -> abs_file_name

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Moves a file <tt>from</tt> to <tt>to</tt> using #syscopy. If <tt>to</tt> is a directory, copies from <tt>from</tt> to <tt>to/from</tt>. If <tt>verbose</tt> is true, <tt>from -&gt; to</tt> is printed."
full_name: File::move
is_singleton: true
name: move
params: (from, to, verbose = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a symbolic link.
full_name: File::symlink?
is_singleton: true
name: symlink?
params: |
  File.symlink?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the modification time for <em>file</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).mtime   #=&gt; Wed Apr 09 08:53:14 CDT 2003\n"
full_name: File#mtime
is_singleton: false
name: mtime
params: |
  file.mtime -> time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a directory and all its parent directories. For example,
- !ruby/struct:SM::Flow::VERB 
  body: "    File.makedirs '/usr/lib/ruby'\n"
- !ruby/struct:SM::Flow::P 
  body: causes the following directories to be made, if they do not exist.
- !ruby/struct:SM::Flow::VERB 
  body: "    * /usr\n    * /usr/lib\n    * /usr/lib/ruby\n"
- !ruby/struct:SM::Flow::P 
  body: You can pass several directories, each as a parameter. If the last parameter isn't a String, verbose mode will be enabled.
full_name: File::makedirs
is_singleton: true
name: makedirs
params: (*dirs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the pathname used to create <em>file</em> as a string. Does not normalize the name.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.new(&quot;testfile&quot;).path               #=&gt; &quot;testfile&quot;\n   File.new(&quot;/tmp/../tmp/xxx&quot;, &quot;w&quot;).path   #=&gt; &quot;/tmp/../tmp/xxx&quot;\n"
full_name: File#path
is_singleton: false
name: path
params: |
  file.path -> filename

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if the named file exists.
full_name: File::exist?
is_singleton: true
name: exist?
params: |
  File.exist?(file_name)    =>  true or false
  File.exists?(file_name)   =>  true or false    (obsolete)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last access time for the named file as a Time object).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.atime(&quot;testfile&quot;)   #=&gt; Wed Apr 09 08:51:48 CDT 2003\n"
full_name: File::atime
is_singleton: true
name: atime
params: |
  File.atime(file_name)  =>  time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new string formed by joining the strings using <tt>File::SEPARATOR</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.join(&quot;usr&quot;, &quot;mail&quot;, &quot;gumby&quot;)   #=&gt; &quot;usr/mail/gumby&quot;\n"
full_name: File::join
is_singleton: true
name: join
params: |
  File.join(string, ...) -> path

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>IO#stat</tt>, but does not follow the last symbolic link. Instead, reports on the link itself.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.symlink(&quot;testfile&quot;, &quot;link2test&quot;)   #=&gt; 0\n   File.stat(&quot;testfile&quot;).size              #=&gt; 66\n   f = File.new(&quot;link2test&quot;)\n   f.lstat.size                            #=&gt; 8\n   f.stat.size                             #=&gt; 66\n"
full_name: File#lstat
is_singleton: false
name: lstat
params: |
  file.lstat   =>  stat

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is writable by the real user id of this process.
full_name: File::writable_real?
is_singleton: true
name: writable_real?
params: |
  File.writable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new name for an existing file using a hard link. Will not overwrite <em>new_name</em> if it already exists (raising a subclass of <tt>SystemCallError</tt>). Not available on all platforms.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.link(&quot;testfile&quot;, &quot;.testfile&quot;)   #=&gt; 0\n   IO.readlines(&quot;.testfile&quot;)[0]         #=&gt; &quot;This is line one\\n&quot;\n"
full_name: File::link
is_singleton: true
name: link
params: |
  File.link(old_name, new_name)    => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the extension (the portion of file name in <em>path</em> after the period).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.extname(&quot;test.rb&quot;)         #=&gt; &quot;.rb&quot;\n   File.extname(&quot;a/b/d/test.rb&quot;)   #=&gt; &quot;.rb&quot;\n   File.extname(&quot;test&quot;)            #=&gt; &quot;&quot;\n   File.extname(&quot;.profile&quot;)        #=&gt; &quot;&quot;\n"
full_name: File::extname
is_singleton: true
name: extname
params: |
  File.extname(path) -> string

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: atime
- !ruby/object:RI::MethodSummary 
  name: basename
- !ruby/object:RI::MethodSummary 
  name: blockdev?
- !ruby/object:RI::MethodSummary 
  name: catname
- !ruby/object:RI::MethodSummary 
  name: chardev?
- !ruby/object:RI::MethodSummary 
  name: chmod
- !ruby/object:RI::MethodSummary 
  name: chmod
- !ruby/object:RI::MethodSummary 
  name: chown
- !ruby/object:RI::MethodSummary 
  name: compare
- !ruby/object:RI::MethodSummary 
  name: copy
- !ruby/object:RI::MethodSummary 
  name: ctime
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: directory?
- !ruby/object:RI::MethodSummary 
  name: dirname
- !ruby/object:RI::MethodSummary 
  name: executable?
- !ruby/object:RI::MethodSummary 
  name: executable_real?
- !ruby/object:RI::MethodSummary 
  name: exist?
- !ruby/object:RI::MethodSummary 
  name: exists?
- !ruby/object:RI::MethodSummary 
  name: expand_path
- !ruby/object:RI::MethodSummary 
  name: extname
- !ruby/object:RI::MethodSummary 
  name: file?
- !ruby/object:RI::MethodSummary 
  name: fnmatch
- !ruby/object:RI::MethodSummary 
  name: fnmatch?
- !ruby/object:RI::MethodSummary 
  name: ftype
- !ruby/object:RI::MethodSummary 
  name: grpowned?
- !ruby/object:RI::MethodSummary 
  name: identical?
- !ruby/object:RI::MethodSummary 
  name: install
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: lchmod
- !ruby/object:RI::MethodSummary 
  name: lchown
- !ruby/object:RI::MethodSummary 
  name: link
- !ruby/object:RI::MethodSummary 
  name: lstat
- !ruby/object:RI::MethodSummary 
  name: makedirs
- !ruby/object:RI::MethodSummary 
  name: move
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: owned?
- !ruby/object:RI::MethodSummary 
  name: pipe?
- !ruby/object:RI::MethodSummary 
  name: readable?
- !ruby/object:RI::MethodSummary 
  name: readable_real?
- !ruby/object:RI::MethodSummary 
  name: readlink
- !ruby/object:RI::MethodSummary 
  name: rename
- !ruby/object:RI::MethodSummary 
  name: safe_unlink
- !ruby/object:RI::MethodSummary 
  name: setgid?
- !ruby/object:RI::MethodSummary 
  name: setuid?
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: size?
- !ruby/object:RI::MethodSummary 
  name: socket?
- !ruby/object:RI::MethodSummary 
  name: split
- !ruby/object:RI::MethodSummary 
  name: stat
- !ruby/object:RI::MethodSummary 
  name: sticky?
- !ruby/object:RI::MethodSummary 
  name: symlink
- !ruby/object:RI::MethodSummary 
  name: symlink?
- !ruby/object:RI::MethodSummary 
  name: syscopy
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: umask
- !ruby/object:RI::MethodSummary 
  name: unlink
- !ruby/object:RI::MethodSummary 
  name: utime
- !ruby/object:RI::MethodSummary 
  name: writable?
- !ruby/object:RI::MethodSummary 
  name: writable_real?
- !ruby/object:RI::MethodSummary 
  name: zero?
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: "ftools.rb: Extra tools for the File class"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Author:"
    body: WATANABE, Hirofumi
  - !ruby/struct:SM::Flow::LI 
    label: "Documentation:"
    body: Zachary Landau
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: This library can be distributed under the terms of the Ruby license. You can freely distribute/modify this library.
- !ruby/struct:SM::Flow::P 
  body: It is included in the Ruby standard library.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: ftools adds several (class, not instance) methods to the File class, for copying, moving, deleting, installing, and comparing files, as well as creating a directory path. See the File class for details.
- !ruby/struct:SM::Flow::P 
  body: FileUtils contains all or nearly all the same functionality and more, and is a recommended option over ftools
- !ruby/struct:SM::Flow::P 
  body: When you
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ftools'\n"
- !ruby/struct:SM::Flow::P 
  body: then the File class aquires some utility methods for copying, moving, and deleting files, and more.
- !ruby/struct:SM::Flow::P 
  body: See the method descriptions below, and consider using FileUtils as it is more comprehensive.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Separator
  value: separator
- !ruby/object:RI::Constant 
  comment: 
  name: SEPARATOR
  value: separator
- !ruby/object:RI::Constant 
  comment: 
  name: ALT_SEPARATOR
  value: rb_obj_freeze(rb_str_new2("\\"))
- !ruby/object:RI::Constant 
  comment: 
  name: ALT_SEPARATOR
  value: Qnil
- !ruby/object:RI::Constant 
  comment: 
  name: PATH_SEPARATOR
  value: rb_obj_freeze(rb_str_new2(PATH_SEP))
- !ruby/object:RI::Constant 
  comment: 
  name: BUFSIZE
  value: 8 * 1024
full_name: File
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: atime
- !ruby/object:RI::MethodSummary 
  name: chmod
- !ruby/object:RI::MethodSummary 
  name: chown
- !ruby/object:RI::MethodSummary 
  name: ctime
- !ruby/object:RI::MethodSummary 
  name: flock
- !ruby/object:RI::MethodSummary 
  name: lstat
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: o_chmod
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: truncate
name: File
superclass: IO
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens the file named by <em>filename</em> according to <em>mode</em> (default is ``r'') and returns a new <tt>File</tt> object. See the description of class <tt>IO</tt> for a description of <em>mode</em>. The file mode may optionally be specified as a <tt>Fixnum</tt> by <em>or</em>-ing together the flags (O_RDONLY etc, again described under <tt>IO</tt>). Optional permission bits may be given in <em>perm</em>. These mode and permission bits are platform dependent; on Unix systems, see <tt>open(2)</tt> for details.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;, &quot;r&quot;)\n   f = File.new(&quot;newfile&quot;,  &quot;w+&quot;)\n   f = File.new(&quot;newfile&quot;, File::CREAT|File::TRUNC|File::RDWR, 0644)\n"
full_name: File::new
is_singleton: true
name: new
params: |
  File.new(filename, mode="r")            => file
  File.new(filename [, mode [, perm]])    => file

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Identifies the type of the named file; the return string is one of ``<tt>file</tt>'', ``<tt>directory</tt>'', ``<tt>characterSpecial</tt>'', ``<tt>blockSpecial</tt>'', ``<tt>fifo</tt>'', ``<tt>link</tt>'', ``<tt>socket</tt>'', or ``<tt>unknown</tt>''.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.ftype(&quot;testfile&quot;)            #=&gt; &quot;file&quot;\n   File.ftype(&quot;/dev/tty&quot;)            #=&gt; &quot;characterSpecial&quot;\n   File.ftype(&quot;/tmp/.X11-unix/X0&quot;)   #=&gt; &quot;socket&quot;\n"
full_name: File::ftype
is_singleton: true
name: ftype
params: |
  File.ftype(file_name)   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the change time for the named file (the time at which directory information about the file was changed, not the file itself).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.ctime(&quot;testfile&quot;)   #=&gt; Wed Apr 09 08:53:13 CDT 2003\n"
full_name: File::ctime
is_singleton: true
name: ctime
params: |
  File.ctime(file_name)  => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is readable by the effective user id of this process.
full_name: File::readable?
is_singleton: true
name: readable?
params: |
  File.readable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the named files, returning the number of names passed as arguments. Raises an exception on any error. See also <tt>Dir::rmdir</tt>.
full_name: File::unlink
is_singleton: true
name: unlink
params: |
  File.delete(file_name, ...)  => integer
  File.unlink(file_name, ...)  => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and the effective group id of the calling process is the owner of the file. Returns <tt>false</tt> on Windows.
full_name: File::grpowned?
is_singleton: true
name: grpowned?
params: |
  File.grpowned?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #chmod"
full_name: File#o_chmod
is_singleton: false
name: o_chmod
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is a socket, <tt>false</tt> if it isn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).socket?   #=&gt; false\n"
full_name: File::Stat#socket?
is_singleton: false
name: socket?
params: |
  stat.socket?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of hard links to <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).nlink             #=&gt; 1\n   File.link(&quot;testfile&quot;, &quot;testfile.bak&quot;)   #=&gt; 0\n   File.stat(&quot;testfile&quot;).nlink             #=&gt; 2\n"
full_name: File::Stat#nlink
is_singleton: false
name: nlink
params: |
  stat.nlink   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the native file system's block size. Will return <tt>nil</tt> on platforms that don't support this information.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).blksize   #=&gt; 4096\n"
full_name: File::Stat#blksize
is_singleton: false
name: blksize
params: |
  stat.blksize   => integer or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> has the set-user-id permission bit set, <tt>false</tt> if it doesn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/bin/su&quot;).setuid?   #=&gt; true\n"
full_name: File::Stat#setuid?
is_singleton: false
name: setuid?
params: |
  stat.setuid?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of native file system blocks allocated for this file, or <tt>nil</tt> if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).blocks   #=&gt; 2\n"
full_name: File::Stat#blocks
is_singleton: false
name: blocks
params: |
  stat.blocks    => integer or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the device on which <em>stat</em> resides.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).dev   #=&gt; 774\n"
full_name: File::Stat#dev
is_singleton: false
name: dev
params: |
  stat.dev    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the change time for <em>stat</em> (that is, the time directory information about the file was changed, not the file itself).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).ctime   #=&gt; Wed Apr 09 08:53:14 CDT 2003\n"
full_name: File::Stat#ctime
is_singleton: false
name: ctime
params: |
  stat.ctime -> aTime

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of <em>stat</em> in bytes.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).size   #=&gt; 66\n"
full_name: File::Stat#size
is_singleton: false
name: size
params: |
  stat.size    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last access time for this file as an object of class <tt>Time</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).atime   #=&gt; Wed Dec 31 18:00:00 CST 1969\n"
full_name: File::Stat#atime
is_singleton: false
name: atime
params: |
  stat.atime   => time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares <tt>File::Stat</tt> objects by comparing their respective modification times.
- !ruby/struct:SM::Flow::VERB 
  body: "   f1 = File.new(&quot;f1&quot;, &quot;w&quot;)\n   sleep 1\n   f2 = File.new(&quot;f2&quot;, &quot;w&quot;)\n   f1.stat &lt;=&gt; f2.stat   #=&gt; -1\n"
full_name: File::Stat#<=>
is_singleton: false
name: <=>
params: |
  stat <=> other_stat    => -1, 0, 1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the file is a block device, <tt>false</tt> if it isn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).blockdev?    #=&gt; false\n   File.stat(&quot;/dev/hda1&quot;).blockdev?   #=&gt; true\n"
full_name: File::Stat#blockdev?
is_singleton: false
name: blockdev?
params: |
  stat.blockdev?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> has its sticky bit set, <tt>false</tt> if it doesn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).sticky?   #=&gt; false\n"
full_name: File::Stat#sticky?
is_singleton: false
name: sticky?
params: |
  stat.sticky?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is a symbolic link, <tt>false</tt> if it isn't or if the operating system doesn't support this feature. As <tt>File::stat</tt> automatically follows symbolic links, <tt>symlink?</tt> will always be <tt>false</tt> for an object returned by <tt>File::stat</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.symlink(&quot;testfile&quot;, &quot;alink&quot;)   #=&gt; 0\n   File.stat(&quot;alink&quot;).symlink?         #=&gt; false\n   File.lstat(&quot;alink&quot;).symlink?        #=&gt; true\n"
full_name: File::Stat#symlink?
is_singleton: false
name: symlink?
params: |
  stat.symlink?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the minor part of <tt>File_Stat#dev</tt> or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/fd1&quot;).dev_minor   #=&gt; 1\n   File.stat(&quot;/dev/tty&quot;).dev_minor   #=&gt; 0\n"
full_name: File::Stat#dev_minor
is_singleton: false
name: dev_minor
params: |
  stat.dev_minor   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of <em>stat</em> in bytes.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).size   #=&gt; 66\n"
full_name: File::Stat#size?
is_singleton: false
name: size?
params: |
  state.size    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is executable or if the operating system doesn't distinguish executable files from nonexecutable files. The tests are made using the effective owner of the process.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).executable?   #=&gt; false\n"
full_name: File::Stat#executable?
is_singleton: false
name: executable?
params: |
  stat.executable?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Produce a nicely formatted description of <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.stat(&quot;/etc/passwd&quot;).inspect\n     #=&gt; &quot;#&lt;File::Stat dev=0xe000005, ino=1078078, mode=0100644,\n          nlink=1, uid=0, gid=0, rdev=0x0, size=1374, blksize=4096,\n          blocks=8, atime=Wed Dec 10 10:16:12 CST 2003,\n          mtime=Fri Sep 12 15:41:41 CDT 2003,\n          ctime=Mon Oct 27 11:20:27 CST 2003&gt;&quot;\n"
full_name: File::Stat#inspect
is_singleton: false
name: inspect
params: |
  stat.inspect  =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Identifies the type of <em>stat</em>. The return string is one of: ``<tt>file</tt>'', ``<tt>directory</tt>'', ``<tt>characterSpecial</tt>'', ``<tt>blockSpecial</tt>'', ``<tt>fifo</tt>'', ``<tt>link</tt>'', ``<tt>socket</tt>'', or ``<tt>unknown</tt>''."
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/tty&quot;).ftype   #=&gt; &quot;characterSpecial&quot;\n"
full_name: File::Stat#ftype
is_singleton: false
name: ftype
params: |
  stat.ftype   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the modification time of <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).mtime   #=&gt; Wed Apr 09 08:53:14 CDT 2003\n"
full_name: File::Stat#mtime
is_singleton: false
name: mtime
params: |
  stat.mtime -> aTime

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the effective group id of the process is the same as the group id of <em>stat</em>. On Windows NT, returns <tt>false</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).grpowned?      #=&gt; true\n   File.stat(&quot;/etc/passwd&quot;).grpowned?   #=&gt; false\n"
full_name: File::Stat#grpowned?
is_singleton: false
name: grpowned?
params: |
  stat.grpowned?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is readable by the real user id of this process.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).readable_real?   #=&gt; true\n"
full_name: File::Stat#readable_real?
is_singleton: false
name: readable_real?
params: |
  stat.readable_real? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the file is a character device, <tt>false</tt> if it isn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/tty&quot;).chardev?   #=&gt; true\n"
full_name: File::Stat#chardev?
is_singleton: false
name: chardev?
params: |
  stat.chardev?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>executable?</tt>, but tests using the real owner of the process.
full_name: File::Stat#executable_real?
is_singleton: false
name: executable_real?
params: |
  stat.executable_real?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> has the set-group-id permission bit set, <tt>false</tt> if it doesn't or if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/usr/sbin/lpc&quot;).setgid?   #=&gt; true\n"
full_name: File::Stat#setgid?
is_singleton: false
name: setgid?
params: |
  stat.setgid?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::VERB 
  body: "  File::Stat.new(file_name)  =&gt; stat\n"
- !ruby/struct:SM::Flow::P 
  body: Create a File::Stat object for the given file name (raising an exception if the file doesn't exist).
full_name: File::Stat::new
is_singleton: true
name: new
params: |
  

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the permission bits of <em>stat</em>. The meaning of the bits is platform dependent; on Unix systems, see <tt>stat(2)</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.chmod(0644, &quot;testfile&quot;)   #=&gt; 1\n   s = File.stat(&quot;testfile&quot;)\n   sprintf(&quot;%o&quot;, s.mode)          #=&gt; &quot;100644&quot;\n"
full_name: File::Stat#mode
is_singleton: false
name: mode
params: |
  stat.mode   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the major part of <tt>File_Stat#rdev</tt> or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/fd1&quot;).rdev_major   #=&gt; 2\n   File.stat(&quot;/dev/tty&quot;).rdev_major   #=&gt; 5\n"
full_name: File::Stat#rdev_major
is_singleton: false
name: rdev_major
params: |
  stat.rdev_major   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the inode number for <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).ino   #=&gt; 1083669\n"
full_name: File::Stat#ino
is_singleton: false
name: ino
params: |
  stat.ino   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is readable by the effective user id of this process.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).readable?   #=&gt; true\n"
full_name: File::Stat#readable?
is_singleton: false
name: readable?
params: |
  stat.readable?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the operating system supports pipes and <em>stat</em> is a pipe; <tt>false</tt> otherwise.
full_name: File::Stat#pipe?
is_singleton: false
name: pipe?
params: |
  stat.pipe?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is a regular file (not a device file, pipe, socket, etc.).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).file?   #=&gt; true\n"
full_name: File::Stat#file?
is_singleton: false
name: file?
params: |
  stat.file?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the numeric group id of the owner of <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).gid   #=&gt; 500\n"
full_name: File::Stat#gid
is_singleton: false
name: gid
params: |
  stat.gid   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: File::Stat#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Objects of class <tt>File::Stat</tt> encapsulate common status information for <tt>File</tt> objects. The information is recorded at the moment the <tt>File::Stat</tt> object is created; changes made to the file after that point will not be reflected. <tt>File::Stat</tt> objects are returned by <tt>IO#stat</tt>, <tt>File::stat</tt>, <tt>File#lstat</tt>, and <tt>File::lstat</tt>. Many of these methods return platform-specific values, and not all values are meaningful on all systems. See also <tt>Kernel#test</tt>.
constants: []

full_name: File::Stat
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: atime
- !ruby/object:RI::MethodSummary 
  name: blksize
- !ruby/object:RI::MethodSummary 
  name: blockdev?
- !ruby/object:RI::MethodSummary 
  name: blocks
- !ruby/object:RI::MethodSummary 
  name: chardev?
- !ruby/object:RI::MethodSummary 
  name: ctime
- !ruby/object:RI::MethodSummary 
  name: dev
- !ruby/object:RI::MethodSummary 
  name: dev_major
- !ruby/object:RI::MethodSummary 
  name: dev_minor
- !ruby/object:RI::MethodSummary 
  name: directory?
- !ruby/object:RI::MethodSummary 
  name: executable?
- !ruby/object:RI::MethodSummary 
  name: executable_real?
- !ruby/object:RI::MethodSummary 
  name: file?
- !ruby/object:RI::MethodSummary 
  name: ftype
- !ruby/object:RI::MethodSummary 
  name: gid
- !ruby/object:RI::MethodSummary 
  name: grpowned?
- !ruby/object:RI::MethodSummary 
  name: ino
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: mode
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: nlink
- !ruby/object:RI::MethodSummary 
  name: owned?
- !ruby/object:RI::MethodSummary 
  name: pipe?
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: rdev
- !ruby/object:RI::MethodSummary 
  name: rdev_major
- !ruby/object:RI::MethodSummary 
  name: rdev_minor
- !ruby/object:RI::MethodSummary 
  name: readable?
- !ruby/object:RI::MethodSummary 
  name: readable_real?
- !ruby/object:RI::MethodSummary 
  name: setgid?
- !ruby/object:RI::MethodSummary 
  name: setuid?
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: size?
- !ruby/object:RI::MethodSummary 
  name: socket?
- !ruby/object:RI::MethodSummary 
  name: sticky?
- !ruby/object:RI::MethodSummary 
  name: symlink?
- !ruby/object:RI::MethodSummary 
  name: uid
- !ruby/object:RI::MethodSummary 
  name: writable?
- !ruby/object:RI::MethodSummary 
  name: writable_real?
- !ruby/object:RI::MethodSummary 
  name: zero?
name: Stat
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the effective user id of the process is the same as the owner of <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).owned?      #=&gt; true\n   File.stat(&quot;/etc/passwd&quot;).owned?   #=&gt; false\n"
full_name: File::Stat#owned?
is_singleton: false
name: owned?
params: |
  stat.owned?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the major part of <tt>File_Stat#dev</tt> or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/fd1&quot;).dev_major   #=&gt; 2\n   File.stat(&quot;/dev/tty&quot;).dev_major   #=&gt; 5\n"
full_name: File::Stat#dev_major
is_singleton: false
name: dev_major
params: |
  stat.dev_major   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the numeric user id of the owner of <em>stat</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).uid   #=&gt; 501\n"
full_name: File::Stat#uid
is_singleton: false
name: uid
params: |
  stat.uid    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the minor part of <tt>File_Stat#rdev</tt> or <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/fd1&quot;).rdev_minor   #=&gt; 1\n   File.stat(&quot;/dev/tty&quot;).rdev_minor   #=&gt; 0\n"
full_name: File::Stat#rdev_minor
is_singleton: false
name: rdev_minor
params: |
  stat.rdev_minor   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is a zero-length file; <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).zero?   #=&gt; false\n"
full_name: File::Stat#zero?
is_singleton: false
name: zero?
params: |
  stat.zero?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is writable by the effective user id of this process.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).writable?   #=&gt; true\n"
full_name: File::Stat#writable?
is_singleton: false
name: writable?
params: |
  stat.writable? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is writable by the real user id of this process.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).writable_real?   #=&gt; true\n"
full_name: File::Stat#writable_real?
is_singleton: false
name: writable_real?
params: |
  stat.writable_real? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>stat</em> is a directory, <tt>false</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).directory?   #=&gt; false\n   File.stat(&quot;.&quot;).directory?          #=&gt; true\n"
full_name: File::Stat#directory?
is_singleton: false
name: directory?
params: |
  stat.directory?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer representing the device type on which <em>stat</em> resides. Returns <tt>nil</tt> if the operating system doesn't support this feature.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;/dev/fd1&quot;).rdev   #=&gt; 513\n   File.stat(&quot;/dev/tty&quot;).rdev   #=&gt; 1280\n"
full_name: File::Stat#rdev
is_singleton: false
name: rdev
params: |
  stat.rdev   =>  fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>File::chown</tt>, but does not follow symbolic links (so it will change the owner associated with the link, not the file referenced by the link). Often not available. Returns number of files in the argument list.
full_name: File::lchown
is_singleton: true
name: lchown
params: |
  file.lchown(owner_int, group_int, file_name,..) => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is executable by the effective user id of this process.
full_name: File::executable?
is_singleton: true
name: executable?
params: |
  File.executable?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and the effective used id of the calling process is the owner of the file.
full_name: File::owned?
is_singleton: true
name: owned?
params: |
  File.owned?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the owner and group of the named file(s) to the given numeric owner and group id's. Only a process with superuser privileges may change the owner of a file. The current owner of a file may change the file's group to any group to which the owner belongs. A <tt>nil</tt> or -1 owner or group id is ignored. Returns the number of files processed.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.chown(nil, 100, &quot;testfile&quot;)\n"
full_name: File::chown
is_singleton: true
name: chown
params: |
  File.chown(owner_int, group_int, file_name,... ) -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Truncates <em>file</em> to at most <em>integer</em> bytes. The file must be opened for writing. Not available on all platforms.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;out&quot;, &quot;w&quot;)\n   f.syswrite(&quot;1234567890&quot;)   #=&gt; 10\n   f.truncate(5)              #=&gt; 0\n   f.close()                  #=&gt; nil\n   File.size(&quot;out&quot;)           #=&gt; 5\n"
full_name: File#truncate
is_singleton: false
name: truncate
params: |
  file.truncate(integer)    => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>File::stat</tt>, but does not follow the last symbolic link. Instead, reports on the link itself.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.symlink(&quot;testfile&quot;, &quot;link2test&quot;)   #=&gt; 0\n   File.stat(&quot;testfile&quot;).size              #=&gt; 66\n   File.lstat(&quot;link2test&quot;).size            #=&gt; 8\n   File.stat(&quot;link2test&quot;).size             #=&gt; 66\n"
full_name: File::lstat
is_singleton: true
name: lstat
params: |
  File.lstat(file_name)   => stat

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last component of the filename given in <em>file_name</em>, which must be formed using forward slashes (``<tt>/</tt>'') regardless of the separator used on the local file system. If <em>suffix</em> is given and present at the end of <em>file_name</em>, it is removed.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.basename(&quot;/home/gumby/work/ruby.rb&quot;)          #=&gt; &quot;ruby.rb&quot;\n   File.basename(&quot;/home/gumby/work/ruby.rb&quot;, &quot;.rb&quot;)   #=&gt; &quot;ruby&quot;\n"
full_name: File::basename
is_singleton: true
name: basename
params: |
  File.basename(file_name [, suffix] ) -> base_name

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Copies a file <tt>from</tt> to <tt>to</tt> using #syscopy. If <tt>to</tt> is a directory, copies <tt>from</tt> to <tt>to/from</tt>. If <tt>verbose</tt> is true, <tt>from -&gt; to</tt> is printed."
full_name: File::copy
is_singleton: true
name: copy
params: (from, to, verbose = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Copies a file <tt>from</tt> to <tt>to</tt>. If <tt>to</tt> is a directory, copies <tt>from</tt> to <tt>to/from</tt>.
full_name: File::syscopy
is_singleton: true
name: syscopy
params: (from, to)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>File::chmod</tt>, but does not follow symbolic links (so it will change the permissions associated with the link, not the file referenced by the link). Often not available.
full_name: File::lchmod
is_singleton: true
name: lchmod
params: |
  File.lchmod(mode_int, file_name, ...)  => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a block device.
full_name: File::blockdev?
is_singleton: true
name: blockdev?
params: |
  File.blockdev?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Truncates the file <em>file_name</em> to be at most <em>integer</em> bytes long. Not available on all platforms.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;out&quot;, &quot;w&quot;)\n   f.write(&quot;1234567890&quot;)     #=&gt; 10\n   f.close                   #=&gt; nil\n   File.truncate(&quot;out&quot;, 5)   #=&gt; 0\n   File.size(&quot;out&quot;)          #=&gt; 5\n"
full_name: File::truncate
is_singleton: true
name: truncate
params: |
  File.truncate(file_name, integer)  => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is a pipe.
full_name: File::pipe?
is_singleton: true
name: pipe?
params: |
  File.pipe?(file_name)   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the modification time for the named file as a Time object.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.mtime(&quot;testfile&quot;)   #=&gt; Tue Apr 08 12:58:04 CDT 2003\n"
full_name: File::mtime
is_singleton: true
name: mtime
params: |
  File.mtime(file_name)  =>  time

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the access and modification times of each named file to the first two arguments. Returns the number of file names in the argument list.
full_name: File::utime
is_singleton: true
name: utime
params: |
  File.utime(atime, mtime, file_name,...)   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file exists and has a zero size.
full_name: File::zero?
is_singleton: true
name: zero?
params: |
  File.zero?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if and only if the contents of files <tt>from</tt> and <tt>to</tt> are identical. If <tt>verbose</tt> is <tt>true</tt>, <tt>from &lt;=&gt; to</tt> is printed.
full_name: File::compare
is_singleton: true
name: compare
params: (from, to, verbose = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named file is executable by the real user id of this process.
full_name: File::executable_real?
is_singleton: true
name: executable_real?
params: |
  File.executable_real?(file_name)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a list of files. Each parameter should be the name of the file to delete. If the last parameter isn't a String, verbose mode will be enabled. Returns the number of files deleted.
full_name: File::safe_unlink
is_singleton: true
name: safe_unlink
params: (*files)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>File::Stat</tt> object for the named file (see <tt>File::Stat</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   File.stat(&quot;testfile&quot;).mtime   #=&gt; Tue Apr 08 12:58:04 CDT 2003\n"
full_name: File::stat
is_singleton: true
name: stat
params: |
  File.stat(file_name)   =>  stat

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of <tt>file_name</tt>.
full_name: File::size
is_singleton: true
name: size
params: |
  File.size(file_name)   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a symbolic link called <em>new_name</em> for the existing file <em>old_name</em>. Raises a <tt>NotImplemented</tt> exception on platforms that do not support symbolic links.
- !ruby/struct:SM::Flow::VERB 
  body: "   File.symlink(&quot;testfile&quot;, &quot;link2test&quot;)   #=&gt; 0\n"
full_name: File::symlink
is_singleton: true
name: symlink
params: |
  File.symlink(old_name, new_name)   => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the named files, returning the number of names passed as arguments. Raises an exception on any error. See also <tt>Dir::rmdir</tt>.
full_name: File::delete
is_singleton: true
name: delete
params: |
  File.delete(file_name, ...)  => integer
  File.unlink(file_name, ...)  => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the named files are identical.
- !ruby/struct:SM::Flow::VERB 
  body: "    open(&quot;a&quot;, &quot;w&quot;) {}\n    p File.identical?(&quot;a&quot;, &quot;a&quot;)      #=&gt; true\n    p File.identical?(&quot;a&quot;, &quot;./a&quot;)    #=&gt; true\n    File.link(&quot;a&quot;, &quot;b&quot;)\n    p File.identical?(&quot;a&quot;, &quot;b&quot;)      #=&gt; true\n    File.symlink(&quot;a&quot;, &quot;c&quot;)\n    p File.identical?(&quot;a&quot;, &quot;c&quot;)      #=&gt; true\n    open(&quot;d&quot;, &quot;w&quot;) {}\n    p File.identical?(&quot;a&quot;, &quot;d&quot;)      #=&gt; false\n"
full_name: File::identical?
is_singleton: true
name: identical?
params: |
  File.identical?(file_1, file_2)   =>  true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: RuntimeError
includes: []

instance_methods: []

name: RuntimeError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: WeakRef is a class to represent a reference to an object that is not seen by the tracing phase of the garbage collector. This allows the referenced object to be garbage collected as if nothing is referring to it. Because WeakRef delegates method calls to the referenced object, it may be used in place of that object, i.e. it is of the same duck type.
- !ruby/struct:SM::Flow::P 
  body: "Usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "  foo = Object.new\n  foo = Object.new\n  p foo.to_s                  # original's class\n  foo = WeakRef.new(foo)\n  p foo.to_s                  # should be same class\n  ObjectSpace.garbage_collect\n  p foo.to_s                  # should raise exception (recycled)\n"
constants: []

full_name: WeakRef
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: __getobj__
- !ruby/object:RI::MethodSummary 
  name: __setobj__
- !ruby/object:RI::MethodSummary 
  name: weakref_alive?
name: WeakRef
superclass: Delegator
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the referenced object still exists, and false if it has been garbage collected.
full_name: WeakRef#weakref_alive?
is_singleton: false
name: weakref_alive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new WeakRef from <tt>orig</tt>.
full_name: WeakRef::new
is_singleton: true
name: new
params: (orig)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: RefError is raised if an object cannot be referenced by a WeakRef.
constants: []

full_name: WeakRef::RefError
includes: []

instance_methods: []

name: RefError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: WeakRef#__setobj__
is_singleton: false
name: __setobj__
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the object this WeakRef references. Raises RefError if the object has been garbage collected. The object returned is the object to which method calls are delegated (see Delegator).
full_name: WeakRef#__getobj__
is_singleton: false
name: __getobj__
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Options::OptionList::options
is_singleton: true
name: options
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show an error and exit
full_name: Options::OptionList::error
is_singleton: true
name: error
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Options::OptionList::strip_output
is_singleton: true
name: strip_output
params: (text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: help_output
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: strip_output
- !ruby/object:RI::MethodSummary 
  name: usage
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: OPTION_LIST
  value: "[       [ \"--accessor\",      \"-A\",   \"accessorname[,..]\",         \"comma separated list of additional class methods\\n\" +         \"that should be treated like 'attr_reader' and\\n\" +         \"friends. Option may be repeated. Each accessorname\\n\" +         \"may have '=text' appended, in which case that text\\n\" +         \"appears where the r/w/rw appears for normal accessors.\"],                                                                           [ \"--all\",           \"-a\",   nil,         \"include all methods (not just public)\\nin the output\" ],        [ \"--charset\",       \"-c\",   \"charset\",         \"specifies HTML character-set\" ],        [ \"--debug\",         \"-D\",   nil,         \"displays lots on internal stuff\" ],        [ \"--diagram\",       \"-d\",   nil,         \"Generate diagrams showing modules and classes.\\n\" +         \"You need dot V1.8.6 or later to use the --diagram\\n\" +         \"option correctly. Dot is available from\\n\"+         \"http://www.research.att.com/sw/tools/graphviz/\" ],        [ \"--exclude\",       \"-x\",   \"pattern\",         \"do not process files or directories matching\\n\" +         \"pattern. Files given explicitly on the command\\n\" +         \"line will never be excluded.\" ],        [ \"--extension\",     \"-E\",   \"new=old\",         \"Treat files ending with .new as if they ended with\\n\" +         \".old. Using '-E cgi=rb' will cause xxx.cgi to be\\n\" +         \"parsed as a Ruby file\"],        [ \"--fileboxes\",     \"-F\",   nil,         \"classes are put in boxes which represents\\n\" +         \"files, where these classes reside. Classes\\n\" +         \"shared between more than one file are\\n\" +         \"shown with list of files that sharing them.\\n\" +         \"Silently discarded if --diagram is not given\\n\" +         \"Experimental.\" ],        [ \"--force-update\",  \"-U\",   nil,         \"forces to scan all sources even if newer than\\n\" +         \"the flag file.\" ],        [ \"--fmt\",           \"-f\",   \"format name\",         \"set the output formatter (see below)\" ],        [ \"--help\",          \"-h\",   nil,         \"you're looking at it\" ],        [ \"--help-output\",   \"-O\",   nil,         \"explain the various output options\" ],        [ \"--image-format\",  \"-I\",   \"gif/png/jpg/jpeg\",         \"Sets output image format for diagrams. Can\\n\" +         \"be png, gif, jpeg, jpg. If this option is\\n\" +         \"omitted, png is used. Requires --diagram.\" ],        [ \"--include\",       \"-i\",   \"dir[,dir...]\",         \"set (or add to) the list of directories\\n\" +         \"to be searched when satisfying :include:\\n\" +         \"requests. Can be used more than once.\" ],        [ \"--inline-source\", \"-S\",   nil,         \"Show method source code inline, rather\\n\" +         \"than via a popup link\" ],        [ \"--line-numbers\", \"-N\", nil,         \"Include line numbers in the source code\" ],        [ \"--main\",          \"-m\",   \"name\",         \"'name' will be the initial page displayed\" ],        [ \"--merge\",         \"-M\",   nil,         \"when creating ri output, merge processed classes\\n\" +         \"into previously documented classes of the name name\"],        [ \"--one-file\",      \"-1\",   nil,         \"put all the output into a single file\" ],        [ \"--op\",            \"-o\",   \"dir\",         \"set the output directory\" ],        [ \"--opname\",       \"-n\",    \"name\",         \"Set the 'name' of the output. Has no\\n\" +         \"effect for HTML.\" ],        [ \"--promiscuous\",   \"-p\",   nil,         \"When documenting a file that contains a module\\n\" +         \"or class also defined in other files, show\\n\" +         \"all stuff for that module/class in each files\\n\" +         \"page. By default, only show stuff defined in\\n\" +         \"that particular file.\" ],        [ \"--quiet\",         \"-q\",   nil,         \"don't show progress as we parse\" ],        [ \"--ri\",            \"-r\",   nil,        \"generate output for use by 'ri.' The files are\\n\" +        \"stored in the '.rdoc' directory under your home\\n\"+        \"directory unless overridden by a subsequent\\n\" +        \"--op parameter, so no special privileges are needed.\" ],        [ \"--ri-site\",       \"-R\",   nil,        \"generate output for use by 'ri.' The files are\\n\" +        \"stored in a site-wide directory, making them accessible\\n\"+        \"to others, so special privileges are needed.\" ],        [ \"--ri-system\",     \"-Y\",   nil,        \"generate output for use by 'ri.' The files are\\n\" +        \"stored in a system-level directory, making them accessible\\n\"+        \"to others, so special privileges are needed. This option\\n\"+        \"is intended to be used during Ruby installations\" ],        [ \"--show-hash\",     \"-H\",   nil,         \"A name of the form #name in a comment\\n\" +         \"is a possible hyperlink to an instance\\n\" +         \"method name. When displayed, the '#' is\\n\" +         \"removed unless this option is specified\" ],        [ \"--style\",         \"-s\",   \"stylesheet url\",         \"specifies the URL of a separate stylesheet.\" ],        [ \"--tab-width\",     \"-w\",   \"n\",         \"Set the width of tab characters (default 8)\"],        [ \"--template\",      \"-T\",   \"template name\",         \"Set the template used when generating output\" ],        [ \"--title\",         \"-t\",   \"text\",         \"Set 'txt' as the title for the output\" ],        [ \"--version\",       \"-v\",   nil,         \"display  RDoc's version\" ],        [ \"--webcvs\",        \"-W\",   \"url\",         \"Specify a URL for linking to a web frontend\\n\" +         \"to CVS. If the URL contains a '\\%s', the\\n\" +         \"name of the current file will be substituted;\\n\" +         \"if the URL doesn't contain a '\\%s', the\\n\" +         \"filename will be appended to it.\" ],     ]"
full_name: Options::OptionList
includes: []

instance_methods: []

name: OptionList
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show usage and exit
full_name: Options::OptionList::usage
is_singleton: true
name: usage
params: (generator_names)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Options::OptionList::help_output
is_singleton: true
name: help_output
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Options#error
is_singleton: false
name: error
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up an output generator for the format in @generator_name
full_name: Options#setup_generator
is_singleton: false
name: setup_generator
params: (generators)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should the output be placed into a single file
  name: all_one_file
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: character-set
  name: charset
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: URL of stylesheet
  name: css
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should diagrams be drawn
  name: diagram
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: files matching this pattern will be excluded
  name: exclude
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: extra_accessor_flags
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: pattern for additional attr_... style methods
  name: extra_accessors
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should we draw fileboxes in diagrams
  name: fileboxes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: and the list of files to be processed
  name: files
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: scan newer sources than the flag file if true.
  name: force_update
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: description of the output generator (set with the <tt>-fmt</tt> option
  name: generator
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: image format for diagrams
  name: image_format
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: include line numbers in the source listings
  name: include_line_numbers
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should source code be included inline, or displayed in a popup
  name: inline_source
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: name of the file, class or module to display in the initial index page (if not specified the first file we encounter is used)
  name: main_page
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: merge into classes of the name name when generating ri
  name: merge
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the name of the output directory
  name: op_dir
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the name to use for the output
  name: op_name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Are we promiscuous about showing module contents across multiple files
  name: promiscuous
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Don't display progress as we process the files
  name: quiet
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "array of directories to search for files to satisfy an :include:"
  name: rdoc_include
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: include private and protected methods in the output
  name: show_all
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: include the '#' at the front of hyperlinked instance method names
  name: show_hash
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the number of columns in a tab
  name: tab_width
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: template to be used when generating output
  name: template
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: URL of web cvs frontend
  name: webcvs
  rw: R
class_methods: []

comment: 
constants: []

full_name: Options
includes: 
- !ruby/object:RI::IncludedModule 
  name: Singleton
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: check_diagram
- !ruby/object:RI::MethodSummary 
  name: check_files
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: setup_generator
- !ruby/object:RI::MethodSummary 
  name: title
- !ruby/object:RI::MethodSummary 
  name: title=
name: Options
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the title, but only if not already set. This means that a title set from the command line trumps one set in a source file
full_name: Options#title=
is_singleton: false
name: title=
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check that the files on the command line exist
full_name: Options#check_files
is_singleton: false
name: check_files
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse command line options. We're passed a hash containing output generators, keyed by the generator name
full_name: Options#parse
is_singleton: false
name: parse
params: (argv, generators)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check that the right version of 'dot' is available. Unfortuately this doesn't work correctly under Windows NT, so we'll bypass the test under Windows
full_name: Options#check_diagram
is_singleton: false
name: check_diagram
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Options#title
is_singleton: false
name: title
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: IndexError
includes: []

instance_methods: []

name: IndexError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#char_no
is_singleton: false
name: char_no
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#initialize_input
is_singleton: false
name: initialize_input
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#ungetc
is_singleton: false
name: ungetc
params: (c = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_identifier
is_singleton: false
name: identify_identifier
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: io functions
full_name: RubyLex#set_input
is_singleton: false
name: set_input
params: (io, p = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#read_escape
is_singleton: false
name: read_escape
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#get_readed
is_singleton: false
name: get_readed
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#lex_init
is_singleton: false
name: lex_init
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#buf_input
is_singleton: false
name: buf_input
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#token
is_singleton: false
name: token
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#lex_int2
is_singleton: false
name: lex_int2
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#skip_inner_expression
is_singleton: false
name: skip_inner_expression
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#gets
is_singleton: false
name: gets
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: char_no
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: continue
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: debug_level
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: exception_on_syntax_error
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: exception_on_syntax_error
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: indent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: indent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: lex_state
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: line_no
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: read_auto_clean_up
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: readed_auto_clean_up
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: seek
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: skip_space
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: skip_space
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: debug?
- !ruby/object:RI::MethodSummary 
  name: debug?
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Lexical analyzer for Ruby source
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ENINDENT_CLAUSE
  value: "[     \"case\", \"class\", \"def\", \"do\", \"for\", \"if\",     \"module\", \"unless\", \"until\", \"while\", \"begin\""
- !ruby/object:RI::Constant 
  comment: 
  name: DEINDENT_CLAUSE
  value: "[\"end\""
- !ruby/object:RI::Constant 
  comment: 
  name: PERCENT_LTYPE
  value: "{     \"q\" => \"\\'\",     \"Q\" => \"\\\"\",     \"x\" => \"\\`\",     \"r\" => \"/\",     \"w\" => \"]\",     \"W\" => \"]\",     \"s\" => \":\""
- !ruby/object:RI::Constant 
  comment: 
  name: PERCENT_PAREN
  value: "{     \"{\" => \"}\",     \"[\" => \"]\",     \"<\" => \">\",     \"(\" => \")\""
- !ruby/object:RI::Constant 
  comment: 
  name: Ltype2Token
  value: "{     \"\\'\" => TkSTRING,     \"\\\"\" => TkSTRING,     \"\\`\" => TkXSTRING,     \"/\" => TkREGEXP,     \"]\" => TkDSTRING,     \":\" => TkSYMBOL"
- !ruby/object:RI::Constant 
  comment: 
  name: DLtype2Token
  value: "{     \"\\\"\" => TkDSTRING,     \"\\`\" => TkDXSTRING,     \"/\" => TkDREGEXP,   }"
- !ruby/object:RI::Constant 
  comment: 
  name: ENINDENT_CLAUSE
  value: "[     \"case\", \"class\", \"def\", \"do\", \"for\", \"if\",     \"module\", \"unless\", \"until\", \"while\", \"begin\""
- !ruby/object:RI::Constant 
  comment: 
  name: DEINDENT_CLAUSE
  value: "[\"end\""
- !ruby/object:RI::Constant 
  comment: 
  name: PERCENT_LTYPE
  value: "{     \"q\" => \"\\'\",     \"Q\" => \"\\\"\",     \"x\" => \"\\`\",     \"r\" => \"/\",     \"w\" => \"]\""
- !ruby/object:RI::Constant 
  comment: 
  name: PERCENT_PAREN
  value: "{     \"{\" => \"}\",     \"[\" => \"]\",     \"<\" => \">\",     \"(\" => \")\""
- !ruby/object:RI::Constant 
  comment: 
  name: Ltype2Token
  value: "{     \"\\'\" => TkSTRING,     \"\\\"\" => TkSTRING,     \"\\`\" => TkXSTRING,     \"/\" => TkREGEXP,     \"]\" => TkDSTRING"
- !ruby/object:RI::Constant 
  comment: 
  name: DLtype2Token
  value: "{     \"\\\"\" => TkDSTRING,     \"\\`\" => TkDXSTRING,     \"/\" => TkDREGEXP,   }"
full_name: RubyLex
includes: 
- !ruby/object:RI::IncludedModule 
  name: RubyToken
- !ruby/object:RI::IncludedModule 
  name: RubyToken
- !ruby/object:RI::IncludedModule 
  name: IRB
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: buf_input
- !ruby/object:RI::MethodSummary 
  name: char_no
- !ruby/object:RI::MethodSummary 
  name: each_top_level_statement
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: get_read
- !ruby/object:RI::MethodSummary 
  name: get_readed
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: getc_of_rests
- !ruby/object:RI::MethodSummary 
  name: getc_of_rests
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: identify_comment
- !ruby/object:RI::MethodSummary 
  name: identify_comment
- !ruby/object:RI::MethodSummary 
  name: identify_gvar
- !ruby/object:RI::MethodSummary 
  name: identify_gvar
- !ruby/object:RI::MethodSummary 
  name: identify_here_document
- !ruby/object:RI::MethodSummary 
  name: identify_here_document
- !ruby/object:RI::MethodSummary 
  name: identify_identifier
- !ruby/object:RI::MethodSummary 
  name: identify_identifier
- !ruby/object:RI::MethodSummary 
  name: identify_number
- !ruby/object:RI::MethodSummary 
  name: identify_number
- !ruby/object:RI::MethodSummary 
  name: identify_quotation
- !ruby/object:RI::MethodSummary 
  name: identify_quotation
- !ruby/object:RI::MethodSummary 
  name: identify_string
- !ruby/object:RI::MethodSummary 
  name: identify_string
- !ruby/object:RI::MethodSummary 
  name: initialize_input
- !ruby/object:RI::MethodSummary 
  name: lex
- !ruby/object:RI::MethodSummary 
  name: lex
- !ruby/object:RI::MethodSummary 
  name: lex_init
- !ruby/object:RI::MethodSummary 
  name: lex_init
- !ruby/object:RI::MethodSummary 
  name: lex_int2
- !ruby/object:RI::MethodSummary 
  name: lex_int2
- !ruby/object:RI::MethodSummary 
  name: line_no
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: peek_equal?
- !ruby/object:RI::MethodSummary 
  name: peek_equal?
- !ruby/object:RI::MethodSummary 
  name: peek_match?
- !ruby/object:RI::MethodSummary 
  name: prompt
- !ruby/object:RI::MethodSummary 
  name: read_escape
- !ruby/object:RI::MethodSummary 
  name: read_escape
- !ruby/object:RI::MethodSummary 
  name: set_input
- !ruby/object:RI::MethodSummary 
  name: set_prompt
- !ruby/object:RI::MethodSummary 
  name: skip_inner_expression
- !ruby/object:RI::MethodSummary 
  name: token
- !ruby/object:RI::MethodSummary 
  name: token
- !ruby/object:RI::MethodSummary 
  name: ungetc
- !ruby/object:RI::MethodSummary 
  name: ungetc
name: RubyLex
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#set_prompt
is_singleton: false
name: set_prompt
params: (p = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_string
is_singleton: false
name: identify_string
params: (ltype, quoted = ltype)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#prompt
is_singleton: false
name: prompt
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#getc
is_singleton: false
name: getc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::new
is_singleton: true
name: new
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#getc_of_rests
is_singleton: false
name: getc_of_rests
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: io functions
full_name: RubyLex#line_no
is_singleton: false
name: line_no
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#get_read
is_singleton: false
name: get_read
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#peek
is_singleton: false
name: peek
params: (i = 0)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#peek_equal
is_singleton: false
name: peek_equal
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#ungetc
is_singleton: false
name: ungetc
params: (ch)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#getc_already_read
is_singleton: false
name: getc_already_read
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#getc
is_singleton: false
name: getc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader::new
is_singleton: true
name: new
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#divert_read_from
is_singleton: false
name: divert_read_from
params: (reserve)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#column
is_singleton: false
name: column
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#get_read
is_singleton: false
name: get_read
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: line_num
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Read an input stream character by character. We allow for unlimited ungetting of characters just read.
- !ruby/struct:SM::Flow::P 
  body: We simplify the implementation greatly by reading the entire input into a buffer initially, and then simply traversing it using pointers.
- !ruby/struct:SM::Flow::P 
  body: "We also have to allow for the <em>here document diversion</em>. This little gem comes about when the lexer encounters a here document. At this point we effectively need to split the input stream into two parts: one to read the body of the here document, the other to read the rest of the input line where the here document was initially encountered. For example, we might have"
- !ruby/struct:SM::Flow::VERB 
  body: "  do_something(&lt;&lt;-A, &lt;&lt;-B)\n    stuff\n    for\n  A\n    stuff\n    for\n  B\n"
- !ruby/struct:SM::Flow::P 
  body: When the lexer encounters the &lt;&lt;A, it reads until the end of the line, and keeps it around for later. It then reads the body of the here document. Once complete, it needs to read the rest of the original line, but then skip the here document body.
constants: []

full_name: RubyLex::BufferedReader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: column
- !ruby/object:RI::MethodSummary 
  name: divert_read_from
- !ruby/object:RI::MethodSummary 
  name: get_read
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: getc_already_read
- !ruby/object:RI::MethodSummary 
  name: peek
- !ruby/object:RI::MethodSummary 
  name: peek_equal
- !ruby/object:RI::MethodSummary 
  name: ungetc
name: BufferedReader
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::BufferedReader#peek
is_singleton: false
name: peek
params: (at)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: "@line, @exp_line_no"
comment: 
full_name: RubyLex#each_top_level_statement
is_singleton: false
name: each_top_level_statement
params: () {|@line, @exp_line_no| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_number
is_singleton: false
name: identify_number
params: (start)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#peek_match?
is_singleton: false
name: peek_match?
params: (regexp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_quotation
is_singleton: false
name: identify_quotation
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_gvar
is_singleton: false
name: identify_gvar
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#peek_equal?
is_singleton: false
name: peek_equal?
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_here_document
is_singleton: false
name: identify_here_document
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#identify_comment
is_singleton: false
name: identify_comment
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex::debug?
is_singleton: true
name: debug?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RubyLex#lex
is_singleton: false
name: lex
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: []

constants: []

full_name: RiError
includes: []

instance_methods: []

name: RiError
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculates CRC checksum for <tt>string</tt>, and returns updated value of <tt>crc</tt>. If <tt>string</tt> is omitted, it returns the CRC initial value. If <tt>crc</tt> is omitted, it assumes that the initial value is given to <tt>crc</tt>.
- !ruby/struct:SM::Flow::P 
  body: "FIXME: expression."
full_name: Zlib::crc32
is_singleton: true
name: crc32
params: " Zlib.crc32(string, adler)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::BufError
includes: []

instance_methods: []

name: BufError
superclass: Zlib::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Decompresses <tt>string</tt>. Raises a Zlib::NeedDict exception if a preset dictionary is needed for decompression.
- !ruby/struct:SM::Flow::P 
  body: "This method is almost equivalent to the following code:"
- !ruby/struct:SM::Flow::VERB 
  body: "  def inflate(string)\n    zstream = Zlib::Inflate.new\n    buf = zstream.inflate(string)\n    zstream.finish\n    zstream.close\n    buf\n  end\n"
full_name: Zlib::Inflate::inflate
is_singleton: true
name: inflate
params: " Zlib::Inflate.inflate(string)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the preset dictionary and returns <tt>string</tt>. This method is available just only after a Zlib::NeedDict exception was raised. See zlib.h for details.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Inflate#set_dictionary
is_singleton: false
name: set_dictionary
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new inflate stream for decompression. See zlib.h for details of the argument. If <tt>window_bits</tt> is <tt>nil</tt>, the default value is used.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Inflate::new
is_singleton: true
name: new
params: " Zlib::Inflate.new(window_bits)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Quoted verbatim from original documentation:"
- !ruby/struct:SM::Flow::VERB 
  body: "  What is this?\n"
- !ruby/struct:SM::Flow::P 
  body: <tt>:)</tt>
full_name: Zlib::Inflate#sync_point?
is_singleton: false
name: sync_point?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::Inflate#<<
is_singleton: false
name: "<<"
params: (p1)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: inflate
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Zlib:Inflate is the class for decompressing compressed data. Unlike Zlib::Deflate, an instance of this class is not able to duplicate (clone, dup) itself.
constants: []

full_name: Zlib::Inflate
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: inflate
- !ruby/object:RI::MethodSummary 
  name: set_dictionary
- !ruby/object:RI::MethodSummary 
  name: sync
- !ruby/object:RI::MethodSummary 
  name: sync_point?
name: Inflate
superclass: Zlib::ZStream
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inputs <tt>string</tt> into the end of input buffer and skips data until a full flush point can be found. If the point is found in the buffer, this method flushes the buffer and returns false. Otherwise it returns <tt>true</tt> and the following data of full flush point is preserved in the buffer.
full_name: Zlib::Inflate#sync
is_singleton: false
name: sync
params: " sync(string)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inputs <tt>string</tt> into the inflate stream and returns the output from the stream. Calling this method, both the input and the output buffer of the stream are flushed. If string is <tt>nil</tt>, this method finishes the stream, just like Zlib::ZStream#finish.
- !ruby/struct:SM::Flow::P 
  body: Raises a Zlib::NeedDict exception if a preset dictionary is needed to decompress. Set the dictionary by Zlib::Inflate#set_dictionary and then call this method again with an empty string. (<em>???</em>)
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Inflate#inflate
is_singleton: false
name: inflate
params: " inflate(string)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculates Adler-32 checksum for <tt>string</tt>, and returns updated value of <tt>adler</tt>. If <tt>string</tt> is omitted, it returns the Adler-32 initial value. If <tt>adler</tt> is omitted, it assumes that the initial value is given to <tt>adler</tt>.
- !ruby/struct:SM::Flow::P 
  body: "FIXME: expression."
full_name: Zlib::adler32
is_singleton: true
name: adler32
params: " Zlib.adler32(string, adler)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#write
is_singleton: false
name: write
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipWriter#mtime=
is_singleton: false
name: mtime=
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipWriter#comment=
is_singleton: false
name: comment=
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a file specified by <tt>filename</tt> for writing gzip compressed data, and returns a GzipWriter object associated with that file. Further details of this method are found in Zlib::GzipWriter.new and Zlib::GzipWriter#wrap.
full_name: Zlib::GzipWriter::open
is_singleton: true
name: open
params: " Zlib::GzipWriter.open(filename, level=nil, strategy=nil) { |gz| ... }\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipWriter#orig_name=
is_singleton: false
name: orig_name=
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flushes all the internal buffers of the GzipWriter object. The meaning of <tt>flush</tt> is same as in Zlib::Deflate#deflate. <tt>Zlib::SYNC_FLUSH</tt> is used if <tt>flush</tt> is omitted. It is no use giving flush <tt>Zlib::NO_FLUSH</tt>.
full_name: Zlib::GzipWriter#flush
is_singleton: false
name: flush
params: " flush(flush=nil)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: print Same as IO."
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#print
is_singleton: false
name: print
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a GzipWriter object associated with <tt>io</tt>. <tt>level</tt> and <tt>strategy</tt> should be the same as the arguments of Zlib::Deflate.new. The GzipWriter object writes gzipped data to <tt>io</tt>. At least, <tt>io</tt> must respond to the <tt>write</tt> method that behaves same as write method in IO class.
full_name: Zlib::GzipWriter::new
is_singleton: true
name: new
params: " Zlib::GzipWriter.new(io, level, strategy)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: Zlib::GzipWriter is a class for writing gzipped files. GzipWriter should be used with an instance of IO, or IO-like, object.
- !ruby/struct:SM::Flow::P 
  body: "For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::GzipWriter.open('hoge.gz') do |gz|\n    gz.write 'jugemu jugemu gokou no surikire...'\n  end\n\n  File.open('hoge.gz', 'w') do |f|\n    gz = Zlib::GzipWriter.new(f)\n    gz.write 'jugemu jugemu gokou no surikire...'\n    gz.close\n  end\n\n  # TODO: test these.  Are they equivalent?  Can GzipWriter.new take a\n  # block?\n"
- !ruby/struct:SM::Flow::P 
  body: "NOTE: Due to the limitation of Ruby's finalizer, you must explicitly close GzipWriter objects by Zlib::GzipWriter#close etc. Otherwise, GzipWriter will be not able to write the gzip footer and will generate a broken gzip file."
constants: []

full_name: Zlib::GzipWriter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: comment=
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: mtime=
- !ruby/object:RI::MethodSummary 
  name: orig_name=
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: putc
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: tell
- !ruby/object:RI::MethodSummary 
  name: write
name: GzipWriter
superclass: Zlib::GzipFile
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: printf Same as IO."
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#printf
is_singleton: false
name: printf
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: puts Same as IO."
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#puts
is_singleton: false
name: puts
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipWriter#tell
is_singleton: false
name: tell
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: &lt;&lt; Same as IO."
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#<<
is_singleton: false
name: "<<"
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipWriter#putc
is_singleton: false
name: putc
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipWriter#pos
is_singleton: false
name: pos
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The superclass for all exceptions raised by Ruby/zlib.
- !ruby/struct:SM::Flow::P 
  body: The following exceptions are defined as subclasses of Zlib::Error. These exceptions are raised when zlib library functions return with an error status.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::StreamEnd
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::NeedDict
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::DataError
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::StreamError
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::MemError
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::BufError
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Zlib::VersionError
  type: :BULLET
constants: []

full_name: Zlib::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::NeedDict
includes: []

instance_methods: []

name: NeedDict
superclass: Zlib::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#ungetc
is_singleton: false
name: ungetc
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a file specified by <tt>filename</tt> as a gzipped file, and returns a GzipReader object associated with that file. Further details of this method are in Zlib::GzipReader.new and ZLib::GzipReader.wrap.
full_name: Zlib::GzipReader::open
is_singleton: true
name: open
params: " Zlib::GzipReader.open(filename) {|gz| ... }\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#gets
is_singleton: false
name: gets
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#eof
is_singleton: false
name: eof
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#each_line
is_singleton: false
name: each_line
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#getc
is_singleton: false
name: getc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resets the position of the file pointer to the point created the GzipReader object. The associated IO object needs to respond to the <tt>seek</tt> method.
full_name: Zlib::GzipReader#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a GzipReader object associated with <tt>io</tt>. The GzipReader object reads gzipped data from <tt>io</tt>, and parses/decompresses them. At least, <tt>io</tt> must have a <tt>read</tt> method that behaves same as the <tt>read</tt> method in IO class.
- !ruby/struct:SM::Flow::P 
  body: If the gzip file header is incorrect, raises an Zlib::GzipFile::Error exception.
full_name: Zlib::GzipReader::new
is_singleton: true
name: new
params: " Zlib::GzipReader.new(io)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#readlines
is_singleton: false
name: readlines
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#read
is_singleton: false
name: read
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#lineno
is_singleton: false
name: lineno
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#each
is_singleton: false
name: each
params: (...)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: Zlib::GzipReader is the class for reading a gzipped file. GzipReader should be used an IO, or -IO-lie, object.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::GzipReader.open('hoge.gz') {|gz|\n    print gz.read\n  }\n\n  File.open('hoge.gz') do |f|\n    gz = Zlib::GzipReader.new(f)\n    print gz.read\n    gz.close\n  end\n\n  # TODO: test these.  Are they equivalent?  Can GzipReader.new take a\n  # block?\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Catalogue
- !ruby/struct:SM::Flow::P 
  body: The following methods in Zlib::GzipReader are just like their counterparts in IO, but they raise Zlib::Error or Zlib::GzipFile::Error exception if an error was found in the gzip file.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each_line"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each_byte"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#gets"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#getc"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#lineno"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#lineno="
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#read"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readchar"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readline"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readlines"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#ungetc"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Be careful of the footer of the gzip file. A gzip file has the checksum of pre-compressed data in its footer. GzipReader checks all uncompressed data against that checksum at the following cases, and if it fails, raises <tt>Zlib::GzipFile::NoFooter</tt>, <tt>Zlib::GzipFile::CRCError</tt>, or <tt>Zlib::GzipFile::LengthError</tt> exception.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: When an reading request is received beyond the end of file (the end of compressed data). That is, when Zlib::GzipReader#read, Zlib::GzipReader#gets, or some other methods for reading returns nil.
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: When Zlib::GzipFile#close method is called after the object reaches the end of file.
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: When Zlib::GzipReader#unused method is called after the object reaches the end of file.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: The rest of the methods are adequately described in their own documentation.
constants: []

full_name: Zlib::GzipReader
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_byte
- !ruby/object:RI::MethodSummary 
  name: each_line
- !ruby/object:RI::MethodSummary 
  name: eof
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: lineno
- !ruby/object:RI::MethodSummary 
  name: lineno=
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: readchar
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: tell
- !ruby/object:RI::MethodSummary 
  name: ungetc
- !ruby/object:RI::MethodSummary 
  name: unused
name: GzipReader
superclass: Zlib::GzipFile
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the rest of the data which had read for parsing gzip format, or <tt>nil</tt> if the whole gzip file is not parsed yet.
full_name: Zlib::GzipReader#unused
is_singleton: false
name: unused
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#tell
is_singleton: false
name: tell
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#readchar
is_singleton: false
name: readchar
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#each_byte
is_singleton: false
name: each_byte
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader documentation for a description.
full_name: Zlib::GzipReader#readline
is_singleton: false
name: readline
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#lineno=
is_singleton: false
name: lineno=
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ???
full_name: Zlib::GzipReader#pos
is_singleton: false
name: pos
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::VersionError
includes: []

instance_methods: []

name: VersionError
superclass: Zlib::Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::MemError
includes: []

instance_methods: []

name: MemError
superclass: Zlib::Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::StreamEnd
includes: []

instance_methods: []

name: StreamEnd
superclass: Zlib::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the table for calculating CRC checksum as an array.
full_name: Zlib::crc_table
is_singleton: true
name: crc_table
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the stream is finished.
full_name: Zlib::ZStream#finished?
is_singleton: false
name: finished?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Allocates <tt>size</tt> bytes of free space in the output buffer. If there are more than <tt>size</tt> bytes already in the buffer, the buffer is truncated. Because free space is allocated automatically, you usually don't need to use this method.
full_name: Zlib::ZStream#avail_out=
is_singleton: false
name: avail_out=
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns number of bytes of free spaces in output buffer. Because the free space is allocated automatically, this method returns 0 normally.
full_name: Zlib::ZStream#avail_out
is_singleton: false
name: avail_out
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the stream. All operations on the closed stream will raise an exception.
full_name: Zlib::ZStream#end
is_singleton: false
name: end
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Zlib::ZStream is the abstract class for the stream which handles the compressed data. The operations are defined in the subclasses: Zlib::Deflate for compression, and Zlib::Inflate for decompression."
- !ruby/struct:SM::Flow::P 
  body: An instance of Zlib::ZStream has one stream (struct zstream in the source) and two variable-length buffers which associated to the input (next_in) of the stream and the output (next_out) of the stream. In this document, &quot;input buffer&quot; means the buffer for input, and &quot;output buffer&quot; means the buffer for output.
- !ruby/struct:SM::Flow::P 
  body: Data input into an instance of Zlib::ZStream are temporally stored into the end of input buffer, and then data in input buffer are processed from the beginning of the buffer until no more output from the stream is produced (i.e. until avail_out &gt; 0 after processing). During processing, output buffer is allocated and expanded automatically to hold all output data.
- !ruby/struct:SM::Flow::P 
  body: Some particular instance methods consume the data in output buffer and return them as a String.
- !ruby/struct:SM::Flow::P 
  body: "Here is an ascii art for describing above:"
- !ruby/struct:SM::Flow::VERB 
  body: "   +================ an instance of Zlib::ZStream ================+\n   ||                                                            ||\n   ||     +--------+          +-------+          +--------+      ||\n   ||  +--| output |&lt;---------|zstream|&lt;---------| input  |&lt;--+  ||\n   ||  |  | buffer |  next_out+-------+next_in   | buffer |   |  ||\n   ||  |  +--------+                             +--------+   |  ||\n   ||  |                                                      |  ||\n   +===|======================================================|===+\n       |                                                      |\n       v                                                      |\n   &quot;output data&quot;                                         &quot;input data&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: If an error occurs during processing input buffer, an exception which is a subclass of Zlib::Error is raised. At that time, both input and output buffer keep their conditions at the time when the error occurs.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Catalogue
- !ruby/struct:SM::Flow::P 
  body: Many of the methods in this class are fairly low-level and unlikely to be of interest to users. In fact, users are unlikely to use this class directly; rather they will be interested in Zlib::Inflate and Zlib::Deflate.
- !ruby/struct:SM::Flow::P 
  body: The higher level methods are listed below.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#total_in"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#total_out"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#data_type"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#adler"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#reset"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#finish"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#finished?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#close"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#closed?"
  type: :BULLET
constants: []

full_name: Zlib::ZStream
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: adler
- !ruby/object:RI::MethodSummary 
  name: avail_in
- !ruby/object:RI::MethodSummary 
  name: avail_out
- !ruby/object:RI::MethodSummary 
  name: avail_out=
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: closed?
- !ruby/object:RI::MethodSummary 
  name: data_type
- !ruby/object:RI::MethodSummary 
  name: end
- !ruby/object:RI::MethodSummary 
  name: ended?
- !ruby/object:RI::MethodSummary 
  name: finish
- !ruby/object:RI::MethodSummary 
  name: finished?
- !ruby/object:RI::MethodSummary 
  name: flush_next_in
- !ruby/object:RI::MethodSummary 
  name: flush_next_out
- !ruby/object:RI::MethodSummary 
  name: reset
- !ruby/object:RI::MethodSummary 
  name: stream_end?
- !ruby/object:RI::MethodSummary 
  name: total_in
- !ruby/object:RI::MethodSummary 
  name: total_out
name: ZStream
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resets and initializes the stream. All data in both input and output buffer are discarded.
full_name: Zlib::ZStream#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the stream is finished.
full_name: Zlib::ZStream#stream_end?
is_singleton: false
name: stream_end?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the stream is closed.
full_name: Zlib::ZStream#closed?
is_singleton: false
name: closed?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the stream. All operations on the closed stream will raise an exception.
full_name: Zlib::ZStream#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the adler-32 checksum.
full_name: Zlib::ZStream#adler
is_singleton: false
name: adler
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the total bytes of the output data from the stream. FIXME
full_name: Zlib::ZStream#total_out
is_singleton: false
name: total_out
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finishes the stream and flushes output buffer. See Zlib::Deflate#finish and Zlib::Inflate#finish for details of this behavior.
full_name: Zlib::ZStream#finish
is_singleton: false
name: finish
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the stream is closed.
full_name: Zlib::ZStream#ended?
is_singleton: false
name: ended?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flushes input buffer and returns all data in that buffer.
full_name: Zlib::ZStream#flush_next_in
is_singleton: false
name: flush_next_in
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the total bytes of the input data to the stream. FIXME
full_name: Zlib::ZStream#total_in
is_singleton: false
name: total_in
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Guesses the type of the data which have been inputed into the stream. The returned value is either <tt>Zlib::BINARY</tt>, <tt>Zlib::ASCII</tt>, or <tt>Zlib::UNKNOWN</tt>.
full_name: Zlib::ZStream#data_type
is_singleton: false
name: data_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns bytes of data in the input buffer. Normally, returns 0.
full_name: Zlib::ZStream#avail_in
is_singleton: false
name: avail_in
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flushes output buffer and returns all data in that buffer.
full_name: Zlib::ZStream#flush_next_out
is_singleton: false
name: flush_next_out
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when gzip file footer is not found.
constants: []

full_name: Zlib::GzipFile::NoFooter
includes: []

instance_methods: []

name: NoFooter
superclass: Zlib::GzipFile::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns original filename recorded in the gzip file header, or <tt>nil</tt> if original filename is not present.
full_name: Zlib::GzipFile#orig_name
is_singleton: false
name: orig_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Base class of errors that occur when processing GZIP files.
constants: []

full_name: Zlib::GzipFile::Error
includes: []

instance_methods: []

name: Error
superclass: Zlib::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns last modification time recorded in the gzip file header.
full_name: Zlib::GzipFile#mtime
is_singleton: false
name: mtime
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when the CRC checksum recorded in gzip file footer is not equivalent to the CRC checksum of the actual uncompressed data.
constants: []

full_name: Zlib::GzipFile::CRCError
includes: []

instance_methods: []

name: CRCError
superclass: Zlib::GzipFile::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipFile#to_io
is_singleton: false
name: to_io
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipFile#closed?
is_singleton: false
name: closed?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Zlib::GzipReader#wrap and Zlib::GzipWriter#wrap.
full_name: Zlib::GzipFile::wrap
is_singleton: true
name: wrap
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the GzipFile object. This method calls close method of the associated IO object. Returns the associated IO object.
full_name: Zlib::GzipFile#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised when the data length recorded in the gzip file footer is not equivalent to the length of the actual uncompressed data.
constants: []

full_name: Zlib::GzipFile::LengthError
includes: []

instance_methods: []

name: LengthError
superclass: Zlib::GzipFile::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the GzipFile object. Unlike Zlib::GzipFile#close, this method never calls the close method of the associated IO object. Returns the associated IO object.
full_name: Zlib::GzipFile#finish
is_singleton: false
name: finish
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns compression level.
full_name: Zlib::GzipFile#level
is_singleton: false
name: level
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO. If flag is <tt>true</tt>, the associated IO object must respond to the <tt>flush</tt> method. While <tt>sync</tt> mode is <tt>true</tt>, the compression ratio decreases sharply.
full_name: Zlib::GzipFile#sync=
is_singleton: false
name: sync=
params: " sync = flag\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::GzipFile#sync
is_singleton: false
name: sync
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: wrap
comment: 
- !ruby/struct:SM::Flow::P 
  body: Zlib::GzipFile is an abstract class for handling a gzip formatted compressed file. The operations are defined in the subclasses, Zlib::GzipReader for reading, and Zlib::GzipWriter for writing.
- !ruby/struct:SM::Flow::P 
  body: GzipReader should be used by associating an IO, or IO-like, object.
constants: []

full_name: Zlib::GzipFile
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: closed?
- !ruby/object:RI::MethodSummary 
  name: comment
- !ruby/object:RI::MethodSummary 
  name: crc
- !ruby/object:RI::MethodSummary 
  name: finish
- !ruby/object:RI::MethodSummary 
  name: level
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: orig_name
- !ruby/object:RI::MethodSummary 
  name: os_code
- !ruby/object:RI::MethodSummary 
  name: sync
- !ruby/object:RI::MethodSummary 
  name: sync=
- !ruby/object:RI::MethodSummary 
  name: to_io
name: GzipFile
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns OS code number recorded in the gzip file header.
full_name: Zlib::GzipFile#os_code
is_singleton: false
name: os_code
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns comments recorded in the gzip file header, or nil if the comments is not present.
full_name: Zlib::GzipFile#comment
is_singleton: false
name: comment
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns CRC value of the uncompressed data.
full_name: Zlib::GzipFile#crc
is_singleton: false
name: crc
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::DataError
includes: []

instance_methods: []

name: DataError
superclass: Zlib::Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the string which represents the version of zlib library.
full_name: Zlib::zlib_version
is_singleton: true
name: zlib_version
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the preset dictionary and returns <tt>string</tt>. This method is available just only after Zlib::Deflate.new or Zlib::ZStream#reset method was called. See zlib.h for details.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Deflate#set_dictionary
is_singleton: false
name: set_dictionary
params: " set_dictionary(string)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: deflate
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Zlib::Deflate is the class for compressing data. See Zlib::Stream for more information.
constants: []

full_name: Zlib::Deflate
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: deflate
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: params
- !ruby/object:RI::MethodSummary 
  name: set_dictionary
name: Deflate
superclass: Zlib::ZStream
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compresses the given <tt>string</tt>. Valid values of level are <tt>Zlib::NO_COMPRESSION</tt>, <tt>Zlib::BEST_SPEED</tt>, <tt>Zlib::BEST_COMPRESSION</tt>, <tt>Zlib::DEFAULT_COMPRESSION</tt>, and an integer from 0 to 9.
- !ruby/struct:SM::Flow::P 
  body: "This method is almost equivalent to the following code:"
- !ruby/struct:SM::Flow::VERB 
  body: "  def deflate(string, level)\n    z = Zlib::Deflate.new(level)\n    dst = z.deflate(string, Zlib::FINISH)\n    z.close\n    dst\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: "TODO: what's default value of <tt>level</tt>?"
full_name: Zlib::Deflate::deflate
is_singleton: true
name: deflate
params: " Zlib::Deflate.deflate(string[, level])\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Duplicates the deflate stream.
full_name: Zlib::Deflate#initialize_copy
is_singleton: false
name: initialize_copy
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method is equivalent to <tt>deflate('', flush)</tt>. If flush is omitted, <tt>Zlib::SYNC_FLUSH</tt> is used as flush. This method is just provided to improve the readability of your Ruby program.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Deflate#flush
is_singleton: false
name: flush
params: " flush(flush)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the parameters of the deflate stream. See zlib.h for details. The output from the stream by changing the params is preserved in output buffer.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Deflate#params
is_singleton: false
name: params
params: " params(level, strategy)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new deflate stream for compression. See zlib.h for details of each argument. If an argument is nil, the default value of that argument is used.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Deflate::new
is_singleton: true
name: new
params: " Zlib::Deflate.new(level=nil, windowBits=nil, memlevel=nil, strategy=nil)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as IO.
full_name: Zlib::Deflate#<<
is_singleton: false
name: "<<"
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Inputs <tt>string</tt> into the deflate stream and returns the output from the stream. On calling this method, both the input and the output buffers of the stream are flushed. If <tt>string</tt> is nil, this method finishes the stream, just like Zlib::ZStream#finish.
- !ruby/struct:SM::Flow::P 
  body: The value of <tt>flush</tt> should be either <tt>Zlib::NO_FLUSH</tt>, <tt>Zlib::SYNC_FLUSH</tt>, <tt>Zlib::FULL_FLUSH</tt>, or <tt>Zlib::FINISH</tt>. See zlib.h for details.
- !ruby/struct:SM::Flow::P 
  body: "TODO: document better!"
full_name: Zlib::Deflate#deflate
is_singleton: false
name: deflate
params: " deflate(string[, flush])\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Zlib module contains several classes for compressing and decompressing streams, and for working with &quot;gzip&quot; files.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Classes
- !ruby/struct:SM::Flow::P 
  body: "Following are the classes that are most likely to be of interest to the user: Zlib::Inflate Zlib::Deflate Zlib::GzipReader Zlib::GzipWriter"
- !ruby/struct:SM::Flow::P 
  body: "There are two important base classes for the classes above: Zlib::ZStream and Zlib::GzipFile. Everything else is an error class."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Constants
- !ruby/struct:SM::Flow::P 
  body: Here's a list.
- !ruby/struct:SM::Flow::VERB 
  body: "  Zlib::VERSION\n      The Ruby/zlib version string.\n\n  Zlib::ZLIB_VERSION\n      The string which represents the version of zlib.h.\n\n  Zlib::BINARY\n  Zlib::ASCII\n  Zlib::UNKNOWN\n      The integers representing data types which Zlib::ZStream#data_type\n      method returns.\n\n  Zlib::NO_COMPRESSION\n  Zlib::BEST_SPEED\n  Zlib::BEST_COMPRESSION\n  Zlib::DEFAULT_COMPRESSION\n      The integers representing compression levels which are an argument\n      for Zlib::Deflate.new, Zlib::Deflate#deflate, and so on.\n\n  Zlib::FILTERED\n  Zlib::HUFFMAN_ONLY\n  Zlib::DEFAULT_STRATEGY\n      The integers representing compression methods which are an argument\n      for Zlib::Deflate.new and Zlib::Deflate#params.\n\n  Zlib::DEF_MEM_LEVEL\n  Zlib::MAX_MEM_LEVEL\n      The integers representing memory levels which are an argument for\n      Zlib::Deflate.new, Zlib::Deflate#params, and so on.\n\n  Zlib::MAX_WBITS\n      The default value of windowBits which is an argument for\n      Zlib::Deflate.new and Zlib::Inflate.new.\n\n  Zlib::NO_FLUSH\n  Zlib::SYNC_FLUSH\n  Zlib::FULL_FLUSH\n  Zlib::FINISH\n      The integers to control the output of the deflate stream, which are\n      an argument for Zlib::Deflate#deflate and so on.\n\n  Zlib::OS_CODE\n  Zlib::OS_MSDOS\n  Zlib::OS_AMIGA\n  Zlib::OS_VMS\n  Zlib::OS_UNIX\n  Zlib::OS_VMCMS\n  Zlib::OS_ATARI\n  Zlib::OS_OS2\n  Zlib::OS_MACOS\n  Zlib::OS_ZSYSTEM\n  Zlib::OS_CPM\n  Zlib::OS_TOPS20\n  Zlib::OS_WIN32\n  Zlib::OS_QDOS\n  Zlib::OS_RISCOS\n  Zlib::OS_UNKNOWN\n      The return values of Zlib::GzipFile#os_code method.\n"
constants: []

full_name: Zlib::StreamError
includes: []

instance_methods: []

name: StreamError
superclass: Zlib::Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: adler32
- !ruby/object:RI::MethodSummary 
  name: crc32
- !ruby/object:RI::MethodSummary 
  name: crc_table
- !ruby/object:RI::MethodSummary 
  name: zlib_version
comment: 
- !ruby/struct:SM::Flow::P 
  body: GZIP_SUPPORT
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: rb_str_new2(RUBY_ZLIB_VERSION)
- !ruby/object:RI::Constant 
  comment: 
  name: ZLIB_VERSION
  value: rb_str_new2(ZLIB_VERSION)
- !ruby/object:RI::Constant 
  comment: 
  name: BINARY
  value: INT2FIX(Z_BINARY)
- !ruby/object:RI::Constant 
  comment: 
  name: ASCII
  value: INT2FIX(Z_ASCII)
- !ruby/object:RI::Constant 
  comment: 
  name: UNKNOWN
  value: INT2FIX(Z_UNKNOWN)
- !ruby/object:RI::Constant 
  comment: 
  name: NO_COMPRESSION
  value: INT2FIX(Z_NO_COMPRESSION)
- !ruby/object:RI::Constant 
  comment: 
  name: BEST_SPEED
  value: INT2FIX(Z_BEST_SPEED)
- !ruby/object:RI::Constant 
  comment: 
  name: BEST_COMPRESSION
  value: INT2FIX(Z_BEST_COMPRESSION)
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_COMPRESSION
  value: INT2FIX(Z_DEFAULT_COMPRESSION)
- !ruby/object:RI::Constant 
  comment: 
  name: FILTERED
  value: INT2FIX(Z_FILTERED)
- !ruby/object:RI::Constant 
  comment: 
  name: HUFFMAN_ONLY
  value: INT2FIX(Z_HUFFMAN_ONLY)
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_STRATEGY
  value: INT2FIX(Z_DEFAULT_STRATEGY)
- !ruby/object:RI::Constant 
  comment: 
  name: MAX_WBITS
  value: INT2FIX(MAX_WBITS)
- !ruby/object:RI::Constant 
  comment: 
  name: DEF_MEM_LEVEL
  value: INT2FIX(DEF_MEM_LEVEL)
- !ruby/object:RI::Constant 
  comment: 
  name: MAX_MEM_LEVEL
  value: INT2FIX(MAX_MEM_LEVEL)
- !ruby/object:RI::Constant 
  comment: 
  name: NO_FLUSH
  value: INT2FIX(Z_NO_FLUSH)
- !ruby/object:RI::Constant 
  comment: 
  name: SYNC_FLUSH
  value: INT2FIX(Z_SYNC_FLUSH)
- !ruby/object:RI::Constant 
  comment: 
  name: FULL_FLUSH
  value: INT2FIX(Z_FULL_FLUSH)
- !ruby/object:RI::Constant 
  comment: 
  name: FINISH
  value: INT2FIX(Z_FINISH)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_CODE
  value: INT2FIX(OS_CODE)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_MSDOS
  value: INT2FIX(OS_MSDOS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_AMIGA
  value: INT2FIX(OS_AMIGA)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_VMS
  value: INT2FIX(OS_VMS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_UNIX
  value: INT2FIX(OS_UNIX)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_ATARI
  value: INT2FIX(OS_ATARI)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_OS2
  value: INT2FIX(OS_OS2)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_MACOS
  value: INT2FIX(OS_MACOS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_TOPS20
  value: INT2FIX(OS_TOPS20)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_WIN32
  value: INT2FIX(OS_WIN32)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_VMCMS
  value: INT2FIX(OS_VMCMS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_ZSYSTEM
  value: INT2FIX(OS_ZSYSTEM)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_CPM
  value: INT2FIX(OS_CPM)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_QDOS
  value: INT2FIX(OS_QDOS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_RISCOS
  value: INT2FIX(OS_RISCOS)
- !ruby/object:RI::Constant 
  comment: 
  name: OS_UNKNOWN
  value: INT2FIX(OS_UNKNOWN)
full_name: Zlib
includes: []

instance_methods: []

name: Zlib
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The read portion of an IO#readbytes attempt.
  name: data
  rw: R
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: TruncatedDataError is raised when IO#readbytes fails to read enough data.
constants: []

full_name: TruncatedDataError
includes: []

instance_methods: []

name: TruncatedDataError
superclass: IOError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: TimeExtentionTest
includes: []

instance_methods: []

name: TimeExtentionTest
superclass: Test::Unit::TestCase
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Open3 grants you access to stdin, stdout, and stderr when running another program. Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;open3&quot;\n  include Open3\n\n  stdin, stdout, stderr = popen3('nroff -man')\n"
- !ruby/struct:SM::Flow::P 
  body: "Open3.popen3 can also take a block which will receive stdin, stdout and stderr as parameters. This ensures stdin, stdout and stderr are closed once the block exits. Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;open3&quot;\n\n  Open3.popen3('nroff -man') { |stdin, stdout, stderr| ... }\n"
constants: []

full_name: Open3
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: popen3
name: Open3
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Open stdin, stdout, and stderr streams and start external executable. Non-block form:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'open3'\n\n  stdin, stdout, stderr = Open3.popen3(cmd)\n"
- !ruby/struct:SM::Flow::P 
  body: "Block form:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'open3'\n\n  Open3.popen3(cmd) { |stdin, stdout, stderr| ... }\n"
- !ruby/struct:SM::Flow::P 
  body: The parameter <tt>cmd</tt> is passed directly to Kernel#exec.
- !ruby/struct:SM::Flow::P 
  body: _popen3_ is like <em>system</em> in that you can pass extra parameters, and the strings won't be mangled by shell expansion.
- !ruby/struct:SM::Flow::VERB 
  body: "  stdin, stdout, stderr = Open3.popen3('identify', '/weird path/with spaces/and &quot;strange&quot; characters.jpg')\n  result = stdout.read\n"
full_name: Open3#popen3
is_singleton: false
name: popen3
params: (*cmd) {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raised by Timeout#timeout when the block times out.
constants: []

full_name: Timeout::Error
includes: []

instance_methods: []

name: Error
superclass: Interrupt
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Description
- !ruby/struct:SM::Flow::P 
  body: A way of performing a potentially long-running operation in a thread, and terminating it's execution if it hasn't finished within fixed amount of time.
- !ruby/struct:SM::Flow::P 
  body: "Previous versions of timeout didn't use a module for namespace. This version provides both Timeout.timeout, and a backwards-compatible #timeout."
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Synopsis
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'timeout'\n  status = Timeout::timeout(5) {\n    # Something that should be interrupted if it takes too much time...\n  }\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: THIS_FILE
  value: /\A#{Regexp.quote(__FILE__)}:/o
- !ruby/object:RI::Constant 
  comment: 
  name: CALLER_OFFSET
  value: "((c = caller[0]) && THIS_FILE =~ c) ? 1 : 0"
full_name: Timeout
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: timeout
name: Timeout
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: if sec == nil or sec.zero?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes the method's block. If the block execution terminates before <tt>sec</tt> seconds has passed, it returns true. If not, it terminates the execution and raises <tt>exception</tt> (which defaults to Timeout::Error).
- !ruby/struct:SM::Flow::P 
  body: "Note that this is both a method of module Timeout, so you can 'include Timeout' into your classes so they have a #timeout method, as well as a module method, so you can call it directly as Timeout.timeout()."
full_name: Timeout#timeout
is_singleton: false
name: timeout
params: (sec, klass = nil) {|if sec == nil or sec.zero?| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Timeout::ExitException
includes: []

instance_methods: []

name: ExitException
superclass: "::Exception"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of threads waiting on the queue.
full_name: SizedQueue#num_waiting
is_singleton: false
name: num_waiting
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the maximum size of the queue.
full_name: SizedQueue#max
is_singleton: false
name: max
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
- !ruby/object:RI::AliasName 
  name: enq
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pushes <tt>obj</tt> to the queue. If there is no space left in the queue, waits until space becomes available.
full_name: SizedQueue#push
is_singleton: false
name: push
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: shift
- !ruby/object:RI::AliasName 
  name: deq
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves data from the queue and runs a waiting thread, if any.
full_name: SizedQueue#pop
is_singleton: false
name: pop
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the maximum size of the queue.
full_name: SizedQueue#max=
is_singleton: false
name: max=
params: (max)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: SizedQueue#shift
is_singleton: false
name: shift
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a fixed-length queue with a maximum size of <tt>max</tt>.
full_name: SizedQueue::new
is_singleton: true
name: new
params: (max)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #push"
full_name: SizedQueue#enq
is_singleton: false
name: enq
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #push"
full_name: SizedQueue#<<
is_singleton: false
name: "<<"
params: (obj)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class represents queues of specified size capacity. The push operation may be blocked if the capacity is full.
- !ruby/struct:SM::Flow::P 
  body: See Queue for an example of how a SizedQueue works.
constants: []

full_name: SizedQueue
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: deq
- !ruby/object:RI::MethodSummary 
  name: enq
- !ruby/object:RI::MethodSummary 
  name: max
- !ruby/object:RI::MethodSummary 
  name: max=
- !ruby/object:RI::MethodSummary 
  name: num_waiting
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: shift
name: SizedQueue
superclass: Queue
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: SizedQueue#deq
is_singleton: false
name: deq
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: RangeError
includes: []

instance_methods: []

name: RangeError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A paging display module. Uses the ri_formatter class to do the actual presentation
constants: []

full_name: DefaultDisplay
includes: 
- !ruby/object:RI::IncludedModule 
  name: RiDisplay
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: display_class_info
- !ruby/object:RI::MethodSummary 
  name: display_class_list
- !ruby/object:RI::MethodSummary 
  name: display_flow
- !ruby/object:RI::MethodSummary 
  name: display_method_info
- !ruby/object:RI::MethodSummary 
  name: display_method_list
- !ruby/object:RI::MethodSummary 
  name: display_params
- !ruby/object:RI::MethodSummary 
  name: display_usage
- !ruby/object:RI::MethodSummary 
  name: list_known_classes
- !ruby/object:RI::MethodSummary 
  name: list_known_names
- !ruby/object:RI::MethodSummary 
  name: page
- !ruby/object:RI::MethodSummary 
  name: setup_pager
- !ruby/object:RI::MethodSummary 
  name: warn_no_database
name: DefaultDisplay
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#warn_no_database
is_singleton: false
name: warn_no_database
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Display a list of method names
full_name: DefaultDisplay#display_method_list
is_singleton: false
name: display_method_list
params: (methods)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#list_known_names
is_singleton: false
name: list_known_names
params: (names)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#list_known_classes
is_singleton: false
name: list_known_classes
params: (classes)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_params
is_singleton: false
name: display_params
params: (method)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DefaultDisplay::new
is_singleton: true
name: new
params: (options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_method_info
is_singleton: false
name: display_method_info
params: (method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_class_info
is_singleton: false
name: display_class_info
params: (klass, ri_reader)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: unless pager = setup_pager
comment: []

full_name: DefaultDisplay#page
is_singleton: false
name: page
params: () {|unless pager = setup_pager| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_flow
is_singleton: false
name: display_flow
params: (flow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_usage
is_singleton: false
name: display_usage
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#setup_pager
is_singleton: false
name: setup_pager
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: DefaultDisplay#display_class_list
is_singleton: false
name: display_class_list
params: (namespaces)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XMLEncoding_ja
includes: []

instance_methods: []

name: XMLEncoding_ja
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XMLEncoding_ja::SJISHandler
includes: 
- !ruby/object:RI::IncludedModule 
  name: Kconv
instance_methods: []

name: SJISHandler
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #-"
full_name: Set#difference
is_singleton: false
name: difference
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: length
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements.
full_name: Set#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts the set to an array. The order of elements is uncertain.
full_name: Set#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "<<"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the given object to the set and returns self. Use <tt>merge</tt> to add several elements at once.
full_name: Set#add
is_singleton: false
name: add
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set is a proper subset of the given set.
full_name: Set#proper_subset?
is_singleton: false
name: proper_subset?
params: (set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: intersection
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new set containing elements common to the set and the given enumerable object.
full_name: Set#&
is_singleton: false
name: "&"
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #|"
full_name: Set#union
is_singleton: false
name: union
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the contents of the set with the contents of the given enumerable object and returns self.
full_name: Set#replace
is_singleton: false
name: replace
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes all elements and returns self.
full_name: Set#clear
is_singleton: false
name: clear
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: member?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set contains the given object.
full_name: Set#include?
is_singleton: false
name: include?
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if two sets are equal. The equality of each couple of elements is defined according to Object#eql?.
full_name: Set#==
is_singleton: false
name: ==
params: (set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Divides the set into a set of subsets according to the commonality defined by the given block.
- !ruby/struct:SM::Flow::P 
  body: If the arity of the block is 2, elements o1 and o2 are in common if block.call(o1, o2) is true. Otherwise, elements o1 and o2 are in common if block.call(o1) == block.call(o2).
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'set'\n  numbers = Set[1, 3, 4, 6, 9, 10, 11]\n  set = numbers.divide { |i,j| (i - j).abs == 1 }\n  p set     # =&gt; #&lt;Set: {#&lt;Set: {1}&gt;,\n            #            #&lt;Set: {11, 9, 10}&gt;,\n            #            #&lt;Set: {3, 4}&gt;,\n            #            #&lt;Set: {6}&gt;}&gt;\n"
full_name: Set#divide
is_singleton: false
name: divide
params: (&func)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a string containing a human-readable representation of the set. (&quot;#&lt;Set: {element1, element2, ...}&gt;&quot;)"
full_name: Set#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Copy internal hash.
full_name: Set#initialize_copy
is_singleton: false
name: initialize_copy
params: (orig)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set is a subset of the given set.
full_name: Set#subset?
is_singleton: false
name: subset?
params: (set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #&amp;"
full_name: Set#intersection
is_singleton: false
name: intersection
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new set containing elements exclusive between the set and the given enumerable object. (set ^ enum) is equivalent to ((set | enum) - (set &amp; enum)).
full_name: Set#^
is_singleton: false
name: ^
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #collect!"
full_name: Set#map!
is_singleton: false
name: map!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (o)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes every element of the set for which block evaluates to true, and returns self.
full_name: Set#delete_if
is_singleton: false
name: delete_if
params: () {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set contains no elements.
full_name: Set#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: o
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new set containing the elements of the given enumerable object.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, the elements of enum are preprocessed by the given block.
full_name: Set::new
is_singleton: true
name: new
params: (enum = nil) {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (o)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to Set#delete_if, but returns nil if no changes were made.
full_name: Set#reject!
is_singleton: false
name: reject!
params: () {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new set containing the given objects.
full_name: Set::[]
is_singleton: true
name: "[]"
params: (*ary)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Merges the elements of the given enumerable object to the set and returns self.
full_name: Set#merge
is_singleton: false
name: merge
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #include?"
full_name: Set#member?
is_singleton: false
name: member?
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #size"
full_name: Set#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set is a proper superset of the given set.
full_name: Set#proper_superset?
is_singleton: false
name: proper_superset?
params: (set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the given object from the set and returns self. Use <tt>subtract</tt> to delete several items at once.
full_name: Set#delete
is_singleton: false
name: delete
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (o)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the given block once for each element in the set, passing the element as parameter. Returns an enumerator if no block is given.
full_name: Set#each
is_singleton: false
name: each
params: () {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: map!
block_params: (o)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Do collect() destructively.
full_name: Set#collect!
is_singleton: false
name: collect!
params: () {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: o
comment: 
- !ruby/struct:SM::Flow::P 
  body: Classifies the set by the return value of the given block and returns a hash of {value =&gt; set of elements} pairs. The block is called once for each element of the set, passing the element as parameter.
- !ruby/struct:SM::Flow::P 
  body: "e.g.:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'set'\n  files = Set.new(Dir.glob(&quot;*.rb&quot;))\n  hash = files.classify { |f| File.mtime(f).year }\n  p hash    # =&gt; {2000=&gt;#&lt;Set: {&quot;a.rb&quot;, &quot;b.rb&quot;}&gt;,\n            #     2001=&gt;#&lt;Set: {&quot;c.rb&quot;, &quot;d.rb&quot;, &quot;e.rb&quot;}&gt;,\n            #     2002=&gt;#&lt;Set: {&quot;f.rb&quot;}&gt;}\n"
full_name: Set#classify
is_singleton: false
name: classify
params: ( {|o| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new set that is a copy of the set, flattening each containing set recursively.
full_name: Set#flatten
is_singleton: false
name: flatten
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #|"
full_name: Set#+
is_singleton: false
name: +
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: +
- !ruby/object:RI::AliasName 
  name: union
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new set built by merging the set and the elements of the given enumerable object.
full_name: Set#|
is_singleton: false
name: "|"
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Set#flatten_merge
is_singleton: false
name: flatten_merge
params: (set, seen = Set.new)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #add"
full_name: Set#<<
is_singleton: false
name: "<<"
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: difference
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new set built by duplicating the set, removing every element that appears in the given enumerable object.
full_name: Set#-
is_singleton: false
name: "-"
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the given object to the set and returns self. If the object is already in the set, returns nil.
full_name: Set#add?
is_singleton: false
name: add?
params: (o)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes every element that appears in the given enumerable object and returns self.
full_name: Set#subtract
is_singleton: false
name: subtract
params: (enum)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes the given object from the set and returns self. If the object is not in the set, returns nil.
full_name: Set#delete?
is_singleton: false
name: delete?
params: (o)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set implements a collection of unordered values with no duplicates. This is a hybrid of Array's intuitive inter-operation facilities and Hash's fast lookup.
- !ruby/struct:SM::Flow::P 
  body: "Several methods accept any Enumerable object (implementing <tt>each</tt>) for greater flexibility: new, replace, merge, subtract, |, &amp;, -, ^."
- !ruby/struct:SM::Flow::P 
  body: The equality of each couple of elements is determined according to Object#eql? and Object#hash, since Set uses Hash as storage.
- !ruby/struct:SM::Flow::P 
  body: Finally, if you are using class Set, you can also use Enumerable#to_set for convenience.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'set'\n  s1 = Set.new [1, 2]                   # -&gt; #&lt;Set: {1, 2}&gt;\n  s2 = [1, 2].to_set                    # -&gt; #&lt;Set: {1, 2}&gt;\n  s1 == s2                              # -&gt; true\n  s1.add(&quot;foo&quot;)                         # -&gt; #&lt;Set: {1, 2, &quot;foo&quot;}&gt;\n  s1.merge([2, 6])                      # -&gt; #&lt;Set: {6, 1, 2, &quot;foo&quot;}&gt;\n  s1.subset? s2                         # -&gt; false\n  s2.subset? s1                         # -&gt; true\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Contact
- !ruby/struct:SM::Flow::VERB 
  body: "  - Akinori MUSHA &lt;knu@iDaemons.org&gt; (current maintainer)\n"
constants: []

full_name: Set
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: add?
- !ruby/object:RI::MethodSummary 
  name: classify
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: collect!
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete?
- !ruby/object:RI::MethodSummary 
  name: delete_if
- !ruby/object:RI::MethodSummary 
  name: difference
- !ruby/object:RI::MethodSummary 
  name: divide
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: flatten
- !ruby/object:RI::MethodSummary 
  name: flatten!
- !ruby/object:RI::MethodSummary 
  name: flatten_merge
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: intersection
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: map!
- !ruby/object:RI::MethodSummary 
  name: member?
- !ruby/object:RI::MethodSummary 
  name: merge
- !ruby/object:RI::MethodSummary 
  name: proper_subset?
- !ruby/object:RI::MethodSummary 
  name: proper_superset?
- !ruby/object:RI::MethodSummary 
  name: reject!
- !ruby/object:RI::MethodSummary 
  name: replace
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: subset?
- !ruby/object:RI::MethodSummary 
  name: subtract
- !ruby/object:RI::MethodSummary 
  name: superset?
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: union
- !ruby/object:RI::MethodSummary 
  name: "|"
name: Set
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the set is a superset of the given set.
full_name: Set#superset?
is_singleton: false
name: superset?
params: (set)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to Set#flatten, but replaces the receiver with the result in place. Returns nil if no modifications were made.
full_name: Set#flatten!
is_singleton: false
name: flatten!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a TCP connection to <tt>remote_host</tt> on <tt>remote_port</tt>. If <tt>local_host</tt> and <tt>local_port</tt> are specified, then those parameters are used on the local end to establish the connection.
full_name: TCPSocket::new
is_singleton: true
name: new
params: |
  TCPSocket.new(remote_host, remote_port, local_host=nil, local_port=nil)

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: gethostbyname
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: TCPSocket
includes: []

instance_methods: []

name: TCPSocket
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resolve <tt>host</tt> and return name and address information for it, similarly to gethostbyname(3). <tt>host</tt> can be a domain name or the presentation format of an address.
- !ruby/struct:SM::Flow::P 
  body: "Returns an array of information similar to that found in a +struct hostent+:"
- !ruby/struct:SM::Flow::VERB 
  body: "  - cannonical name: the cannonical name for host in the DNS, or a\n    string representing the address\n  - aliases: an array of aliases for the canonical name, there may be no aliases\n  - address family: usually one of Socket::AF_INET or Socket::AF_INET6\n  - address: a string, the binary value of the +struct sockaddr+ for this name, in\n    the indicated address family\n  - ...: if there are multiple addresses for this host,  a series of\n    strings/+struct sockaddr+s may follow, not all necessarily in the same\n    address family. Note that the fact that they may not be all in the same\n    address family is a departure from the behaviour of gethostbyname(3).\n"
- !ruby/struct:SM::Flow::P 
  body: "Note: I believe that the fact that the multiple addresses returned are not necessarily in the same address family may be a bug, since if this function actually called gethostbyname(3), ALL the addresses returned in the trailing address list (h_addr_list from struct hostent) would be of the same address family! Examples from my system, OS X 10.3:"
- !ruby/struct:SM::Flow::VERB 
  body: "  [&quot;localhost&quot;, [], 30, &quot;\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\001&quot;, &quot;\\177\\000\\000\\001&quot;]\n    and\n  [&quot;ensemble.local&quot;, [], 30, &quot;\\376\\200\\000\\004\\000\\000\\000\\000\\002\\003\\223\\377\\376\\255\\010\\214&quot;, &quot;\\300\\250{\\232&quot; ]\n"
- !ruby/struct:SM::Flow::P 
  body: "Similar information can be returned by Socket.getaddrinfo if called as:"
- !ruby/struct:SM::Flow::VERB 
  body: "   Socket.getaddrinfo(<tt>host</tt>, 0, Socket::AF_UNSPEC, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::VERB 
  body: "  Socket.gethostbyname &quot;example.com&quot;\n  =&gt; [&quot;example.com&quot;, [], 2, &quot;\\300\\000\\&quot;\\246&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: This name has no DNS aliases, and a single IPv4 address.
- !ruby/struct:SM::Flow::VERB 
  body: "  Socket.gethostbyname &quot;smtp.telus.net&quot;\n  =&gt; [&quot;smtp.svc.telus.net&quot;, [&quot;smtp.telus.net&quot;], 2, &quot;\\307\\271\\334\\371&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: This name is an an alias so the canonical name is returned, as well as the alias and a single IPv4 address.
- !ruby/struct:SM::Flow::VERB 
  body: "  Socket.gethostbyname &quot;localhost&quot;\n  =&gt; [&quot;localhost&quot;, [], 30, &quot;\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\001&quot;, &quot;\\177\\000\\000\\001&quot;]\n"
- !ruby/struct:SM::Flow::P 
  body: This machine has no aliases, returns an IPv6 address, and has an additional IPv4 address.
- !ruby/struct:SM::Flow::P 
  body: "<tt>host</tt> can also be an IP address in presentation format, in which case a reverse lookup is done on the address:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Socket.gethostbyname(&quot;127.0.0.1&quot;)\n  =&gt; [&quot;localhost&quot;, [], 2, &quot;\\177\\000\\000\\001&quot;]\n\n  Socket.gethostbyname(&quot;192.0.34.166&quot;)\n  =&gt; [&quot;www.example.com&quot;, [], 2, &quot;\\300\\000\\&quot;\\246&quot;]\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: See
- !ruby/struct:SM::Flow::P 
  body: "See: Socket.getaddrinfo"
full_name: TCPSocket::gethostbyname
is_singleton: true
name: gethostbyname
params: " Socket.gethostbyname(host) => hostent\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Numeric#divmod</tt>.
full_name: Fixnum#divmod
is_singleton: false
name: divmod
params: |
  fix.divmod(numeric)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bit Reference---Returns the <em>n</em>th bit in the binary representation of <em>fix</em>, where <em>fix</em>[0] is the least significant bit.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = 0b11001100101010\n   30.downto(0) do |n| print a[n] end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   0000000000000000011001100101010\n"
full_name: Fixnum#[]
is_singleton: false
name: "[]"
params: |
  fix[n]     => 0, 1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the value of <tt>fix</tt> is less thanor equal to that of <tt>other</tt>.
full_name: Fixnum#<=
is_singleton: false
name: <=
params: |
  fix <= other     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>fix</em> is an odd number.
full_name: Fixnum#odd?
is_singleton: false
name: odd?
params: |
  fix.odd? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the floating point result of dividing <em>fix</em> by <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   654321.quo(13731)      #=&gt; 47.6528293642124\n   654321.quo(13731.24)   #=&gt; 47.6519964693647\n"
full_name: Fixnum#fdiv
is_singleton: false
name: fdiv
params: |
  fix.quo(numeric)    => float
  fix.fdiv(numeric)   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of <em>bytes</em> in the machine representation of a <tt>Fixnum</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.size            #=&gt; 4\n   -1.size           #=&gt; 4\n   2147483647.size   #=&gt; 4\n"
full_name: Fixnum#size
is_singleton: false
name: size
params: |
  fix.size -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "One's complement: returns a number where each bit is flipped."
full_name: Fixnum#~
is_singleton: false
name: "~"
params: |
  ~fix     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Negates <tt>fix</tt> (which might return a Bignum).
full_name: Fixnum#-@
is_singleton: false
name: -@
params: |
  -fix   =>  integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bitwise AND.
full_name: Fixnum#&
is_singleton: false
name: "&"
params: |
  fix & other     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comparison---Returns -1, 0, or +1 depending on whether <em>fix</em> is less than, equal to, or greater than <em>numeric</em>. This is the basis for the tests in <tt>Comparable</tt>.
full_name: Fixnum#<=>
is_singleton: false
name: <=>
params: |
  fix <=> numeric    => -1, 0, +1

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #quo"
full_name: Fixnum#rdiv
is_singleton: false
name: rdiv
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if <tt>fix</tt> equals <tt>other</tt> numerically.
- !ruby/struct:SM::Flow::VERB 
  body: "  1 == 2      #=&gt; false\n  1 == 1.0    #=&gt; true\n"
full_name: Fixnum#==
is_singleton: false
name: ==
params: |
  fix == other

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the value of <tt>fix</tt> is less than that of <tt>other</tt>.
full_name: Fixnum#<
is_singleton: false
name: <
params: |
  fix < other     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shifts <em>fix</em> right <em>count</em> positions (left if <em>count</em> is negative).
full_name: Fixnum#>>
is_singleton: false
name: ">>"
params: |
  fix >> count     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Performs multiplication: the class of the resulting object depends on the class of <tt>numeric</tt> and on the magnitude of the result."
full_name: Fixnum#*
is_singleton: false
name: "*"
params: |
  fix * numeric   =>  numeric_result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Performs division: the class of the resulting object depends on the class of <tt>numeric</tt> and on the magnitude of the result."
full_name: Fixnum#div
is_singleton: false
name: div
params: |
  fix / numeric      =>  numeric_result
  fix.div(numeric)   =>  numeric_result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #**"
full_name: Fixnum#power!
is_singleton: false
name: power!
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bitwise EXCLUSIVE OR.
full_name: Fixnum#^
is_singleton: false
name: ^
params: |
  fix ^ other     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #rpower"
full_name: Fixnum#**
is_singleton: false
name: "**"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>fix</tt> modulo <tt>other</tt>. See <tt>Numeric.divmod</tt> for more information.
full_name: Fixnum#modulo
is_singleton: false
name: modulo
params: |
  fix % other         => Numeric
  fix.modulo(other)   => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>fix</tt> modulo <tt>other</tt>. See <tt>Numeric.divmod</tt> for more information.
full_name: Fixnum#%
is_singleton: false
name: "%"
params: |
  fix % other         => Numeric
  fix.modulo(other)   => Numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: "**"
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a Rational number if the result is in fact rational (i.e. <tt>other</tt> &lt; 0).
full_name: Fixnum#rpower
is_singleton: false
name: rpower
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Fixnum#dclone
is_singleton: false
name: dclone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the representation of <em>fix</em> radix <em>base</em> (between 2 and 36).
- !ruby/struct:SM::Flow::VERB 
  body: "   12345.to_s       #=&gt; &quot;12345&quot;\n   12345.to_s(2)    #=&gt; &quot;11000000111001&quot;\n   12345.to_s(8)    #=&gt; &quot;30071&quot;\n   12345.to_s(10)   #=&gt; &quot;12345&quot;\n   12345.to_s(16)   #=&gt; &quot;3039&quot;\n   12345.to_s(36)   #=&gt; &quot;9ix&quot;\n"
full_name: Fixnum#to_s
is_singleton: false
name: to_s
params: |
  fix.to_s( base=10 ) -> aString

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value of <em>fix</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   -12345.abs   #=&gt; 12345\n   12345.abs    #=&gt; 12345\n"
full_name: Fixnum#abs
is_singleton: false
name: abs
params: |
  fix.abs -> aFixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: /
- !ruby/object:RI::AliasName 
  name: rdiv
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the floating point result of dividing <em>fix</em> by <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   654321.quo(13731)      #=&gt; 47.6528293642124\n   654321.quo(13731.24)   #=&gt; 47.6519964693647\n"
full_name: Fixnum#quo
is_singleton: false
name: quo
params: |
  fix.quo(numeric)    => float
  fix.fdiv(numeric)   => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #quo"
full_name: Fixnum#/
is_singleton: false
name: /
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Performs addition: the class of the resulting object depends on the class of <tt>numeric</tt> and on the magnitude of the result."
full_name: Fixnum#+
is_singleton: false
name: +
params: |
  fix + numeric   =>  numeric_result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bitwise OR.
full_name: Fixnum#|
is_singleton: false
name: "|"
params: |
  fix | other     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shifts <em>fix</em> left <em>count</em> positions (right if <em>count</em> is negative).
full_name: Fixnum#<<
is_singleton: false
name: "<<"
params: |
  fix << count     => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Performs subtraction: the class of the resulting object depends on the class of <tt>numeric</tt> and on the magnitude of the result."
full_name: Fixnum#-
is_singleton: false
name: "-"
params: |
  fix - numeric   =>  numeric_result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>fix</em> is an even number.
full_name: Fixnum#even?
is_singleton: false
name: even?
params: |
  fix.even? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the object whose symbol id is <em>fix</em>. If there is no symbol in the symbol table with this value, returns <tt>nil</tt>. <tt>id2name</tt> has nothing to do with the <tt>Object.id</tt> method. See also <tt>Fixnum#to_sym</tt>, <tt>String#intern</tt>, and class <tt>Symbol</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   symbol = :@inst_var    #=&gt; :@inst_var\n   id     = symbol.to_i   #=&gt; 9818\n   id.id2name             #=&gt; &quot;@inst_var&quot;\n"
full_name: Fixnum#id2name
is_singleton: false
name: id2name
params: |
  fix.id2name -> string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the symbol whose integer value is <em>fix</em>. See also <tt>Fixnum#id2name</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   fred = :fred.to_i\n   fred.id2name   #=&gt; &quot;fred&quot;\n   fred.to_sym    #=&gt; :fred\n"
full_name: Fixnum#to_sym
is_singleton: false
name: to_sym
params: |
  fix.to_sym -> aSymbol

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the value of <tt>fix</tt> is greater than that of <tt>other</tt>.
full_name: Fixnum#>
is_singleton: false
name: ">"
params: |
  fix > other     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>fix</em> to a <tt>Float</tt>.
full_name: Fixnum#to_f
is_singleton: false
name: to_f
params: |
  fix.to_f -> float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the value of <tt>fix</tt> is greater than or equal to that of <tt>other</tt>.
full_name: Fixnum#>=
is_singleton: false
name: ">="
params: |
  fix >= other     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>fix</em> is zero.
full_name: Fixnum#zero?
is_singleton: false
name: zero?
params: |
  fix.zero?    => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: induced_from
comment: 
- !ruby/struct:SM::Flow::P 
  body: A <tt>Fixnum</tt> holds <tt>Integer</tt> values that can be represented in a native machine word (minus 1 bit). If any operation on a <tt>Fixnum</tt> exceeds this range, the value is automatically converted to a <tt>Bignum</tt>.
- !ruby/struct:SM::Flow::P 
  body: <tt>Fixnum</tt> objects have immediate value. This means that when they are assigned or passed as parameters, the actual object is passed, rather than a reference to that object. Assignment does not alias <tt>Fixnum</tt> objects. There is effectively only one <tt>Fixnum</tt> object instance for any given integer value, so, for example, you cannot add a singleton method to a <tt>Fixnum</tt>.
constants: []

full_name: Fixnum
includes: 
- !ruby/object:RI::IncludedModule 
  name: Precision
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: -@
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: <
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: <=
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ">"
- !ruby/object:RI::MethodSummary 
  name: ">="
- !ruby/object:RI::MethodSummary 
  name: ">>"
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: dclone
- !ruby/object:RI::MethodSummary 
  name: div
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: even?
- !ruby/object:RI::MethodSummary 
  name: fdiv
- !ruby/object:RI::MethodSummary 
  name: id2name
- !ruby/object:RI::MethodSummary 
  name: modulo
- !ruby/object:RI::MethodSummary 
  name: odd?
- !ruby/object:RI::MethodSummary 
  name: power!
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: rdiv
- !ruby/object:RI::MethodSummary 
  name: rpower
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_sym
- !ruby/object:RI::MethodSummary 
  name: zero?
- !ruby/object:RI::MethodSummary 
  name: "|"
- !ruby/object:RI::MethodSummary 
  name: "~"
name: Fixnum
superclass: Integer
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert <tt>obj</tt> to a Fixnum. Works with numeric parameters. Also works with Symbols, but this is deprecated.
full_name: Fixnum::induced_from
is_singleton: true
name: induced_from
params: |
  Fixnum.induced_from(obj)    =>  fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Part of the protocol for converting objects to <tt>Proc</tt> objects. Instances of class <tt>Proc</tt> simply return themselves.
full_name: Proc#to_proc
is_singleton: false
name: to_proc
params: |
  prc.to_proc -> prc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block, setting the block's parameters to the values in <em>params</em> using something close to method calling semantics. Generates a warning if multiple values are passed to a proc that expects just one (previously this silently converted the parameters to an array).
- !ruby/struct:SM::Flow::P 
  body: For procs created using <tt>Kernel.proc</tt>, generates an error if the wrong number of parameters are passed to a proc with multiple parameters. For procs created using <tt>Proc.new</tt>, extra parameters are silently discarded.
- !ruby/struct:SM::Flow::P 
  body: Returns the value of the last expression evaluated in the block. See also <tt>Proc#yield</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a_proc = Proc.new {|a, *b| b.collect {|i| i*a }}\n   a_proc.call(9, 1, 2, 3)   #=&gt; [9, 18, 27]\n   a_proc[9, 1, 2, 3]        #=&gt; [9, 18, 27]\n   a_proc = Proc.new {|a,b| a}\n   a_proc.call(1,2,3)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:5: wrong number of arguments (3 for 2) (ArgumentError)\n    from prog.rb:4:in `call'\n    from prog.rb:5\n"
full_name: Proc#[]
is_singleton: false
name: "[]"
params: |
  prc.call(params,...)   => obj
  prc[params,...]        => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if <em>prc</em> is the same object as <em>other_proc</em>, or if they are both procs with the same body.
full_name: Proc#==
is_singleton: false
name: ==
params: |
  prc == other_proc   =>  true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: Proc#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Proc</tt> objects are blocks of code that have been bound to a set of local variables. Once bound, the code may be called in different contexts and still access those variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   def gen_times(factor)\n     return Proc.new {|n| n*factor }\n   end\n\n   times3 = gen_times(3)\n   times5 = gen_times(5)\n\n   times3.call(12)               #=&gt; 36\n   times5.call(5)                #=&gt; 25\n   times3.call(times5.call(4))   #=&gt; 60\n"
constants: []

full_name: Proc
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: arity
- !ruby/object:RI::MethodSummary 
  name: binding
- !ruby/object:RI::MethodSummary 
  name: call
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: to_proc
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Proc
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block, setting the block's parameters to the values in <em>params</em> using something close to method calling semantics. Generates a warning if multiple values are passed to a proc that expects just one (previously this silently converted the parameters to an array).
- !ruby/struct:SM::Flow::P 
  body: For procs created using <tt>Kernel.proc</tt>, generates an error if the wrong number of parameters are passed to a proc with multiple parameters. For procs created using <tt>Proc.new</tt>, extra parameters are silently discarded.
- !ruby/struct:SM::Flow::P 
  body: Returns the value of the last expression evaluated in the block. See also <tt>Proc#yield</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a_proc = Proc.new {|a, *b| b.collect {|i| i*a }}\n   a_proc.call(9, 1, 2, 3)   #=&gt; [9, 18, 27]\n   a_proc[9, 1, 2, 3]        #=&gt; [9, 18, 27]\n   a_proc = Proc.new {|a,b| a}\n   a_proc.call(1,2,3)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:5: wrong number of arguments (3 for 2) (ArgumentError)\n    from prog.rb:4:in `call'\n    from prog.rb:5\n"
full_name: Proc#call
is_singleton: false
name: call
params: |
  prc.call(params,...)   => obj
  prc[params,...]        => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of arguments that would not be ignored. If the block is declared to take no arguments, returns 0. If the block is known to take exactly n arguments, returns n. If the block has optional arguments, return -n-1, where n is the number of mandatory arguments. A <tt>proc</tt> with no argument declarations is the same a block declaring <tt>||</tt> as its arguments.
- !ruby/struct:SM::Flow::VERB 
  body: "   Proc.new {}.arity          #=&gt;  0\n   Proc.new {||}.arity        #=&gt;  0\n   Proc.new {|a|}.arity       #=&gt;  1\n   Proc.new {|a,b|}.arity     #=&gt;  2\n   Proc.new {|a,b,c|}.arity   #=&gt;  3\n   Proc.new {|*a|}.arity      #=&gt; -1\n   Proc.new {|a,*b|}.arity    #=&gt; -2\n"
full_name: Proc#arity
is_singleton: false
name: arity
params: |
  prc.arity -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new <tt>Proc</tt> object, bound to the current context. <tt>Proc::new</tt> may be called without a block only within a method with an attached block, in which case that block is converted to the <tt>Proc</tt> object.
- !ruby/struct:SM::Flow::VERB 
  body: "   def proc_from\n     Proc.new\n   end\n   proc = proc_from { &quot;hello&quot; }\n   proc.call   #=&gt; &quot;hello&quot;\n"
full_name: Proc::new
is_singleton: true
name: new
params: |
  Proc.new {|...| block } => a_proc 
  Proc.new                => a_proc 

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Shows the unique identifier for this proc, along with an indication of where the proc was defined.
full_name: Proc#to_s
is_singleton: false
name: to_s
params: |
  prc.to_s   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the binding associated with <em>prc</em>. Note that <tt>Kernel#eval</tt> accepts either a <tt>Proc</tt> or a <tt>Binding</tt> object as its second parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   def fred(param)\n     proc {}\n   end\n\n   b = fred(99)\n   eval(&quot;param&quot;, b.binding)   #=&gt; 99\n   eval(&quot;param&quot;, b)           #=&gt; 99\n"
full_name: Proc#binding
is_singleton: false
name: binding
params: |
  prc.binding    => binding

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects). source may be either an instance of IO or an object that responds to to_str. If proc is specified, it will be passed each object as it is deserialized.
full_name: Marshal::restore
is_singleton: true
name: restore
params: |
  load( source [, proc] ) => obj
  restore( source [, proc] ) => obj

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: load
- !ruby/object:RI::MethodSummary 
  name: restore
comment: 
- !ruby/struct:SM::Flow::P 
  body: The marshaling library converts collections of Ruby objects into a byte stream, allowing them to be stored outside the currently active script. This data may subsequently be read and the original objects reconstituted. Marshaled data has major and minor version numbers stored along with the object information. In normal use, marshaling can only load data written with the same major version number and an equal or lower minor version number. If Ruby's ``verbose'' flag is set (normally using -d, -v, -w, or --verbose) the major and minor numbers must match exactly. Marshal versioning is independent of Ruby's version numbers. You can extract the version by reading the first two bytes of marshaled data.
- !ruby/struct:SM::Flow::VERB 
  body: "    str = Marshal.dump(&quot;thing&quot;)\n    RUBY_VERSION   #=&gt; &quot;1.8.0&quot;\n    str[0]         #=&gt; 4\n    str[1]         #=&gt; 8\n"
- !ruby/struct:SM::Flow::P 
  body: "Some objects cannot be dumped: if the objects to be dumped include bindings, procedure or method objects, instances of class IO, or singleton objects, a TypeError will be raised. If your class has special serialization needs (for example, if you want to serialize in some specific format), or if it contains objects that would otherwise not be serializable, you can implement your own serialization strategy by defining two methods, _dump and _load: The instance method _dump should return a String object containing all the information necessary to reconstitute objects of this class and all referenced objects up to a maximum depth given as an integer parameter (a value of -1 implies that you should disable depth checking). The class method _load should take a String and return an object of this class."
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: MAJOR_VERSION
  value: INT2FIX(MARSHAL_MAJOR)
- !ruby/object:RI::Constant 
  comment: 
  name: MINOR_VERSION
  value: INT2FIX(MARSHAL_MINOR)
full_name: Marshal
includes: []

instance_methods: []

name: Marshal
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects). source may be either an instance of IO or an object that responds to to_str. If proc is specified, it will be passed each object as it is deserialized.
full_name: Marshal::load
is_singleton: true
name: load
params: |
  load( source [, proc] ) => obj
  restore( source [, proc] ) => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Serializes obj and all descendent objects. If anIO is specified, the serialized data will be written to it, otherwise the data will be returned as a String. If limit is specified, the traversal of subobjects will be limited to that depth. If limit is negative, no checking of depth will be performed.
- !ruby/struct:SM::Flow::VERB 
  body: "    class Klass\n      def initialize(str)\n        @str = str\n      end\n      def sayHello\n        @str\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: (produces no output)
- !ruby/struct:SM::Flow::VERB 
  body: "    o = Klass.new(&quot;hello\\n&quot;)\n    data = Marshal.dump(o)\n    obj = Marshal.load(data)\n    obj.sayHello   #=&gt; &quot;hello\\n&quot;\n"
full_name: Marshal::dump
is_singleton: true
name: dump
params: |
  dump( obj [, anIO] , limit=--1 ) => anIO

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn off floating point exceptions for overflow, etc.
constants: []

full_name: ZeroDivisionError
includes: []

instance_methods: []

name: ZeroDivisionError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: StandardError
includes: []

instance_methods: []

name: StandardError
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Disables garbage collection, returning <tt>true</tt> if garbage collection was already disabled.
- !ruby/struct:SM::Flow::VERB 
  body: "   GC.disable   #=&gt; false\n   GC.disable   #=&gt; true\n"
full_name: GC::disable
is_singleton: true
name: disable
params: |
  GC.disable    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns current status of GC stress mode.
full_name: GC::stress
is_singleton: true
name: stress
params: |
  GC.stress                 => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: disable
- !ruby/object:RI::MethodSummary 
  name: enable
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: stress
- !ruby/object:RI::MethodSummary 
  name: stress=
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>GC</tt> module provides an interface to Ruby's mark and sweep garbage collection mechanism. Some of the underlying methods are also available via the <tt>ObjectSpace</tt> module.
constants: []

full_name: GC
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: garbage_collect
name: GC
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enables garbage collection, returning <tt>true</tt> if garbage collection was previously disabled.
- !ruby/struct:SM::Flow::VERB 
  body: "   GC.disable   #=&gt; false\n   GC.enable    #=&gt; true\n   GC.enable    #=&gt; false\n"
full_name: GC::enable
is_singleton: true
name: enable
params: |
  GC.enable    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Initiates garbage collection, unless manually disabled.
full_name: GC::start
is_singleton: true
name: start
params: |
  GC.start                     => nil
  gc.garbage_collect           => nil
  ObjectSpace.garbage_collect  => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: updates GC stress mode.
- !ruby/struct:SM::Flow::P 
  body: "When GC.stress = true, GC is invoked for all GC opportunity: all memory and object allocation."
- !ruby/struct:SM::Flow::P 
  body: Since it makes Ruby very slow, it is only for debugging.
full_name: GC::stress=
is_singleton: true
name: stress=
params: |
  GC.stress = bool          => bool

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Initiates garbage collection, unless manually disabled.
full_name: GC#garbage_collect
is_singleton: false
name: garbage_collect
params: |
  GC.start                     => nil
  gc.garbage_collect           => nil
  ObjectSpace.garbage_collect  => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OpenStruct#new_ostruct_member
is_singleton: false
name: new_ostruct_member
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compare this object and <tt>other</tt> for equality.
full_name: OpenStruct#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OpenStruct#modifiable
is_singleton: false
name: modifiable
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: to_s
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing a detailed summary of the keys and values.
full_name: OpenStruct#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Duplicate an OpenStruct object members.
full_name: OpenStruct#initialize_copy
is_singleton: false
name: initialize_copy
params: (orig)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "OpenStruct allows you to create data objects and set arbitrary attributes. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ostruct'\n\n  record = OpenStruct.new\n  record.name    = &quot;John Smith&quot;\n  record.age     = 70\n  record.pension = 300\n\n  puts record.name     # -&gt; &quot;John Smith&quot;\n  puts record.address  # -&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: It is like a hash with a different way to access the data. In fact, it is implemented with a hash, and you can initialize it with one.
- !ruby/struct:SM::Flow::VERB 
  body: "  hash = { &quot;country&quot; =&gt; &quot;Australia&quot;, :population =&gt; 20_000_000 }\n  data = OpenStruct.new(hash)\n\n  p data        # -&gt; &lt;OpenStruct country=&quot;Australia&quot; population=20000000&gt;\n"
constants: []

full_name: OpenStruct
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: delete_field
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: marshal_dump
- !ruby/object:RI::MethodSummary 
  name: marshal_load
- !ruby/object:RI::MethodSummary 
  name: modifiable
- !ruby/object:RI::MethodSummary 
  name: new_ostruct_member
- !ruby/object:RI::MethodSummary 
  name: to_s
name: OpenStruct
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OpenStruct#marshal_load
is_singleton: false
name: marshal_load
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new OpenStruct object. The optional <tt>hash</tt>, if given, will generate attributes and values. For example.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'ostruct'\n  hash = { &quot;country&quot; =&gt; &quot;Australia&quot;, :population =&gt; 20_000_000 }\n  data = OpenStruct.new(hash)\n\n  p data        # -&gt; &lt;OpenStruct country=&quot;Australia&quot; population=20000000&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: By default, the resulting OpenStruct object will have no attributes.
full_name: OpenStruct::new
is_singleton: true
name: new
params: (hash=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #inspect"
full_name: OpenStruct#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Remove the named field from the object.
full_name: OpenStruct#delete_field
is_singleton: false
name: delete_field
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OpenStruct#marshal_dump
is_singleton: false
name: marshal_dump
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Benchmark::Tms#memberwise
is_singleton: false
name: memberwise
params: (op, x)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new 6-element array, consisting of the label, user CPU time, system CPU time, children's user CPU time, children's system CPU time and elapsed real time.
full_name: Benchmark::Tms#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new Tms object whose times are the sum of the times for this Tms object, plus the time required to execute the code block (<em>blk</em>).
full_name: Benchmark::Tms#add
is_singleton: false
name: add
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new Tms object obtained by memberwise multiplication of the individual times for this Tms object by <em>x</em>.
full_name: Benchmark::Tms#*
is_singleton: false
name: "*"
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an initialized Tms object which has <em>u</em> as the user CPU time, <em>s</em> as the system CPU time, <em>cu</em> as the children's user CPU time, <em>cs</em> as the children's system CPU time, <em>real</em> as the elapsed real time and <em>l</em> as the label.
full_name: Benchmark::Tms::new
is_singleton: true
name: new
params: (u = 0.0, s = 0.0, cu = 0.0, cs = 0.0, real = 0.0, l = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: System CPU time of children
  name: cstime
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: User CPU time of children
  name: cutime
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Label
  name: label
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Elapsed real time
  name: real
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: System CPU time
  name: stime
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Total time, that is <em>utime</em> + <em>stime</em> + <em>cutime</em> + <em>cstime</em>
  name: total
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: User CPU time
  name: utime
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A data object, representing the times associated with a benchmark measurement.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CAPTION
  value: "\"      user     system      total        real\\n\""
- !ruby/object:RI::Constant 
  comment: 
  name: FMTSTR
  value: "\"%10.6u %10.6y %10.6t %10.6r\\n\""
full_name: Benchmark::Tms
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: add!
- !ruby/object:RI::MethodSummary 
  name: format
- !ruby/object:RI::MethodSummary 
  name: memberwise
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Tms
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the contents of this Tms object as a formatted string, according to a format string like that passed to Kernel.format. In addition, #format accepts the following extensions:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%u</tt>:"
    body: Replaced by the user CPU time, as reported by Tms#utime.
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%y</tt>:"
    body: "Replaced by the system CPU time, as reported by #stime (Mnemonic: y of &quot;s*y*stem&quot;)"
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%U</tt>:"
    body: Replaced by the children's user CPU time, as reported by Tms#cutime
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%Y</tt>:"
    body: Replaced by the children's system CPU time, as reported by Tms#cstime
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%t</tt>:"
    body: Replaced by the total CPU time, as reported by Tms#total
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%r</tt>:"
    body: Replaced by the elapsed real time, as reported by Tms#real
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>%n</tt>:"
    body: "Replaced by the label string, as reported by Tms#label (Mnemonic: n of &quot;*n*ame&quot;)"
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: If <em>fmtstr</em> is not given, FMTSTR is used as default value, detailing the user, system and real elapsed time.
full_name: Benchmark::Tms#format
is_singleton: false
name: format
params: (arg0 = nil, *args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "An in-place version of #add."
full_name: Benchmark::Tms#add!
is_singleton: false
name: add!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Same as #format."
full_name: Benchmark::Tms#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a new Tms object obtained by memberwise division of the individual times for this Tms object by <em>x</em>. This method and #+() are useful for taking statistics."
full_name: Benchmark::Tms#/
is_singleton: false
name: /
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a new Tms object obtained by memberwise summation of the individual times for this Tms object with those of the other Tms object. This method and #/() are useful for taking statistics."
full_name: Benchmark::Tms#+
is_singleton: false
name: +
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new Tms object obtained by memberwise subtraction of the individual times for the other Tms object from those of this Tms object.
full_name: Benchmark::Tms#-
is_singleton: false
name: "-"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: report
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the block with a <tt>Benchmark::Report</tt> object, which may be used to collect and report on the results of individual benchmark tests. Reserves <em>label_width</em> leading spaces for labels on each line. Prints <em>caption</em> at the top of the report, and uses <em>fmt</em> to format each line. If the block returns an array of <tt>Benchmark::Tms</tt> objects, these will be used to format additional lines of output. If <em>label</em> parameters are given, these are used to label these extra lines.
- !ruby/struct:SM::Flow::P 
  body: "<em>Note</em>: Other methods provide a simpler interface to this one, and are suitable for nearly all benchmarking requirements. See the examples in Benchmark, and the #bm and #bmbm methods."
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'benchmark'\n    include Benchmark          # we need the CAPTION and FMTSTR constants\n\n    n = 50000\n    Benchmark.benchmark(&quot; &quot;*7 + CAPTION, 7, FMTSTR, &quot;&gt;total:&quot;, &quot;&gt;avg:&quot;) do |x|\n      tf = x.report(&quot;for:&quot;)   { for i in 1..n; a = &quot;1&quot;; end }\n      tt = x.report(&quot;times:&quot;) { n.times do   ; a = &quot;1&quot;; end }\n      tu = x.report(&quot;upto:&quot;)  { 1.upto(n) do ; a = &quot;1&quot;; end }\n      [tf+tt+tu, (tf+tt+tu)/3]\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "                    user     system      total        real\n       for:     1.016667   0.016667   1.033333 (  0.485749)\n       times:   1.450000   0.016667   1.466667 (  0.681367)\n       upto:    1.533333   0.000000   1.533333 (  0.722166)\n       &gt;total:  4.000000   0.033333   4.033333 (  1.889282)\n       &gt;avg:    1.333333   0.011111   1.344444 (  0.629761)\n"
full_name: Benchmark#benchmark
is_singleton: false
name: benchmark
params: (caption = "", label_width = nil, fmtstr = nil, *labels) {|report| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A Job is a sequence of labelled blocks to be processed by the Benchmark.bmbm method. It is of little direct interest to the user.
constants: []

full_name: Benchmark::Job
includes: []

instance_methods: []

name: Job
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: job
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sometimes benchmark results are skewed because code executed earlier encounters different garbage collection overheads than that run later. #bmbm attempts to minimize this effect by running the tests twice, the first time as a rehearsal in order to get the runtime environment stable, the second time for real. <tt>GC.start</tt> is executed before the start of each of the real timings; the cost of this is not included in the timings. In reality, though, there's only so much that #bmbm can do, and the results are not guaranteed to be isolated from garbage collection and other effects."
- !ruby/struct:SM::Flow::P 
  body: "Because #bmbm takes two passes through the tests, it can calculate the required label width."
- !ruby/struct:SM::Flow::VERB 
  body: "      require 'benchmark'\n\n      array = (1..1000000).map { rand }\n\n      Benchmark.bmbm do |x|\n        x.report(&quot;sort!&quot;) { array.dup.sort! }\n        x.report(&quot;sort&quot;)  { array.dup.sort  }\n      end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "       Rehearsal -----------------------------------------\n       sort!  11.928000   0.010000  11.938000 ( 12.756000)\n       sort   13.048000   0.020000  13.068000 ( 13.857000)\n       ------------------------------- total: 25.006000sec\n\n                   user     system      total        real\n       sort!  12.959000   0.010000  12.969000 ( 13.793000)\n       sort   12.007000   0.000000  12.007000 ( 12.791000)\n"
- !ruby/struct:SM::Flow::P 
  body: "#bmbm yields a Benchmark::Job object and returns an array of Benchmark::Tms objects."
full_name: Benchmark#bmbm
is_singleton: false
name: bmbm
params: (width = 0) {|job| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the elapsed real time used to execute the given block.
full_name: Benchmark#realtime
is_singleton: false
name: realtime
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: report
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A simple interface to the #benchmark method, #bm is generates sequential reports with labels. The parameters have the same meaning as for #benchmark."
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'benchmark'\n\n    n = 50000\n    Benchmark.bm(7) do |x|\n      x.report(&quot;for:&quot;)   { for i in 1..n; a = &quot;1&quot;; end }\n      x.report(&quot;times:&quot;) { n.times do   ; a = &quot;1&quot;; end }\n      x.report(&quot;upto:&quot;)  { 1.upto(n) do ; a = &quot;1&quot;; end }\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "                    user     system      total        real\n       for:     1.050000   0.000000   1.050000 (  0.503462)\n       times:   1.533333   0.016667   1.550000 (  0.735473)\n       upto:    1.500000   0.016667   1.516667 (  0.711239)\n"
full_name: Benchmark#bm
is_singleton: false
name: bm
params: (label_width = 0, *labels) {|report| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This class is used by the Benchmark.benchmark and Benchmark.bm methods. It is of little direct interest to the user.
constants: []

full_name: Benchmark::Report
includes: []

instance_methods: []

name: Report
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the time used to execute the given block as a Benchmark::Tms object.
full_name: Benchmark#measure
is_singleton: false
name: measure
params: (label = "") {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Benchmark module provides methods to measure and report the time used to execute Ruby code.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Measure the time to construct the string given by the expression <tt>&quot;a&quot;*1_000_000</tt>:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    require 'benchmark'\n\n    puts Benchmark.measure { &quot;a&quot;*1_000_000 }\n"
  - !ruby/struct:SM::Flow::P 
    body: "On my machine (FreeBSD 3.2 on P5, 100MHz) this generates:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    1.166667   0.050000   1.216667 (  0.571355)\n"
  - !ruby/struct:SM::Flow::P 
    body: This report shows the user CPU time, system CPU time, the sum of the user and system CPU times, and the elapsed real time. The unit of time is seconds.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Do some experiments sequentially using the #bm method:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    require 'benchmark'\n\n    n = 50000\n    Benchmark.bm do |x|\n      x.report { for i in 1..n; a = &quot;1&quot;; end }\n      x.report { n.times do   ; a = &quot;1&quot;; end }\n      x.report { 1.upto(n) do ; a = &quot;1&quot;; end }\n    end\n"
  - !ruby/struct:SM::Flow::P 
    body: "The result:"
  - !ruby/struct:SM::Flow::VERB 
    body: "           user     system      total        real\n       1.033333   0.016667   1.016667 (  0.492106)\n       1.483333   0.000000   1.483333 (  0.694605)\n       1.516667   0.000000   1.516667 (  0.711077)\n"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Continuing the previous example, put a label in each report:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    require 'benchmark'\n\n    n = 50000\n    Benchmark.bm(7) do |x|\n      x.report(&quot;for:&quot;)   { for i in 1..n; a = &quot;1&quot;; end }\n      x.report(&quot;times:&quot;) { n.times do   ; a = &quot;1&quot;; end }\n      x.report(&quot;upto:&quot;)  { 1.upto(n) do ; a = &quot;1&quot;; end }\n    end\n"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "The result:"
- !ruby/struct:SM::Flow::VERB 
  body: "                    user     system      total        real\n       for:     1.050000   0.000000   1.050000 (  0.503462)\n       times:   1.533333   0.016667   1.550000 (  0.735473)\n       upto:    1.500000   0.016667   1.516667 (  0.711239)\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "The times for some benchmarks depend on the order in which items are run. These differences are due to the cost of memory allocation and garbage collection. To avoid these discrepancies, the #bmbm method is provided. For example, to compare ways to sort an array of floats:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    require 'benchmark'\n\n    array = (1..1000000).map { rand }\n\n    Benchmark.bmbm do |x|\n      x.report(&quot;sort!&quot;) { array.dup.sort! }\n      x.report(&quot;sort&quot;)  { array.dup.sort  }\n    end\n"
  - !ruby/struct:SM::Flow::P 
    body: "The result:"
  - !ruby/struct:SM::Flow::VERB 
    body: "     Rehearsal -----------------------------------------\n     sort!  11.928000   0.010000  11.938000 ( 12.756000)\n     sort   13.048000   0.020000  13.068000 ( 13.857000)\n     ------------------------------- total: 25.006000sec\n\n                 user     system      total        real\n     sort!  12.959000   0.010000  12.969000 ( 13.793000)\n     sort   12.007000   0.000000  12.007000 ( 12.791000)\n"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Report statistics of sequential experiments with unique labels, using the #benchmark method:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    require 'benchmark'\n\n    n = 50000\n    Benchmark.benchmark(&quot; &quot;*7 + CAPTION, 7, FMTSTR, &quot;&gt;total:&quot;, &quot;&gt;avg:&quot;) do |x|\n      tf = x.report(&quot;for:&quot;)   { for i in 1..n; a = &quot;1&quot;; end }\n      tt = x.report(&quot;times:&quot;) { n.times do   ; a = &quot;1&quot;; end }\n      tu = x.report(&quot;upto:&quot;)  { 1.upto(n) do ; a = &quot;1&quot;; end }\n      [tf+tt+tu, (tf+tt+tu)/3]\n    end\n"
  - !ruby/struct:SM::Flow::P 
    body: "The result:"
  - !ruby/struct:SM::Flow::VERB 
    body: "                  user     system      total        real\n     for:     1.016667   0.016667   1.033333 (  0.485749)\n     times:   1.450000   0.016667   1.466667 (  0.681367)\n     upto:    1.533333   0.000000   1.533333 (  0.722166)\n     &gt;total:  4.000000   0.033333   4.033333 (  1.889282)\n     &gt;avg:    1.333333   0.011111   1.344444 (  0.629761)\n"
  type: :BULLET
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: BENCHMARK_VERSION
  value: "\"2002-04-25\""
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The default caption string (heading above the output times).
  name: CAPTION
  value: Benchmark::Tms::CAPTION
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The default format string used to display times. See also Benchmark::Tms#format.
  name: FMTSTR
  value: Benchmark::Tms::FMTSTR
full_name: Benchmark
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: benchmark
- !ruby/object:RI::MethodSummary 
  name: bm
- !ruby/object:RI::MethodSummary 
  name: bmbm
- !ruby/object:RI::MethodSummary 
  name: measure
- !ruby/object:RI::MethodSummary 
  name: realtime
name: Benchmark
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Error
  value: "::XMLParserError"
full_name: XML::Parser
includes: []

instance_methods: []

name: Parser
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: XML
includes: []

instance_methods: []

name: XML
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TokenStream#token_stream
is_singleton: false
name: token_stream
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TokenStream#pop_token
is_singleton: false
name: pop_token
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TokenStream#add_token
is_singleton: false
name: add_token
params: (tk)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A TokenStream is a list of tokens, gathered during the parse of some entity (say a method). Entities populate these streams by being registered with the lexer. Any class can collect tokens by including TokenStream. From the outside, you use such an object by calling the start_collecting_tokens method, followed by calls to add_token and pop_token
constants: []

full_name: TokenStream
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_token
- !ruby/object:RI::MethodSummary 
  name: add_tokens
- !ruby/object:RI::MethodSummary 
  name: pop_token
- !ruby/object:RI::MethodSummary 
  name: start_collecting_tokens
- !ruby/object:RI::MethodSummary 
  name: token_stream
name: TokenStream
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TokenStream#add_tokens
is_singleton: false
name: add_tokens
params: (tks)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TokenStream#start_collecting_tokens
is_singleton: false
name: start_collecting_tokens
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <em>Proc</em> object which respond to the given method by <em>sym</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  (1..3).collect(&amp;:to_s)  #=&gt; [&quot;1&quot;, &quot;2&quot;, &quot;3&quot;]\n"
full_name: Symbol#to_proc
is_singleton: false
name: to_proc
params: |
  sym.to_proc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an integer that is unique for each symbol within a particular execution of a program.
- !ruby/struct:SM::Flow::VERB 
  body: "   :fred.to_i           #=&gt; 9809\n   &quot;fred&quot;.to_sym.to_i   #=&gt; 9809\n"
full_name: Symbol#to_i
is_singleton: false
name: to_i
params: |
  sym.to_i      => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of all the symbols currently in Ruby's symbol table.
- !ruby/struct:SM::Flow::VERB 
  body: "   Symbol.all_symbols.size    #=&gt; 903\n   Symbol.all_symbols[1,20]   #=&gt; [:floor, :ARGV, :Binding, :symlink,\n                                   :chown, :EOFError, :$;, :String,\n                                   :LOCK_SH, :&quot;setuid?&quot;, :$&lt;,\n                                   :default_proc, :compact, :extend,\n                                   :Tms, :getwd, :$=, :ThreadGroup,\n                                   :wait2, :$&gt;]\n"
full_name: Symbol::all_symbols
is_singleton: true
name: all_symbols
params: |
  Symbol.all_symbols    => array

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_symbols
- !ruby/object:RI::MethodSummary 
  name: yaml_new
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Symbol</tt> objects represent names and some strings inside the Ruby interpreter. They are generated using the <tt>:name</tt> and <tt>:&quot;string&quot;</tt> literals syntax, and by the various <tt>to_sym</tt> methods. The same <tt>Symbol</tt> object will be created for a given name or string for the duration of a program's execution, regardless of the context or meaning of that name. Thus if <tt>Fred</tt> is a constant in one context, a method in another, and a class in a third, the <tt>Symbol</tt> <tt>:Fred</tt> will be the same object in all three contexts.
- !ruby/struct:SM::Flow::VERB 
  body: "   module One\n     class Fred\n     end\n     $f1 = :Fred\n   end\n   module Two\n     Fred = 1\n     $f2 = :Fred\n   end\n   def Fred()\n   end\n   $f3 = :Fred\n   $f1.id   #=&gt; 2514190\n   $f2.id   #=&gt; 2514190\n   $f3.id   #=&gt; 2514190\n"
constants: []

full_name: Symbol
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: dclone
- !ruby/object:RI::MethodSummary 
  name: id2name
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_int
- !ruby/object:RI::MethodSummary 
  name: to_proc
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_sym
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: Symbol
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---At the <tt>Object</tt> level, <tt>==</tt> returns <tt>true</tt> only if <em>obj</em> and <em>other</em> are the same object. Typically, this method is overridden in descendent classes to provide class-specific meaning.
- !ruby/struct:SM::Flow::P 
  body: "Unlike <tt>==</tt>, the <tt>equal?</tt> method should never be overridden by subclasses: it is used to determine object identity (that is, <tt>a.equal?(b)</tt> iff <tt>a</tt> is the same object as <tt>b</tt>)."
- !ruby/struct:SM::Flow::P 
  body: "The <tt>eql?</tt> method returns <tt>true</tt> if <em>obj</em> and <em>anObject</em> have the same value. Used by <tt>Hash</tt> to test members for equality. For objects of class <tt>Object</tt>, <tt>eql?</tt> is synonymous with <tt>==</tt>. Subclasses normally continue this tradition, but there are exceptions. <tt>Numeric</tt> types, for example, perform type conversion across <tt>==</tt>, but not across <tt>eql?</tt>, so:"
- !ruby/struct:SM::Flow::VERB 
  body: "   1 == 1.0     #=&gt; true\n   1.eql? 1.0   #=&gt; false\n"
full_name: Symbol#===
is_singleton: false
name: ===
params: |
  obj == other        => true or false
  obj.equal?(other)   => true or false
  obj.eql?(other)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the representation of <em>sym</em> as a symbol literal.
- !ruby/struct:SM::Flow::VERB 
  body: "   :fred.inspect   #=&gt; &quot;:fred&quot;\n"
full_name: Symbol#inspect
is_singleton: false
name: inspect
params: |
  sym.inspect    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Symbol::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: ":nodoc:"
full_name: Symbol#to_int
is_singleton: false
name: to_int
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Symbol#dclone
is_singleton: false
name: dclone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name or string corresponding to <em>sym</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   :fred.id2name   #=&gt; &quot;fred&quot;\n"
full_name: Symbol#to_s
is_singleton: false
name: to_s
params: |
  sym.id2name   => string
  sym.to_s      => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Symbol#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name or string corresponding to <em>sym</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   :fred.id2name   #=&gt; &quot;fred&quot;\n"
full_name: Symbol#id2name
is_singleton: false
name: id2name
params: |
  sym.id2name   => string
  sym.to_s      => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: In general, <tt>to_sym</tt> returns the <tt>Symbol</tt> corresponding to an object. As <em>sym</em> is already a symbol, <tt>self</tt> is returned in this case.
full_name: Symbol#to_sym
is_singleton: false
name: to_sym
params: |
  sym.to_sym   => sym

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #def_instance_delegators"
full_name: Forwardable#def_delegators
is_singleton: false
name: def_delegators
params: (accessor, *methods)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: def_delegators
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Shortcut for defining multiple delegator methods, but with no provision for using a different name. The following two code samples have the same effect:"
- !ruby/struct:SM::Flow::VERB 
  body: "  def_delegators :@records, :size, :&lt;&lt;, :map\n\n  def_delegator :@records, :size\n  def_delegator :@records, :&lt;&lt;\n  def_delegator :@records, :map\n"
- !ruby/struct:SM::Flow::P 
  body: See the examples at Forwardable and forwardable.rb.
full_name: Forwardable#def_instance_delegators
is_singleton: false
name: def_instance_delegators
params: (accessor, *methods)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #def_instance_delegator"
full_name: Forwardable#def_delegator
is_singleton: false
name: def_delegator
params: (accessor, method, ali = method)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: force Forwardable to show up in stack backtraces of delegated methods
  name: debug
  rw: RW
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "The Forwardable module provides delegation of specified methods to a designated object, using the methods #def_delegator and #def_delegators."
- !ruby/struct:SM::Flow::P 
  body: "For example, say you have a class RecordCollection which contains an array <tt>@records</tt>. You could provide the lookup method #record_number(), which simply calls #[] on the <tt>@records</tt> array, like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  class RecordCollection\n    extend Forwardable\n    def_delegator :@records, :[], :record_number\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: "Further, if you wish to provide the methods #size, #&lt;&lt;, and #map, all of which delegate to @records, this is how you can do it:"
- !ruby/struct:SM::Flow::VERB 
  body: "  class RecordCollection\n    # extend Forwardable, but we did that above\n    def_delegators :@records, :size, :&lt;&lt;, :map\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: Also see the example at forwardable.rb.
constants: []

full_name: Forwardable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_delegator
- !ruby/object:RI::MethodSummary 
  name: def_delegators
- !ruby/object:RI::MethodSummary 
  name: def_instance_delegator
- !ruby/object:RI::MethodSummary 
  name: def_instance_delegators
name: Forwardable
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: def_delegator
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Defines a method <em>method</em> which delegates to <em>obj</em> (i.e. it calls the method of the same name in <em>obj</em>). If <em>new_name</em> is provided, it is used as the name for the delegate method.
- !ruby/struct:SM::Flow::P 
  body: See the examples at Forwardable and forwardable.rb.
full_name: Forwardable#def_instance_delegator
is_singleton: false
name: def_instance_delegator
params: (accessor, method, ali = method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Accepts an incoming connection using accept(2) after O_NONBLOCK is set for the underlying file descriptor. It returns an accepted TCPSocket for the incoming connection.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     serv = TCPServer.new(2202)\n     begin\n       sock = serv.accept_nonblock\n     rescue Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::ECONNABORTED, Errno::EPROTO, Errno::EINTR\n       IO.select([serv])\n       retry\n     end\n     # sock is an accepted socket.\n"
- !ruby/struct:SM::Flow::P 
  body: Refer to Socket#accept for the exceptions that may be thrown if the call to TCPServer#accept_nonblock fails.
- !ruby/struct:SM::Flow::P 
  body: TCPServer#accept_nonblock may raise any error corresponding to accept(2) failure, including Errno::EAGAIN.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TCPServer#accept
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Socket#accept
  type: :BULLET
full_name: TCPServer#accept_nonblock
is_singleton: false
name: accept_nonblock
params: |
  tcpserver.accept_nonblock => tcpsocket

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: TCPServer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept_nonblock
- !ruby/object:RI::MethodSummary 
  name: listen
name: TCPServer
superclass: TCPSocket
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Listens for connections, using the specified <tt>int</tt> as the backlog. A call to <em>listen</em> only applies if the <tt>socket</tt> is of type SOCK_STREAM or SOCK_SEQPACKET.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameter
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>backlog</tt> - the maximum length of the queue for pending connections.
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example 1
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     include Socket::Constants\n     socket = Socket.new( AF_INET, SOCK_STREAM, 0 )\n     sockaddr = Socket.pack_sockaddr_in( 2200, 'localhost' )\n     socket.bind( sockaddr )\n     socket.listen( 5 )\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example 2 (listening on an arbitary port, unix-based systems only):"
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     include Socket::Constants\n     socket = Socket.new( AF_INET, SOCK_STREAM, 0 )\n     socket.listen( 1 )\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Unix-based Exceptions
- !ruby/struct:SM::Flow::P 
  body: On unix based systems the above will work because a new <tt>sockaddr</tt> struct is created on the address ADDR_ANY, for an arbitrary port number as handed off by the kernel. It will not work on Windows, because Windows requires that the <tt>socket</tt> is bound by calling <em>bind</em> before it can <em>listen</em>.
- !ruby/struct:SM::Flow::P 
  body: If the <em>backlog</em> amount exceeds the implementation-dependent maximum queue length, the implementation's maximum queue length will be used.
- !ruby/struct:SM::Flow::P 
  body: "On unix-based based systems the following system exceptions may be raised if the call to <em>listen</em> fails:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EBADF - the <em>socket</em> argument is not a valid file descriptor
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EDESTADDRREQ - the <em>socket</em> is not bound to a local address, and the protocol does not support listening on an unbound socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <em>socket</em> is already connected
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOTSOCK - the <em>socket</em> argument does not refer to a socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EOPNOTSUPP - the <em>socket</em> protocol does not support listen
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EACCES - the calling process does not have approriate privileges
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <em>socket</em> has been shut down
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOBUFS - insufficient resources are available in the system to complete the call
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Windows Exceptions
- !ruby/struct:SM::Flow::P 
  body: "On Windows systems the following system exceptions may be raised if the call to <em>listen</em> fails:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENETDOWN - the network is down
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EADDRINUSE - the socket's local address is already in use. This usually occurs during the execution of <em>bind</em> but could be delayed if the call to <em>bind</em> was to a partially wildcard address (involving ADDR_ANY) and if a specific address needs to be commmitted at the time of the call to <em>listen</em>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINPROGRESS - a Windows Sockets 1.1 call is in progress or the service provider is still processing a callback function
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EINVAL - the <tt>socket</tt> has not been bound with a call to <em>bind</em>.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EISCONN - the <tt>socket</tt> is already connected
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EMFILE - no more socket descriptors are available
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOBUFS - no buffer space is available
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::ENOTSOC - <tt>socket</tt> is not a socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Errno::EOPNOTSUPP - the referenced <tt>socket</tt> is not a type that supports the <em>listen</em> method
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: listen manual pages on unix-based systems
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: listen function in Microsoft's Winsock functions reference
  type: :BULLET
full_name: TCPServer#listen
is_singleton: false
name: listen
params: |
  socket.listen( int ) => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::GroupQueue::new
is_singleton: true
name: new
params: (*groups)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::GroupQueue#delete
is_singleton: false
name: delete
params: (group)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::GroupQueue#enq
is_singleton: false
name: enq
params: (group)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: PrettyPrint::GroupQueue
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: deq
- !ruby/object:RI::MethodSummary 
  name: enq
name: GroupQueue
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::GroupQueue#deq
is_singleton: false
name: deq
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: first? is a predicate to test the call is a first call to first? with current group.
- !ruby/struct:SM::Flow::P 
  body: "It is useful to format comma separated values as:"
- !ruby/struct:SM::Flow::VERB 
  body: "  q.group(1, '[', ']') {\n    xxx.each {|yyy|\n      unless q.first?\n        q.text ','\n        q.breakable\n      end\n      ... pretty printing yyy ...\n    }\n  }\n"
- !ruby/struct:SM::Flow::P 
  body: first? is obsoleted in 1.8.2.
full_name: PrettyPrint#first?
is_singleton: false
name: first?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Text#add
is_singleton: false
name: add
params: (obj, width)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Text::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Text#output
is_singleton: false
name: output
params: (out, output_width)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: width
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: PrettyPrint::Text
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: output
name: Text
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint#fill_breakable
is_singleton: false
name: fill_breakable
params: (sep=' ', width=sep.length)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Group#first?
is_singleton: false
name: first?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: breakables
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: depth
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: PrettyPrint::Group
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: break
- !ruby/object:RI::MethodSummary 
  name: break?
- !ruby/object:RI::MethodSummary 
  name: first?
name: Group
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Group#break
is_singleton: false
name: break
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Group::new
is_singleton: true
name: new
params: (depth)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Group#break?
is_singleton: false
name: break?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This tells &quot;you can break a line here if necessary&quot;, and a <tt>width</tt>\-column text <tt>sep</tt> is inserted if a line is not broken at the point.
- !ruby/struct:SM::Flow::P 
  body: If <tt>sep</tt> is not specified, &quot; &quot; is used.
- !ruby/struct:SM::Flow::P 
  body: If <tt>width</tt> is not specified, +sep.length+ is used. You will have to specify this when <tt>sep</tt> is a multibyte character, for example.
full_name: PrettyPrint#breakable
is_singleton: false
name: breakable
params: (sep=' ', width=sep.length)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: PrettyPrint#group_sub
is_singleton: false
name: group_sub
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: q
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This is a convenience method which is same as follows:"
- !ruby/struct:SM::Flow::VERB 
  body: "  begin\n    q = PrettyPrint.new(output, maxwidth, newline, &amp;genspace)\n    ...\n    q.flush\n    output\n  end\n"
full_name: PrettyPrint::format
is_singleton: true
name: format
params: (output='', maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n} {|q| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: outputs buffered data.
full_name: PrettyPrint#flush
is_singleton: false
name: flush
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This adds <tt>obj</tt> as a text of <tt>width</tt> columns in width.
- !ruby/struct:SM::Flow::P 
  body: If <tt>width</tt> is not specified, obj.length is used.
full_name: PrettyPrint#text
is_singleton: false
name: text
params: (obj, width=obj.length)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: indent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: obj
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: width
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: PrettyPrint::Breakable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: output
name: Breakable
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Breakable::new
is_singleton: true
name: new
params: (sep, width, q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::Breakable#output
is_singleton: false
name: output
params: (out, output_width)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint#current_group
is_singleton: false
name: current_group
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a buffer for pretty printing.
- !ruby/struct:SM::Flow::P 
  body: <tt>output</tt> is an output target. If it is not specified, '' is assumed. It should have a &lt;&lt; method which accepts the first argument <tt>obj</tt> of PrettyPrint#text, the first argument <tt>sep</tt> of PrettyPrint#breakable, the first argument <tt>newline</tt> of PrettyPrint.new, and the result of a given block for PrettyPrint.new.
- !ruby/struct:SM::Flow::P 
  body: <tt>maxwidth</tt> specifies maximum line length. If it is not specified, 79 is assumed. However actual outputs may overflow <tt>maxwidth</tt> if long non-breakable texts are provided.
- !ruby/struct:SM::Flow::P 
  body: <tt>newline</tt> is used for line breaks. &quot;\n&quot; is used if it is not specified.
- !ruby/struct:SM::Flow::P 
  body: The block is used to generate spaces. {|width| ' ' * width} is used if it is not given.
full_name: PrettyPrint::new
is_singleton: true
name: new
params: (output='', maxwidth=79, newline="\n", &genspace)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: q
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is similar to PrettyPrint::format but the result has no breaks.
- !ruby/struct:SM::Flow::P 
  body: <tt>maxwidth</tt>, <tt>newline</tt> and <tt>genspace</tt> are ignored.
- !ruby/struct:SM::Flow::P 
  body: The invocation of <tt>breakable</tt> in the block doesn't break a line and is treated as just an invocation of <tt>text</tt>.
full_name: PrettyPrint::singleline_format
is_singleton: true
name: singleline_format
params: (output='', maxwidth=nil, newline=nil, genspace=nil) {|q| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Increases left margin after newline with <tt>indent</tt> for line breaks added in the block.
full_name: PrettyPrint#nest
is_singleton: false
name: nest
params: (indent) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Groups line break hints added in the block. The line break hints are all to be used or not.
- !ruby/struct:SM::Flow::P 
  body: If <tt>indent</tt> is specified, the method call is regarded as nested by nest(indent) { ... }.
- !ruby/struct:SM::Flow::P 
  body: If <tt>open_obj</tt> is specified, <tt>text open_obj, open_width</tt> is called before grouping. If <tt>close_obj</tt> is specified, <tt>text close_obj, close_width</tt> is called after grouping.
full_name: PrettyPrint#group
is_singleton: false
name: group
params: (indent=0, open_obj='', close_obj='', open_width=open_obj.length, close_width=close_obj.length) {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: genspace
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: group_queue
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: indent
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: maxwidth
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: newline
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: output
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: format
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: singleline_format
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class implements a pretty printing algorithm. It finds line breaks and nice indentations for grouped structure.
- !ruby/struct:SM::Flow::P 
  body: "By default, the class assumes that primitive elements are strings and each byte in the strings have single column in width. But it can be used for other situations by giving suitable arguments for some methods:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: newline object and space generation block for PrettyPrint.new
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: optional width argument for PrettyPrint#text
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: PrettyPrint#breakable
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "There are several candidate uses:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: text formatting using proportional fonts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: multibyte characters which has columns different to number of bytes
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: non-string formatting
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Bugs
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Box based formatting?
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Other (better) model/algorithm?
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 2
  text: References
- !ruby/struct:SM::Flow::P 
  body: Christian Lindig, Strictly Pretty, March 2000, http://www.st.cs.uni-sb.de/~lindig/papers/#pretty
- !ruby/struct:SM::Flow::P 
  body: Philip Wadler, A prettier printer, March 1998, http://homepages.inf.ed.ac.uk/wadler/topics/language-design.html#prettier
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Author
- !ruby/struct:SM::Flow::P 
  body: Tanaka Akira &lt;akr@m17n.org&gt;
constants: []

full_name: PrettyPrint
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: break_outmost_groups
- !ruby/object:RI::MethodSummary 
  name: breakable
- !ruby/object:RI::MethodSummary 
  name: current_group
- !ruby/object:RI::MethodSummary 
  name: fill_breakable
- !ruby/object:RI::MethodSummary 
  name: first?
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: group
- !ruby/object:RI::MethodSummary 
  name: group_sub
- !ruby/object:RI::MethodSummary 
  name: nest
- !ruby/object:RI::MethodSummary 
  name: text
name: PrettyPrint
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint#break_outmost_groups
is_singleton: false
name: break_outmost_groups
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::SingleLine#first?
is_singleton: false
name: first?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::SingleLine#breakable
is_singleton: false
name: breakable
params: (sep=' ', width=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::SingleLine#flush
is_singleton: false
name: flush
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::SingleLine#text
is_singleton: false
name: text
params: (obj, width=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: PrettyPrint::SingleLine::new
is_singleton: true
name: new
params: (output, maxwidth=nil, newline=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: PrettyPrint::SingleLine#nest
is_singleton: false
name: nest
params: (indent) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: PrettyPrint::SingleLine#group
is_singleton: false
name: group
params: (indent=nil, open_obj='', close_obj='', open_width=nil, close_width=nil) {|| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: PrettyPrint::SingleLine
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: breakable
- !ruby/object:RI::MethodSummary 
  name: first?
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: group
- !ruby/object:RI::MethodSummary 
  name: nest
- !ruby/object:RI::MethodSummary 
  name: text
name: SingleLine
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>Proc</tt> object corresponding to this method.
full_name: Method#to_proc
is_singleton: false
name: to_proc
params: |
  meth.to_proc    => prc

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the <em>meth</em> with the specified arguments, returning the method's return value.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = 12.method(&quot;+&quot;)\n   m.call(3)    #=&gt; 15\n   m.call(20)   #=&gt; 32\n"
full_name: Method#[]
is_singleton: false
name: "[]"
params: |
  meth.call(args, ...)    => obj
  meth[args, ...]         => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dissociates <em>meth</em> from it's current receiver. The resulting <tt>UnboundMethod</tt> can subsequently be bound to a new object of the same class (see <tt>UnboundMethod</tt>).
full_name: Method#unbind
is_singleton: false
name: unbind
params: |
  meth.unbind    => unbound_method

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Two method objects are equal if that are bound to the same object and contain the same body.
full_name: Method#==
is_singleton: false
name: ==
params: |
  meth == other_meth  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the method.
full_name: Method#name
is_singleton: false
name: name
params: |
  meth.name    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: Method#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show the name of the underlying method.
- !ruby/struct:SM::Flow::VERB 
  body: "  &quot;cat&quot;.method(:count).inspect   #=&gt; &quot;#&lt;Method: String#count&gt;&quot;\n"
full_name: Method#inspect
is_singleton: false
name: inspect
params: |
  meth.to_s      =>  string
  meth.inspect   =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the <em>meth</em> with the specified arguments, returning the method's return value.
- !ruby/struct:SM::Flow::VERB 
  body: "   m = 12.method(&quot;+&quot;)\n   m.call(3)    #=&gt; 15\n   m.call(20)   #=&gt; 32\n"
full_name: Method#call
is_singleton: false
name: call
params: |
  meth.call(args, ...)    => obj
  meth[args, ...]         => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an indication of the number of arguments accepted by a method. Returns a nonnegative integer for methods that take a fixed number of arguments. For Ruby methods that take a variable number of arguments, returns -n-1, where n is the number of required arguments. For methods written in C, returns -1 if the call takes a variable number of arguments.
- !ruby/struct:SM::Flow::VERB 
  body: "   class C\n     def one;    end\n     def two(a); end\n     def three(*a);  end\n     def four(a, b); end\n     def five(a, b, *c);    end\n     def six(a, b, *c, &amp;d); end\n   end\n   c = C.new\n   c.method(:one).arity     #=&gt; 0\n   c.method(:two).arity     #=&gt; 1\n   c.method(:three).arity   #=&gt; -1\n   c.method(:four).arity    #=&gt; 2\n   c.method(:five).arity    #=&gt; -3\n   c.method(:six).arity     #=&gt; -3\n\n   &quot;cat&quot;.method(:size).arity      #=&gt; 0\n   &quot;cat&quot;.method(:replace).arity   #=&gt; 1\n   &quot;cat&quot;.method(:squeeze).arity   #=&gt; -1\n   &quot;cat&quot;.method(:count).arity     #=&gt; -1\n"
full_name: Method#arity
is_singleton: false
name: arity
params: |
  meth.arity    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the bound receiver of the method object.
full_name: Method#receiver
is_singleton: false
name: receiver
params: |
  meth.receiver    => object

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Proc</tt> objects are blocks of code that have been bound to a set of local variables. Once bound, the code may be called in different contexts and still access those variables.
- !ruby/struct:SM::Flow::VERB 
  body: "   def gen_times(factor)\n     return Proc.new {|n| n*factor }\n   end\n\n   times3 = gen_times(3)\n   times5 = gen_times(5)\n\n   times3.call(12)               #=&gt; 36\n   times5.call(5)                #=&gt; 25\n   times3.call(times5.call(4))   #=&gt; 60\n"
constants: []

full_name: Method
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: arity
- !ruby/object:RI::MethodSummary 
  name: call
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: owner
- !ruby/object:RI::MethodSummary 
  name: receiver
- !ruby/object:RI::MethodSummary 
  name: to_proc
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: unbind
name: Method
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show the name of the underlying method.
- !ruby/struct:SM::Flow::VERB 
  body: "  &quot;cat&quot;.method(:count).inspect   #=&gt; &quot;#&lt;Method: String#count&gt;&quot;\n"
full_name: Method#to_s
is_singleton: false
name: to_s
params: |
  meth.to_s      =>  string
  meth.inspect   =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the class or module that defines the method.
full_name: Method#owner
is_singleton: false
name: owner
params: |
  meth.owner    => class_or_module

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ParseDate
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parsedate
name: ParseDate
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Parse a string representation of a date into values. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'parsedate'\n\n  ParseDate.parsedate &quot;Tuesday, July 5th, 2007, 18:35:20 UTC&quot;\n  # =&gt; [2007, 7, 5, 18, 35, 20, &quot;UTC&quot;, 2]\n"
- !ruby/struct:SM::Flow::P 
  body: The order is of the form [year, month, day of month, hour, minute, second, timezone, day of week].
- !ruby/struct:SM::Flow::P 
  body: "ParseDate.parsedate can also take a second argument, <tt>comp</tt>, which is a boolean telling the method to compensate for dates with years expressed as two digits. Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'parsedate'\n\n  ParseDate.parsedate &quot;Mon Dec 25 00 06:53:24 UTC&quot;, true\n  # =&gt; [2000, 12, 25, 6, 53, 24, &quot;UTC&quot;, 1]\n"
full_name: ParseDate#parsedate
is_singleton: false
name: parsedate
params: (str, comp=false)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Singleton module implements the Singleton pattern.
- !ruby/struct:SM::Flow::P 
  body: "Usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "   class Klass\n      include Singleton\n      # ...\n   end\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: this ensures that only one instance of Klass lets call it ``the instance'' can be created.
  - !ruby/struct:SM::Flow::P 
    body: "a,b = Klass.instance, Klass.instance a == b # =&gt; true a.new # NoMethodError - new is private ..."
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: ``The instance'' is created at instantiation time, in other words the first call of Klass.instance(), thus
  - !ruby/struct:SM::Flow::VERB 
    body: "  class OtherKlass\n    include Singleton\n    # ...\n  end\n  ObjectSpace.each_object(OtherKlass){} # =&gt; 0.\n"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: This behavior is preserved under inheritance and cloning.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: This is achieved by marking
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Klass.new and Klass.allocate - as private
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Providing (or modifying) the class methods
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Klass.inherited(sub_klass) and Klass.clone() - to ensure that the Singleton pattern is properly inherited and cloned.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Klass.instance() - returning ``the instance''. After a successful self modifying (normally the first) call the method body is a simple:"
  - !ruby/struct:SM::Flow::VERB 
    body: "   def Klass.instance()\n     return @<em>instance</em>\n   end\n"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Klass._load(str) - calling Klass.instance()
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Klass._instantiate?() - returning ``the instance'' or nil. This hook method puts a second (or nth) thread calling Klass.instance() on a waiting loop. The return value signifies the successful completion or premature termination of the first, or more generally, current &quot;instantiation thread&quot;.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: The instance method of Singleton are
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: clone and dup - raising TypeErrors to prevent cloning or duping
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: _dump(depth) - returning the empty string. Marshalling strips by default all state information, e.g. instance variables and taint state, from ``the instance''. Providing custom _load(str) and _dump(depth) hooks allows the (partially) resurrections of a previous state of ``the instance''.
  type: :BULLET
constants: []

full_name: Singleton
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _dump
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: dup
name: Singleton
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: disable build-in copying methods
full_name: Singleton#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Singleton#dup
is_singleton: false
name: dup
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: default marshalling strategy
full_name: Singleton#_dump
is_singleton: false
name: _dump
params: (depth=-1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the Base64-encoded version of <tt>str</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'base64'\n   Base64.b64encode(&quot;Now is the time for all good coders\\nto learn Ruby&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g\n   UnVieQ==\n"
full_name: Base64#encode64
is_singleton: false
name: encode64
params: (bin)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the Base64-decoded version of <tt>str</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'base64'\n  str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +\n        'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +\n        'ZSB0aHJlZQpBbmQgc28gb24uLi4K'\n  puts Base64.decode64(str)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   This is line one\n   This is line two\n   This is line three\n   And so on...\n"
full_name: Base64#decode64
is_singleton: false
name: decode64
params: (str)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Base64::Deprecated
includes: []

instance_methods: []

name: Deprecated
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The Base64 module provides for the encoding (#encode64) and decoding (#decode64) of binary data using a Base64 representation.
- !ruby/struct:SM::Flow::P 
  body: "The following particular features are also provided:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: encode into lines of a given length (#b64encode)
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: decode the special format specified in RFC2047 for the representation of email headers (decode_b)
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::P 
  body: A simple encoding and decoding.
- !ruby/struct:SM::Flow::VERB 
  body: "    require &quot;base64&quot;\n\n    enc   = Base64.encode64('Send reinforcements')\n                        # -&gt; &quot;U2VuZCByZWluZm9yY2VtZW50cw==\\n&quot;\n    plain = Base64.decode64(enc)\n                        # -&gt; &quot;Send reinforcements&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: The purpose of using base64 to encode data is that it translates any binary data into purely printable characters. It is specified in RFC 2045 (http://www.faqs.org/rfcs/rfc2045.html).
constants: []

full_name: Base64
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: b64encode
- !ruby/object:RI::MethodSummary 
  name: decode64
- !ruby/object:RI::MethodSummary 
  name: decode_b
- !ruby/object:RI::MethodSummary 
  name: encode64
name: Base64
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Decodes text formatted using a subset of RFC2047 (the one used for mime-encoding mail headers).
- !ruby/struct:SM::Flow::P 
  body: Only supports an encoding type of 'b' (base 64), and only supports the character sets ISO-2022-JP and SHIFT_JIS (so the only two encoded word sequences recognized are <tt>=?ISO-2022-JP?B?...=</tt> and <tt>=?SHIFT_JIS?B?...=</tt>). Recognition of these sequences is case insensitive.
full_name: Base64#decode_b
is_singleton: false
name: decode_b
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <em>Prints</em> the Base64 encoded version of <tt>bin</tt> (a <tt>String</tt>) in lines of <tt>len</tt> (default 60) characters.
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'base64'\n   data = &quot;Now is the time for all good coders\\nto learn Ruby&quot;\n   Base64.b64encode(data)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g\n   UnVieQ==\n"
full_name: Base64#b64encode
is_singleton: false
name: b64encode
params: (bin, len = 60)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Exception thrown by any rdoc error. Only the #message part is of use externally."
constants: []

full_name: RDoc::RDocError
includes: []

instance_methods: []

name: RDocError
superclass: Exception
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Display usage
full_name: RDoc::usage_no_exit
is_singleton: true
name: usage_no_exit
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: a required file
constants: []

full_name: RDoc::Require
includes: []

instance_methods: []

name: Require
superclass: CodeObject
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Require::new
is_singleton: true
name: new
params: (name, comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_to
is_singleton: false
name: add_to
params: (array, thing)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_class_or_module
is_singleton: false
name: add_class_or_module
params: (collection, class_type, name, superclass=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_attribute
is_singleton: false
name: add_attribute
params: (an_attribute)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: allow us to sort modules by name
full_name: RDoc::Context#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named instance method, or return nil
full_name: RDoc::Context#find_instance_method_named
is_singleton: false
name: find_instance_method_named
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#find_local_symbol
is_singleton: false
name: find_local_symbol
params: (symbol)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_module
is_singleton: false
name: add_module
params: (class_type, name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_alias
is_singleton: false
name: add_alias
params: (an_alias)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_include
is_singleton: false
name: add_include
params: (an_include)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: find a module at a higher scope
full_name: RDoc::Context#find_enclosing_module_named
is_singleton: false
name: find_enclosing_module_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look up the given symbol. If method is non-nil, then we assume the symbol references a module that contains that method
full_name: RDoc::Context#find_symbol
is_singleton: false
name: find_symbol
params: (symbol, method=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: map the module hash to an array externally
full_name: RDoc::Context#modules
is_singleton: false
name: modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: aliases
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: constants
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: in_files
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: includes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: method_list
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: requires
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: sections
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: visibility
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Context is something that can hold modules, classes, methods, attributes, aliases, requires, and includes. Classes, modules, and files are all Contexts.
constants: []

full_name: RDoc::Context
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: add_alias
- !ruby/object:RI::MethodSummary 
  name: add_attribute
- !ruby/object:RI::MethodSummary 
  name: add_class
- !ruby/object:RI::MethodSummary 
  name: add_class_or_module
- !ruby/object:RI::MethodSummary 
  name: add_constant
- !ruby/object:RI::MethodSummary 
  name: add_include
- !ruby/object:RI::MethodSummary 
  name: add_method
- !ruby/object:RI::MethodSummary 
  name: add_module
- !ruby/object:RI::MethodSummary 
  name: add_require
- !ruby/object:RI::MethodSummary 
  name: add_to
- !ruby/object:RI::MethodSummary 
  name: classes
- !ruby/object:RI::MethodSummary 
  name: defined_in?
- !ruby/object:RI::MethodSummary 
  name: each_attribute
- !ruby/object:RI::MethodSummary 
  name: each_classmodule
- !ruby/object:RI::MethodSummary 
  name: each_constant
- !ruby/object:RI::MethodSummary 
  name: each_method
- !ruby/object:RI::MethodSummary 
  name: find_attribute_named
- !ruby/object:RI::MethodSummary 
  name: find_constant_named
- !ruby/object:RI::MethodSummary 
  name: find_enclosing_module_named
- !ruby/object:RI::MethodSummary 
  name: find_instance_method_named
- !ruby/object:RI::MethodSummary 
  name: find_local_symbol
- !ruby/object:RI::MethodSummary 
  name: find_method_named
- !ruby/object:RI::MethodSummary 
  name: find_module_named
- !ruby/object:RI::MethodSummary 
  name: find_symbol
- !ruby/object:RI::MethodSummary 
  name: initialize_classes_and_modules
- !ruby/object:RI::MethodSummary 
  name: initialize_methods_etc
- !ruby/object:RI::MethodSummary 
  name: modules
- !ruby/object:RI::MethodSummary 
  name: ongoing_visibility=
- !ruby/object:RI::MethodSummary 
  name: record_location
- !ruby/object:RI::MethodSummary 
  name: remove_classes_and_modules
- !ruby/object:RI::MethodSummary 
  name: remove_methods_etc
- !ruby/object:RI::MethodSummary 
  name: set_current_section
- !ruby/object:RI::MethodSummary 
  name: set_visibility_for
- !ruby/object:RI::MethodSummary 
  name: toplevel
name: Context
superclass: CodeObject
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#initialize_methods_etc
is_singleton: false
name: initialize_methods_etc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return true if at least part of this thing was defined in <tt>file</tt>
full_name: RDoc::Context#defined_in?
is_singleton: false
name: defined_in?
params: (file)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#initialize_classes_and_modules
is_singleton: false
name: initialize_classes_and_modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given an array <tt>methods</tt> of method names, set the visibility of the corresponding AnyMethod object
full_name: RDoc::Context#set_visibility_for
is_singleton: false
name: set_visibility_for
params: (methods, vis, singleton=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_constant
is_singleton: false
name: add_constant
params: (const)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: a
comment: 
full_name: RDoc::Context#each_attribute
is_singleton: false
name: each_attribute
params: () {|a| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named constant, or return nil
full_name: RDoc::Context#find_constant_named
is_singleton: false
name: find_constant_named
params: (name)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: sequence
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: title
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RDoc::Context::Section
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: set_comment
name: Section
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context::Section::new
is_singleton: true
name: new
params: (title, comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context::Section#set_comment
is_singleton: false
name: set_comment
params: (comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Handle sections
full_name: RDoc::Context#set_current_section
is_singleton: false
name: set_current_section
params: (title, comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the toplevel that owns us
full_name: RDoc::Context#toplevel
is_singleton: false
name: toplevel
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Requires always get added to the top-level (file) context
full_name: RDoc::Context#add_require
is_singleton: false
name: add_require
params: (a_require)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_method
is_singleton: false
name: add_method
params: (a_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Context#add_class
is_singleton: false
name: add_class
params: (class_type, name, superclass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: m
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterate over all the classes and modules in this object
full_name: RDoc::Context#each_classmodule
is_singleton: false
name: each_classmodule
params: () {|m| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: c
comment: 
full_name: RDoc::Context#each_constant
is_singleton: false
name: each_constant
params: () {|c| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If a class's documentation is turned off after we've started collecting methods etc., we need to remove the ones we have
full_name: RDoc::Context#remove_methods_etc
is_singleton: false
name: remove_methods_etc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named module
full_name: RDoc::Context#find_module_named
is_singleton: false
name: find_module_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named method, or return nil
full_name: RDoc::Context#find_method_named
is_singleton: false
name: find_method_named
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named attribute, or return nil
full_name: RDoc::Context#find_attribute_named
is_singleton: false
name: find_attribute_named
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Change the default visibility for new methods
full_name: RDoc::Context#ongoing_visibility=
is_singleton: false
name: ongoing_visibility=
params: (vis)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: map the class hash to an array externally
full_name: RDoc::Context#classes
is_singleton: false
name: classes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: m
comment: 
full_name: RDoc::Context#each_method
is_singleton: false
name: each_method
params: () {|m| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Record the file that we happen to find it in
full_name: RDoc::Context#record_location
is_singleton: false
name: record_location
params: (toplevel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "and remove classes and modules when we see a :nodoc: all"
full_name: RDoc::Context#remove_classes_and_modules
is_singleton: false
name: remove_classes_and_modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Because we're used in contexts that expect to return a token, we set the text string and then return ourselves
full_name: RDoc::Token#set_text
is_singleton: false
name: set_text
params: (text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: char_no
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: line_no
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: text
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NO_TEXT
  value: "\"??\".freeze"
full_name: RDoc::Token
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: set_text
name: Token
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Token::new
is_singleton: true
name: new
params: (line_no, char_no)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adding a class or module to a TopLevel is special, as we only want one copy of a particular top-level class. For example, if both file A and file B implement class C, we only want one ClassModule object for C. This code arranges to share classes and modules between files.
full_name: RDoc::TopLevel#add_class_or_module
is_singleton: false
name: add_class_or_module
params: (collection, class_type, name, superclass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel::find_class_named
is_singleton: true
name: find_class_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel#find_class_or_module_named
is_singleton: false
name: find_class_or_module_named
params: (symbol)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel#find_local_symbol
is_singleton: false
name: find_local_symbol
params: (symbol)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel::all_classes_and_modules
is_singleton: true
name: all_classes_and_modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel::reset
is_singleton: true
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::TopLevel::new
is_singleton: true
name: new
params: (file_name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: diagram
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: file_absolute_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: file_relative_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: file_stat
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_classes_and_modules
- !ruby/object:RI::MethodSummary 
  name: find_class_named
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: reset
comment: 
- !ruby/struct:SM::Flow::P 
  body: A TopLevel context is a source file
constants: []

full_name: RDoc::TopLevel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_class_or_module
- !ruby/object:RI::MethodSummary 
  name: find_class_or_module_named
- !ruby/object:RI::MethodSummary 
  name: find_local_symbol
- !ruby/object:RI::MethodSummary 
  name: find_module_named
- !ruby/object:RI::MethodSummary 
  name: full_name
name: TopLevel
superclass: Context
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a named module
full_name: RDoc::TopLevel#find_module_named
is_singleton: false
name: find_module_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Constant::new
is_singleton: true
name: new
params: (name, value, comment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represent a constant
constants: []

full_name: RDoc::Constant
includes: []

instance_methods: []

name: Constant
superclass: CodeObject
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comment out checker
full_name: RDoc::Fortran95parser#comment_out?
is_singleton: false
name: comment_out?
params: (line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse string argument &quot;text&quot;, and Return Array of Fortran95Definition object
full_name: RDoc::Fortran95parser#definition_info
is_singleton: false
name: definition_info
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return comments of definitions of namelists
full_name: RDoc::Fortran95parser#find_namelists
is_singleton: false
name: find_namelists
params: (text, before_contains=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Which &quot;line&quot; is start of block (module, program, block data, subroutine, function) statement ?
full_name: RDoc::Fortran95parser#block_start?
is_singleton: false
name: block_start?
params: (line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Fortran95parser#progress
is_singleton: false
name: progress
params: (char)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Continuous line checker
full_name: RDoc::Fortran95parser#continuous_line?
is_singleton: false
name: continuous_line?
params: (line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set visibility
- !ruby/struct:SM::Flow::P 
  body: "&quot;subname&quot; element of &quot;visibility_info&quot; is deleted."
full_name: RDoc::Fortran95parser#set_visibility
is_singleton: false
name: set_visibility
params: (container, subname, visibility_default, visibility_info)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: See rdoc/parsers/parse_f95.rb
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "\"false\":"
      body: Comments are below source code
    - !ruby/struct:SM::Flow::LI 
      label: "\"true\" :"
      body: Comments are upper source code
    type: :NOTE
  name: COMMENTS_ARE_UPPER
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Internal alias message
  name: INTERNAL_ALIAS_MES
  value: "\"Alias for\""
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: External alias message
  name: EXTERNAL_ALIAS_MES
  value: "\"The entity is\""
full_name: RDoc::Fortran95parser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: block_end?
- !ruby/object:RI::MethodSummary 
  name: block_start?
- !ruby/object:RI::MethodSummary 
  name: check_external_aliases
- !ruby/object:RI::MethodSummary 
  name: check_public_methods
- !ruby/object:RI::MethodSummary 
  name: collect_first_comment
- !ruby/object:RI::MethodSummary 
  name: comment_out?
- !ruby/object:RI::MethodSummary 
  name: continuous_line?
- !ruby/object:RI::MethodSummary 
  name: definition_info
- !ruby/object:RI::MethodSummary 
  name: find_arguments
- !ruby/object:RI::MethodSummary 
  name: find_comments
- !ruby/object:RI::MethodSummary 
  name: find_namelists
- !ruby/object:RI::MethodSummary 
  name: find_visibility
- !ruby/object:RI::MethodSummary 
  name: initialize_external_method
- !ruby/object:RI::MethodSummary 
  name: initialize_public_method
- !ruby/object:RI::MethodSummary 
  name: parse_program_or_module
- !ruby/object:RI::MethodSummary 
  name: parse_subprogram
- !ruby/object:RI::MethodSummary 
  name: parse_visibility
- !ruby/object:RI::MethodSummary 
  name: progress
- !ruby/object:RI::MethodSummary 
  name: remove_empty_head_lines
- !ruby/object:RI::MethodSummary 
  name: remove_header_marker
- !ruby/object:RI::MethodSummary 
  name: remove_private_comments
- !ruby/object:RI::MethodSummary 
  name: remove_trailing_alias
- !ruby/object:RI::MethodSummary 
  name: scan
- !ruby/object:RI::MethodSummary 
  name: semicolon_to_linefeed
- !ruby/object:RI::MethodSummary 
  name: set_visibility
- !ruby/object:RI::MethodSummary 
  name: united_to_one_line
name: Fortran95parser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Continuous lines are united.
- !ruby/struct:SM::Flow::P 
  body: Comments in continuous lines are removed.
full_name: RDoc::Fortran95parser#united_to_one_line
is_singleton: false
name: united_to_one_line
params: (f90src)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Remove &quot;Alias for&quot; in end of comments
full_name: RDoc::Fortran95parser#remove_trailing_alias
is_singleton: false
name: remove_trailing_alias
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return comments of definitions of arguments
- !ruby/struct:SM::Flow::P 
  body: If &quot;all&quot; argument is true, information of all arguments are returned. If &quot;modified_params&quot; is true, list of arguments are decorated, for example, optional arguments are parenthetic as &quot;[arg]&quot;.
full_name: RDoc::Fortran95parser#find_arguments
is_singleton: false
name: find_arguments
params: (args, text, all=nil, indent=nil, modified_params=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: define code constructs
full_name: RDoc::Fortran95parser#scan
is_singleton: false
name: scan
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Collect comment for file entity
full_name: RDoc::Fortran95parser#collect_first_comment
is_singleton: false
name: collect_first_comment
params: (body)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check external aliases
full_name: RDoc::Fortran95parser#check_external_aliases
is_singleton: false
name: check_external_aliases
params: (subname, params, comment, test=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If attr is included, true is returned
full_name: RDoc::Fortran95parser::Fortran95Definition#include_attr?
is_singleton: false
name: include_attr?
params: (attr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Fortran95parser::Fortran95Definition::new
is_singleton: true
name: new
params: (varname, types, inivalue, arraysuffix, comment, nodoc=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Fortran95parser::Fortran95Definition#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Suffix of array
  name: arraysuffix
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Comments
  name: comment
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Initial Value
  name: inivalue
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag of non documentation
  name: nodoc
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Types of variable
  name: types
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Name of variable
  name: varname
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Information of arguments of subroutines and functions in Fortran95
constants: []

full_name: RDoc::Fortran95parser::Fortran95Definition
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: include_attr?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Fortran95Definition
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Empty lines in header are removed
full_name: RDoc::Fortran95parser#remove_empty_head_lines
is_singleton: false
name: remove_empty_head_lines
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: prepare to parse a Fortran 95 file
full_name: RDoc::Fortran95parser::new
is_singleton: true
name: new
params: (top_level, file_name, body, options, stats)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create method for internal alias
full_name: RDoc::Fortran95parser#initialize_public_method
is_singleton: false
name: initialize_public_method
params: (method, parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check public_methods
full_name: RDoc::Fortran95parser#check_public_methods
is_singleton: false
name: check_public_methods
params: (method, parent)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: header marker &quot;=&quot;, &quot;==&quot;, ... are removed
full_name: RDoc::Fortran95parser#remove_header_marker
is_singleton: false
name: remove_header_marker
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Comments just after module or subprogram, or arguments are returned. If &quot;COMMENTS_ARE_UPPER&quot; is true, comments just before modules or subprograms are returned
full_name: RDoc::Fortran95parser#find_comments
is_singleton: false
name: find_comments
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse arguments, comment, code of subroutine and function. Return AnyMethod object.
full_name: RDoc::Fortran95parser#parse_subprogram
is_singleton: false
name: parse_subprogram
params: (subprogram, params, comment, code, before_contains=nil, function=nil, prefix=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse visibility
full_name: RDoc::Fortran95parser#parse_visibility
is_singleton: false
name: parse_visibility
params: (code, default, container)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Fortran95parser#parse_program_or_module
is_singleton: false
name: parse_program_or_module
params: (container, code, visibility=:public, external=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Semicolons are replaced to line feed.
full_name: RDoc::Fortran95parser#semicolon_to_linefeed
is_singleton: false
name: semicolon_to_linefeed
params: (text)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create method for external alias
- !ruby/struct:SM::Flow::P 
  body: If argument &quot;internal&quot; is true, file is ignored.
full_name: RDoc::Fortran95parser#initialize_external_method
is_singleton: false
name: initialize_external_method
params: (new, old, params, file, comment, token=nil, internal=nil, nolink=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Which &quot;line&quot; is end of block (module, program, block data, subroutine, function) statement ?
full_name: RDoc::Fortran95parser#block_end?
is_singleton: false
name: block_end?
params: (line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Fortran95parser#remove_private_comments
is_singleton: false
name: remove_private_comments
params: (body)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find visibility
full_name: RDoc::Fortran95parser#find_visibility
is_singleton: false
name: find_visibility
params: (container, subname, visibility_info)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::NormalModule#is_module?
is_singleton: false
name: is_module?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Module
constants: []

full_name: RDoc::NormalModule
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: is_module?
name: NormalModule
superclass: ClassModule
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Singleton classes
constants: []

full_name: RDoc::SingleClass
includes: []

instance_methods: []

name: SingleClass
superclass: ClassModule
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: extract_sections
- !ruby/object:RI::MethodSummary 
  name: find_comment
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: no_comment
- !ruby/object:RI::MethodSummary 
  name: usage
- !ruby/object:RI::MethodSummary 
  name: usage_no_exit
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: CSS2 RDoc HTML template
- !ruby/struct:SM::Flow::P 
  body: This is a template for RDoc that uses XHTML 1.0 Transitional and dictates a bit more of the appearance of the output to cascading stylesheets than the default. It was designed for clean inline code display, and uses DHTMl to toggle the visbility of each method's source with each click on the '[source]' link.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Authors
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Michael Granger &lt;ged@FaerieMUD.org&gt;
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Copyright (c) 2002, 2003 The FaerieMUD Consortium. Some rights reserved.
- !ruby/struct:SM::Flow::P 
  body: This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Ruby's built-in classes.
  name: KNOWN_CLASSES
  value: "{     \"rb_cObject\"           => \"Object\",     \"rb_cArray\"            => \"Array\",     \"rb_cBignum\"           => \"Bignum\",     \"rb_cClass\"            => \"Class\",     \"rb_cDir\"              => \"Dir\",     \"rb_cData\"             => \"Data\",     \"rb_cFalseClass\"       => \"FalseClass\",     \"rb_cFile\"             => \"File\",     \"rb_cFixnum\"           => \"Fixnum\",     \"rb_cFloat\"            => \"Float\",     \"rb_cHash\"             => \"Hash\",     \"rb_cInteger\"          => \"Integer\",     \"rb_cIO\"               => \"IO\",     \"rb_cModule\"           => \"Module\",     \"rb_cNilClass\"         => \"NilClass\",     \"rb_cNumeric\"          => \"Numeric\",     \"rb_cProc\"             => \"Proc\",     \"rb_cRange\"            => \"Range\",     \"rb_cRegexp\"           => \"Regexp\",     \"rb_cString\"           => \"String\",     \"rb_cSymbol\"           => \"Symbol\",     \"rb_cThread\"           => \"Thread\",     \"rb_cTime\"             => \"Time\",     \"rb_cTrueClass\"        => \"TrueClass\",     \"rb_cStruct\"           => \"Struct\",     \"rb_eException\"        => \"Exception\",     \"rb_eStandardError\"    => \"StandardError\",     \"rb_eSystemExit\"       => \"SystemExit\",     \"rb_eInterrupt\"        => \"Interrupt\",     \"rb_eSignal\"           => \"Signal\",     \"rb_eFatal\"            => \"Fatal\",     \"rb_eArgError\"         => \"ArgError\",     \"rb_eEOFError\"         => \"EOFError\",     \"rb_eIndexError\"       => \"IndexError\",     \"rb_eRangeError\"       => \"RangeError\",     \"rb_eIOError\"          => \"IOError\",     \"rb_eRuntimeError\"     => \"RuntimeError\",     \"rb_eSecurityError\"    => \"SecurityError\",     \"rb_eSystemCallError\"  => \"SystemCallError\",     \"rb_eTypeError\"        => \"TypeError\",     \"rb_eZeroDivError\"     => \"ZeroDivError\",     \"rb_eNotImpError\"      => \"NotImpError\",     \"rb_eNoMemError\"       => \"NoMemError\",     \"rb_eFloatDomainError\" => \"FloatDomainError\",     \"rb_eScriptError\"      => \"ScriptError\",     \"rb_eNameError\"        => \"NameError\",     \"rb_eSyntaxError\"      => \"SyntaxError\",     \"rb_eLoadError\"        => \"LoadError\",      \"rb_mKernel\"           => \"Kernel\",     \"rb_mComparable\"       => \"Comparable\",     \"rb_mEnumerable\"       => \"Enumerable\",     \"rb_mPrecision\"        => \"Precision\",     \"rb_mErrno\"            => \"Errno\",     \"rb_mFileTest\"         => \"FileTest\",     \"rb_mGC\"               => \"GC\",     \"rb_mMath\"             => \"Math\",     \"rb_mProcess\"          => \"Process\""
- !ruby/object:RI::Constant 
  comment: 
  name: GENERAL_MODIFIERS
  value: "[ 'nodoc' ].freeze"
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_MODIFIERS
  value: GENERAL_MODIFIERS
- !ruby/object:RI::Constant 
  comment: 
  name: ATTR_MODIFIERS
  value: GENERAL_MODIFIERS
- !ruby/object:RI::Constant 
  comment: 
  name: CONSTANT_MODIFIERS
  value: GENERAL_MODIFIERS
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD_MODIFIERS
  value: GENERAL_MODIFIERS +      [ 'arg', 'args', 'yield', 'yields', 'notnew', 'not-new', 'not_new', 'doc' ]
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Name of the dotfile that contains the description of files to be processed in the current directory
  name: DOT_DOC_FILENAME
  value: "\".document\""
full_name: RDoc
includes: []

instance_methods: []

name: RDoc
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Access the code object's comment
  name: comment
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: do we document ourselves and our children
  name: document_children
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: do we document ourselves?
  name: document_self
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: are we done documenting (ie, did we come across a :enddoc:)?
  name: done_documenting
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Do we <em>force</em> documentation, even is we wouldn't normally show the entity
  name: force_documentation
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: parent
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Which section are we in
  name: section
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: We are the model of the code, but we know that at some point we will be worked on by viewers. By implementing the Viewable protocol, viewers can associated themselves with these objects.
  name: viewer
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: attr_overridable
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: We contain the common stuff for contexts (which are containers) and other elements (methods, attributes and so on)
constants: []

full_name: RDoc::CodeObject
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: comment=
- !ruby/object:RI::MethodSummary 
  name: document_children=
- !ruby/object:RI::MethodSummary 
  name: document_self=
- !ruby/object:RI::MethodSummary 
  name: remove_classes_and_modules
- !ruby/object:RI::MethodSummary 
  name: remove_methods_etc
- !ruby/object:RI::MethodSummary 
  name: start_doc
- !ruby/object:RI::MethodSummary 
  name: stop_doc
name: CodeObject
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Update the comment, but don't overwrite a real comment with an empty one
full_name: RDoc::CodeObject#comment=
is_singleton: false
name: comment=
params: (comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::CodeObject#document_children=
is_singleton: false
name: document_children=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::CodeObject::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: There's a wee trick we pull. Comment blocks can have directives that override the stuff we extract during the parse. So, we have a special class method, attr_overridable, that lets code objects list those directives. Wehn a comment is assigned, we then extract out any matching directives and update our object
full_name: RDoc::CodeObject::attr_overridable
is_singleton: true
name: attr_overridable
params: (name, *aliases)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::CodeObject#document_self=
is_singleton: false
name: document_self=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "set and cleared by :startdoc: and :enddoc:, this is used to toggle the capturing of documentation"
full_name: RDoc::CodeObject#start_doc
is_singleton: false
name: start_doc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::CodeObject#remove_methods_etc
is_singleton: false
name: remove_methods_etc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::CodeObject#stop_doc
is_singleton: false
name: stop_doc
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Default callbacks to nothing, but this is overridden for classes and modules
full_name: RDoc::CodeObject#remove_classes_and_modules
is_singleton: false
name: remove_classes_and_modules
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: progress
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "We attempt to parse C extension files. Basically we look for the standard patterns that you find in extensions: <tt>rb_define_class, rb_define_method</tt> and so on. We also try to find the corresponding C source for the methods and extract comments, but if we fail we don't worry too much."
- !ruby/struct:SM::Flow::P 
  body: "The comments associated with a Ruby method are extracted from the C comment block associated with the routine that <em>implements</em> that method, that is to say the method whose name is given in the <tt>rb_define_method</tt> call. For example, you might write:"
- !ruby/struct:SM::Flow::VERB 
  body: " /*\n  * Returns a new array that is a one-dimensional flattening of this\n  * array (recursively). That is, for every element that is an array,\n  * extract its elements into the new array.\n  *\n  *    s = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]\n  *    t = [ 4, 5, 6, [7, 8] ]   #=&gt; [4, 5, 6, [7, 8]]\n  *    a = [ s, t, 9, 10 ]       #=&gt; [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]\n  *    a.flatten                 #=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n  */\n  static VALUE\n  rb_ary_flatten(ary)\n      VALUE ary;\n  {\n      ary = rb_obj_dup(ary);\n      rb_ary_flatten_bang(ary);\n      return ary;\n  }\n\n  ...\n\n  void\n  Init_Array()\n  {\n    ...\n    rb_define_method(rb_cArray, &quot;flatten&quot;, rb_ary_flatten, 0);\n"
- !ruby/struct:SM::Flow::P 
  body: Here RDoc will determine from the rb_define_method line that there's a method called &quot;flatten&quot; in class Array, and will look for the implementation in the method rb_ary_flatten. It will then use the comment from that method in the HTML output. This method must be in the same source file as the rb_define_method.
- !ruby/struct:SM::Flow::P 
  body: C classes can be diagrammed (see /tc/dl/ruby/ruby/error.c), and RDoc integrates C and Ruby source into one tree
- !ruby/struct:SM::Flow::P 
  body: "The comment blocks may include special directives:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Document-class: <i>name</i>"
    body: This comment block is documentation for the given class. Use this when the <tt>Init_xxx</tt> method is not named after the class.
  - !ruby/struct:SM::Flow::LI 
    label: "Document-method: <i>name</i>"
    body: This comment documents the named method. Use when RDoc cannot automatically find the method from it's declaration
  - !ruby/struct:SM::Flow::LI 
    label: "call-seq:  <i>text up to an empty line</i>"
    body: Because C source doesn't give descriptive names to Ruby-level parameters, you need to document the calling sequence explicitly
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: In addition, RDoc assumes by default that the C method implementing a Ruby function is in the same source file as the rb_define_method call. If this isn't the case, add the comment
- !ruby/struct:SM::Flow::VERB 
  body: "   rb_define_method(....);  // in: filename\n"
- !ruby/struct:SM::Flow::P 
  body: As an example, we might have an extension that defines multiple classes in its Init_xxx method. We could document them using
- !ruby/struct:SM::Flow::VERB 
  body: " /*\n  * Document-class:  MyClass\n  *\n  * Encapsulate the writing and reading of the configuration\n  * file. ...\n  */\n\n /*\n  * Document-method: read_value\n  *\n  * call-seq:\n  *   cfg.read_value(key)            -&gt; value\n  *   cfg.read_value(key} { |key| }  -&gt; value\n  *\n  * Return the value corresponding to <tt>key</tt> from the configuration.\n  * In the second form, if the key isn't found, invoke the\n  * block and return its value.\n  */\n"
constants: []

full_name: RDoc::C_Parser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: do_aliases
- !ruby/object:RI::MethodSummary 
  name: do_classes
- !ruby/object:RI::MethodSummary 
  name: do_constants
- !ruby/object:RI::MethodSummary 
  name: do_includes
- !ruby/object:RI::MethodSummary 
  name: do_methods
- !ruby/object:RI::MethodSummary 
  name: find_attr_comment
- !ruby/object:RI::MethodSummary 
  name: find_body
- !ruby/object:RI::MethodSummary 
  name: find_class
- !ruby/object:RI::MethodSummary 
  name: find_class_comment
- !ruby/object:RI::MethodSummary 
  name: find_const_comment
- !ruby/object:RI::MethodSummary 
  name: find_modifiers
- !ruby/object:RI::MethodSummary 
  name: find_override_comment
- !ruby/object:RI::MethodSummary 
  name: handle_attr
- !ruby/object:RI::MethodSummary 
  name: handle_class_module
- !ruby/object:RI::MethodSummary 
  name: handle_constants
- !ruby/object:RI::MethodSummary 
  name: handle_ifdefs_in
- !ruby/object:RI::MethodSummary 
  name: handle_method
- !ruby/object:RI::MethodSummary 
  name: handle_tab_width
- !ruby/object:RI::MethodSummary 
  name: mangle_comment
- !ruby/object:RI::MethodSummary 
  name: progress
- !ruby/object:RI::MethodSummary 
  name: remove_commented_out_lines
- !ruby/object:RI::MethodSummary 
  name: remove_private_comments
- !ruby/object:RI::MethodSummary 
  name: scan
- !ruby/object:RI::MethodSummary 
  name: warn
name: C_Parser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Removes #ifdefs that would otherwise confuse us"
full_name: RDoc::C_Parser#handle_ifdefs_in
is_singleton: false
name: handle_ifdefs_in
params: (body)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#progress
is_singleton: false
name: progress
params: (char)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look for class or module documentation above Init_+class_name+(void), in a Document-class <tt>class_name</tt> (or module) comment or above an rb_define_class (or module). If a comment is supplied above a matching Init_ and a rb_define_class the Init_ comment is used.
- !ruby/struct:SM::Flow::VERB 
  body: "  /*\n   * This is a comment for Foo\n   */\n  Init_Foo(void) {\n      VALUE cFoo = rb_define_class(&quot;Foo&quot;, rb_cObject);\n  }\n\n  /*\n   * Document-class: Foo\n   * This is a comment for Foo\n   */\n  Init_foo(void) {\n      VALUE cFoo = rb_define_class(&quot;Foo&quot;, rb_cObject);\n  }\n\n  /*\n   * This is a comment for Foo\n   */\n  VALUE cFoo = rb_define_class(&quot;Foo&quot;, rb_cObject);\n"
full_name: RDoc::C_Parser#find_class_comment
is_singleton: false
name: find_class_comment
params: (class_name, class_meth)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#find_override_comment
is_singleton: false
name: find_override_comment
params: (meth_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Adds constant comments. By providing some_value: at the start ofthe comment you can override the C value of the comment to give a friendly definition."
- !ruby/struct:SM::Flow::VERB 
  body: "  /* 300: The perfect score in bowling */\n  rb_define_const(cFoo, &quot;PERFECT&quot;, INT2FIX(300);\n"
- !ruby/struct:SM::Flow::P 
  body: Will override +INT2FIX(300)+ with the value +300+ in the output RDoc. Values may include quotes and escaped colons (\:).
full_name: RDoc::C_Parser#handle_constants
is_singleton: false
name: handle_constants
params: (type, var_name, const_name, definition)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: removes lines that are commented out that might otherwise get picked up when scanning for classes and methods
full_name: RDoc::C_Parser#remove_commented_out_lines
is_singleton: false
name: remove_commented_out_lines
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#do_constants
is_singleton: false
name: do_constants
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::C_Parser#handle_tab_width
is_singleton: false
name: handle_tab_width
params: (body)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#handle_attr
is_singleton: false
name: handle_attr
params: (var_name, attr_name, reader, writer)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::C_Parser#handle_class_module
is_singleton: false
name: handle_class_module
params: (var_name, class_mod, class_name, parent, in_module)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#handle_method
is_singleton: false
name: handle_method
params: (type, var_name, meth_name, meth_body, param_count, source_file = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extract the classes/modules and methods from a C file and return the corresponding top-level object
full_name: RDoc::C_Parser#scan
is_singleton: false
name: scan
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If the comment block contains a section that looks like:"
- !ruby/struct:SM::Flow::P 
  body: use it for the parameters.
full_name: RDoc::C_Parser#find_modifiers
is_singleton: false
name: find_modifiers
params: |
  Array.new
  Array.new(10)

visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::C_Parser#find_class
is_singleton: false
name: find_class
params: (raw_name, name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#do_classes
is_singleton: false
name: do_classes
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: prepare to parse a C file
full_name: RDoc::C_Parser::new
is_singleton: true
name: new
params: (top_level, file_name, body, options, stats)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finds a comment matching <tt>type</tt> and <tt>const_name</tt> either above the comment or in the matching Document- section.
full_name: RDoc::C_Parser#find_const_comment
is_singleton: false
name: find_const_comment
params: (type, const_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find the C code corresponding to a Ruby method
full_name: RDoc::C_Parser#find_body
is_singleton: false
name: find_body
params: (meth_name, meth_obj, body, quiet = false)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Remove the /*'s and leading asterisks from C comments
full_name: RDoc::C_Parser#mangle_comment
is_singleton: false
name: mangle_comment
params: (comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#find_attr_comment
is_singleton: false
name: find_attr_comment
params: (attr_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#do_methods
is_singleton: false
name: do_methods
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::C_Parser#warn
is_singleton: false
name: warn
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::C_Parser#do_aliases
is_singleton: false
name: do_aliases
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::C_Parser#remove_private_comments
is_singleton: false
name: remove_private_comments
params: (comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Look for includes of the form:"
- !ruby/struct:SM::Flow::VERB 
  body: "    rb_include_module(rb_cArray, rb_mEnumerable);\n"
full_name: RDoc::C_Parser#do_includes
is_singleton: false
name: do_includes
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#remove_token_listener
is_singleton: false
name: remove_token_listener
params: (obj)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_constant
is_singleton: false
name: parse_constant
params: (container, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#unget_tk
is_singleton: false
name: unget_tk
params: (tk)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_method_or_yield_parameters
is_singleton: false
name: parse_method_or_yield_parameters
params: (method=nil, modifiers=METHOD_MODIFIERS)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_require
is_singleton: false
name: parse_require
params: (context, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#skip_tkspace
is_singleton: false
name: skip_tkspace
params: (skip_nl = true)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse a constant, which might be qualified by one or more class or module names
full_name: RDoc::RubyParser#get_constant
is_singleton: false
name: get_constant
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Directives are modifier comments that can appear after class, module, or method names. For example
- !ruby/struct:SM::Flow::VERB 
  body: "  def fred    # :yields:  a, b\n"
- !ruby/struct:SM::Flow::P 
  body: or
- !ruby/struct:SM::Flow::VERB 
  body: "  class SM  # :nodoc:\n"
- !ruby/struct:SM::Flow::P 
  body: we return the directive name and any parameters as a two element array
full_name: RDoc::RubyParser#read_directive
is_singleton: false
name: read_directive
params: (allowed)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#progress
is_singleton: false
name: progress
params: (char)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NORMAL
  value: "\"::\""
- !ruby/object:RI::Constant 
  comment: 
  name: SINGLE
  value: "\"<<\""
full_name: RDoc::RubyParser
includes: 
- !ruby/object:RI::IncludedModule 
  name: RubyToken
- !ruby/object:RI::IncludedModule 
  name: TokenStream
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_token_listener
- !ruby/object:RI::MethodSummary 
  name: collect_first_comment
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: get_bool
- !ruby/object:RI::MethodSummary 
  name: get_class_or_module
- !ruby/object:RI::MethodSummary 
  name: get_class_specification
- !ruby/object:RI::MethodSummary 
  name: get_constant
- !ruby/object:RI::MethodSummary 
  name: get_constant_with_optional_parens
- !ruby/object:RI::MethodSummary 
  name: get_symbol_or_name
- !ruby/object:RI::MethodSummary 
  name: get_tk
- !ruby/object:RI::MethodSummary 
  name: get_tkread
- !ruby/object:RI::MethodSummary 
  name: look_for_directives_in
- !ruby/object:RI::MethodSummary 
  name: make_message
- !ruby/object:RI::MethodSummary 
  name: parse_alias
- !ruby/object:RI::MethodSummary 
  name: parse_attr
- !ruby/object:RI::MethodSummary 
  name: parse_attr_accessor
- !ruby/object:RI::MethodSummary 
  name: parse_call_parameters
- !ruby/object:RI::MethodSummary 
  name: parse_class
- !ruby/object:RI::MethodSummary 
  name: parse_constant
- !ruby/object:RI::MethodSummary 
  name: parse_include
- !ruby/object:RI::MethodSummary 
  name: parse_method
- !ruby/object:RI::MethodSummary 
  name: parse_method_or_yield_parameters
- !ruby/object:RI::MethodSummary 
  name: parse_method_parameters
- !ruby/object:RI::MethodSummary 
  name: parse_module
- !ruby/object:RI::MethodSummary 
  name: parse_require
- !ruby/object:RI::MethodSummary 
  name: parse_statements
- !ruby/object:RI::MethodSummary 
  name: parse_symbol_arg
- !ruby/object:RI::MethodSummary 
  name: parse_symbol_in_arg
- !ruby/object:RI::MethodSummary 
  name: parse_toplevel_statements
- !ruby/object:RI::MethodSummary 
  name: parse_visibility
- !ruby/object:RI::MethodSummary 
  name: parse_yield
- !ruby/object:RI::MethodSummary 
  name: parse_yield_parameters
- !ruby/object:RI::MethodSummary 
  name: peek_read
- !ruby/object:RI::MethodSummary 
  name: peek_tk
- !ruby/object:RI::MethodSummary 
  name: progress
- !ruby/object:RI::MethodSummary 
  name: read_directive
- !ruby/object:RI::MethodSummary 
  name: read_documentation_modifiers
- !ruby/object:RI::MethodSummary 
  name: remove_private_comments
- !ruby/object:RI::MethodSummary 
  name: remove_token_listener
- !ruby/object:RI::MethodSummary 
  name: scan
- !ruby/object:RI::MethodSummary 
  name: skip_for_variable
- !ruby/object:RI::MethodSummary 
  name: skip_method
- !ruby/object:RI::MethodSummary 
  name: skip_optional_do_after_expression
- !ruby/object:RI::MethodSummary 
  name: skip_tkspace
- !ruby/object:RI::MethodSummary 
  name: skip_tkspace_comment
- !ruby/object:RI::MethodSummary 
  name: unget_tk
- !ruby/object:RI::MethodSummary 
  name: warn
name: RubyParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_class
is_singleton: false
name: parse_class
params: (container, single, tk, comment, &block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_call_parameters
is_singleton: false
name: parse_call_parameters
params: (tk)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_method
is_singleton: false
name: parse_method
params: (container, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#error
is_singleton: false
name: error
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: skip the var [in] part of a 'for' statement
full_name: RDoc::RubyParser#skip_for_variable
is_singleton: false
name: skip_for_variable
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#peek_read
is_singleton: false
name: peek_read
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Look for directives in a normal comment block:"
- !ruby/struct:SM::Flow::VERB 
  body: "  #--       - don't display comment from this point forward\n"
- !ruby/struct:SM::Flow::P 
  body: This routine modifies it's parameter
full_name: RDoc::RubyParser#look_for_directives_in
is_singleton: false
name: look_for_directives_in
params: (context, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#read_documentation_modifiers
is_singleton: false
name: read_documentation_modifiers
params: (context, allow)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get a constant that may be surrounded by parens
full_name: RDoc::RubyParser#get_constant_with_optional_parens
is_singleton: false
name: get_constant_with_optional_parens
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: while, until, and for have an optional
full_name: RDoc::RubyParser#skip_optional_do_after_expression
is_singleton: false
name: skip_optional_do_after_expression
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_yield_parameters
is_singleton: false
name: parse_yield_parameters
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#scan
is_singleton: false
name: scan
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look for the first comment in a file that isn't a shebang line.
full_name: RDoc::RubyParser#collect_first_comment
is_singleton: false
name: collect_first_comment
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_alias
is_singleton: false
name: parse_alias
params: (context, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#peek_tk
is_singleton: false
name: peek_tk
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser::new
is_singleton: true
name: new
params: (top_level, file_name, content, options, stats)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_yield
is_singleton: false
name: parse_yield
params: (context, single, tk, method)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_symbol_arg
is_singleton: false
name: parse_symbol_arg
params: (no = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a superclass, which can be either a constant of an expression
full_name: RDoc::RubyParser#get_class_specification
is_singleton: false
name: get_class_specification
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#get_tk
is_singleton: false
name: get_tk
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_visibility
is_singleton: false
name: parse_visibility
params: (container, single, tk)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#make_message
is_singleton: false
name: make_message
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_attr
is_singleton: false
name: parse_attr
params: (context, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Capture the method's parameters. Along the way, look for a comment containing
- !ruby/struct:SM::Flow::VERB 
  body: "   # yields: ....\n"
- !ruby/struct:SM::Flow::P 
  body: and add this as the block_params for the method
full_name: RDoc::RubyParser#parse_method_parameters
is_singleton: false
name: parse_method_parameters
params: (method)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#warn
is_singleton: false
name: warn
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#add_token_listener
is_singleton: false
name: add_token_listener
params: (obj)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#get_symbol_or_name
is_singleton: false
name: get_symbol_or_name
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#get_tkread
is_singleton: false
name: get_tkread
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_toplevel_statements
is_singleton: false
name: parse_toplevel_statements
params: (container)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_module
is_singleton: false
name: parse_module
params: (container, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_statements
is_singleton: false
name: parse_statements
params: (container, single=NORMAL, current_method=nil, comment='')
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#get_bool
is_singleton: false
name: get_bool
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_attr_accessor
is_singleton: false
name: parse_attr_accessor
params: (context, single, tk, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_include
is_singleton: false
name: parse_include
params: (context, comment)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Look for the name of a class of module (optionally with a leading :"
    body: or
  - !ruby/struct:SM::Flow::LI 
    label: "with :"
    body: separated named) and return the ultimate name and container
  type: :NOTE
full_name: RDoc::RubyParser#get_class_or_module
is_singleton: false
name: get_class_or_module
params: (container)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#skip_method
is_singleton: false
name: skip_method
params: (container)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#parse_symbol_in_arg
is_singleton: false
name: parse_symbol_in_arg
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#skip_tkspace_comment
is_singleton: false
name: skip_tkspace_comment
params: (skip_nl = true)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::RubyParser#remove_private_comments
is_singleton: false
name: remove_private_comments
params: (comment)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This is how you define the HTML that RDoc generates. Simply create a file in rdoc/generators/html_templates that creates the module RDoc::Page and populate it as described below. Then invoke rdoc using the --template &lt;name of your file&gt; option, and your template will be used.
- !ruby/struct:SM::Flow::P 
  body: "The constants defining pages use a simple templating system:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: The templating system is passed a hash. Keys in the hash correspond to tags on this page. The tag %abc% is looked up in the hash, and is replaced by the corresponding hash value.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Some tags are optional. You can detect this using IF/ENDIF
  - !ruby/struct:SM::Flow::VERB 
    body: "   IF: title\n   The value of title is %title%\n   ENDIF: title\n"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Some entries in the hash have values that are arrays, where each entry in the array is itself a hash. These are used to generate lists using the START: construct. For example, given a hash containing"
  - !ruby/struct:SM::Flow::VERB 
    body: "   { 'people' =&gt; [ { 'name' =&gt; 'Fred', 'age' =&gt; '12' },\n                   { 'name' =&gt; 'Mary', 'age' =&gt; '21' } ]\n"
  - !ruby/struct:SM::Flow::P 
    body: You could generate a simple table using
  - !ruby/struct:SM::Flow::VERB 
    body: "   &lt;table&gt;\n   START:people\n     &lt;tr&gt;&lt;td&gt;%name%&lt;td&gt;%age%&lt;/tr&gt;\n   END:people\n   &lt;/table&gt;\n"
  - !ruby/struct:SM::Flow::P 
    body: These lists can be nested to an arbitrary depth
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "the construct HREF:url:name: generates &lt;a href=&quot;%url%&quot;&gt;%name%&lt;/a&gt; if <tt>url</tt> is defined in the hash, or %name% otherwise."
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Your file must contain the following constants
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*FONTS*"
    body: a list of fonts to be used
  - !ruby/struct:SM::Flow::LI 
    label: "*STYLE*"
    body: a CSS section (without the &lt;style&gt; or comments). This is used to generate a style.css file
  - !ruby/struct:SM::Flow::LI 
    label: "*BODY*"
    body: "The main body of all non-index RDoc pages. BODY will contain two !INCLUDE!s. The first is used to include a document-type specific header (FILE_PAGE or CLASS_PAGE). The second include is for the method list (METHOD_LIST). THe body is passed:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%title%:"
      body: the page's title
    - !ruby/struct:SM::Flow::LI 
      label: "%style_url%:"
      body: the url of a style sheet for this page
    - !ruby/struct:SM::Flow::LI 
      label: "%diagram%:"
      body: the optional URL of a diagram for this page
    - !ruby/struct:SM::Flow::LI 
      label: "%description%:"
      body: a (potentially multi-paragraph) string containing the description for th file/class/module.
    - !ruby/struct:SM::Flow::LI 
      label: "%requires%:"
      body: an optional list of %aref%/%name% pairs, one for each module required by this file.
    - !ruby/struct:SM::Flow::LI 
      label: "%methods%:"
      body: an optional list of %aref%/%name%, one for each method documented on this page. This is intended to be an index.
    - !ruby/struct:SM::Flow::LI 
      label: "%attributes%:"
      body: "An optional list. For each attribute it contains:"
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: "%name%:"
        body: the attribute name
      - !ruby/struct:SM::Flow::LI 
        label: "%rw%:"
        body: r/o, w/o, or r/w
      - !ruby/struct:SM::Flow::LI 
        label: "%a_desc%:"
        body: description of the attribute
      type: :NOTE
    - !ruby/struct:SM::Flow::LI 
      label: "%classlist%:"
      body: An optional string containing an already-formatted list of classes and modules documented in this file
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: For FILE_PAGE entries, the body will be passed
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%short_name%:"
      body: The name of the file
    - !ruby/struct:SM::Flow::LI 
      label: "%full_path%:"
      body: The full path to the file
    - !ruby/struct:SM::Flow::LI 
      label: "%dtm_modified%:"
      body: The date/time the file was last changed
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: For class and module pages, the body will be passed
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%classmod%:"
      body: The name of the class or module
    - !ruby/struct:SM::Flow::LI 
      label: "%files%:"
      body: "A list. For each file this class is defined in, it contains:"
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: "%full_path_url%:"
        body: an (optional) URL of the RDoc page for this file
      - !ruby/struct:SM::Flow::LI 
        label: "%full_path%:"
        body: the name of the file
      type: :NOTE
    - !ruby/struct:SM::Flow::LI 
      label: "%par_url%:"
      body: The (optional) URL of the RDoc page documenting this class's parent class
    - !ruby/struct:SM::Flow::LI 
      label: "%parent%:"
      body: The name of this class's parent.
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: "For both files and classes, the body is passed the following information on includes and methods:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%includes%:"
      body: Optional list of included modules. For each, it receives
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: "%aref%:"
        body: optional URL to RDoc page for the module
      - !ruby/struct:SM::Flow::LI 
        label: "%name%:"
        body: the name of the module
      type: :NOTE
    - !ruby/struct:SM::Flow::LI 
      label: "%method_list%:"
      body: Optional list of methods of a particular class and category.
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: "Each method list entry contains:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%type%:"
      body: public/private/protected
    - !ruby/struct:SM::Flow::LI 
      label: "%category%:"
      body: instance/class
    - !ruby/struct:SM::Flow::LI 
      label: "%methods%:"
      body: a list of method descriptions
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: "Each method description contains:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%aref%:"
      body: a target aref, used when referencing this method description. You should code this as &lt;a name=&quot;%aref%&quot;&gt;
    - !ruby/struct:SM::Flow::LI 
      label: "%codeurl%:"
      body: the optional URL to the page containing this method's source code.
    - !ruby/struct:SM::Flow::LI 
      label: "%name%:"
      body: the method's name
    - !ruby/struct:SM::Flow::LI 
      label: "%params%:"
      body: the method's parameters
    - !ruby/struct:SM::Flow::LI 
      label: "%callseq%:"
      body: a full calling sequence
    - !ruby/struct:SM::Flow::LI 
      label: "%m_desc%:"
      body: the (potentially multi-paragraph) description of this method.
    type: :NOTE
  - !ruby/struct:SM::Flow::LI 
    label: "*CLASS_PAGE*"
    body: Header for pages documenting classes and modules. See BODY above for the available parameters.
  - !ruby/struct:SM::Flow::LI 
    label: "*FILE_PAGE*"
    body: Header for pages documenting files. See BODY above for the available parameters.
  - !ruby/struct:SM::Flow::LI 
    label: "*METHOD_LIST*"
    body: Controls the display of the listing of methods. See BODY for parameters.
  - !ruby/struct:SM::Flow::LI 
    label: "*INDEX*"
    body: The top-level index page. For a browser-like environment define a frame set that includes the file, class, and method indices. Passed
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%title%:"
      body: title of page
    - !ruby/struct:SM::Flow::LI 
      label: "%initial_page% :"
      body: url of initial page to display
    type: :NOTE
  - !ruby/struct:SM::Flow::LI 
    label: "*CLASS_INDEX*"
    body: "Individual files for the three indexes. Passed:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "%index_url%:"
      body: URL of main index page
    - !ruby/struct:SM::Flow::LI 
      label: "%entries%:"
      body: List of
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: "%name%:"
        body: name of an index entry
      - !ruby/struct:SM::Flow::LI 
        label: "%href%:"
        body: url of corresponding page
      type: :NOTE
    type: :NOTE
  - !ruby/struct:SM::Flow::LI 
    label: "*METHOD_INDEX*"
    body: Same as CLASS_INDEX for methods
  - !ruby/struct:SM::Flow::LI 
    label: "*FILE_INDEX*"
    body: Same as CLASS_INDEX for methods
  - !ruby/struct:SM::Flow::LI 
    label: "*FR_INDEX_BODY*"
    body: A wrapper around CLASS_INDEX, METHOD_INDEX, and FILE_INDEX. If those index strings contain the complete HTML for the output, then FR_INDEX_BODY can simply be !INCLUDE!
  - !ruby/struct:SM::Flow::LI 
    label: "*SRC_PAGE*"
    body: Page used to display source code. Passed %title% and %code%, the latter being a multi-line string of code.
  type: :LABELED
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: HPP_FILE
  value: "%{ [OPTIONS] Auto Index = Yes Compatibility=1.1 or later Compiled file=%opname%.chm Contents file=contents.hhc Full-text search=Yes Index file=index.hhk Language=0x409 English(United States) Title=%title%  [FILES] START:all_html_files %html_file_name% END:all_html_files }"
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENTS
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\"> <HTML> <HEAD> <meta name=\"GENERATOR\" content=\"Microsoft&reg; HTML Help Workshop 4.1\"> <!-- Sitemap 1.0 --> </HEAD><BODY> <OBJECT type=\"text/site properties\">         <param name=\"Foreground\" value=\"0x80\">         <param name=\"Window Styles\" value=\"0x800025\">         <param name=\"ImageType\" value=\"Folder\"> </OBJECT> <UL> START:contents         <LI> <OBJECT type=\"text/sitemap\">                 <param name=\"Name\" value=\"%c_name%\">                 <param name=\"Local\" value=\"%ref%\">                 </OBJECT> IF:methods <ul> START:methods         <LI> <OBJECT type=\"text/sitemap\">                 <param name=\"Name\" value=\"%name%\">                 <param name=\"Local\" value=\"%aref%\">                 </OBJECT> END:methods </ul> ENDIF:methods         </LI> END:contents </UL> </BODY></HTML> }"
- !ruby/object:RI::Constant 
  comment: 
  name: CHM_INDEX
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\"> <HTML> <HEAD> <meta name=\"GENERATOR\" content=\"Microsoft&reg; HTML Help Workshop 4.1\"> <!-- Sitemap 1.0 --> </HEAD><BODY> <OBJECT type=\"text/site properties\">         <param name=\"Foreground\" value=\"0x80\">         <param name=\"Window Styles\" value=\"0x800025\">         <param name=\"ImageType\" value=\"Folder\"> </OBJECT> <UL> START:index         <LI> <OBJECT type=\"text/sitemap\">                 <param name=\"Name\" value=\"%name%\">                 <param name=\"Local\" value=\"%aref%\">                 </OBJECT> END:index </UL> </BODY></HTML> }"
- !ruby/object:RI::Constant 
  comment: 
  name: FONTS
  value: "\"Verdana,Arial,Helvetica,sans-serif\""
- !ruby/object:RI::Constant 
  comment: 
  name: STYLE
  value: "%{ body {     font-family: Verdana,Arial,Helvetica,sans-serif;     font-size:   90%;     margin: 0;     margin-left: 40px;     padding: 0;     background: white; }  h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; } h1 { font-size: 150%; } h2,h3,h4 { margin-top: 1em; }  a { background: #eef; color: #039; text-decoration: none; } a:hover { background: #039; color: #eef; }  /* Override the base stylesheet's Anchor inside a table cell */ td > a {   background: transparent;   color: #039;   text-decoration: none; }  /* and inside a section title */ .section-title > a {   background: transparent;   color: #eee;   text-decoration: none; }  /* === Structural elements =================================== */  div#index {     margin: 0;     margin-left: -40px;     padding: 0;     font-size: 90%; }   div#index a {     margin-left: 0.7em; }  div#index .section-bar {    margin-left: 0px;    padding-left: 0.7em;    background: #ccc;    font-size: small; }   div#classHeader, div#fileHeader {     width: auto;     color: white;     padding: 0.5em 1.5em 0.5em 1.5em;     margin: 0;     margin-left: -40px;     border-bottom: 3px solid #006; }  div#classHeader a, div#fileHeader a {     background: inherit;     color: white; }  div#classHeader td, div#fileHeader td {     background: inherit;     color: white; }   div#fileHeader {     background: #057; }  div#classHeader {     background: #048; }   .class-name-in-header {   font-size:  180%;   font-weight: bold; }   div#bodyContent {     padding: 0 1.5em 0 1.5em; }  div#description {     padding: 0.5em 1.5em;     background: #efefef;     border: 1px dotted #999; }  div#description h1,h2,h3,h4,h5,h6 {     color: #125;;     background: transparent; }  div#validator-badges {     text-align: center; } div#validator-badges img { border: 0; }  div#copyright {     color: #333;     background: #efefef;     font: 0.75em sans-serif;     margin-top: 5em;     margin-bottom: 0;     padding: 0.5em 2em; }   /* === Classes =================================== */  table.header-table {     color: white;     font-size: small; }  .type-note {     font-size: small;     color: #DEDEDE; }  .xxsection-bar {     background: #eee;     color: #333;     padding: 3px; }  .section-bar {    color: #333;    border-bottom: 1px solid #999;     margin-left: -20px; }   .section-title {     background: #79a;     color: #eee;     padding: 3px;     margin-top: 2em;     margin-left: -30px;     border: 1px solid #999; }  .top-aligned-row {  vertical-align: top } .bottom-aligned-row { vertical-align: bottom }  /* --- Context section classes ----------------------- */  .context-row { } .context-item-name { font-family: monospace; font-weight: bold; color: black; } .context-item-value { font-size: small; color: #448; } .context-item-desc { color: #333; padding-left: 2em; }  /* --- Method classes -------------------------- */ .method-detail {     background: #efefef;     padding: 0;     margin-top: 0.5em;     margin-bottom: 1em;     border: 1px dotted #ccc; } .method-heading {   color: black;   background: #ccc;   border-bottom: 1px solid #666;   padding: 0.2em 0.5em 0 0.5em; } .method-signature { color: black; background: inherit; } .method-name { font-weight: bold; } .method-args { font-style: italic; } .method-description { padding: 0 0.5em 0 0.5em; }  /* --- Source code sections -------------------- */  a.source-toggle { font-size: 90%; } div.method-source-code {     background: #262626;     color: #ffdead;     margin: 1em;     padding: 0.5em;     border: 1px dashed #999;     overflow: hidden; }  div.method-source-code pre { color: #ffdead; overflow: hidden; }  /* --- Ruby keyword styles --------------------- */  .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }  .ruby-constant  { color: #7fffd4; background: transparent; } .ruby-keyword { color: #00ffff; background: transparent; } .ruby-ivar    { color: #eedd82; background: transparent; } .ruby-operator  { color: #00ffee; background: transparent; } .ruby-identifier { color: #ffdead; background: transparent; } .ruby-node    { color: #ffa07a; background: transparent; } .ruby-comment { color: #b22222; font-weight: bold; background: transparent; } .ruby-regexp  { color: #ffa07a; background: transparent; } .ruby-value   { color: #7fffd4; background: transparent; } }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: H E A D E R T E M P L A T E
  name: XHTML_PREAMBLE
  value: "%{<?xml version=\"1.0\" encoding=\"%charset%\"?> <!DOCTYPE html       PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"      \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> }"
- !ruby/object:RI::Constant 
  comment: 
  name: HEADER
  value: "XHTML_PREAMBLE + %{ <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\" />   <meta http-equiv=\"Content-Script-Type\" content=\"text/javascript\" />   <link rel=\"stylesheet\" href=\"%style_url%\" type=\"text/css\" media=\"screen\" />   <script type=\"text/javascript\">   // <![CDATA[    function popupCode( url ) {     window.open(url, \"Code\", \"resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400\")   }    function toggleCode( id ) {     if ( document.getElementById )       elem = document.getElementById( id );     else if ( document.all )       elem = eval( \"document.all.\" + id );     else       return false;      elemStyle = elem.style;          if ( elemStyle.display != \"block\" ) {       elemStyle.display = \"block\"     } else {       elemStyle.display = \"none\"     }      return true;   }      // Make codeblocks hidden by default   document.writeln( \"<style type=\\\\\"text/css\\\\\">div.method-source-code { display: none }</style>\" )      // ]]>   </script>  </head> <body> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: C O N T E X T C O N T E N T T E M P L A T E
  name: CONTEXT_CONTENT
  value: "%{ }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: F O O T E R T E M P L A T E
  name: FOOTER
  value: "%{ <div id=\"validator-badges\">   <p><small><a href=\"http://validator.w3.org/check/referer\">[Validate]</a></small></p> </div>  </body> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: F I L E P A G E H E A D E R T E M P L A T E
  name: FILE_PAGE
  value: "%{   <div id=\"fileHeader\">     <h1>%short_name%</h1>     <table class=\"header-table\">     <tr class=\"top-aligned-row\">       <td><strong>Path:</strong></td>       <td>%full_path% IF:cvsurl         &nbsp;(<a href=\"%cvsurl%\"><acronym title=\"Concurrent Versioning System\">CVS</acronym></a>) ENDIF:cvsurl       </td>     </tr>     <tr class=\"top-aligned-row\">       <td><strong>Last Update:</strong></td>       <td>%dtm_modified%</td>     </tr>     </table>   </div> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: C L A S S P A G E H E A D E R T E M P L A T E
  name: CLASS_PAGE
  value: "%{     <div id=\"classHeader\">         <table class=\"header-table\">         <tr class=\"top-aligned-row\">           <td><strong>%classmod%</strong></td>           <td class=\"class-name-in-header\">%full_name%</td>         </tr>         <tr class=\"top-aligned-row\">             <td><strong>In:</strong></td>             <td> START:infiles IF:full_path_url                 <a href=\"%full_path_url%\"> ENDIF:full_path_url                 %full_path% IF:full_path_url                 </a> ENDIF:full_path_url IF:cvsurl         &nbsp;(<a href=\"%cvsurl%\"><acronym title=\"Concurrent Versioning System\">CVS</acronym></a>) ENDIF:cvsurl         <br /> END:infiles             </td>         </tr>  IF:parent         <tr class=\"top-aligned-row\">             <td><strong>Parent:</strong></td>             <td> IF:par_url                 <a href=\"%par_url%\"> ENDIF:par_url                 %parent% IF:par_url                </a> ENDIF:par_url             </td>         </tr> ENDIF:parent         </table>     </div> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: M E T H O D L I S T T E M P L A T E
  name: METHOD_LIST
  value: "%{    <div id=\"contextContent\"> IF:diagram     <div id=\"diagram\">       %diagram%     </div> ENDIF:diagram  IF:description     <div id=\"description\">       %description%     </div> ENDIF:description  IF:requires     <div id=\"requires-list\">       <h3 class=\"section-bar\">Required files</h3>        <div class=\"name-list\"> START:requires       HREF:aref:name:&nbsp;&nbsp; END:requires       </div>     </div> ENDIF:requires  IF:toc     <div id=\"contents-list\">       <h3 class=\"section-bar\">Contents</h3>       <ul> START:toc       <li><a href=\"#%href%\">%secname%</a></li> END:toc      </ul> ENDIF:toc    </div>  IF:methods     <div id=\"method-list\">       <h3 class=\"section-bar\">Methods</h3>        <div class=\"name-list\"> START:methods       HREF:aref:name:&nbsp;&nbsp; END:methods       </div>     </div> ENDIF:methods    </div>       <!-- if includes --> IF:includes     <div id=\"includes\">       <h3 class=\"section-bar\">Included Modules</h3>        <div id=\"includes-list\"> START:includes         <span class=\"include-name\">HREF:aref:name:</span> END:includes       </div>     </div> ENDIF:includes  START:sections     <div id=\"section\"> IF:sectitle       <h2 class=\"section-title\"><a name=\"%secsequence%\">%sectitle%</a></h2> IF:seccomment       <div class=\"section-comment\">         %seccomment%       </div>       ENDIF:seccomment ENDIF:sectitle  IF:classlist     <div id=\"class-list\">       <h3 class=\"section-bar\">Classes and Modules</h3>        %classlist%     </div> ENDIF:classlist  IF:constants     <div id=\"constants-list\">       <h3 class=\"section-bar\">Constants</h3>        <div class=\"name-list\">         <table summary=\"Constants\"> START:constants         <tr class=\"top-aligned-row context-row\">           <td class=\"context-item-name\">%name%</td>           <td>=</td>           <td class=\"context-item-value\">%value%</td> IF:desc           <td width=\"3em\">&nbsp;</td>           <td class=\"context-item-desc\">%desc%</td> ENDIF:desc         </tr> END:constants         </table>       </div>     </div> ENDIF:constants  IF:aliases     <div id=\"aliases-list\">       <h3 class=\"section-bar\">External Aliases</h3>        <div class=\"name-list\">                         <table summary=\"aliases\"> START:aliases         <tr class=\"top-aligned-row context-row\">           <td class=\"context-item-name\">%old_name%</td>           <td>-&gt;</td>           <td class=\"context-item-value\">%new_name%</td>         </tr> IF:desc       <tr class=\"top-aligned-row context-row\">         <td>&nbsp;</td>         <td colspan=\"2\" class=\"context-item-desc\">%desc%</td>       </tr> ENDIF:desc END:aliases                         </table>       </div>     </div> ENDIF:aliases   IF:attributes     <div id=\"attribute-list\">       <h3 class=\"section-bar\">Attributes</h3>        <div class=\"name-list\">         <table> START:attributes         <tr class=\"top-aligned-row context-row\">           <td class=\"context-item-name\">%name%</td> IF:rw           <td class=\"context-item-value\">&nbsp;[%rw%]&nbsp;</td> ENDIF:rw IFNOT:rw           <td class=\"context-item-value\">&nbsp;&nbsp;</td> ENDIF:rw           <td class=\"context-item-desc\">%a_desc%</td>         </tr> END:attributes         </table>       </div>     </div> ENDIF:attributes              <!-- if method_list --> IF:method_list     <div id=\"methods\"> START:method_list IF:methods       <h3 class=\"section-bar\">%type% %category% methods</h3>  START:methods       <div id=\"method-%aref%\" class=\"method-detail\">         <a name=\"%aref%\"></a>          <div class=\"method-heading\"> IF:codeurl           <a href=\"%codeurl%\" target=\"Code\" class=\"method-signature\"             onclick=\"popupCode('%codeurl%');return false;\"> ENDIF:codeurl IF:sourcecode           <a href=\"#%aref%\" class=\"method-signature\"> ENDIF:sourcecode IF:callseq           <span class=\"method-name\">%callseq%</span> ENDIF:callseq IFNOT:callseq           <span class=\"method-name\">%name%</span><span class=\"method-args\">%params%</span> ENDIF:callseq IF:codeurl           </a> ENDIF:codeurl IF:sourcecode           </a> ENDIF:sourcecode         </div>                <div class=\"method-description\"> IF:m_desc           %m_desc% ENDIF:m_desc IF:sourcecode           <p><a class=\"source-toggle\" href=\"#\"             onclick=\"toggleCode('%aref%-source');return false;\">[Source]</a></p>           <div class=\"method-source-code\" id=\"%aref%-source\"> <pre> %sourcecode% </pre>           </div> ENDIF:sourcecode         </div>       </div>  END:methods ENDIF:methods END:method_list      </div> ENDIF:method_list END:sections }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: B O D Y T E M P L A T E
  name: BODY
  value: HEADER + %{  !INCLUDE!  <!-- banner header -->    <div id="bodyContent">  } +  METHOD_LIST + %{    </div>  } + FOOTER
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: S O U R C E C O D E T E M P L A T E
  name: SRC_PAGE
  value: XHTML_PREAMBLE + %{ <html> <head>   <title>%title%</title>   <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />   <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" /> </head> <body class="standalone-code">   <pre>%code%</pre> </body> </html> }
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: I N D E X F I L E T E M P L A T E S
  name: FR_INDEX_BODY
  value: "%{ !INCLUDE! }"
- !ruby/object:RI::Constant 
  comment: 
  name: FILE_INDEX
  value: XHTML_PREAMBLE + %{ <!--      %list_title%    --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>   <title>%list_title%</title>   <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />   <link rel="stylesheet" href="%style_url%" type="text/css" />   <base target="docwin" /> </head> <body> <div id="index">   <h1 class="section-bar">%list_title%</h1>   <div id="index-entries"> START:entries     <a href="%href%">%name%</a><br /> END:entries   </div> </div> </body> </html> }
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: INDEX
  value: "%{<?xml version=\"1.0\" encoding=\"%charset%\"?> <!DOCTYPE html       PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"      \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">  <!--      %title%    --> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\" /> </head> <frameset rows=\"20%, 80%\">     <frameset cols=\"25%,35%,45%\">         <frame src=\"fr_file_index.html\"   title=\"Files\" name=\"Files\" />         <frame src=\"fr_class_index.html\"  name=\"Classes\" />         <frame src=\"fr_method_index.html\" name=\"Methods\" />     </frameset>     <frame src=\"%initial_page%\" name=\"docwin\" /> </frameset> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: FONTS
  value: "\"Verdana, Arial, Helvetica, sans-serif\""
- !ruby/object:RI::Constant 
  comment: 
  name: STYLE
  value: "%{ body,td,p { font-family: %fonts%;         color: #000040; }  .attr-rw { font-size: xx-small; color: #444488 }  .title-row { background-color: #CCCCFF;              color:      #000010; }  .big-title-font {    color: black;   font-weight: bold;   font-family: %fonts%;    font-size: large;    height: 60px;   padding: 10px 3px 10px 3px; }  .small-title-font { color: black;                     font-family: %fonts%;                     font-size:10; }  .aqua { color: black }  .method-name, .attr-name {       font-family: font-family: %fonts%;        font-weight: bold;       font-size: small;       margin-left: 20px;       color: #000033; }  .tablesubtitle, .tablesubsubtitle {    width: 100%;    margin-top: 1ex;    margin-bottom: .5ex;    padding: 5px 0px 5px 3px;    font-size: large;    color: black;    background-color: #CCCCFF;    border: thin; }  .name-list {   margin-left: 5px;   margin-bottom: 2ex;   line-height: 105%; }  .description {   margin-left: 5px;   margin-bottom: 2ex;   line-height: 105%;   font-size: small; }  .methodtitle {   font-size: small;   font-weight: bold;   text-decoration: none;   color: #000033;   background-color: white;  }  .srclink {   font-size: small;   font-weight: bold;   text-decoration: none;   color: #0000DD;   background-color: white; }  .paramsig {    font-size: small; }  .srcbut { float: right }  }"
- !ruby/object:RI::Constant 
  comment: []

  name: BODY
  value: "%{ <html><head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\">   <link rel=\"stylesheet\" href=\"%style_url%\" type=\"text/css\" media=\"screen\" />   <script type=\"text/javascript\" language=\"JavaScript\">   <!--   function popCode(url) {     parent.frames.source.location = url   }   //-->   </script> </head> <body bgcolor=\"white\">  !INCLUDE!  <!-- banner header -->  IF:diagram <table width=\"100%\"><tr><td align=\"center\"> %diagram% </td></tr></table> ENDIF:diagram  IF:description <div class=\"description\">%description%</div> ENDIF:description  IF:requires <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Required files</td></tr> </table><br /> <div class=\"name-list\"> START:requires HREF:aref:name: END:requires ENDIF:requires </div>  IF:methods <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Methods</td></tr> </table><br /> <div class=\"name-list\"> START:methods HREF:aref:name:, END:methods </div> ENDIF:methods   START:sections     <div id=\"section\"> IF:sectitle       <h2 class=\"section-title\"><a name=\"%secsequence%\">%sectitle%</a></h2> IF:seccomment       <div class=\"section-comment\">         %seccomment%       </div>       ENDIF:seccomment ENDIF:sectitle  IF:attributes <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Attributes</td></tr> </table><br /> <table cellspacing=\"5\"> START:attributes      <tr valign=\"top\"> IF:rw        <td align=\"center\" class=\"attr-rw\">&nbsp;[%rw%]&nbsp;</td> ENDIF:rw IFNOT:rw        <td></td> ENDIF:rw        <td class=\"attr-name\">%name%</td>        <td>%a_desc%</td>      </tr> END:attributes </table> ENDIF:attributes  IF:classlist <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Classes and Modules</td></tr> </table><br /> %classlist%<br /> ENDIF:classlist    !INCLUDE!  <!-- method descriptions -->  END:sections  </body> </html> }"
- !ruby/object:RI::Constant 
  comment: []

  name: FILE_PAGE
  value: <<_FILE_PAGE_ <table width="100%">  <tr class="title-row">  <td><table width="100%"><tr>    <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font>%short_name%</td>    <td align="right"><table cellspacing="0" cellpadding="2">          <tr>            <td  class="small-title-font">Path:</td>            <td class="small-title-font">%full_path% IF:cvsurl                                 &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>) ENDIF:cvsurl            </td>          </tr>          <tr>            <td class="small-title-font">Modified:</td>            <td class="small-title-font">%dtm_modified%</td>          </tr>         </table>     </td></tr></table></td>   </tr> </table><br /> _FILE_PAGE_
- !ruby/object:RI::Constant 
  comment: []

  name: CLASS_PAGE
  value: "%{ <table width=\"100%\" border=\"0\" cellspacing=\"0\">  <tr class=\"title-row\">  <td class=\"big-title-font\">    <font size=\"-3\"><b>%classmod%</b><br /></font>%full_name%  </td>  <td align=\"right\">    <table cellspacing=\"0\" cellpadding=\"2\">      <tr valign=\"top\">       <td class=\"small-title-font\">In:</td>       <td class=\"small-title-font\"> START:infiles HREF:full_path_url:full_path: IF:cvsurl &nbsp;(<a href=\"%cvsurl%\"><acronym title=\"Concurrent Versioning System\">CVS</acronym></a>) ENDIF:cvsurl END:infiles       </td>      </tr> IF:parent      <tr>       <td class=\"small-title-font\">Parent:</td>       <td class=\"small-title-font\"> IF:par_url         <a href=\"%par_url%\" class=\"cyan\"> ENDIF:par_url %parent% IF:par_url          </a> ENDIF:par_url       </td>      </tr> ENDIF:parent    </table>   </td>   </tr> </table><br /> }"
- !ruby/object:RI::Constant 
  comment: []

  name: METHOD_LIST
  value: "%{ IF:includes <div class=\"tablesubsubtitle\">Included modules</div><br /> <div class=\"name-list\"> START:includes     <span class=\"method-name\">HREF:aref:name:</span> END:includes </div> ENDIF:includes  IF:method_list START:method_list IF:methods <table cellpadding=5 width=\"100%\"> <tr><td class=\"tablesubtitle\">%type% %category% methods</td></tr> </table> START:methods <table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\"> <tr><td class=\"methodtitle\"> <a name=\"%aref%\"> IF:callseq <b>%callseq%</b> ENDIF:callseq IFNOT:callseq  <b>%name%</b>%params% ENDIF:callseq IF:codeurl <a href=\"%codeurl%\" target=\"source\" class=\"srclink\">src</a> ENDIF:codeurl </a></td></tr> </table> IF:m_desc <div class=\"description\"> %m_desc% </div> ENDIF:m_desc IF:aka <div class=\"aka\"> This method is also aliased as START:aka <a href=\"%aref%\">%name%</a> END:aka </div> ENDIF:aka IF:sourcecode <pre class=\"source\"> %sourcecode% </pre> ENDIF:sourcecode END:methods ENDIF:methods END:method_list ENDIF:method_list }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Source code ##########################"
  name: SRC_PAGE
  value: "%{ <html> <head><title>%title%</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <style type=\"text/css\"> .ruby-comment    { color: green; font-style: italic } .ruby-constant   { color: #4433aa; font-weight: bold; } .ruby-identifier { color: #222222;  } .ruby-ivar       { color: #2233dd; } .ruby-keyword    { color: #3333FF; font-weight: bold } .ruby-node       { color: #777777; } .ruby-operator   { color: #111111;  } .ruby-regexp     { color: #662222; } .ruby-value      { color: #662222; font-style: italic }   .kw { color: #3333FF; font-weight: bold }   .cmt { color: green; font-style: italic }   .str { color: #662222; font-style: italic }   .re  { color: #662222; } </style> </head> <body bgcolor=\"white\"> <pre>%code%</pre> </body> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Index ################################"
  name: FR_INDEX_BODY
  value: "%{ !INCLUDE! }"
- !ruby/object:RI::Constant 
  comment: 
  name: FILE_INDEX
  value: "%{ <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <style> <!--   body { background-color: #ddddff;      font-family: #{FONTS};         font-size: 11px;        font-style: normal;      line-height: 14px;             color: #000040;   } div.banner {   background: #0000aa;   color:      white;   padding: 1;   margin: 0;   font-size: 90%;   font-weight: bold;   line-height: 1.1;   text-align: center;   width: 100%; }    --> </style> <base target=\"docwin\"> </head> <body> <div class=\"banner\">%list_title%</div> START:entries <a href=\"%href%\">%name%</a><br /> END:entries </body></html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: INDEX
  value: "%{ <html> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> </head>  <frameset cols=\"20%,*\">     <frameset rows=\"15%,35%,50%\">         <frame src=\"fr_file_index.html\"   title=\"Files\" name=\"Files\">         <frame src=\"fr_class_index.html\"  name=\"Classes\">         <frame src=\"fr_method_index.html\" name=\"Methods\">     </frameset> IF:inline_source       <frame  src=\"%initial_page%\" name=\"docwin\"> ENDIF:inline_source IFNOT:inline_source     <frameset rows=\"80%,20%\">       <frame  src=\"%initial_page%\" name=\"docwin\">       <frame  src=\"blank.html\" name=\"source\">     </frameset> ENDIF:inline_source     <noframes>           <body bgcolor=\"white\">             Click <a href=\"html/index.html\">here</a> for a non-frames             version of this page.           </body>     </noframes> </frameset>  </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: and a blank page to use as a target
  name: BLANK
  value: "%{ <html><body bgcolor=\"white\"></body></html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The following is used for the -1 option
  name: CONTENTS_XML
  value: "%{ IF:description %description% ENDIF:description  IF:requires <h4>Requires:</h4> <ul> START:requires IF:aref <li><a href=\"%aref%\">%name%</a></li> ENDIF:aref IFNOT:aref <li>%name%</li> ENDIF:aref  END:requires </ul> ENDIF:requires  IF:attributes <h4>Attributes</h4> <table> START:attributes <tr><td>%name%</td><td>%rw%</td><td>%a_desc%</td></tr> END:attributes </table> ENDIF:attributes  IF:includes <h4>Includes</h4> <ul> START:includes IF:aref <li><a href=\"%aref%\">%name%</a></li> ENDIF:aref IFNOT:aref <li>%name%</li> ENDIF:aref  END:includes </ul> ENDIF:includes  IF:method_list <h3>Methods</h3> START:method_list IF:methods START:methods <h4>%type% %category% method:  IF:callseq <a name=\"%aref%\">%callseq%</a> ENDIF:callseq IFNOT:callseq <a name=\"%aref%\">%name%%params%</a></h4> ENDIF:callseq  IF:m_desc %m_desc% ENDIF:m_desc  IF:sourcecode <blockquote><pre> %sourcecode% </pre></blockquote> ENDIF:sourcecode END:methods ENDIF:methods END:method_list ENDIF:method_list }"
- !ruby/object:RI::Constant 
  comment: []

  name: ONE_PAGE
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\" /> </head> <body> START:files <h2>File: %short_name%</h2> <table>   <tr><td>Path:</td><td>%full_path%</td></tr>   <tr><td>Modified:</td><td>%dtm_modified%</td></tr> </table> } + CONTENTS_XML + %{ END:files  IF:classes <h2>Classes</h2> START:classes IF:parent <h3>%classmod% %full_name% &lt; HREF:par_url:parent:</h3> ENDIF:parent IFNOT:parent <h3>%classmod% %full_name%</h3> ENDIF:parent  IF:infiles (in files START:infiles HREF:full_path_url:full_path: END:infiles ) ENDIF:infiles } + CONTENTS_XML + %{ END:classes ENDIF:classes </body> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: FONTS
  value: "\"Verdana, Arial, Helvetica, sans-serif\""
- !ruby/object:RI::Constant 
  comment: 
  name: STYLE
  value: "%{ body,p { font-family: Verdana, Arial, Helvetica, sans-serif;         color: #000040; background: #BBBBBB; }  td { font-family: Verdana, Arial, Helvetica, sans-serif;         color: #000040; }  .attr-rw { font-size: small; color: #444488 }  .title-row {color:      #eeeeff;             background: #BBBBDD; }  .big-title-font { color: white;                   font-family: Verdana, Arial, Helvetica, sans-serif;                   font-size: large;                    height: 50px}  .small-title-font { color: purple;                     font-family: Verdana, Arial, Helvetica, sans-serif;                     font-size: small; }  .aqua { color: purple }  .method-name, attr-name {       font-family: monospace; font-weight: bold; }  .tablesubtitle {    width: 100%;    margin-top: 1ex;    margin-bottom: .5ex;    padding: 5px 0px 5px 20px;    font-size: large;    color: purple;    background: #BBBBCC; }  .tablesubsubtitle {    width: 100%;    margin-top: 1ex;    margin-bottom: .5ex;    padding: 5px 0px 5px 20px;    font-size: medium;    color: white;    background: #BBBBCC; }  .name-list {   font-family: monospace;   margin-left: 40px;   margin-bottom: 2ex;   line-height: 140%; }  .description {   margin-left: 40px;   margin-bottom: 2ex;   line-height: 140%; }  .methodtitle {   font-size: medium;   text_decoration: none;   padding: 3px 3px 3px 20px;   color: #0000AA; }  .column-title {   font-size: medium;   font-weight: bold;   text_decoration: none;   padding: 3px 3px 3px 20px;   color: #3333CC;   }  .variable-name {   font-family: monospace;   font-size: medium;   text_decoration: none;   padding: 3px 3px 3px 20px;   color: #0000AA; }  .row-name {   font-size: medium;   font-weight: medium;   font-family: monospace;   text_decoration: none;   padding: 3px 3px 3px 20px; }  .paramsig {    font-size: small; }  .srcbut { float: right }  }"
- !ruby/object:RI::Constant 
  comment: []

  name: BODY
  value: "%{ <html><head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\">   <link rel=\"stylesheet\" href=\"%style_url%\" type=\"text/css\" media=\"screen\" />   <script type=\"text/javascript\" language=\"JavaScript\">   <!--   function popCode(url) {     parent.frames.source.location = url   }   //-->   </script> </head> <body bgcolor=\"#BBBBBB\">  !INCLUDE!  <!-- banner header -->  IF:diagram <table width=\"100%\"><tr><td align=\"center\"> %diagram% </td></tr></table> ENDIF:diagram  IF:description <div class=\"description\">%description%</div> ENDIF:description  IF:requires <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Required files</td></tr> </table><br /> <div class=\"name-list\"> START:requires HREF:aref:name: END:requires ENDIF:requires </div>  IF:methods <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Subroutines and Functions</td></tr> </table><br /> <div class=\"name-list\"> START:methods HREF:aref:name:, END:methods </div> ENDIF:methods  IF:attributes <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Arguments</td></tr> </table><br /> <table cellspacing=\"5\"> START:attributes      <tr valign=\"top\"> IF:rw        <td align=\"center\" class=\"attr-rw\">&nbsp;[%rw%]&nbsp;</td> ENDIF:rw IFNOT:rw        <td></td> ENDIF:rw        <td class=\"attr-name\">%name%</td>        <td>%a_desc%</td>      </tr> END:attributes </table> ENDIF:attributes  IF:classlist <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Modules</td></tr> </table><br /> %classlist%<br /> ENDIF:classlist    !INCLUDE!  <!-- method descriptions -->  </body> </html> }"
- !ruby/object:RI::Constant 
  comment: []

  name: FILE_PAGE
  value: <<_FILE_PAGE_ <table width="100%">  <tr class="title-row">  <td><table width="100%"><tr>    <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font>%short_name%</td>    <td align="right"><table cellspacing="0" cellpadding="2">          <tr>            <td  class="small-title-font">Path:</td>            <td class="small-title-font">%full_path% IF:cvsurl                                 &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>) ENDIF:cvsurl            </td>          </tr>          <tr>            <td class="small-title-font">Modified:</td>            <td class="small-title-font">%dtm_modified%</td>          </tr>         </table>     </td></tr></table></td>   </tr> </table><br /> _FILE_PAGE_
- !ruby/object:RI::Constant 
  comment: []

  name: CLASS_PAGE
  value: "%{ <table width=\"100%\" border=\"0\" cellspacing=\"0\">  <tr class=\"title-row\">  <td class=\"big-title-font\">    <font size=\"-3\"><b>%classmod%</b><br /></font>%full_name%  </td>  <td align=\"right\">    <table cellspacing=\"0\" cellpadding=\"2\">      <tr valign=\"top\">       <td class=\"small-title-font\">In:</td>       <td class=\"small-title-font\"> START:infiles HREF:full_path_url:full_path: IF:cvsurl &nbsp;(<a href=\"%cvsurl%\"><acronym title=\"Concurrent Versioning System\">CVS</acronym></a>) ENDIF:cvsurl END:infiles       </td>      </tr> IF:parent      <tr>       <td class=\"small-title-font\">Parent:</td>       <td class=\"small-title-font\"> IF:par_url         <a href=\"%par_url%\" class=\"cyan\"> ENDIF:par_url %parent% IF:par_url          </a> ENDIF:par_url       </td>      </tr> ENDIF:parent    </table>   </td>   </tr> </table><br /> }"
- !ruby/object:RI::Constant 
  comment: []

  name: METHOD_LIST
  value: "%{ IF:includes <div class=\"tablesubsubtitle\">Uses</div><br /> <div class=\"name-list\"> START:includes     <span class=\"method-name\">HREF:aref:name:</span> END:includes </div> ENDIF:includes  IF:method_list START:method_list IF:methods <table cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">%type% %category% methods</td></tr> </table> START:methods <table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\"> <tr><td class=\"methodtitle\"> <a name=\"%aref%\"> <b>%name%</b>%params%  IF:codeurl <a href=\"%codeurl%\" target=\"source\" class=\"srclink\">src</a> ENDIF:codeurl </a></td></tr> </table> IF:m_desc <div class=\"description\"> %m_desc% </div> ENDIF:m_desc END:methods ENDIF:methods END:method_list ENDIF:method_list }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Source code ##########################"
  name: SRC_PAGE
  value: "%{ <html> <head><title>%title%</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <style type=\"text/css\">   .kw { color: #3333FF; font-weight: bold }   .cmt { color: green; font-style: italic }   .str { color: #662222; font-style: italic }   .re  { color: #662222; } .ruby-comment    { color: green; font-style: italic } .ruby-constant   { color: #4433aa; font-weight: bold; } .ruby-identifier { color: #222222;  } .ruby-ivar       { color: #2233dd; } .ruby-keyword    { color: #3333FF; font-weight: bold } .ruby-node       { color: #777777; } .ruby-operator   { color: #111111;  } .ruby-regexp     { color: #662222; } .ruby-value      { color: #662222; font-style: italic } </style> </head> <body bgcolor=\"#BBBBBB\"> <pre>%code%</pre> </body> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Index ################################"
  name: FR_INDEX_BODY
  value: "%{ !INCLUDE! }"
- !ruby/object:RI::Constant 
  comment: 
  name: FILE_INDEX
  value: "%{ <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <style type=\"text/css\"> <!--   body { background-color: #bbbbbb;      font-family: #{FONTS};         font-size: 11px;        font-style: normal;      line-height: 14px;             color: #000040;   } div.banner {   background: #bbbbcc;   color:      white;   padding: 1;   margin: 0;   font-size: 90%;   font-weight: bold;   line-height: 1.1;   text-align: center;   width: 100%; }    --> </style> <base target=\"docwin\"> </head> <body> <div class=\"banner\">%list_title%</div> START:entries <a href=\"%href%\">%name%</a><br /> END:entries </body></html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: INDEX
  value: "%{ <html> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> </head>  <frameset cols=\"20%,*\">     <frameset rows=\"15%,35%,50%\">         <frame src=\"fr_file_index.html\"   title=\"Files\" name=\"Files\">         <frame src=\"fr_class_index.html\"  name=\"Modules\">         <frame src=\"fr_method_index.html\" name=\"Subroutines and Functions\">     </frameset>     <frameset rows=\"80%,20%\">       <frame  src=\"%initial_page%\" name=\"docwin\">       <frame  src=\"blank.html\" name=\"source\">     </frameset>     <noframes>           <body bgcolor=\"#BBBBBB\">             Click <a href=\"html/index.html\">here</a> for a non-frames             version of this page.           </body>     </noframes> </frameset>  </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: and a blank page to use as a target
  name: BLANK
  value: "%{ <html><body bgcolor=\"#BBBBBB\"></body></html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: FONTS
  value: "\"Verdana, Arial, Helvetica, sans-serif\""
- !ruby/object:RI::Constant 
  comment: 
  name: STYLE
  value: "%{ body,td,p { font-family: %fonts%;         color: #000040; }  .attr-rw { font-size: x-small; color: #444488 }  .title-row { background: #0000aa;              color:      #eeeeff; }  .big-title-font { color: white;                   font-family: %fonts%;                   font-size: large;                    height: 50px}  .small-title-font { color: aqua;                     font-family: %fonts%;                     font-size: xx-small; }  .aqua { color: aqua }  .method-name, attr-name {       font-family: monospace; font-weight: bold; }  .tablesubtitle, .tablesubsubtitle {    width: 100%;    margin-top: 1ex;    margin-bottom: .5ex;    padding: 5px 0px 5px 20px;    font-size: large;    color: aqua;    background: #3333cc; }  .name-list {   font-family: monospace;   margin-left: 40px;   margin-bottom: 2ex;   line-height: 140%; }  .description {   margin-left: 40px;   margin-top: -2ex;   margin-bottom: 2ex; }  .description p {   line-height: 140%; }  .aka {   margin-left: 40px;   margin-bottom: 2ex;   line-height: 100%;   font-size:   small;   color:       #808080; }  .methodtitle {   font-size: medium;   text-decoration: none;   color: #0000AA;   background: white;  }  .paramsig {    font-size: small; }  .srcbut { float: right }  pre { font-size: 1.2em; } tt  { font-size: 1.2em; }  pre.source {   border-style: groove;   background-color: #ddddff;   margin-left:  40px;   padding: 1em 0em 1em 2em; }  .classlist {   margin-left: 40px;   margin-bottom: 2ex;   line-height: 140%; }  li {   display:    list-item;   margin-top: .6em; }  .ruby-comment    { color: green; font-style: italic } .ruby-constant   { color: #4433aa; font-weight: bold; } .ruby-identifier { color: #222222;  } .ruby-ivar       { color: #2233dd; } .ruby-keyword    { color: #3333FF; font-weight: bold } .ruby-node       { color: #777777; } .ruby-operator   { color: #111111;  } .ruby-regexp     { color: #662222; } .ruby-value      { color: #662222; font-style: italic }  }"
- !ruby/object:RI::Constant 
  comment: []

  name: HEADER
  value: "%{ <?xml version=\"1.0\" encoding=\"utf-8\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> <head>   <title>%title%</title>   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\" />   <link rel=StyleSheet href=\"%style_url%\" type=\"text/css\" media=\"screen\" />   <script type=\"text/javascript\" language=\"JavaScript\">   <!--   function popCode(url) {     window.open(url, \"Code\",            \"resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400\")   }   //-->   </script> </head> }"
- !ruby/object:RI::Constant 
  comment: []

  name: METHOD_LIST
  value: "%{ IF:includes <table summary=\"Included modules\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Included modules</td></tr> </table> <div class=\"name-list\"> START:includes     <span class=\"method-name\">HREF:aref:name:</span> END:includes </div> ENDIF:includes  IF:method_list START:method_list IF:methods <table summary=\"Method list\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">%type% %category% methods</td></tr> </table> START:methods <table summary=\"method\"  width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\"> <tr><td class=\"methodtitle\"> <a name=\"%aref%\"></a> IF:codeurl <a href=\"%codeurl%\" target=\"Code\" class=\"methodtitle\"  onClick=\"popCode('%codeurl%');return false;\"> ENDIF:codeurl IF:callseq <b>%callseq%</b> ENDIF:callseq IFNOT:callseq <b>%name%</b>%params% ENDIF:callseq IF:codeurl </a> ENDIF:codeurl </td></tr> </table> IF:m_desc <div class=\"description\"> %m_desc% </div> ENDIF:m_desc IF:aka <div class=\"aka\"> This method is also aliased as START:aka <a href=\"%aref%\">%name%</a> END:aka </div> ENDIF:aka IF:sourcecode <pre class=\"source\"> %sourcecode% </pre> ENDIF:sourcecode END:methods ENDIF:methods END:method_list ENDIF:method_list }"
- !ruby/object:RI::Constant 
  comment: []

  name: CONTEXT_CONTENT
  value: "%{ IF:diagram <table summary=\"Diagram of classes and modules\" width=\"100%\"> <tr><td align=\"center\"> %diagram% </td></tr></table> ENDIF:diagram   IF:description <div class=\"description\">%description%</div> ENDIF:description  IF:requires <table summary=\"Requires\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Required files</td></tr> </table> <div class=\"name-list\"> START:requires HREF:aref:name:&nbsp; &nbsp; END:requires </div> ENDIF:requires  IF:methods <table summary=\"Methods\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Methods</td></tr> </table> <div class=\"name-list\"> START:methods HREF:aref:name:&nbsp; &nbsp; END:methods </div> ENDIF:methods  IF:constants <table summary=\"Constants\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Constants</td></tr> </table> <table cellpadding=\"5\"> START:constants <tr valign=\"top\"><td>%name%</td><td>=</td><td>%value%</td></tr> IF:desc <tr><td></td><td></td><td>%desc%</td></tr> ENDIF:desc END:constants </table> ENDIF:constants  IF:aliases <table summary=\"Aliases\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">External Aliases</td></tr> </table> <div class=\"name-list\"> START:aliases %old_name% -> %new_name%<br /> END:aliases </div> ENDIF:aliases  IF:attributes <table summary=\"Attributes\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Attributes</td></tr> </table> <table summary=\"Attribute details\" cellspacing=\"5\"> START:attributes      <tr valign=\"top\">        <td class=\"attr-name\">%name%</td> IF:rw        <td align=\"center\" class=\"attr-rw\">&nbsp;[%rw%]&nbsp;</td> ENDIF:rw IFNOT:rw        <td></td> ENDIF:rw        <td>%a_desc%</td>      </tr> END:attributes </table> ENDIF:attributes  IF:classlist <table summary=\"List of classes\" cellpadding=\"5\" width=\"100%\"> <tr><td class=\"tablesubtitle\">Classes and Modules</td></tr> </table> <div class=\"classlist\"> %classlist% </div> ENDIF:classlist }"
- !ruby/object:RI::Constant 
  comment: []

  name: BODY
  value: HEADER + %{ <body bgcolor="white"> !INCLUDE!  <!-- banner header --> } + CONTEXT_CONTENT + METHOD_LIST + %{ </body> </html> }
- !ruby/object:RI::Constant 
  comment: []

  name: FILE_PAGE
  value: <<_FILE_PAGE_ <table summary="Information on file" width="100%">  <tr class="title-row">  <td><table summary="layout" width="100%"><tr>    <td class="big-title-font" colspan="2">%short_name%</td>    <td align="right"><table summary="layout" cellspacing="0" cellpadding="2">          <tr>            <td  class="small-title-font">Path:</td>            <td class="small-title-font">%full_path% IF:cvsurl                                 &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>) ENDIF:cvsurl            </td>          </tr>          <tr>            <td class="small-title-font">Modified:</td>            <td class="small-title-font">%dtm_modified%</td>          </tr>         </table>     </td></tr></table></td>   </tr> </table> _FILE_PAGE_
- !ruby/object:RI::Constant 
  comment: []

  name: CLASS_PAGE
  value: "%{ <table summary=\"Information on class\" width=\"100%\" border=\"0\" cellspacing=\"0\">  <tr class=\"title-row\">  <td class=\"big-title-font\">    <sup><font color=\"aqua\">%classmod%</font></sup> %full_name%  </td>  <td align=\"right\">    <table summary=\"layout\" cellspacing=\"0\" cellpadding=\"2\">      <tr valign=\"top\">       <td class=\"small-title-font\">In:</td>       <td class=\"small-title-font\"> START:infiles IF:full_path_url         <a href=\"%full_path_url%\" class=\"aqua\"> ENDIF:full_path_url %full_path% IF:full_path_url          </a> ENDIF:full_path_url IF:cvsurl          &nbsp;(<a href=\"%cvsurl%\"><acronym title=\"Concurrent Versioning System\">CVS</acronym></a>) ENDIF:cvsurl <br /> END:infiles       </td>      </tr> IF:parent      <tr>       <td class=\"small-title-font\">Parent:</td>       <td class=\"small-title-font\"> IF:par_url         <a href=\"%par_url%\" class=\"aqua\"> ENDIF:par_url %parent% IF:par_url          </a> ENDIF:par_url       </td>      </tr> ENDIF:parent    </table>   </td>   </tr> </table> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Source code ##########################"
  name: SRC_PAGE
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <title>%title%</title> <link rel=\"stylesheet\" href=\"%style_url%\" type=\"text/css\" media=\"screen\" /> </head> <body bgcolor=\"white\"> <pre>%code%</pre> </body> </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Index ################################"
  name: FR_INDEX_BODY
  value: "%{ !INCLUDE! }"
- !ruby/object:RI::Constant 
  comment: 
  name: FILE_INDEX
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <title>%list_title%</title> <style type=\"text/css\"> <!--   body { background-color: #ddddff;      font-family: #{FONTS};         font-size: 11px;        font-style: normal;      line-height: 14px;             color: #000040;   } div.banner {   background: #0000aa;   color:      white;   padding: 1;   margin: 0;   font-size: 90%;   font-weight: bold;   line-height: 1.1;   text-align: center;   width: 100%; }  A.xx { color: white; font-weight: bold; } --> </style> <base target=\"docwin\"> </head> <body> <div class=\"banner\"><a href=\"%index_url%\" class=\"xx\">%list_title%</a></div> START:entries <a href=\"%href%\">%name%</a><br /> END:entries </body></html> }"
- !ruby/object:RI::Constant 
  comment: 
  name: CLASS_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD_INDEX
  value: FILE_INDEX
- !ruby/object:RI::Constant 
  comment: 
  name: INDEX
  value: "%{ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%charset%\"> <title>%title%</title></head>  <frameset rows=\"20%, 80%\">     <frameset cols=\"25%,35%,45%\">         <frame src=\"fr_file_index.html\"   title=\"Files\" name=\"Files\">         <frame src=\"fr_class_index.html\"  name=\"Classes\">         <frame src=\"fr_method_index.html\" name=\"Methods\">     </frameset>     <frame  src=\"%initial_page%\" name=\"docwin\">     <noframes>           <body bgcolor=\"white\">             Sorry, RDoc currently only generates HTML using frames.           </body>     </noframes> </frameset>  </html> }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The following is used for the -1 option
  name: CONTENTS_XML
  value: "%{ IF:description %description% ENDIF:description  IF:requires <h4>Requires:</h4> <ul> START:requires IF:aref <li><a href=\"%aref%\">%name%</a></li> ENDIF:aref IFNOT:aref <li>%name%</li> ENDIF:aref  END:requires </ul> ENDIF:requires  IF:attributes <h4>Attributes</h4> <table> START:attributes <tr><td>%name%</td><td>%rw%</td><td>%a_desc%</td></tr> END:attributes </table> ENDIF:attributes  IF:includes <h4>Includes</h4> <ul> START:includes IF:aref <li><a href=\"%aref%\">%name%</a></li> ENDIF:aref IFNOT:aref <li>%name%</li> ENDIF:aref  END:includes </ul> ENDIF:includes  IF:method_list <h3>Methods</h3> START:method_list IF:methods START:methods <h4>%type% %category% method: <a name=\"%aref%\">%name%%params%</a></h4>  IF:m_desc %m_desc% ENDIF:m_desc  IF:sourcecode <blockquote><pre> %sourcecode% </pre></blockquote> ENDIF:sourcecode END:methods ENDIF:methods END:method_list ENDIF:method_list }"
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENTS_XML
  value: "%{ IF:description     <description> %description%     </description> ENDIF:description     <contents> IF:requires       <required-file-list> START:requires          <required-file name=\"%name%\" IF:aref                          href=\"%aref%\" ENDIF:aref          /> END:requires       </required-file-list> ENDIF:requires IF:attributes       <attribute-list> START:attributes         <attribute name=\"%name%\"> IF:rw           <attribute-rw>%rw%</attribute-rw> ENDIF:rw           <description>%a_desc%</description>         </attribute> END:attributes       </attribute-list> ENDIF:attributes IF:includes       <included-module-list> START:includes         <included-module name=\"%name%\" IF:aref                          href=\"%aref%\" ENDIF:aref         /> END:includes       </included-module-list> ENDIF:includes IF:method_list       <method-list> START:method_list IF:methods START:methods         <method name=\"%name%\" type=\"%type%\" category=\"%category%\" id=\"%aref%\">           <parameters>%params%</parameters> IF:m_desc           <description> %m_desc%           </description> ENDIF:m_desc IF:sourcecode           <source-code-listing> %sourcecode%           </source-code-listing> ENDIF:sourcecode         </method> END:methods ENDIF:methods END:method_list       </method-list> ENDIF:method_list      </contents> }"
- !ruby/object:RI::Constant 
  comment: []

  name: ONE_PAGE
  value: "%{<?xml version=\"1.0\" encoding=\"utf-8\"?> <rdoc> <file-list> START:files   <file name=\"%short_name%\" id=\"%href%\">     <file-info>       <path>%full_path%</path>       <dtm-modified>%dtm_modified%</dtm-modified>     </file-info> } + CONTENTS_XML + %{   </file> END:files </file-list> <class-module-list> START:classes   <%classmod% name=\"%full_name%\" id=\"%full_name%\">     <classmod-info> IF:infiles       <infiles>       START:infiles         <infile>HREF:full_path_url:full_path:</infile> END:infiles       </infiles> ENDIF:infiles IF:parent      <superclass>HREF:par_url:parent:</superclass> ENDIF:parent     </classmod-info> } + CONTENTS_XML + %{   </%classmod%> END:classes </class-module-list> </rdoc> }"
- !ruby/object:RI::Constant 
  comment: 
  name: CONTENTS_RDF
  value: "%{ IF:description     <description rd:parseType=\"Literal\"> %description%     </description> ENDIF:description  IF:requires START:requires          <rd:required-file rd:name=\"%name%\" /> END:requires ENDIF:requires  IF:attributes START:attributes         <contents>         <Attribute rd:name=\"%name%\"> IF:rw           <attribute-rw>%rw%</attribute-rw> ENDIF:rw           <description rdf:parseType=\"Literal\">%a_desc%</description>         </Attribute>         </contents> END:attributes ENDIF:attributes  IF:includes       <IncludedModuleList> START:includes         <included-module rd:name=\"%name%\"  /> END:includes       </IncludedModuleList> ENDIF:includes  IF:method_list START:method_list IF:methods START:methods         <contents>         <Method rd:name=\"%name%\" rd:visibility=\"%type%\"                 rd:category=\"%category%\" rd:id=\"%aref%\">           <parameters>%params%</parameters> IF:m_desc           <description rdf:parseType=\"Literal\"> %m_desc%           </description> ENDIF:m_desc IF:sourcecode           <source-code-listing rdf:parseType=\"Literal\"> %sourcecode%           </source-code-listing> ENDIF:sourcecode         </Method>        </contents> END:methods ENDIF:methods END:method_list ENDIF:method_list      <!-- end method list --> }"
- !ruby/object:RI::Constant 
  comment: []

  name: ONE_PAGE
  value: "%{<?xml version=\"1.0\" encoding=\"utf-8\"?> <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"         xmlns=\"http://pragprog.com/rdoc/rdoc.rdf#\"         xmlns:rd=\"http://pragprog.com/rdoc/rdoc.rdf#\">  <!-- RDoc --> START:files   <rd:File rd:name=\"%short_name%\" rd:id=\"%href%\">       <path>%full_path%</path>       <dtm-modified>%dtm_modified%</dtm-modified> } + CONTENTS_RDF + %{   </rd:File> END:files START:classes   <%classmod% rd:name=\"%full_name%\" rd:id=\"%full_name%\">     <classmod-info> IF:infiles       <InFiles> START:infiles         <infile>           <File rd:name=\"%full_path%\" IF:full_path_url                 rdf:about=\"%full_path_url%\" ENDIF:full_path_url            />          </infile> END:infiles       </InFiles> ENDIF:infiles IF:parent      <superclass>HREF:par_url:parent:</superclass> ENDIF:parent     </classmod-info> } + CONTENTS_RDF + %{   </%classmod%> END:classes <!-- /RDoc --> </rdf:RDF> }"
full_name: RDoc::Page
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: write_extra_pages
- !ruby/object:RI::MethodSummary 
  name: write_extra_pages
name: Page
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Page#write_extra_pages
is_singleton: false
name: write_extra_pages
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find the first comment in the file (that isn't a shebang line) If the file doesn't start with a comment, report the fact and return empty string
full_name: RDoc::gets
is_singleton: true
name: gets
params: (file)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: diagram
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: superclass
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: ClassModule is the base class for objects representing either a class or a module.
constants: []

full_name: RDoc::ClassModule
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_class_named
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: http_url
- !ruby/object:RI::MethodSummary 
  name: is_module?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: ClassModule
superclass: Context
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::ClassModule#find_class_named
is_singleton: false
name: find_class_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return <tt>true</tt> if this object represents a module
full_name: RDoc::ClassModule#is_module?
is_singleton: false
name: is_module?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the fully qualified name of this class or module
full_name: RDoc::ClassModule#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::ClassModule::new
is_singleton: true
name: new
params: (name, superclass = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: to_s is simply for debugging
full_name: RDoc::ClassModule#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::ClassModule#http_url
is_singleton: false
name: http_url
params: (prefix)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The .document file contains a list of file and directory name patterns, representing candidates for documentation. It may also contain comments (starting with '#')
full_name: RDoc::RDoc#parse_dot_doc_file
is_singleton: false
name: parse_dot_doc_file
params: (in_dir, filename, options)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Report an error message and exit
full_name: RDoc::RDoc#error
is_singleton: false
name: error
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse each file on the command line, recursively entering directories
full_name: RDoc::RDoc#parse_files
is_singleton: false
name: parse_files
params: (options)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Update the flag file in an output directory.
full_name: RDoc::RDoc#update_output_dir
is_singleton: false
name: update_output_dir
params: (op_dir, time)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Encapsulate the production of rdoc documentation. Basically you can use this as you would invoke rdoc from the command line:"
- !ruby/struct:SM::Flow::VERB 
  body: "   rdoc = RDoc::RDoc.new\n   rdoc.document(args)\n"
- !ruby/struct:SM::Flow::P 
  body: where <em>args</em> is an array of strings, each corresponding to an argument you'd give rdoc on the command line. See rdoc/rdoc.rb for details.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: This is the list of output generators that we support
  name: Generator
  value: Struct.new(:file_name, :class_name, :key)
- !ruby/object:RI::Constant 
  comment: 
  name: GENERATORS
  value: "{}"
full_name: RDoc::RDoc
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: document
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: list_files_in_directory
- !ruby/object:RI::MethodSummary 
  name: normalized_file_list
- !ruby/object:RI::MethodSummary 
  name: output_flag_file
- !ruby/object:RI::MethodSummary 
  name: parse_dot_doc_file
- !ruby/object:RI::MethodSummary 
  name: parse_files
- !ruby/object:RI::MethodSummary 
  name: setup_output_dir
- !ruby/object:RI::MethodSummary 
  name: update_output_dir
name: RDoc
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Format up one or more files according to the given arguments. For simplicity, <em>argv</em> is an array of strings, equivalent to the strings that would be passed on the command line. (This isn't a coincidence, as we <em>do</em> pass in ARGV when running interactively). For a list of options, see rdoc/rdoc.rb. By default, output will be stored in a directory called <tt>doc</tt> below the current directory, so make sure you're somewhere writable before invoking.
- !ruby/struct:SM::Flow::P 
  body: "Throws: RDocError on error"
full_name: RDoc::RDoc#document
is_singleton: false
name: document
params: (argv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the path name of the flag file in an output directory.
full_name: RDoc::RDoc#output_flag_file
is_singleton: false
name: output_flag_file
params: (op_dir)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given a list of files and directories, create a list of all the Ruby files they contain.
- !ruby/struct:SM::Flow::P 
  body: If <tt>force_doc</tt> is true, we always add the given files. If false, only add files that we guarantee we can parse It is true when looking at files given on the command line, false when recursing through subdirectories.
- !ruby/struct:SM::Flow::P 
  body: The effect of this is that if you want a file with a non- standard extension parsed, you must name it explicity.
full_name: RDoc::RDoc#normalized_file_list
is_singleton: false
name: normalized_file_list
params: (options, relative_files, force_doc = false, exclude_pattern=nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a list of the files to be processed in a directory. We know that this directory doesn't have a .document file, so we're looking for real files. However we may well contain subdirectories which must be tested for .document files
full_name: RDoc::RDoc#list_files_in_directory
is_singleton: false
name: list_files_in_directory
params: (dir, options)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create an output dir if it doesn't exist. If it does exist, but doesn't contain the flag file <tt>created.rid</tt> then we refuse to use it, as we may clobber some manually generated documentation
full_name: RDoc::RDoc#setup_output_dir
is_singleton: false
name: setup_output_dir
params: (op_dir, force)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: num_classes
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: num_files
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: num_methods
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: num_modules
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Simple stats collector
constants: []

full_name: RDoc::Stats
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: print
name: Stats
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Stats#print
is_singleton: false
name: print
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Stats::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::find_comment
is_singleton: true
name: find_comment
params: (file)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: an included module
constants: []

full_name: RDoc::Include
includes: []

instance_methods: []

name: Include
superclass: CodeObject
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Include::new
is_singleton: true
name: new
params: (name, comment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: See rdoc/parsers/parse_c.rb
constants: []

full_name: RDoc::SimpleParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: remove_private_comments
- !ruby/object:RI::MethodSummary 
  name: scan
name: SimpleParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extract the file contents and attach them to the toplevel as a comment
full_name: RDoc::SimpleParser#scan
is_singleton: false
name: scan
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: prepare to parse a plain file
full_name: RDoc::SimpleParser::new
is_singleton: true
name: new
params: (top_level, file_name, body, options, stats)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::SimpleParser#remove_private_comments
is_singleton: false
name: remove_private_comments
params: (comment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Normal classes
constants: []

full_name: RDoc::NormalClass
includes: []

instance_methods: []

name: NormalClass
superclass: ClassModule
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Display usage information from the comment at the top of the file. String arguments identify specific sections of the comment to display. An optional integer first argument specifies the exit status (defaults to 0)
full_name: RDoc::usage
is_singleton: true
name: usage
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::AnyMethod#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::AnyMethod#add_alias
is_singleton: false
name: add_alias
params: (method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::AnyMethod::new
is_singleton: true
name: new
params: (text, name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: aliases
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: block_params
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: call_seq
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: dont_rename_initialize
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: is_alias_for
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: singleton
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: visibility
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: AnyMethod is the base class for objects representing methods
constants: []

full_name: RDoc::AnyMethod
includes: 
- !ruby/object:RI::IncludedModule 
  name: TokenStream
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: add_alias
- !ruby/object:RI::MethodSummary 
  name: param_seq
- !ruby/object:RI::MethodSummary 
  name: to_s
name: AnyMethod
superclass: CodeObject
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::AnyMethod#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::AnyMethod#param_seq
is_singleton: false
name: param_seq
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RDoc::Diagram#find_names
is_singleton: false
name: find_names
params: (mod)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Diagram#find_full_name
is_singleton: false
name: find_full_name
params: (name, mod)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Draw the diagrams. We traverse the files, drawing a diagram for each. We also traverse each top-level class and module in that file drawing a diagram for these too.
full_name: RDoc::Diagram#draw
is_singleton: false
name: draw
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Draw a set of diagrams representing the modules and classes in the system. We draw one diagram for each file, and one for each toplevel class or module. This means there will be overlap. However, it also means that you'll get better context for objects.
- !ruby/struct:SM::Flow::P 
  body: To use, simply
- !ruby/struct:SM::Flow::VERB 
  body: "  d = Diagram.new(info)   # pass in collection of top level infos\n  d.draw\n"
- !ruby/struct:SM::Flow::P 
  body: The results will be written to the <tt>dot</tt> subdirectory. The process also sets the <tt>diagram</tt> attribute in each object it graphs to the name of the file containing the image. This can be used by output generators to insert images.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: FONT
  value: "\"Arial\""
- !ruby/object:RI::Constant 
  comment: 
  name: DOT_PATH
  value: "\"dot\""
full_name: RDoc::Diagram
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_classes
- !ruby/object:RI::MethodSummary 
  name: convert_to_png
- !ruby/object:RI::MethodSummary 
  name: draw
- !ruby/object:RI::MethodSummary 
  name: draw_module
- !ruby/object:RI::MethodSummary 
  name: find_full_name
- !ruby/object:RI::MethodSummary 
  name: find_names
- !ruby/object:RI::MethodSummary 
  name: wrap_in_image_map
name: Diagram
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extract the client-side image map from dot, and use it to generate the imagemap proper. Return the whole &lt;map&gt;..&lt;img&gt; combination, suitable for inclusion on the page
full_name: RDoc::Diagram#wrap_in_image_map
is_singleton: false
name: wrap_in_image_map
params: (src, dot)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Diagram#convert_to_png
is_singleton: false
name: convert_to_png
params: (file_base, graph)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pass in the set of top level objects. The method also creates the subdirectory to hold the images
full_name: RDoc::Diagram::new
is_singleton: true
name: new
params: (info, options)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Diagram#add_classes
is_singleton: false
name: add_classes
params: (container, graph, file = nil )
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Diagram#draw_module
is_singleton: false
name: draw_module
params: (mod, graph, toplevel = false, file = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Attr#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Attr::new
is_singleton: true
name: new
params: (text, name, rw, comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Attr#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: rw
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: text
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: visibility
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represent attributes
constants: []

full_name: RDoc::Attr
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Attr
superclass: CodeObject
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Anonymous classes
constants: []

full_name: RDoc::AnonClass
includes: []

instance_methods: []

name: AnonClass
superclass: ClassModule
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Alias::new
is_singleton: true
name: new
params: (text, old_name, new_name, comment)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RDoc::Alias#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: new_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: old_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: text
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represent an alias, which is an old_name/ new_name pair associated with a particular context
constants: []

full_name: RDoc::Alias
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Alias
superclass: CodeObject
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: alias_extension
- !ruby/object:RI::MethodSummary 
  name: can_parse
- !ruby/object:RI::MethodSummary 
  name: parser_for
comment: 
- !ruby/struct:SM::Flow::P 
  body: A parser is simple a class that implements
- !ruby/struct:SM::Flow::VERB 
  body: "  #initialize(file_name, body, options)\n"
- !ruby/struct:SM::Flow::P 
  body: and
- !ruby/struct:SM::Flow::VERB 
  body: "  #scan\n"
- !ruby/struct:SM::Flow::P 
  body: The initialize method takes a file name to be used, the body of the file, and an RDoc::Options object. The scan method is then called to return an appropriately parsed TopLevel code object.
- !ruby/struct:SM::Flow::P 
  body: The ParseFactory is used to redirect to the correct parser given a filename extension. This magic works because individual parsers have to register themselves with us as they are loaded in. The do this using the following incantation
- !ruby/struct:SM::Flow::VERB 
  body: "   require &quot;rdoc/parsers/parsefactory&quot;\n\n   module RDoc\n\n     class XyzParser\n       extend ParseFactory                  &lt;&lt;&lt;&lt;\n       parse_files_matching /\\.xyz$/        &lt;&lt;&lt;&lt;\n\n       def initialize(file_name, body, options)\n         ...\n       end\n\n       def scan\n         ...\n       end\n     end\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: Just to make life interesting, if we suspect a plain text file, we also look for a shebang line just in case it's a potential shell script
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Parsers
  value: Struct.new(:regexp, :parser)
full_name: RDoc::ParserFactory
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse_files_matching
name: ParserFactory
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a parser that can handle a particular extension
full_name: RDoc::ParserFactory::can_parse
is_singleton: true
name: can_parse
params: (file_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Alias an extension to another extension. After this call, files ending &quot;new_ext&quot; will be parsed using the same parser as &quot;old_ext&quot;
full_name: RDoc::ParserFactory::alias_extension
is_singleton: true
name: alias_extension
params: (old_ext, new_ext)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Record the fact that a particular class parses files that match a given extension
full_name: RDoc::ParserFactory#parse_files_matching
is_singleton: false
name: parse_files_matching
params: (regexp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find the correct parser for a particular file name. Return a SimpleParser for ones that we don't know
full_name: RDoc::ParserFactory::parser_for
is_singleton: true
name: parser_for
params: (top_level, file_name, body, options, stats)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Given an array of flow items and an array of section names, extract those sections from the flow which have headings corresponding to a section name in the list. Return them in the order of names in the <tt>sections</tt> array.
full_name: RDoc::extract_sections
is_singleton: true
name: extract_sections
params: (flow, sections)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Report the fact that no doc comment count be found
full_name: RDoc::no_comment
is_singleton: true
name: no_comment
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: PROFILE_PROC
  value: proc{|event, file, line, id, binding, klass|     case event
full_name: Profiler__
includes: []

instance_methods: []

name: Profiler__
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the complete dictionary of taguris, paired with classes. The key for the dictionary is the full taguri. The value for each key is the class constant associated to that taguri.
- !ruby/struct:SM::Flow::VERB 
  body: " YAML.tagged_classes[&quot;tag:yaml.org,2002:int&quot;] =&gt; Integer\n"
full_name: YAML::tagged_classes
is_singleton: true
name: tagged_classes
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: anchor
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: kind
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: type_id
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: YAML Generic Model container
constants: []

full_name: YAML::YamlNode
includes: 
- !ruby/object:RI::IncludedModule 
  name: BaseNode
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: transform
name: YamlNode
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Transform this node fully into a native type
full_name: YAML::YamlNode#transform
is_singleton: false
name: transform
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::YamlNode::new
is_singleton: true
name: new
params: ( t, v )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with each consecutive document in the YAML stream contained in <em>io</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'many-docs.yaml' ) do |yf|\n    YAML.each_document( yf ) do |ydoc|\n      ## ydoc contains the single object\n      ## from the YAML document\n    end\n  end\n"
full_name: YAML::each_document
is_singleton: true
name: each_document
params: ( io, &block )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Apply a transfer method to a Ruby object
full_name: YAML::transfer
is_singleton: true
name: transfer
params: ( type_id, obj )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Detect typing of a string
full_name: YAML::detect_implicit
is_singleton: true
name: detect_implicit
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Mapping#add
is_singleton: false
name: add
params: ( k, v )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Emitter helper classes
constants: []

full_name: YAML::Mapping
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
name: Mapping
superclass: Array
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TRANSFER_DOMAINS
  value: "{             'yaml.org,2002' => {},             'ruby.yaml.org,2002' => {}"
- !ruby/object:RI::Constant 
  comment: 
  name: PRIVATE_TYPES
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: IMPLICIT_TYPES
  value: "[ 'null', 'bool', 'time', 'int', 'float' ]"
full_name: YAML::Loader
includes: []

instance_methods: []

name: Loader
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new default emitter
full_name: YAML::emitter
is_singleton: true
name: emitter
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a private document type
full_name: YAML::add_private_type
is_singleton: true
name: add_private_type
params: ( type_re, &transfer_proc )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: YAML::TypeError
includes: []

instance_methods: []

name: TypeError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: tag_subclasses?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Default private type
constants: []

full_name: YAML::PrivateType
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: PrivateType
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::PrivateType::new
is_singleton: true
name: new
params: ( type, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::PrivateType#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::PrivateType::tag_subclasses?
is_singleton: true
name: tag_subclasses?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: YAML Error classes
constants: []

full_name: YAML::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: YAML::ParseError
includes: []

instance_methods: []

name: ParseError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the default resolver
full_name: YAML::resolver
is_singleton: true
name: resolver
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: We want the node to act like as Hash if it is.
full_name: YAML::BaseNode#[]
is_singleton: false
name: "[]"
params: ( *key )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Search a node for a single YPath segment
full_name: YAML::BaseNode#match_segment
is_singleton: false
name: match_segment
params: ( ypath, depth )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseNode#children
is_singleton: false
name: children
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Search for YPath entry and return qualified nodes.
full_name: YAML::BaseNode#select
is_singleton: false
name: select
params: ( ypath_str )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Search for YPath entry and return transformed nodes.
full_name: YAML::BaseNode#select!
is_singleton: false
name: select!
params: ( ypath_str )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseNode#children_with_index
is_singleton: false
name: children_with_index
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: YPath search returning a complete depth array
full_name: YAML::BaseNode#match_path
is_singleton: false
name: match_path
params: ( ypath_str )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: YAML Generic Model container
constants: []

full_name: YAML::BaseNode
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: at
- !ruby/object:RI::MethodSummary 
  name: children
- !ruby/object:RI::MethodSummary 
  name: children_with_index
- !ruby/object:RI::MethodSummary 
  name: emit
- !ruby/object:RI::MethodSummary 
  name: match_path
- !ruby/object:RI::MethodSummary 
  name: match_segment
- !ruby/object:RI::MethodSummary 
  name: search
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: select!
name: BaseNode
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Search for YPath entry and return a list of qualified paths.
full_name: YAML::BaseNode#search
is_singleton: false
name: search
params: ( ypath_str )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseNode#emit
is_singleton: false
name: emit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseNode#at
is_singleton: false
name: at
params: ( seg )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: YAML::Syck
includes: []

instance_methods: []

name: Syck
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Mixin BaseNode functionality
constants: []

full_name: YAML::Syck::Node
includes: 
- !ruby/object:RI::IncludedModule 
  name: YAML::BaseNode
instance_methods: []

name: Node
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Associates a taguri <em>tag</em> with a Ruby class <em>cls</em>. The taguri is used to give types to classes when loading YAML. Taguris are of the form:"
- !ruby/struct:SM::Flow::VERB 
  body: "  tag:authorityName,date:specific\n"
- !ruby/struct:SM::Flow::P 
  body: The <tt>authorityName</tt> is a domain name or email address. The <tt>date</tt> is the date the type was issued in YYYY or YYYY-MM or YYYY-MM-DD format. The <tt>specific</tt> is a name for the type being added.
- !ruby/struct:SM::Flow::P 
  body: "For example, built-in YAML types have 'yaml.org' as the <tt>authorityName</tt> and '2002' as the <tt>date</tt>. The <tt>specific</tt> is simply the name of the type:"
- !ruby/struct:SM::Flow::VERB 
  body: " tag:yaml.org,2002:int\n tag:yaml.org,2002:float\n tag:yaml.org,2002:timestamp\n"
- !ruby/struct:SM::Flow::P 
  body: The domain must be owned by you on the <tt>date</tt> declared. If you don't own any domains on the date you declare the type, you can simply use an e-mail address.
- !ruby/struct:SM::Flow::VERB 
  body: " tag:why@ruby-lang.org,2004:notes/personal\n"
full_name: YAML::tag_class
is_singleton: true
name: tag_class
params: ( tag, cls )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Method to extract colon-seperated type and class, returning the type and the constant of the class
full_name: YAML::read_type_class
is_singleton: true
name: read_type_class
params: ( type, obj_class )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Load a document from the file located at <em>filepath</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.load_file( 'animals.yaml' )\n     #=&gt; ['badger', 'elephant', 'tiger']\n"
full_name: YAML::load_file
is_singleton: true
name: load_file
params: ( filepath )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a transfer method for a builtin type
full_name: YAML::add_builtin_type
is_singleton: true
name: add_builtin_type
params: ( type_tag, &transfer_proc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with a tree of +YAML::BaseNodes+, one tree for each consecutive document in the YAML stream contained in <em>io</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'many-docs.yaml' ) do |yf|\n    YAML.each_node( yf ) do |ydoc|\n      ## ydoc contains a tree of nodes\n      ## from the YAML document\n    end\n  end\n"
full_name: YAML::each_node
is_singleton: true
name: each_node
params: ( io, &doc_proc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Allocate blank object
full_name: YAML::object_maker
is_singleton: true
name: object_maker
params: ( obj_class, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Allocate an Emitter if needed
full_name: YAML::quick_emit
is_singleton: true
name: quick_emit
params: ( oid, opts = {}, &e )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Builtin collection: !set"
constants: []

full_name: YAML::Set
includes: []

instance_methods: []

name: Set
superclass: "::Hash"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new default parser
full_name: YAML::parser
is_singleton: true
name: parser
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store#empty_marshal_checksum
is_singleton: false
name: empty_marshal_checksum
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store#empty_marshal_data
is_singleton: false
name: empty_marshal_data
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store#load
is_singleton: false
name: load
params: (content)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store::new
is_singleton: true
name: new
params: ( *o )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store#marshal_dump_supports_canonical_option?
is_singleton: false
name: marshal_dump_supports_canonical_option?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY_MARSHAL_DATA
  value: "{}.to_yaml"
- !ruby/object:RI::Constant 
  comment: 
  name: EMPTY_MARSHAL_CHECKSUM
  value: Digest::MD5.digest(EMPTY_MARSHAL_DATA)
full_name: YAML::Store
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: empty_marshal_checksum
- !ruby/object:RI::MethodSummary 
  name: empty_marshal_data
- !ruby/object:RI::MethodSummary 
  name: load
- !ruby/object:RI::MethodSummary 
  name: marshal_dump_supports_canonical_option?
name: Store
superclass: PStore
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Store#dump
is_singleton: false
name: dump
params: (table)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unescape the condenses escapes
full_name: YAML::unescape
is_singleton: true
name: unescape
params: ( value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new generic parser
full_name: YAML::generic_parser
is_singleton: true
name: generic_parser
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse a document from the file located at <em>filepath</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.parse_file( 'animals.yaml' )\n     #=&gt; #&lt;YAML::Syck::Node:0x82ccce0\n          @kind=:seq,\n          @value=\n           [#&lt;YAML::Syck::Node:0x82ccd94\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;badger&quot;&gt;,\n            #&lt;YAML::Syck::Node:0x82ccd58\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;elephant&quot;&gt;,\n            #&lt;YAML::Syck::Node:0x82ccd1c\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;tiger&quot;&gt;]&gt;\n"
full_name: YAML::parse_file
is_singleton: true
name: parse_file
params: ( filepath )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#[]
is_singleton: false
name: "[]"
params: ( k )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#yaml_initialize
is_singleton: false
name: yaml_initialize
params: ( tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap::[]
is_singleton: true
name: "[]"
params: ( *vals )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Builtin collection: !omap"
constants: []

full_name: YAML::Omap
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: has_key?
- !ruby/object:RI::MethodSummary 
  name: is_complex_yaml?
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: yaml_initialize
name: Omap
superclass: "::Array"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#has_key?
is_singleton: false
name: has_key?
params: ( k )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#is_complex_yaml?
is_singleton: false
name: is_complex_yaml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Omap#[]=
is_singleton: false
name: "[]="
params: ( k, *rest )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a type_id to a taguri
full_name: YAML::tagurize
is_singleton: true
name: tagurize
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a global handler for a YAML domain type.
full_name: YAML::add_domain_type
is_singleton: true
name: add_domain_type
params: ( domain, type_tag, &transfer_proc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write a current indent
full_name: YAML::BaseEmitter#indent
is_singleton: false
name: indent
params: ( mod = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Emit binary data
full_name: YAML::BaseEmitter#binary_base64
is_singleton: false
name: binary_base64
params: ( value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Quick sequence
full_name: YAML::BaseEmitter#seq
is_singleton: false
name: seq
params: ( type, &e )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Emit double-quoted string
full_name: YAML::BaseEmitter#double
is_singleton: false
name: double
params: ( value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Emit a simple, unqouted string
full_name: YAML::BaseEmitter#simple
is_singleton: false
name: simple
params: ( value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Emit plain, normal flowing text
full_name: YAML::BaseEmitter#node_text
is_singleton: false
name: node_text
params: ( value, block = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add indent to the buffer
full_name: YAML::BaseEmitter#indent!
is_singleton: false
name: indent!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write a text block with the current indent
full_name: YAML::BaseEmitter#indent_text
is_singleton: false
name: indent_text
params: ( text, mod, first_line = true )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseEmitter#seq_map_shortcut
is_singleton: false
name: seq_map_shortcut
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Emit single-quoted string
full_name: YAML::BaseEmitter#single
is_singleton: false
name: single
params: ( value )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: YAML::BaseEmitter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: binary_base64
- !ruby/object:RI::MethodSummary 
  name: double
- !ruby/object:RI::MethodSummary 
  name: fold
- !ruby/object:RI::MethodSummary 
  name: indent
- !ruby/object:RI::MethodSummary 
  name: indent!
- !ruby/object:RI::MethodSummary 
  name: indent_text
- !ruby/object:RI::MethodSummary 
  name: map
- !ruby/object:RI::MethodSummary 
  name: node_text
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: options=
- !ruby/object:RI::MethodSummary 
  name: seq
- !ruby/object:RI::MethodSummary 
  name: seq_map_shortcut
- !ruby/object:RI::MethodSummary 
  name: simple
- !ruby/object:RI::MethodSummary 
  name: single
name: BaseEmitter
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseEmitter#options
is_singleton: false
name: options
params: ( opt = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Quick mapping
full_name: YAML::BaseEmitter#map
is_singleton: false
name: map
params: ( type, &e )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::BaseEmitter#options=
is_singleton: false
name: options=
params: ( opt )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Folding paragraphs within a column
full_name: YAML::BaseEmitter#fold
is_singleton: false
name: fold
params: ( value )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Sequence#add
is_singleton: false
name: add
params: ( v )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: YAML::Sequence
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
name: Sequence
superclass: Array
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::YPath::new
is_singleton: true
name: new
params: ( str )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: flags
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: predicates
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: segments
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_path
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: YAML::YPath
includes: []

instance_methods: []

name: YPath
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: YPath.new( path )
comment: 
full_name: YAML::YPath::each_path
is_singleton: true
name: each_path
params: ( str ) {|YPath.new( path )| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Load a document from the current <em>io</em> stream.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'animals.yaml' ) { |yf| YAML::load( yf ) }\n     #=&gt; ['badger', 'elephant', 'tiger']\n"
- !ruby/struct:SM::Flow::P 
  body: Can also load from a string.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.load( &quot;--- :locked&quot; )\n     #=&gt; :locked\n"
full_name: YAML::load
is_singleton: true
name: load
params: ( io )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse the first document from the current <em>io</em> stream
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'animals.yaml' ) { |yf| YAML::load( yf ) }\n     #=&gt; #&lt;YAML::Syck::Node:0x82ccce0\n          @kind=:seq,\n          @value=\n           [#&lt;YAML::Syck::Node:0x82ccd94\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;badger&quot;&gt;,\n            #&lt;YAML::Syck::Node:0x82ccd58\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;elephant&quot;&gt;,\n            #&lt;YAML::Syck::Node:0x82ccd1c\n             @kind=:scalar,\n             @type_id=&quot;str&quot;,\n             @value=&quot;tiger&quot;&gt;]&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: Can also load from a string.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.parse( &quot;--- :locked&quot; )\n     #=&gt; #&lt;YAML::Syck::Node:0x82edddc\n           @type_id=&quot;tag:ruby.yaml.org,2002:sym&quot;,\n           @value=&quot;:locked&quot;, @kind=:scalar&gt;\n"
full_name: YAML::parse
is_singleton: true
name: parse
params: ( io )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: default
  rw: RW
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: YAML Hash class to support comments and defaults
constants: []

full_name: YAML::SpecialHash
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: update
name: SpecialHash
superclass: "::Hash"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::SpecialHash#update
is_singleton: false
name: update
params: ( h )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::SpecialHash#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::SpecialHash#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::SpecialHash#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#[]
is_singleton: false
name: "[]"
params: ( k )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#yaml_initialize
is_singleton: false
name: yaml_initialize
params: ( tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs::[]
is_singleton: true
name: "[]"
params: ( *vals )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#has_key?
is_singleton: false
name: has_key?
params: ( k )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Builtin collection: !pairs"
constants: []

full_name: YAML::Pairs
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: has_key?
- !ruby/object:RI::MethodSummary 
  name: is_complex_yaml?
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: yaml_initialize
name: Pairs
superclass: "::Array"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#is_complex_yaml?
is_singleton: false
name: is_complex_yaml?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Pairs#[]=
is_singleton: false
name: "[]="
params: ( k, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a YAML stream containing each of the items in <tt>objs</tt>, each having their own document.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.dump_stream( 0, [], {} )\n    #=&gt; --- 0\n        --- []\n        --- {}\n"
full_name: YAML::dump_stream
is_singleton: true
name: dump_stream
params: ( *objs )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Stream#[]
is_singleton: false
name: "[]"
params: ( i )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Stream#add
is_singleton: false
name: add
params: ( doc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Stream#edit
is_singleton: false
name: edit
params: ( doc_num, doc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Stream::new
is_singleton: true
name: new
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: documents
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: options
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: YAML::Stream -- for emitting many documents
constants: []

full_name: YAML::Stream
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: edit
- !ruby/object:RI::MethodSummary 
  name: emit
name: Stream
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Stream#emit
is_singleton: false
name: emit
params: ( io = nil )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class method for creating streams
full_name: YAML::make_stream
is_singleton: true
name: make_stream
params: ( io )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Object#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: tag_subclasses?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unresolved objects
constants: []

full_name: YAML::Object
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: Object
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::Object::tag_subclasses?
is_singleton: true
name: tag_subclasses?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escape the string, condensing common escapes
full_name: YAML::escape
is_singleton: true
name: escape
params: ( value, skip = "" )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Apply any implicit a node may qualify for
full_name: YAML::try_implicit
is_singleton: true
name: try_implicit
params: ( obj )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#values_at
is_singleton: false
name: values_at
params: ( *keys )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION
  value: "\"0.1\""
full_name: YAML::DBM
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_if
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_pair
- !ruby/object:RI::MethodSummary 
  name: each_value
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: has_value?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: invert
- !ruby/object:RI::MethodSummary 
  name: reject
- !ruby/object:RI::MethodSummary 
  name: replace
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: shift
- !ruby/object:RI::MethodSummary 
  name: store
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_hash
- !ruby/object:RI::MethodSummary 
  name: update
- !ruby/object:RI::MethodSummary 
  name: values
- !ruby/object:RI::MethodSummary 
  name: values_at
name: DBM
superclass: "::DBM"
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#[]
is_singleton: false
name: "[]"
params: ( key )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#has_value?
is_singleton: false
name: has_value?
params: ( val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: k, v
comment: 
full_name: YAML::DBM#select
is_singleton: false
name: select
params: ( *keys ) {|k, v| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: keystr
comment: 
full_name: YAML::DBM#fetch
is_singleton: false
name: fetch
params: ( keystr, ifnone = nil ) {|keystr| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#replace
is_singleton: false
name: replace
params: ( hsh )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: k, v
comment: 
full_name: YAML::DBM#reject
is_singleton: false
name: reject
params: () {|k, v| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#update
is_singleton: false
name: update
params: ( hsh )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: YAML::load( v ) }
comment: 
full_name: YAML::DBM#each_value
is_singleton: false
name: each_value
params: () {|YAML::load( v ) }| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#store
is_singleton: false
name: store
params: ( key, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#to_hash
is_singleton: false
name: to_hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ( k, fetch( k ) )
comment: 
full_name: YAML::DBM#delete_if
is_singleton: false
name: delete_if
params: () {|k, fetch( k  )| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#shift
is_singleton: false
name: shift
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#delete
is_singleton: false
name: delete
params: ( key )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each_pair"
full_name: YAML::DBM#each
is_singleton: false
name: each
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#values
is_singleton: false
name: values
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#index
is_singleton: false
name: index
params: ( keystr )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#invert
is_singleton: false
name: invert
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each
block_params: k, fetch( k ) }
comment: 
full_name: YAML::DBM#each_pair
is_singleton: false
name: each_pair
params: () {|k, fetch( k ) }| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DBM#[]=
is_singleton: false
name: "[]="
params: ( key, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Loads all documents from the current <em>io</em> stream, returning a +YAML::Stream+ object containing all loaded documents.
full_name: YAML::load_stream
is_singleton: true
name: load_stream
params: ( io )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>obj</em> to YAML and writes the YAML result to <em>io</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'animals.yaml', 'w' ) do |out|\n    YAML.dump( ['badger', 'elephant', 'tiger'], out )\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: If no <em>io</em> is provided, a string containing the dumped YAML is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "  YAML.dump( :locked )\n     #=&gt; &quot;--- :locked&quot;\n"
full_name: YAML::dump
is_singleton: true
name: dump
params: ( obj, io = nil )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_builtin_type
- !ruby/object:RI::MethodSummary 
  name: add_domain_type
- !ruby/object:RI::MethodSummary 
  name: add_private_type
- !ruby/object:RI::MethodSummary 
  name: add_ruby_type
- !ruby/object:RI::MethodSummary 
  name: detect_implicit
- !ruby/object:RI::MethodSummary 
  name: dump
- !ruby/object:RI::MethodSummary 
  name: dump_stream
- !ruby/object:RI::MethodSummary 
  name: each_document
- !ruby/object:RI::MethodSummary 
  name: each_node
- !ruby/object:RI::MethodSummary 
  name: emitter
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: generic_parser
- !ruby/object:RI::MethodSummary 
  name: load
- !ruby/object:RI::MethodSummary 
  name: load_documents
- !ruby/object:RI::MethodSummary 
  name: load_file
- !ruby/object:RI::MethodSummary 
  name: load_stream
- !ruby/object:RI::MethodSummary 
  name: make_stream
- !ruby/object:RI::MethodSummary 
  name: object_maker
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: parse_documents
- !ruby/object:RI::MethodSummary 
  name: parse_file
- !ruby/object:RI::MethodSummary 
  name: parser
- !ruby/object:RI::MethodSummary 
  name: quick_emit
- !ruby/object:RI::MethodSummary 
  name: read_type_class
- !ruby/object:RI::MethodSummary 
  name: resolver
- !ruby/object:RI::MethodSummary 
  name: tag_class
- !ruby/object:RI::MethodSummary 
  name: tagged_classes
- !ruby/object:RI::MethodSummary 
  name: tagurize
- !ruby/object:RI::MethodSummary 
  name: transfer
- !ruby/object:RI::MethodSummary 
  name: try_implicit
- !ruby/object:RI::MethodSummary 
  name: unescape
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: YAML
- !ruby/struct:SM::Flow::P 
  body: YAML(tm) (rhymes with 'camel') is a straightforward machine parsable data serialization format designed for human readability and interaction with scripting languages such as Perl and Python. YAML is optimized for data serialization, formatted dumping, configuration files, log files, Internet messaging and filtering. This specification describes the YAML information model and serialization format. Together with the Unicode standard for characters, it provides all the information necessary to understand YAML Version 1.0 and construct computer programs to process it.
- !ruby/struct:SM::Flow::P 
  body: See http://yaml.org/ for more information. For a quick tutorial, please visit YAML In Five Minutes (http://yaml.kwiki.org/?YamlInFiveMinutes).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: About This Library
- !ruby/struct:SM::Flow::P 
  body: The YAML 1.0 specification outlines four stages of YAML loading and dumping. This library honors all four of those stages, although data is really only available to you in three stages.
- !ruby/struct:SM::Flow::P 
  body: "The four stages are: native, representation, serialization, and presentation."
- !ruby/struct:SM::Flow::P 
  body: The native stage refers to data which has been loaded completely into Ruby's own types. (See +YAML::load+.)
- !ruby/struct:SM::Flow::P 
  body: The representation stage means data which has been composed into +YAML::BaseNode+ objects. In this stage, the document is available as a tree of node objects. You can perform YPath queries and transformations at this level. (See +YAML::parse+.)
- !ruby/struct:SM::Flow::P 
  body: The serialization stage happens inside the parser. The YAML parser used in Ruby is called Syck. Serialized nodes are available in the extension as SyckNode structs.
- !ruby/struct:SM::Flow::P 
  body: The presentation stage is the YAML document itself. This is accessible to you as a string. (See +YAML::dump+.)
- !ruby/struct:SM::Flow::P 
  body: For more information about the various information models, see Chapter 3 of the YAML 1.0 Specification (http://yaml.org/spec/#id2491269).
- !ruby/struct:SM::Flow::P 
  body: The YAML module provides quick access to the most common loading (YAML::load) and dumping (YAML::dump) tasks. This module also provides an API for registering global types (YAML::add_domain_type).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::P 
  body: A simple round-trip (load and dump) of an object.
- !ruby/struct:SM::Flow::VERB 
  body: "    require &quot;yaml&quot;\n\n    test_obj = [&quot;dogs&quot;, &quot;cats&quot;, &quot;badgers&quot;]\n\n    yaml_obj = YAML::dump( test_obj )\n                        # -&gt; ---\n                             - dogs\n                             - cats\n                             - badgers\n    ruby_obj = YAML::load( yaml_obj )\n                        # =&gt; [&quot;dogs&quot;, &quot;cats&quot;, &quot;badgers&quot;]\n    ruby_obj == test_obj\n                        # =&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: To register your custom types with the global resolver, use <tt>add_domain_type</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "    YAML::add_domain_type( &quot;your-site.com,2004&quot;, &quot;widget&quot; ) do |type, val|\n        Widget.new( val )\n    end\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Constants
  name: VERSION
  value: "'0.60'"
- !ruby/object:RI::Constant 
  comment: 
  name: SUPPORTED_YAML_VERSIONS
  value: "['1.0']"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Parser tokens
  name: WORD_CHAR
  value: "'A-Za-z0-9'"
- !ruby/object:RI::Constant 
  comment: 
  name: PRINTABLE_CHAR
  value: "'-_A-Za-z0-9!?/()$\\'\". '"
- !ruby/object:RI::Constant 
  comment: 
  name: NOT_PLAIN_CHAR
  value: "'\\x7f\\x0-\\x1f\\x80-\\x9f'"
- !ruby/object:RI::Constant 
  comment: 
  name: ESCAPE_CHAR
  value: "'[\\\\x00-\\\\x09\\\\x0b-\\\\x1f]'"
- !ruby/object:RI::Constant 
  comment: 
  name: INDICATOR_CHAR
  value: "'*&!|\\\\\\\\^@%{}[]='"
- !ruby/object:RI::Constant 
  comment: 
  name: SPACE_INDICATORS
  value: "'-#:,?'"
- !ruby/object:RI::Constant 
  comment: 
  name: RESTRICTED_INDICATORS
  value: "'#:,}]'"
- !ruby/object:RI::Constant 
  comment: 
  name: DNS_COMP_RE
  value: "\"\\\\w(?:[-\\\\w]*\\\\w)?\""
- !ruby/object:RI::Constant 
  comment: 
  name: DNS_NAME_RE
  value: "\"(?:(?:#{DNS_COMP_RE}\\\\.)+#{DNS_COMP_RE}|#{DNS_COMP_RE})\""
- !ruby/object:RI::Constant 
  comment: 
  name: ESCAPES
  value: "%w{\\x00   \\x01       \\x02  \\x03     \\x04        \\x05   \\x06      \\a                              \\x08    \\t         \\n             \\v         \\f             \\r         \\x0e   \\x0f                                  \\x10       \\x11  \\x12     \\x13        \\x14   \\x15      \\x16 \\x17                                  \\x18       \\x19  \\x1a     \\e          \\x1c    \\x1d       \\x1e  \\x1f                             }"
- !ruby/object:RI::Constant 
  comment: 
  name: UNESCAPES
  value: "{                                 'a' => \"\\x07\", 'b' => \"\\x08\", 't' => \"\\x09\",                                  'n' => \"\\x0a\", 'v' => \"\\x0b\", 'f' => \"\\x0c\",                                 'r' => \"\\x0d\", 'e' => \"\\x1b\", '\\\\' => '\\\\',                             }"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Default settings
  name: DEFAULTS
  value: "{                 :Indent => 2, :UseHeader => false, :UseVersion => false, :Version => '1.0',                 :SortKeys => false, :AnchorFormat => 'id%03d', :ExplicitTypes => false,                 :WidthType => 'absolute', :BestWidth => 80,                 :UseBlock => false, :UseFold => false, :Encoding => :None"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Error messages
  name: ERROR_NO_HEADER_NODE
  value: "\"With UseHeader=false, the node Array or Hash must have elements\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_NEED_HEADER
  value: "\"With UseHeader=false, the node must be an Array or Hash\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_BAD_EXPLICIT
  value: "\"Unsupported explicit transfer: '%s'\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_MANY_EXPLICIT
  value: "\"More than one explicit transfer\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_MANY_IMPLICIT
  value: "\"More than one implicit request\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_NO_ANCHOR
  value: "\"No anchor for alias '%s'\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_BAD_ANCHOR
  value: "\"Invalid anchor: %s\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_MANY_ANCHOR
  value: "\"More than one anchor\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_ANCHOR_ALIAS
  value: "\"Can't define both an anchor and an alias\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_BAD_ALIAS
  value: "\"Invalid alias: %s\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_MANY_ALIAS
  value: "\"More than one alias\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_ZERO_INDENT
  value: "\"Can't use zero as an indentation width\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_UNSUPPORTED_VERSION
  value: "\"This release of YAML.rb does not support YAML version %s\""
- !ruby/object:RI::Constant 
  comment: 
  name: ERROR_UNSUPPORTED_ENCODING
  value: "\"Attempt to use unsupported encoding: %s\""
- !ruby/object:RI::Constant 
  comment: 
  name: Resolver
  value: YAML::Syck::Resolver
- !ruby/object:RI::Constant 
  comment: 
  name: DefaultResolver
  value: YAML::Syck::DefaultResolver
- !ruby/object:RI::Constant 
  comment: 
  name: GenericResolver
  value: YAML::Syck::GenericResolver
- !ruby/object:RI::Constant 
  comment: 
  name: Parser
  value: YAML::Syck::Parser
- !ruby/object:RI::Constant 
  comment: 
  name: Emitter
  value: YAML::Syck::Emitter
full_name: YAML
includes: []

instance_methods: []

name: YAML
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with each consecutive document in the YAML stream contained in <em>io</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'many-docs.yaml' ) do |yf|\n    YAML.load_documents( yf ) do |ydoc|\n      ## ydoc contains the single object\n      ## from the YAML document\n    end\n  end\n"
full_name: YAML::load_documents
is_singleton: true
name: load_documents
params: ( io, &doc_proc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> with a tree of +YAML::BaseNodes+, one tree for each consecutive document in the YAML stream contained in <em>io</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  File.open( 'many-docs.yaml' ) do |yf|\n    YAML.parse_documents( yf ) do |ydoc|\n      ## ydoc contains a tree of nodes\n      ## from the YAML document\n    end\n  end\n"
full_name: YAML::parse_documents
is_singleton: true
name: parse_documents
params: ( io, &doc_proc )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DomainType::new
is_singleton: true
name: new
params: ( domain, type, val )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: tag_subclasses?
comment: 
- !ruby/struct:SM::Flow::P 
  body: Default domain type
constants: []

full_name: YAML::DomainType
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_yaml
name: DomainType
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DomainType#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: YAML::DomainType::tag_subclasses?
is_singleton: true
name: tag_subclasses?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a transfer method for a builtin type
full_name: YAML::add_ruby_type
is_singleton: true
name: add_ruby_type
params: ( type_tag, &transfer_proc )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Thread</tt> encapsulates the behavior of a thread of execution, including the main thread of the Ruby script.
- !ruby/struct:SM::Flow::P 
  body: In the descriptions of the methods in this class, the parameter <em>sym</em> refers to a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as <tt>:name</tt>).
constants: []

full_name: ThreadError
includes: []

instance_methods: []

name: ThreadError
superclass: StandardError
Wed, 26 Jul 2023 13:45:54 +0000
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Substitute a set of key/value pairs into the given template. Keys with scalar values have them substituted directly into the page. Those with array values invoke <tt>substitute_array</tt> (below), which examples a block of the template once for each row in the array.
- !ruby/struct:SM::Flow::P 
  body: "This routine also copes with the <tt>IF:</tt><em>key</em> directive, removing chunks of the template if the corresponding key does not appear in the hash, and the START: directive, which loops its contents for each value in an array"
full_name: TemplatePage#substitute_into
is_singleton: false
name: substitute_into
params: (lines, values)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Render the templates into HTML, storing the result on <tt>op</tt> using the method <tt>&lt;&lt;</tt>. The <tt>value_hash</tt> contains key/value pairs used to drive the substitution (as described above)
full_name: TemplatePage#write_html_on
is_singleton: false
name: write_html_on
params: (op, value_hash)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Cheap-n-cheerful HTML page template system. You create a template containing:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: variable names between percent signs (<tt>%fred%</tt>)
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "blocks of repeating stuff:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  START:key\n    ... stuff\n  END:key\n"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: You feed the code a hash. For simple variables, the values are resolved directly from the hash. For blocks, the hash entry corresponding to <tt>key</tt> will be an array of hashes. The block will be generated once for each entry. Blocks can be nested arbitrarily deeply.
- !ruby/struct:SM::Flow::P 
  body: The template may also contain
- !ruby/struct:SM::Flow::VERB 
  body: "  IF:key\n    ... stuff\n  ENDIF:key\n"
- !ruby/struct:SM::Flow::P 
  body: <em>stuff</em> will only be included in the output if the corresponding key is set in the value hash.
- !ruby/struct:SM::Flow::P 
  body: "Usage: Given a set of templates <tt>T1, T2,</tt> etc"
- !ruby/struct:SM::Flow::VERB 
  body: "           values = { &quot;name&quot; =&gt; &quot;Dave&quot;, state =&gt; &quot;TX&quot; }\n\n           t = TemplatePage.new(T1, T2, T3)\n           File.open(name, &quot;w&quot;) {|f| t.write_html_on(f, values)}\n        or\n           res = ''\n           t.write_html_on(res, values)\n"
constants: []

full_name: TemplatePage
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: expand_line
- !ruby/object:RI::MethodSummary 
  name: substitute_into
- !ruby/object:RI::MethodSummary 
  name: write_html_on
name: TemplatePage
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TemplatePage::Context#push
is_singleton: false
name: push
params: (hash)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TemplatePage::Context#pop
is_singleton: false
name: pop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TemplatePage::Context::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Lookup any key in the stack of hashes
full_name: TemplatePage::Context#lookup
is_singleton: false
name: lookup
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find a scalar value, throwing an exception if not found. This method is used when substituting the %xxx% constructs
full_name: TemplatePage::Context#find_scalar
is_singleton: false
name: find_scalar
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A context holds a stack of key/value pairs (like a symbol table). When asked to resolve a key, it first searches the top of the stack, then the next level, and so on until it finds a match (or runs out of entries)
constants: []

full_name: TemplatePage::Context
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: find_scalar
- !ruby/object:RI::MethodSummary 
  name: lookup
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: push
name: Context
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Given an individual line, we look for %xxx% constructs and HREF:ref:name: constructs, substituting for each."
full_name: TemplatePage#expand_line
is_singleton: false
name: expand_line
params: (line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>templates</tt> is an array of strings containing the templates. We start at the first, and substitute in subsequent ones where the string <tt>!INCLUDE!</tt> occurs. For example, we could have the overall page template containing
- !ruby/struct:SM::Flow::VERB 
  body: "  &lt;html&gt;&lt;body&gt;\n    &lt;h1&gt;Master&lt;/h1&gt;\n    !INCLUDE!\n  &lt;/bost&gt;&lt;/html&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: and substitute subpages in to it by passing [master, sub_page]. This gives us a cheap way of framing pages
full_name: TemplatePage::new
is_singleton: true
name: new
params: (*templates)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a copy of ourselves that can be modified without affecting us
full_name: TemplatePage::LineReader#dup
is_singleton: false
name: dup
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: we're initialized with an array of lines
full_name: TemplatePage::LineReader::new
is_singleton: true
name: new
params: (lines)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: read the next line
full_name: TemplatePage::LineReader#read
is_singleton: false
name: read
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a list of lines up to the line that matches a pattern. That last line is discarded.
full_name: TemplatePage::LineReader#read_up_to
is_singleton: false
name: read_up_to
params: (pattern)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Simple class to read lines out of a string
constants: []

full_name: TemplatePage::LineReader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: dup
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: read_up_to
name: LineReader
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTPort::new
is_singleton: true
name: new
params: ( params = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTPort#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: label
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: this is used when we build nodes that have shape=record ports don't have options :)
constants: []

full_name: DOT::DOTPort
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
name: DOTPort
superclass: DOTSimpleElement
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSubgraph#push
is_singleton: false
name: push
params: ( thing )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSubgraph#pop
is_singleton: false
name: pop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSubgraph::new
is_singleton: true
name: new
params: ( params = {}, option_list = GRAPH_OPTS )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: i
comment: 
full_name: DOT::DOTSubgraph#each_node
is_singleton: false
name: each_node
params: () {|i| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSubgraph#to_s
is_singleton: false
name: to_s
params: ( t = '' )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSubgraph#<<
is_singleton: false
name: "<<"
params: ( thing )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: subgraph element is the same to graph, but has another header in dot notation
constants: []

full_name: DOT::DOTSubgraph
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: each_node
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: to_s
name: DOTSubgraph
superclass: DOTElement
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: this is graph
constants: []

full_name: DOT::DOTDigraph
includes: []

instance_methods: []

name: DOTDigraph
superclass: DOTSubgraph
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTDigraph::new
is_singleton: true
name: new
params: ( params = {}, option_list = GRAPH_OPTS )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: options for node declaration
  name: NODE_OPTS
  value: "[         'bgcolor',         'color',         'fontcolor',         'fontname',         'fontsize',         'height',         'width',         'label',         'layer',         'rank',         'shape',         'shapefile',         'style',         'URL',     ]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: options for edge declaration
  name: EDGE_OPTS
  value: "[         'color',         'decorate',         'dir',         'fontcolor',         'fontname',         'fontsize',         'id',         'label',         'layer',         'lhead',         'ltail',         'minlen',         'style',         'weight'"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: options for graph declaration
  name: GRAPH_OPTS
  value: "[         'bgcolor',         'center',         'clusterrank',         'color',         'compound',         'concentrate',         'fillcolor',         'fontcolor',         'fontname',         'fontsize',         'label',         'layerseq',         'margin',         'mclimit',         'nodesep',         'nslimit',         'ordering',         'orientation',         'page',         'rank',         'rankdir',         'ranksep',         'ratio',         'size',         'style',         'URL'"
full_name: DOT
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: change_tab
name: DOT
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: if we don't like 4 spaces, we can change it any time
full_name: DOT#change_tab
is_singleton: false
name: change_tab
params: ( t )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTNode#push
is_singleton: false
name: push
params: ( thing )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTNode#pop
is_singleton: false
name: pop
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: node element
constants: []

full_name: DOT::DOTNode
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: each_port
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: push
- !ruby/object:RI::MethodSummary 
  name: to_s
name: DOTNode
superclass: DOTElement
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: i
comment: 
full_name: DOT::DOTNode#each_port
is_singleton: false
name: each_port
params: () {|i| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTNode::new
is_singleton: true
name: new
params: ( params = {}, option_list = NODE_OPTS )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTNode#to_s
is_singleton: false
name: to_s
params: ( t = '' )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTNode#<<
is_singleton: false
name: "<<"
params: ( thing )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: a root class for any element in dot notation
constants: []

full_name: DOT::DOTSimpleElement
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
name: DOTSimpleElement
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSimpleElement::new
is_singleton: true
name: new
params: ( params = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTSimpleElement#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: key, val
comment: 
full_name: DOT::DOTElement#each_option_pair
is_singleton: false
name: each_option_pair
params: () {|key, val| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: i
comment: 
full_name: DOT::DOTElement#each_option
is_singleton: false
name: each_option
params: () {|i| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTElement::new
is_singleton: true
name: new
params: ( params = {}, option_list = [] )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: attr_reader :parent
  name: name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: attr_reader :parent
  name: options
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: an element that has options ( node, edge or graph )
constants: []

full_name: DOT::DOTElement
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_option
- !ruby/object:RI::MethodSummary 
  name: each_option_pair
name: DOTElement
superclass: DOTSimpleElement
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: from
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: to
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: this is edge
constants: []

full_name: DOT::DOTEdge
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_s
name: DOTEdge
superclass: DOTElement
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTEdge::new
is_singleton: true
name: new
params: ( params = {}, option_list = EDGE_OPTS )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DOT::DOTEdge#to_s
is_singleton: false
name: to_s
params: ( t = '' )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends the given string to the underlying buffer string of <b>strio</b>. The stream must be opened for writing. If the argument is not a string, it will be converted to a string using <tt>to_s</tt>. Returns the number of bytes written. See IO#write.
full_name: StringIO#write
is_singleton: false
name: write
params: |
  strio.write(string)    -> integer
  strio.syswrite(string) -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the read end of a StringIO. Will raise an <tt>IOError</tt> if the <b>strio</b> is not readable.
full_name: StringIO#close_read
is_singleton: false
name: close_read
params: |
  strio.close_read    -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each_char.
full_name: StringIO#chars
is_singleton: false
name: chars
params: |
  strio.each_char {|char| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Appends the given string to the underlying buffer string of <b>strio</b>. The stream must be opened for writing. If the argument is not a string, it will be converted to a string using <tt>to_s</tt>. Returns the number of bytes written. See IO#write.
full_name: StringIO#syswrite
is_singleton: false
name: syswrite
params: |
  strio.write(string)    -> integer
  strio.syswrite(string) -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of the buffer string.
full_name: StringIO#size
is_singleton: false
name: size
params: |
  strio.size   -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns underlying String object, the subject of IO.
full_name: StringIO#string
is_singleton: false
name: string
params: " strio.string     -> string\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reinitializes <b>strio</b> with the given <em>other_StrIO</em> or <em>string</em> and <em>mode</em> (see StringIO#new).
full_name: StringIO#reopen
is_singleton: false
name: reopen
params: |
  strio.reopen(other_StrIO)     -> strio
  strio.reopen(string, mode)    -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each_char.
full_name: StringIO#each_char
is_singleton: false
name: each_char
params: |
  strio.each_char {|char| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pushes back one character (passed as a parameter) onto <b>strio</b> such that a subsequent buffered read will return it. Pushing back behind the beginning of the buffer string is not possible. Nothing will be done if such an attempt is made. In other case, there is no limitation for multiple pushbacks.
full_name: StringIO#ungetc
is_singleton: false
name: ungetc
params: |
  strio.ungetc(integer)   -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#getc.
full_name: StringIO#getbyte
is_singleton: false
name: getbyte
params: |
  strio.getc   -> fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #eof"
full_name: StringIO#eof?
is_singleton: false
name: eof?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeks to a given offset <em>amount</em> in the stream according to the value of <em>whence</em> (see IO#seek).
full_name: StringIO#seek
is_singleton: false
name: seek
params: |
  strio.seek(amount, whence=SEEK_SET) -> 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to StringIO.new except that when it is called with a block, it yields with the new instance and closes it, and returns the result which returned from the block.
full_name: StringIO::open
is_singleton: true
name: open
params: " StringIO.open(string=\"\"[, mode]) {|strio| ...}\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises NotImplementedError.
full_name: StringIO#fcntl
is_singleton: false
name: fcntl
params: " strio.fcntl "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt>. Just for compatibility to IO.
full_name: StringIO#path
is_singleton: false
name: path
params: " strio.path -> nil "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#gets.
full_name: StringIO#gets
is_singleton: false
name: gets
params: |
  strio.gets(sep_string=$/)   -> string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if <b>strio</b> is at end of file. The stringio must be opened for reading or an <tt>IOError</tt> will be raised.
full_name: StringIO#eof
is_singleton: false
name: eof
params: |
  strio.eof     -> true or false
  strio.eof?    -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <b>strio</b> itself. Just for compatibility to IO.
full_name: StringIO#flush
is_singleton: false
name: flush
params: " strio.flush -> strio "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Similar to #read, but raises <tt>EOFError</tt> at end of string instead of returning <tt>nil</tt>, as well as IO#sysread does."
full_name: StringIO#sysread
is_singleton: false
name: sysread
params: |
  strio.sysread(integer[, outbuf])    -> string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#readchar.
full_name: StringIO#readbyte
is_singleton: false
name: readbyte
params: |
  strio.readchar   -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the write end of a StringIO. Will raise an <tt>IOError</tt> if the <b>strio</b> is not writeable.
full_name: StringIO#close_write
is_singleton: false
name: close_write
params: |
  strio.close_write    -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt>. Just for compatibility to IO.
full_name: StringIO#pid
is_singleton: false
name: pid
params: " strio.pid -> nil "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#print.
full_name: StringIO#print
is_singleton: false
name: print
params: |
  strio.print()             -> nil
  strio.print(obj, ...)     -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>nil</tt>. Just for compatibility to IO.
full_name: StringIO#fileno
is_singleton: false
name: fileno
params: " strio.fileno -> nil "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each.
full_name: StringIO#each_line
is_singleton: false
name: each_line
params: |
  strio.each(sep_string=$/)      {|line| block }  -> strio
  strio.each_line(sep_string=$/) {|line| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <b>strio</b> is completely closed, <tt>false</tt> otherwise.
full_name: StringIO#closed?
is_singleton: false
name: closed?
params: |
  strio.closed?    -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#getc.
full_name: StringIO#getc
is_singleton: false
name: getc
params: |
  strio.getc   -> fixnum or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: StringIO#rewind
is_singleton: false
name: rewind
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates new StringIO instance from with <em>string</em> and <em>mode</em>.
full_name: StringIO::new
is_singleton: true
name: new
params: " StringIO.new(string=\"\"[, mode])\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes strio. The <b>strio</b> is unavailable for any further data operations; an <tt>IOError</tt> is raised if such an attempt is made.
full_name: StringIO#close
is_singleton: false
name: close
params: |
  strio.close  -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#readlines.
full_name: StringIO#readlines
is_singleton: false
name: readlines
params: |
  strio.readlines(sep_string=$/)  ->   array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#read.
full_name: StringIO#read
is_singleton: false
name: read
params: |
  strio.read([length [, buffer]])    -> string, buffer, or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of the buffer string.
full_name: StringIO#length
is_singleton: false
name: length
params: |
  strio.size   -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current line number in <b>strio</b>. The stringio must be opened for reading. <tt>lineno</tt> counts the number of times <tt>gets</tt> is called, rather than the number of newlines encountered. The two values will differ if <tt>gets</tt> is called with a separator other than newline. See also the <tt>$.</tt> variable.
full_name: StringIO#lineno
is_singleton: false
name: lineno
params: |
  strio.lineno    -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each.
full_name: StringIO#lines
is_singleton: false
name: lines
params: |
  strio.each(sep_string=$/)      {|line| block }  -> strio
  strio.each_line(sep_string=$/) {|line| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each.
full_name: StringIO#each
is_singleton: false
name: each
params: |
  strio.each(sep_string=$/)      {|line| block }  -> strio
  strio.each_line(sep_string=$/) {|line| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Seeks to the given position (in bytes) in <b>strio</b>.
full_name: StringIO#pos=
is_singleton: false
name: pos=
params: |
  strio.pos = integer    -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#printf.
full_name: StringIO#printf
is_singleton: false
name: printf
params: |
  strio.printf(format_string [, obj, ...] )   -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>false</tt>. Just for compatibility to IO.
full_name: StringIO#tty?
is_singleton: false
name: tty?
params: |
  strio.isatty -> nil
  strio.tty? -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Truncates the buffer string to at most <em>integer</em> bytes. The <b>strio</b> must be opened for writing.
full_name: StringIO#truncate
is_singleton: false
name: truncate
params: |
  strio.truncate(integer)    -> 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#puts.
full_name: StringIO#puts
is_singleton: false
name: puts
params: |
  strio.puts(obj, ...)    -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current offset (in bytes) of <b>strio</b>.
full_name: StringIO#tell
is_singleton: false
name: tell
params: |
  strio.pos     -> integer
  strio.tell    -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#&lt;&lt;.
full_name: StringIO#<<
is_singleton: false
name: "<<"
params: |
  strio << obj     -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>false</tt>. Just for compatibility to IO.
full_name: StringIO#isatty
is_singleton: false
name: isatty
params: |
  strio.isatty -> nil
  strio.tty? -> nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the argument unchanged. Just for compatibility to IO.
full_name: StringIO#sync=
is_singleton: false
name: sync=
params: " strio.sync = boolean -> boolean "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#readchar.
full_name: StringIO#readchar
is_singleton: false
name: readchar
params: |
  strio.readchar   -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each_byte.
full_name: StringIO#each_byte
is_singleton: false
name: each_byte
params: |
  strio.each_byte {|byte| block }  -> strio

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#readline.
full_name: StringIO#readline
is_singleton: false
name: readline
params: |
  strio.readline(sep_string=$/)   -> string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> always.
full_name: StringIO#sync
is_singleton: false
name: sync
params: |
  strio.sync    -> true

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes underlying String object, the subject of IO.
full_name: StringIO#string=
is_singleton: false
name: string=
params: |
  strio.string = string  -> string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#putc.
full_name: StringIO#putc
is_singleton: false
name: putc
params: |
  strio.putc(obj)    -> obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns 0. Just for compatibility to IO.
full_name: StringIO#fsync
is_singleton: false
name: fsync
params: " strio.fsync -> 0 "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Manually sets the current line number to the given value. <tt>$.</tt> is updated only on the next read.
full_name: StringIO#lineno=
is_singleton: false
name: lineno=
params: |
  strio.lineno = integer    -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <b>strio</b> is not readable, <tt>false</tt> otherwise.
full_name: StringIO#closed_read?
is_singleton: false
name: closed_read?
params: |
  strio.closed_read?    -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <b>strio</b> is not writable, <tt>false</tt> otherwise.
full_name: StringIO#closed_write?
is_singleton: false
name: closed_write?
params: |
  strio.closed_write?    -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current offset (in bytes) of <b>strio</b>.
full_name: StringIO#pos
is_singleton: false
name: pos
params: |
  strio.pos     -> integer
  strio.tell    -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <b>strio</b> itself. Just for compatibility to IO.
full_name: StringIO#binmode
is_singleton: false
name: binmode
params: " strio.binmode -> true "
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See IO#each_byte.
full_name: StringIO#bytes
is_singleton: false
name: bytes
params: |
  strio.each_byte {|byte| block }  -> strio

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pseudo I/O on String object.
constants: []

full_name: StringIO
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: binmode
- !ruby/object:RI::MethodSummary 
  name: bytes
- !ruby/object:RI::MethodSummary 
  name: chars
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: close_read
- !ruby/object:RI::MethodSummary 
  name: close_write
- !ruby/object:RI::MethodSummary 
  name: closed?
- !ruby/object:RI::MethodSummary 
  name: closed_read?
- !ruby/object:RI::MethodSummary 
  name: closed_write?
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_byte
- !ruby/object:RI::MethodSummary 
  name: each_char
- !ruby/object:RI::MethodSummary 
  name: each_line
- !ruby/object:RI::MethodSummary 
  name: eof
- !ruby/object:RI::MethodSummary 
  name: eof
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: eof?
- !ruby/object:RI::MethodSummary 
  name: fcntl
- !ruby/object:RI::MethodSummary 
  name: fileno
- !ruby/object:RI::MethodSummary 
  name: flush
- !ruby/object:RI::MethodSummary 
  name: fsync
- !ruby/object:RI::MethodSummary 
  name: getbyte
- !ruby/object:RI::MethodSummary 
  name: getc
- !ruby/object:RI::MethodSummary 
  name: gets
- !ruby/object:RI::MethodSummary 
  name: isatty
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: lineno
- !ruby/object:RI::MethodSummary 
  name: lineno=
- !ruby/object:RI::MethodSummary 
  name: lines
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: pid
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: pos=
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: putc
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: readbyte
- !ruby/object:RI::MethodSummary 
  name: readchar
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readline
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: reopen
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: seek
- !ruby/object:RI::MethodSummary 
  name: seek
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: string
- !ruby/object:RI::MethodSummary 
  name: string=
- !ruby/object:RI::MethodSummary 
  name: sync
- !ruby/object:RI::MethodSummary 
  name: sync=
- !ruby/object:RI::MethodSummary 
  name: sysread
- !ruby/object:RI::MethodSummary 
  name: syswrite
- !ruby/object:RI::MethodSummary 
  name: tell
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: tty?
- !ruby/object:RI::MethodSummary 
  name: ungetc
- !ruby/object:RI::MethodSummary 
  name: write
name: StringIO
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Match---Matches <em>rxp</em> against the contents of <tt>$_</tt>. Equivalent to <tt><em>rxp</em> =~ $_</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   $_ = &quot;input data&quot;\n   ~ /at/   #=&gt; 7\n"
full_name: Regexp#~
is_singleton: false
name: "~"
params: |
  ~ rxp   => integer or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---Two regexps are equal if their patterns are identical, they have the same character set code, and their <tt>casefold?</tt> values are the same.
- !ruby/struct:SM::Flow::VERB 
  body: "   /abc/  == /abc/x   #=&gt; false\n   /abc/  == /abc/i   #=&gt; false\n   /abc/u == /abc/n   #=&gt; false\n"
full_name: Regexp#eql?
is_singleton: false
name: eql?
params: |
  rxp == other_rxp      => true or false
  rxp.eql?(other_rxp)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Regexp#&
is_singleton: false
name: "&"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Synonym for <tt>Regexp.new</tt>
full_name: Regexp::compile
is_singleton: true
name: compile
params: (...)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the original string of the pattern.
- !ruby/struct:SM::Flow::VERB 
  body: "   /ab+c/ix.source   #=&gt; &quot;ab+c&quot;\n"
full_name: Regexp#source
is_singleton: false
name: source
params: |
  rxp.source   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Case Equality---Synonym for <tt>Regexp#=~</tt> used in case statements.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = &quot;HELLO&quot;\n   case a\n   when /^[a-z]*$/; print &quot;Lower case\\n&quot;\n   when /^[A-Z]*$/; print &quot;Upper case\\n&quot;\n   else;            print &quot;Mixed case\\n&quot;\n   end\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Upper case\n"
full_name: Regexp#===
is_singleton: false
name: ===
params: |
  rxp === str   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---Two regexps are equal if their patterns are identical, they have the same character set code, and their <tt>casefold?</tt> values are the same.
- !ruby/struct:SM::Flow::VERB 
  body: "   /abc/  == /abc/x   #=&gt; false\n   /abc/  == /abc/i   #=&gt; false\n   /abc/u == /abc/n   #=&gt; false\n"
full_name: Regexp#==
is_singleton: false
name: ==
params: |
  rxp == other_rxp      => true or false
  rxp.eql?(other_rxp)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escapes any characters that would have special meaning in a regular expression. Returns a new escaped string, or self if no characters are escaped. For any string, <tt>Regexp.escape(<em>str</em>)=~<em>str</em></tt> will be true.
- !ruby/struct:SM::Flow::VERB 
  body: "   Regexp.escape('\\*?{}.')   #=&gt; \\\\*\\?\\{\\}\\.\n"
full_name: Regexp::quote
is_singleton: true
name: quote
params: |
  Regexp.escape(str)   => a_str
  Regexp.quote(str)    => a_str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Produce a nicely formatted string-version of <em>rxp</em>. Perhaps surprisingly, <tt>#inspect</tt> actually produces the more natural version of the string than <tt>#to_s</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "    /ab+c/ix.to_s         #=&gt; /ab+c/ix\n"
full_name: Regexp#inspect
is_singleton: false
name: inspect
params: |
  rxp.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Regexp::yaml_new
is_singleton: true
name: yaml_new
params: ( klass, tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Produce a hash based on the text and options of this regular expression.
full_name: Regexp#hash
is_singleton: false
name: hash
params: |
  rxp.hash   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>MatchData</tt> object describing the match, or <tt>nil</tt> if there was no match. This is equivalent to retrieving the value of the special variable <tt>$~</tt> following a normal match.
- !ruby/struct:SM::Flow::VERB 
  body: "   /(.)(.)(.)/.match(&quot;abc&quot;)[2]   #=&gt; &quot;b&quot;\n"
full_name: Regexp#=~
is_singleton: false
name: =~
params: |
  rxp.match(str)   => matchdata or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a <tt>Regexp</tt> object that is the union of the given <em>pattern</em>s, i.e., will match any of its parts. The <em>pattern</em>s can be Regexp objects, in which case their options will be preserved, or Strings. If no patterns are given, returns <tt>/(?!)/</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Regexp.union                         #=&gt; /(?!)/\n   Regexp.union(&quot;penzance&quot;)             #=&gt; /penzance/\n   Regexp.union(&quot;a+b*c&quot;)                #=&gt; /a+b*c/\n   Regexp.union(&quot;skiing&quot;, &quot;sledding&quot;)   #=&gt; /skiing|sledding/\n   Regexp.union([&quot;skiing&quot;, &quot;sledding&quot;]) #=&gt; /skiing|sledding/\n   Regexp.union(/dogs/, /cats/i)        #=&gt; /(?-mix:dogs)|(?i-mx:cats)/\n"
full_name: Regexp::union
is_singleton: true
name: union
params: |
  Regexp.union(pat1, pat2, ...)            => new_regexp
  Regexp.union(pats_ary)                   => new_regexp

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Constructs a new regular expression from <em>pattern</em>, which can be either a <tt>String</tt> or a <tt>Regexp</tt> (in which case that regexp's options are propagated, and new options may not be specified (a change as of Ruby 1.8). If <em>options</em> is a <tt>Fixnum</tt>, it should be one or more of the constants <tt>Regexp::EXTENDED</tt>, <tt>Regexp::IGNORECASE</tt>, and <tt>Regexp::MULTILINE</tt>, <em>or</em>-ed together. Otherwise, if <em>options</em> is not <tt>nil</tt>, the regexp will be case insensitive. The <em>lang</em> parameter enables multibyte support for the regexp: `n', `N' = none, `e', `E' = EUC, `s', `S' = SJIS, `u', `U' = UTF-8."
- !ruby/struct:SM::Flow::VERB 
  body: "   r1 = Regexp.new('^a-z+:\\s+\\w+')           #=&gt; /^a-z+:\\s+\\w+/\n   r2 = Regexp.new('cat', true)               #=&gt; /cat/i\n   r3 = Regexp.new('dog', Regexp::EXTENDED)   #=&gt; /dog/x\n   r4 = Regexp.new(r2)                        #=&gt; /cat/i\n"
full_name: Regexp::new
is_singleton: true
name: new
params: |
  Regexp.new(string [, options [, lang]])       => regexp
  Regexp.new(regexp)                            => regexp
  Regexp.compile(string [, options [, lang]])   => regexp
  Regexp.compile(regexp)                        => regexp

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the set of bits corresponding to the options used when creating this Regexp (see <tt>Regexp::new</tt> for details. Note that additional bits may be set in the returned options: these are used internally by the regular expression code. These extra bits are ignored if the options are passed to <tt>Regexp::new</tt>."
- !ruby/struct:SM::Flow::VERB 
  body: "   Regexp::IGNORECASE                  #=&gt; 1\n   Regexp::EXTENDED                    #=&gt; 2\n   Regexp::MULTILINE                   #=&gt; 4\n\n   /cat/.options                       #=&gt; 128\n   /cat/ix.options                     #=&gt; 131\n   Regexp.new('cat', true).options     #=&gt; 129\n   Regexp.new('cat', 0, 's').options   #=&gt; 384\n\n   r = /cat/ix\n   Regexp.new(r.source, r.options)     #=&gt; /cat/ix\n"
full_name: Regexp#options
is_singleton: false
name: options
params: |
  rxp.options   => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a <tt>MatchData</tt> object describing the match, or <tt>nil</tt> if there was no match. This is equivalent to retrieving the value of the special variable <tt>$~</tt> following a normal match.
- !ruby/struct:SM::Flow::VERB 
  body: "   /(.)(.)(.)/.match(&quot;abc&quot;)[2]   #=&gt; &quot;b&quot;\n"
full_name: Regexp#match
is_singleton: false
name: match
params: |
  rxp.match(str)   => matchdata or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the regular expression and its options (using the <tt>(?xxx:yyy)</tt> notation. This string can be fed back in to <tt>Regexp::new</tt> to a regular expression with the same semantics as the original. (However, <tt>Regexp#==</tt> may not return true when comparing the two, as the source of the regular expression itself may differ, as the example shows). <tt>Regexp#inspect</tt> produces a generally more readable version of <em>rxp</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   r1 = /ab+c/ix         #=&gt; /ab+c/ix\n   s1 = r1.to_s          #=&gt; &quot;(?ix-m:ab+c)&quot;\n   r2 = Regexp.new(s1)   #=&gt; /(?ix-m:ab+c)/\n   r1 == r2              #=&gt; false\n   r1.source             #=&gt; &quot;ab+c&quot;\n   r2.source             #=&gt; &quot;(?ix-m:ab+c)&quot;\n"
full_name: Regexp#to_s
is_singleton: false
name: to_s
params: |
  rxp.to_s   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the character set code for the regexp.
full_name: Regexp#kcode
is_singleton: false
name: kcode
params: |
  rxp.kcode   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of the case-insensitive flag.
full_name: Regexp#casefold?
is_singleton: false
name: casefold?
params: |
  rxp.casefold?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Regexp#|
is_singleton: false
name: "|"
params: (other)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: compile
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: last_match
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: quote
- !ruby/object:RI::MethodSummary 
  name: union
- !ruby/object:RI::MethodSummary 
  name: yaml_new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-class: Regexp"
- !ruby/struct:SM::Flow::P 
  body: A <tt>Regexp</tt> holds a regular expression, used to match a pattern against strings. Regexps are created using the <tt>/.../</tt> and <tt>%r{...}</tt> literals, and by the <tt>Regexp::new</tt> constructor.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: IGNORECASE
  value: INT2FIX(RE_OPTION_IGNORECASE)
- !ruby/object:RI::Constant 
  comment: 
  name: EXTENDED
  value: INT2FIX(RE_OPTION_EXTENDED)
- !ruby/object:RI::Constant 
  comment: 
  name: MULTILINE
  value: INT2FIX(RE_OPTION_MULTILINE)
full_name: Regexp
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: =~
- !ruby/object:RI::MethodSummary 
  name: casefold?
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: kcode
- !ruby/object:RI::MethodSummary 
  name: match
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: source
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: "|"
- !ruby/object:RI::MethodSummary 
  name: "~"
name: Regexp
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Regexp#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The first form returns the <tt>MatchData</tt> object generated by the last successful pattern match. Equivalent to reading the global variable <tt>$~</tt>. The second form returns the nth field in this <tt>MatchData</tt> object.
- !ruby/struct:SM::Flow::VERB 
  body: "   /c(.)t/ =~ 'cat'       #=&gt; 0\n   Regexp.last_match      #=&gt; #&lt;MatchData:0x401b3d30&gt;\n   Regexp.last_match(0)   #=&gt; &quot;cat&quot;\n   Regexp.last_match(1)   #=&gt; &quot;a&quot;\n   Regexp.last_match(2)   #=&gt; nil\n"
full_name: Regexp::last_match
is_singleton: true
name: last_match
params: |
  Regexp.last_match           => matchdata
  Regexp.last_match(fixnum)   => str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Escapes any characters that would have special meaning in a regular expression. Returns a new escaped string, or self if no characters are escaped. For any string, <tt>Regexp.escape(<em>str</em>)=~<em>str</em></tt> will be true.
- !ruby/struct:SM::Flow::VERB 
  body: "   Regexp.escape('\\*?{}.')   #=&gt; \\\\*\\?\\{\\}\\.\n"
full_name: Regexp::escape
is_singleton: true
name: escape
params: |
  Regexp.escape(str)   => a_str
  Regexp.quote(str)    => a_str

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse <tt>uri</tt> into a [uri, option] pair.
- !ruby/struct:SM::Flow::P 
  body: The DRbProtocol module asks each registered protocol in turn to try to parse the URI. Each protocol signals that it does not handle that URI by raising a DRbBadScheme error. If no protocol recognises the URI, then a DRbBadURI error is raised.
full_name: DRb::DRbProtocol#uri_option
is_singleton: false
name: uri_option
params: (uri, config, first=true)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Module managing the underlying network protocol(s) used by drb.
- !ruby/struct:SM::Flow::P 
  body: "By default, drb uses the DRbTCPSocket protocol. Other protocols can be defined. A protocol must define the following class methods:"
- !ruby/struct:SM::Flow::VERB 
  body: "  [open(uri, config)] Open a client connection to the server at <tt>uri</tt>,\n                      using configuration <tt>config</tt>.  Return a protocol\n                      instance for this connection.\n  [open_server(uri, config)] Open a server listening at <tt>uri</tt>,\n                             using configuration <tt>config</tt>.  Return a\n                             protocol instance for this listener.\n  [uri_option(uri, config)] Take a URI, possibly containing an option\n                            component (e.g. a trailing '?param=val'),\n                            and return a [uri, option] tuple.\n"
- !ruby/struct:SM::Flow::P 
  body: All of these methods should raise a DRbBadScheme error if the URI does not identify the protocol they support (e.g. &quot;druby:&quot; for the standard Ruby protocol). This is how the DRbProtocol module, given a URI, determines which protocol implementation serves that protocol.
- !ruby/struct:SM::Flow::P 
  body: "The protocol instance returned by #open_server must have the following methods:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: accept
    body: Accept a new connection to the server. Returns a protocol instance capable of communicating with the client.
  - !ruby/struct:SM::Flow::LI 
    label: close
    body: Close the server connection.
  - !ruby/struct:SM::Flow::LI 
    label: uri
    body: Get the URI for this server.
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: "The protocol instance returned by #open must have the following methods:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: send_request (ref, msg_id, arg, b)
    body: Send a request to <tt>ref</tt> with the given message id and arguments. This is most easily implemented by calling DRbMessage.send_request, providing a stream that sits on top of the current protocol.
  - !ruby/struct:SM::Flow::LI 
    label: recv_reply
    body: Receive a reply from the server and return it as a [success-boolean, reply-value] pair. This is most easily implemented by calling DRb.recv_reply, providing a stream that sits on top of the current protocol.
  - !ruby/struct:SM::Flow::LI 
    label: alive?
    body: Is this connection still alive?
  - !ruby/struct:SM::Flow::LI 
    label: close
    body: Close this connection.
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: "The protocol instance returned by #open_server().accept() must have the following methods:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: recv_request
    body: Receive a request from the client and return a [object, message, args, block] tuple. This is most easily implemented by calling DRbMessage.recv_request, providing a stream that sits on top of the current protocol.
  - !ruby/struct:SM::Flow::LI 
    label: send_reply(succ, result)
    body: Send a reply to the client. This is most easily implemented by calling DRbMessage.send_reply, providing a stream that sits on top of the current protocol.
  - !ruby/struct:SM::Flow::LI 
    label: close
    body: Close this connection.
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: A new protocol is registered with the DRbProtocol module using the add_protocol method.
- !ruby/struct:SM::Flow::P 
  body: For examples of other protocols, see DRbUNIXSocket in drb/unix.rb, and HTTP0 in sample/http0.rb and sample/http0serv.rb in the full drb distribution.
constants: []

full_name: DRb::DRbProtocol
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_protocol
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open_server
- !ruby/object:RI::MethodSummary 
  name: uri_option
name: DRbProtocol
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Add a new protocol to the DRbProtocol module.
full_name: DRb::DRbProtocol#add_protocol
is_singleton: false
name: add_protocol
params: (prot)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Open a server listening for connections at <tt>uri</tt> with configuration <tt>config</tt>.
- !ruby/struct:SM::Flow::P 
  body: The DRbProtocol module asks each registered protocol in turn to try to open a server at the URI. Each protocol signals that it does not handle that URI by raising a DRbBadScheme error. If no protocol recognises the URI, then a DRbBadURI error is raised. If a protocol accepts the URI, but an error occurs in opening it, the underlying error is passed on to the caller.
full_name: DRb::DRbProtocol#open_server
is_singleton: false
name: open_server
params: (uri, config, first=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Open a client connection to <tt>uri</tt> with the configuration <tt>config</tt>.
- !ruby/struct:SM::Flow::P 
  body: The DRbProtocol module asks each registered protocol in turn to try to open the URI. Each protocol signals that it does not handle that URI by raising a DRbBadScheme error. If no protocol recognises the URI, then a DRbBadURI error is raised. If a protocol accepts the URI, but an error occurs in opening it, a DRbConnError is raised.
full_name: DRb::DRbProtocol#open
is_singleton: false
name: open
params: (uri, config, first=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the 'current' server.
- !ruby/struct:SM::Flow::P 
  body: In the context of execution taking place within the main thread of a dRuby server (typically, as a result of a remote call on the server or one of its objects), the current server is that server. Otherwise, the current server is the primary server.
- !ruby/struct:SM::Flow::P 
  body: If the above rule fails to find a server, a DRbServerNotFound error is raised.
full_name: DRb#current_server
is_singleton: false
name: current_server
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the class of the error, as a string.
  name: reason
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: An exception wrapping an error object
constants: []

full_name: DRb::DRbRemoteError
includes: []

instance_methods: []

name: DRbRemoteError
superclass: DRbError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbRemoteError::new
is_singleton: true
name: new
params: (error)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check to see if this connection is alive.
full_name: DRb::DRbTCPSocket#alive?
is_singleton: false
name: alive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbTCPSocket::parse_uri
is_singleton: true
name: parse_uri
params: (uri)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the address of our TCP peer (the other end of the socket we are bound to.
full_name: DRb::DRbTCPSocket#peeraddr
is_singleton: false
name: peeraddr
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse <tt>uri</tt> into a [uri, option] pair.
full_name: DRb::DRbTCPSocket::uri_option
is_singleton: true
name: uri_option
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Open a client connection to <tt>uri</tt> using configuration <tt>config</tt>.
full_name: DRb::DRbTCPSocket::open
is_singleton: true
name: open
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: On the server side, receive a request from the client.
full_name: DRb::DRbTCPSocket#recv_request
is_singleton: false
name: recv_request
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the socket.
full_name: DRb::DRbTCPSocket#stream
is_singleton: false
name: stream
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: On the server side, send a reply to the client.
full_name: DRb::DRbTCPSocket#send_reply
is_singleton: false
name: send_reply
params: (succ, result)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new DRbTCPSocket instance.
- !ruby/struct:SM::Flow::P 
  body: <tt>uri</tt> is the URI we are connected to. <tt>soc</tt> is the tcp socket we are bound to. <tt>config</tt> is our configuration.
full_name: DRb::DRbTCPSocket::new
is_singleton: true
name: new
params: (uri, soc, config={})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Close the connection.
- !ruby/struct:SM::Flow::P 
  body: "If this is an instance returned by #open_server, then this stops listening for new connections altogether. If this is an instance returned by #open or by #accept, then it closes this particular client-server session."
full_name: DRb::DRbTCPSocket#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Open a server listening for connections at <tt>uri</tt> using configuration <tt>config</tt>.
full_name: DRb::DRbTCPSocket::open_server
is_singleton: true
name: open_server
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbTCPSocket::getservername
is_singleton: true
name: getservername
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbTCPSocket::open_server_inaddr_any
is_singleton: true
name: open_server_inaddr_any
params: (host, port)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: On the client side, send a request to the server.
full_name: DRb::DRbTCPSocket#send_request
is_singleton: false
name: send_request
params: (ref, msg_id, arg, b)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Get the URI that we are connected to.
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: getservername
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open_server
- !ruby/object:RI::MethodSummary 
  name: open_server_inaddr_any
- !ruby/object:RI::MethodSummary 
  name: parse_uri
- !ruby/object:RI::MethodSummary 
  name: uri_option
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default drb protocol.
- !ruby/struct:SM::Flow::P 
  body: Communicates over a TCP socket.
constants: []

full_name: DRb::DRbTCPSocket
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept
- !ruby/object:RI::MethodSummary 
  name: alive?
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: peeraddr
- !ruby/object:RI::MethodSummary 
  name: recv_reply
- !ruby/object:RI::MethodSummary 
  name: recv_request
- !ruby/object:RI::MethodSummary 
  name: send_reply
- !ruby/object:RI::MethodSummary 
  name: send_request
- !ruby/object:RI::MethodSummary 
  name: stream
name: DRbTCPSocket
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: On the client side, receive a reply from the server.
full_name: DRb::DRbTCPSocket#recv_reply
is_singleton: false
name: recv_reply
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "On the server side, for an instance returned by #open_server, accept a client connection and return a new instance to handle the server's side of this client-server session."
full_name: DRb::DRbTCPSocket#accept
is_singleton: false
name: accept
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Is <tt>uri</tt> the URI for the current local server?
full_name: DRb#here?
is_singleton: false
name: here?
params: (uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb#remove_server
is_singleton: false
name: remove_server
params: (server)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default id conv object.
- !ruby/struct:SM::Flow::P 
  body: See DRbServer#default_id_conv.
full_name: DRb#install_id_conv
is_singleton: false
name: install_id_conv
params: (idconv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default acl.
- !ruby/struct:SM::Flow::P 
  body: See DRb::DRbServer.default_acl.
full_name: DRb#install_acl
is_singleton: false
name: install_acl
params: (acl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the front object of the current server.
- !ruby/struct:SM::Flow::P 
  body: "This raises a DRbServerNotFound error if there is no current server. See #current_server."
full_name: DRb#front
is_singleton: false
name: front
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the thread of the primary server.
- !ruby/struct:SM::Flow::P 
  body: "This returns nil if there is no primary server. See #primary_server."
full_name: DRb#thread
is_singleton: false
name: thread
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised by a dRuby protocol when it doesn't support the scheme specified in a URI. See DRb::DRbProtocol.
constants: []

full_name: DRb::DRbBadScheme
includes: []

instance_methods: []

name: DRbBadScheme
superclass: DRbError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::GW#[]
is_singleton: false
name: "[]"
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::GW
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
name: GW
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::GW::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::GW#[]=
is_singleton: false
name: "[]="
params: (key, v)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The primary local dRuby server.
  - !ruby/struct:SM::Flow::P 
    body: "This is the server created by the #start_service call."
  name: primary_server
  rw: RW
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: for ruby-1.8.0
constants: []

full_name: DRb
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: config
- !ruby/object:RI::MethodSummary 
  name: current_server
- !ruby/object:RI::MethodSummary 
  name: fetch_server
- !ruby/object:RI::MethodSummary 
  name: front
- !ruby/object:RI::MethodSummary 
  name: here?
- !ruby/object:RI::MethodSummary 
  name: install_acl
- !ruby/object:RI::MethodSummary 
  name: install_id_conv
- !ruby/object:RI::MethodSummary 
  name: mutex
- !ruby/object:RI::MethodSummary 
  name: regist_server
- !ruby/object:RI::MethodSummary 
  name: remove_server
- !ruby/object:RI::MethodSummary 
  name: start_service
- !ruby/object:RI::MethodSummary 
  name: stop_service
- !ruby/object:RI::MethodSummary 
  name: thread
- !ruby/object:RI::MethodSummary 
  name: to_id
- !ruby/object:RI::MethodSummary 
  name: to_obj
- !ruby/object:RI::MethodSummary 
  name: uri
name: DRb
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#keeper
is_singleton: false
name: keeper
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#add
is_singleton: false
name: add
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#alternate
is_singleton: false
name: alternate
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#fetch
is_singleton: false
name: fetch
params: (key, dv=@sentinel)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#include?
is_singleton: false
name: include?
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::TimerIdConv::TimerHolder2::InvalidIndexError
includes: []

instance_methods: []

name: InvalidIndexError
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2::new
is_singleton: true
name: new
params: (timeout=600)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::TimerIdConv::TimerHolder2
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: alternate
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: keeper
- !ruby/object:RI::MethodSummary 
  name: peek
name: TimerHolder2
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::TimerHolder2#peek
is_singleton: false
name: peek
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv::new
is_singleton: true
name: new
params: (timeout=600)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::TimerIdConv
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_id
- !ruby/object:RI::MethodSummary 
  name: to_obj
name: TimerIdConv
superclass: DRbIdConv
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv#to_id
is_singleton: false
name: to_id
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::TimerIdConv#to_obj
is_singleton: false
name: to_obj
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the URI defining the local dRuby space.
- !ruby/struct:SM::Flow::P 
  body: "This is the URI of the current server. See #current_server."
full_name: DRb#uri
is_singleton: false
name: uri
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised when an error occurs on the underlying communication protocol.
constants: []

full_name: DRb::DRbConnError
includes: []

instance_methods: []

name: DRbConnError
superclass: DRbError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#unregist
is_singleton: false
name: unregist
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#invoke_thread
is_singleton: false
name: invoke_thread
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#invoke_service
is_singleton: false
name: invoke_service
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#regist
is_singleton: false
name: regist
params: (name, ro)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: uri
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: command
- !ruby/object:RI::MethodSummary 
  name: command=
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::ExtServManager
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: invoke_service
- !ruby/object:RI::MethodSummary 
  name: invoke_service_command
- !ruby/object:RI::MethodSummary 
  name: invoke_thread
- !ruby/object:RI::MethodSummary 
  name: regist
- !ruby/object:RI::MethodSummary 
  name: service
- !ruby/object:RI::MethodSummary 
  name: unregist
name: ExtServManager
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager::command
is_singleton: true
name: command
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#service
is_singleton: false
name: service
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager::command=
is_singleton: true
name: command=
params: (cmd)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServManager#invoke_service_command
is_singleton: false
name: invoke_service_command
params: (name, command)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::parse_uri
is_singleton: true
name: parse_uri
params: (uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::uri_option
is_singleton: true
name: uri_option
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig#[]
is_singleton: false
name: "[]"
params: (key)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT
  value: "{         :SSLCertificate       => nil,         :SSLPrivateKey        => nil,         :SSLClientCA          => nil,         :SSLCACertificatePath => nil,         :SSLCACertificateFile => nil,         :SSLVerifyMode        => ::OpenSSL::SSL::VERIFY_NONE,          :SSLVerifyDepth       => nil,         :SSLVerifyCallback    => nil,   # custom verification         :SSLCertificateStore  => nil,         # Must specify if you use auto generated certificate.         :SSLCertName          => nil,   # e.g. [[\"CN\",\"fqdn.example.com\"]]         :SSLCertComment       => \"Generated by Ruby/OpenSSL\""
full_name: DRb::DRbSSLSocket::SSLConfig
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: accept
- !ruby/object:RI::MethodSummary 
  name: connect
- !ruby/object:RI::MethodSummary 
  name: setup_certificate
- !ruby/object:RI::MethodSummary 
  name: setup_ssl_context
name: SSLConfig
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig#setup_ssl_context
is_singleton: false
name: setup_ssl_context
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig::new
is_singleton: true
name: new
params: (config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig#connect
is_singleton: false
name: connect
params: (tcp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig#setup_certificate
is_singleton: false
name: setup_certificate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::SSLConfig#accept
is_singleton: false
name: accept
params: (tcp)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::open
is_singleton: true
name: open
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket#stream
is_singleton: false
name: stream
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::new
is_singleton: true
name: new
params: (uri, soc, config, is_established)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket::open_server
is_singleton: true
name: open_server
params: (uri, config)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open_server
- !ruby/object:RI::MethodSummary 
  name: parse_uri
- !ruby/object:RI::MethodSummary 
  name: uri_option
comment: 
constants: []

full_name: DRb::DRbSSLSocket
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: stream
name: DRbSSLSocket
superclass: DRbTCPSocket
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbSSLSocket#accept
is_singleton: false
name: accept
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Get the wrapped DRb::DRbUnknown object.
  name: unknown
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: An exception wrapping a DRb::DRbUnknown object
constants: []

full_name: DRb::DRbUnknownError
includes: []

instance_methods: []

name: DRbUnknownError
superclass: DRbError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new DRbUnknownError for the DRb::DRbUnknown object <tt>unknown</tt>
full_name: DRb::DRbUnknownError::new
is_singleton: true
name: new
params: (unknown)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Routes method calls to the referenced object.
full_name: DRb::DRbObject#method_missing
is_singleton: false
name: method_missing
params: (msg_id, *a, &b)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #=="
full_name: DRb::DRbObject#eql?
is_singleton: false
name: eql?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObject::prepare_backtrace
is_singleton: true
name: prepare_backtrace
params: (uri, result)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new DRbObject from a URI alone.
full_name: DRb::DRbObject::new_with_uri
is_singleton: true
name: new_with_uri
params: (uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: eql?
block_params: 
comment: 
full_name: DRb::DRbObject#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObject#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObject::new_with
is_singleton: true
name: new_with
params: (uri, ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new remote object stub.
- !ruby/struct:SM::Flow::P 
  body: <tt>obj</tt> is the (local) object we want to create a stub for. Normally this is <tt>nil</tt>. <tt>uri</tt> is the URI of the remote object that this will be a stub for.
full_name: DRb::DRbObject::new
is_singleton: true
name: new
params: (obj, uri=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: _load
- !ruby/object:RI::MethodSummary 
  name: _load
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new_with
- !ruby/object:RI::MethodSummary 
  name: new_with_uri
- !ruby/object:RI::MethodSummary 
  name: prepare_backtrace
- !ruby/object:RI::MethodSummary 
  name: with_friend
comment: 
- !ruby/struct:SM::Flow::P 
  body: Object wrapping a reference to a remote drb object.
- !ruby/struct:SM::Flow::P 
  body: Method calls on this object are relayed to the remote object that this object is a stub for.
constants: []

full_name: DRb::DRbObject
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: __drbref
- !ruby/object:RI::MethodSummary 
  name: __drburi
- !ruby/object:RI::MethodSummary 
  name: _dump
- !ruby/object:RI::MethodSummary 
  name: _dump
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: method_missing
- !ruby/object:RI::MethodSummary 
  name: respond_to?
name: DRbObject
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unmarshall a marshalled DRbObject.
- !ruby/struct:SM::Flow::P 
  body: If the referenced object is located within the local server, then the object itself is returned. Otherwise, a new DRbObject is created to act as a stub for the remote referenced object.
full_name: DRb::DRbObject::_load
is_singleton: true
name: _load
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the URI of the remote object.
full_name: DRb::DRbObject#__drburi
is_singleton: false
name: __drburi
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObject#_dump
is_singleton: false
name: _dump
params: (lv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObject#respond_to?
is_singleton: false
name: respond_to?
params: (msg_id, priv=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the reference of the object, if local.
full_name: DRb::DRbObject#__drbref
is_singleton: false
name: __drbref
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ()
comment: 
full_name: DRb::DRbObject::with_friend
is_singleton: true
name: with_friend
params: (uri) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Start a dRuby server locally.
- !ruby/struct:SM::Flow::P 
  body: The new dRuby server will become the primary server, even if another server is currently the primary server.
- !ruby/struct:SM::Flow::P 
  body: <tt>uri</tt> is the URI for the server to bind to. If nil, the server will bind to random port on the default local host name and use the default dRuby protocol.
- !ruby/struct:SM::Flow::P 
  body: <tt>front</tt> is the server's front object. This may be nil.
- !ruby/struct:SM::Flow::P 
  body: <tt>config</tt> is the configuration for the new server. This may be nil.
- !ruby/struct:SM::Flow::P 
  body: See DRbServer::new.
full_name: DRb#start_service
is_singleton: false
name: start_service
params: (uri=nil, front=nil, config=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Superclass of all errors raised in the DRb module.
constants: []

full_name: DRb::DRbError
includes: []

instance_methods: []

name: DRbError
superclass: RuntimeError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class responsible for converting between an object and its id.
- !ruby/struct:SM::Flow::P 
  body: This, the default implementation, uses an object's local ObjectSpace <em>id</em> as its id. This means that an object's identification over drb remains valid only while that object instance remains alive within the server runtime.
- !ruby/struct:SM::Flow::P 
  body: For alternative mechanisms, see DRb::TimerIdConv in rdb/timeridconv.rb and DRbNameIdConv in sample/name.rb in the full drb distribution.
constants: []

full_name: DRb::DRbIdConv
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_id
- !ruby/object:RI::MethodSummary 
  name: to_obj
name: DRbIdConv
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert an object into a reference id.
- !ruby/struct:SM::Flow::P 
  body: This implementation returns the object's <em>id</em> in the local object space.
full_name: DRb::DRbIdConv#to_id
is_singleton: false
name: to_id
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert an object reference id to an object.
- !ruby/struct:SM::Flow::P 
  body: This implementation looks up the reference id in the local object space and returns the object it refers to.
full_name: DRb::DRbIdConv#to_obj
is_singleton: false
name: to_obj
params: (ref)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised by the DRbProtocol module when it cannot find any protocol implementation support the scheme specified in a URI.
constants: []

full_name: DRb::DRbBadURI
includes: []

instance_methods: []

name: DRbBadURI
superclass: DRbError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Error raised by the DRb module when an attempt is made to refer to the context's current drb server but the context does not have one. See #current_server."
constants: []

full_name: DRb::DRbServerNotFound
includes: []

instance_methods: []

name: DRbServerNotFound
superclass: DRbError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::parse_uri
is_singleton: true
name: parse_uri
params: (uri)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::uri_option
is_singleton: true
name: uri_option
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::open
is_singleton: true
name: open
params: (uri, config)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::temp_server
is_singleton: true
name: temp_server
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::new
is_singleton: true
name: new
params: (uri, soc, config={}, server_mode = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket#set_sockopt
is_singleton: false
name: set_sockopt
params: (soc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket::open_server
is_singleton: true
name: open_server
params: (uri, config)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: open_server
- !ruby/object:RI::MethodSummary 
  name: parse_uri
- !ruby/object:RI::MethodSummary 
  name: temp_server
- !ruby/object:RI::MethodSummary 
  name: uri_option
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: import from tempfile.rb
  name: Max_try
  value: "10"
full_name: DRb::DRbUNIXSocket
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: accept
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: set_sockopt
name: DRbUNIXSocket
superclass: DRbTCPSocket
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbUNIXSocket#accept
is_singleton: false
name: accept
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Mixin module making an object undumpable or unmarshallable.
- !ruby/struct:SM::Flow::P 
  body: If an object which includes this module is returned by method called over drb, then the object remains in the server space and a reference to the object is returned, rather than the object being marshalled and moved into the client space.
constants: []

full_name: DRb::DRbUndumped
includes: []

instance_methods: []

name: DRbUndumped
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb#fetch_server
is_singleton: false
name: fetch_server
params: (uri)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: _load
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::DRbArray
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _dump
name: DRbArray
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbArray::new
is_singleton: true
name: new
params: (ary)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbArray::_load
is_singleton: true
name: _load
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbArray#_dump
is_singleton: false
name: _dump
params: (lv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Stop the local dRuby server.
- !ruby/struct:SM::Flow::P 
  body: This operates on the primary server. If there is no primary server currently running, it is a noop.
full_name: DRb#stop_service
is_singleton: false
name: stop_service
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get a reference id for an object using the current server.
- !ruby/struct:SM::Flow::P 
  body: "This raises a DRbServerNotFound error if there is no current server. See #current_server."
full_name: DRb#to_id
is_singleton: false
name: to_id
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a reference into an object using the current server.
- !ruby/struct:SM::Flow::P 
  body: "This raises a DRbServerNotFound error if there is no current server. See #current_server."
full_name: DRb#to_obj
is_singleton: false
name: to_obj
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Coerce an object to a string, providing our own representation if to_s is not defined for the object.
full_name: DRb::DRbServer#any_to_s
is_singleton: false
name: any_to_s
params: (obj)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Is this server alive?
full_name: DRb::DRbServer#alive?
is_singleton: false
name: alive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The main loop performed by a DRbServer's internal thread.
- !ruby/struct:SM::Flow::P 
  body: Accepts a connection from a client, and starts up its own thread to handle it. This thread loops, receiving requests from the client, invoking them on a local object, and returning responses, until the client closes the connection or a local method call fails.
full_name: DRb::DRbServer#main_loop
is_singleton: false
name: main_loop
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default value of the :verbose option.
- !ruby/struct:SM::Flow::P 
  body: "See #new(). The initial default value is false."
full_name: DRb::DRbServer::verbose=
is_singleton: true
name: verbose=
params: (on)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbServer#run
is_singleton: false
name: run
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The configuration of this DRbServer
  name: config
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The front object of the DRbServer.
  - !ruby/struct:SM::Flow::P 
    body: This object receives remote method calls made on the server's URI alone, with an object id.
  name: front
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: safe_level
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The main thread of this DRbServer.
  - !ruby/struct:SM::Flow::P 
    body: This is the thread that listens for and accepts connections from clients, not that handles each client's request-response session.
  name: thread
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The URI of this DRbServer.
  name: uri
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: default_acl
- !ruby/object:RI::MethodSummary 
  name: default_argc_limit
- !ruby/object:RI::MethodSummary 
  name: default_id_conv
- !ruby/object:RI::MethodSummary 
  name: default_load_limit
- !ruby/object:RI::MethodSummary 
  name: default_safe_level
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: verbose
- !ruby/object:RI::MethodSummary 
  name: verbose=
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class representing a drb server instance.
- !ruby/struct:SM::Flow::P 
  body: A DRbServer must be running in the local process before any incoming dRuby calls can be accepted, or any local objects can be passed as dRuby references to remote processes, even if those local objects are never actually called remotely. You do not need to start a DRbServer in the local process if you are only making outgoing dRuby calls passing marshalled parameters.
- !ruby/struct:SM::Flow::P 
  body: Unless multiple servers are being used, the local DRbServer is normally started by calling DRb.start_service.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: List of insecure methods.
  - !ruby/struct:SM::Flow::P 
    body: These methods are not callable via dRuby.
  name: INSECURE_METHOD
  value: "[       :__send__"
full_name: DRb::DRbServer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: alive?
- !ruby/object:RI::MethodSummary 
  name: any_to_s
- !ruby/object:RI::MethodSummary 
  name: check_insecure_method
- !ruby/object:RI::MethodSummary 
  name: insecure_method?
- !ruby/object:RI::MethodSummary 
  name: kill_sub_thread
- !ruby/object:RI::MethodSummary 
  name: main_loop
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: stop_service
- !ruby/object:RI::MethodSummary 
  name: to_id
- !ruby/object:RI::MethodSummary 
  name: to_obj
- !ruby/object:RI::MethodSummary 
  name: verbose
- !ruby/object:RI::MethodSummary 
  name: verbose=
name: DRbServer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbServer#kill_sub_thread
is_singleton: false
name: kill_sub_thread
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default value for the :argc_limit option.
- !ruby/struct:SM::Flow::P 
  body: "See #new(). The initial default value is 256."
full_name: DRb::DRbServer::default_argc_limit
is_singleton: true
name: default_argc_limit
params: (argc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbServer::default_safe_level
is_singleton: true
name: default_safe_level
params: (level)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the default value of the :verbose option.
full_name: DRb::DRbServer::verbose
is_singleton: true
name: verbose
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Check that a method is callable via dRuby.
- !ruby/struct:SM::Flow::P 
  body: <tt>obj</tt> is the object we want to invoke the method on. <tt>msg_id</tt> is the method name, as a Symbol.
- !ruby/struct:SM::Flow::P 
  body: "If the method is an insecure method (see #insecure_method?) a SecurityError is thrown. If the method is private or undefined, a NameError is thrown."
full_name: DRb::DRbServer#check_insecure_method
is_singleton: false
name: check_insecure_method
params: (obj, msg_id)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new DRbServer instance.
- !ruby/struct:SM::Flow::P 
  body: "<tt>uri</tt> is the URI to bind to. This is normally of the form 'druby://&lt;hostname&gt;:&lt;port&gt;' where &lt;hostname&gt; is a hostname of the local machine. If nil, then the system's default hostname will be bound to, on a port selected by the system; these value can be retrieved from the <tt>uri</tt> attribute. 'druby:' specifies the default dRuby transport protocol: another protocol, such as 'drbunix:', can be specified instead."
- !ruby/struct:SM::Flow::P 
  body: <tt>front</tt> is the front object for the server, that is, the object to which remote method calls on the server will be passed. If nil, then the server will not accept remote method calls.
- !ruby/struct:SM::Flow::P 
  body: "If <tt>config_or_acl</tt> is a hash, it is the configuration to use for this server. The following options are recognised:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: ":idconv :"
    body: an id-to-object conversion object. This defaults to an instance of the class DRb::DRbIdConv.
  - !ruby/struct:SM::Flow::LI 
    label: ":verbose :"
    body: if true, all unsuccessful remote calls on objects in the server will be logged to $stdout. false by default.
  - !ruby/struct:SM::Flow::LI 
    label: ":tcp_acl :"
    body: the access control list for this server. See the ACL class from the main dRuby distribution.
  - !ruby/struct:SM::Flow::LI 
    label: ":load_limit :"
    body: the maximum message size in bytes accepted by the server. Defaults to 25 MB (26214400).
  - !ruby/struct:SM::Flow::LI 
    label: ":argc_limit :"
    body: the maximum number of arguments to a remote method accepted by the server. Defaults to 256.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: "The default values of these options can be modified on a class-wide basis by the class methods #default_argc_limit, #default_load_limit, #default_acl, #default_id_conv, and #verbose="
- !ruby/struct:SM::Flow::P 
  body: If <tt>config_or_acl</tt> is not a hash, but is not nil, it is assumed to be the access control list for this server. See the :tcp_acl option for more details.
- !ruby/struct:SM::Flow::P 
  body: If no other server is currently set as the primary server, this will become the primary server.
- !ruby/struct:SM::Flow::P 
  body: The server will immediately start running in its own thread.
full_name: DRb::DRbServer::new
is_singleton: true
name: new
params: (uri=nil, front=nil, config_or_acl=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::DRbServer::InvokeMethod18Mixin
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: block_yield
- !ruby/object:RI::MethodSummary 
  name: perform_with_block
name: InvokeMethod18Mixin
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbServer::InvokeMethod18Mixin#perform_with_block
is_singleton: false
name: perform_with_block
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbServer::InvokeMethod18Mixin#block_yield
is_singleton: false
name: block_yield
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default value for the :id_conv option.
- !ruby/struct:SM::Flow::P 
  body: "See #new(). The initial default value is a DRbIdConv instance."
full_name: DRb::DRbServer::default_id_conv
is_singleton: true
name: default_id_conv
params: (idconv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get whether the server is in verbose mode.
- !ruby/struct:SM::Flow::P 
  body: In verbose mode, failed calls are logged to stdout.
full_name: DRb::DRbServer#verbose
is_singleton: false
name: verbose
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default value for the :load_limit option.
- !ruby/struct:SM::Flow::P 
  body: "See #new(). The initial default value is 25 MB."
full_name: DRb::DRbServer::default_load_limit
is_singleton: true
name: default_load_limit
params: (sz)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Stop this server.
full_name: DRb::DRbServer#stop_service
is_singleton: false
name: stop_service
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Has a method been included in the list of insecure methods?
full_name: DRb::DRbServer#insecure_method?
is_singleton: false
name: insecure_method?
params: (msg_id)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a local object to a dRuby reference.
full_name: DRb::DRbServer#to_id
is_singleton: false
name: to_id
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a dRuby reference to the local object it refers to.
full_name: DRb::DRbServer#to_obj
is_singleton: false
name: to_obj
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the default value for the :acl option.
- !ruby/struct:SM::Flow::P 
  body: "See #new(). The initial default value is nil."
full_name: DRb::DRbServer::default_acl
is_singleton: true
name: default_acl
params: (acl)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::DRbServer::InvokeMethod
includes: []

instance_methods: []

name: InvokeMethod
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set whether to operate in verbose mode.
- !ruby/struct:SM::Flow::P 
  body: In verbose mode, failed calls are logged to stdout.
full_name: DRb::DRbServer#verbose=
is_singleton: false
name: verbose=
params: (v)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::GWIdConv
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_obj
name: GWIdConv
superclass: DRbIdConv
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::GWIdConv#to_obj
is_singleton: false
name: to_obj
params: (ref)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get the configuration of the current server.
- !ruby/struct:SM::Flow::P 
  body: "If there is no current server, this returns the default configuration. See #current_server and DRbServer::make_config."
full_name: DRb#config
is_singleton: false
name: config
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServ#alive?
is_singleton: false
name: alive?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServ#front
is_singleton: false
name: front
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServ::new
is_singleton: true
name: new
params: (there, name, server=nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: server
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: DRb::ExtServ
includes: 
- !ruby/object:RI::IncludedModule 
  name: DRbUndumped
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: alive?
- !ruby/object:RI::MethodSummary 
  name: front
- !ruby/object:RI::MethodSummary 
  name: stop_service
name: ExtServ
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::ExtServ#stop_service
is_singleton: false
name: stop_service
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::DRbURIOption
includes: []

instance_methods: []

name: DRbURIOption
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbObservable#notify_observers
is_singleton: false
name: notify_observers
params: (*arg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: DRb::DRbObservable
includes: 
- !ruby/object:RI::IncludedModule 
  name: Observable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: notify_observers
name: DRbObservable
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb#mutex
is_singleton: false
name: mutex
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb#regist_server
is_singleton: false
name: regist_server
params: (server)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class handling the connection between a DRbObject and the server the real object lives on.
- !ruby/struct:SM::Flow::P 
  body: This class maintains a pool of connections, to reduce the overhead of starting and closing down connections for each method call.
- !ruby/struct:SM::Flow::P 
  body: This class is used internally by DRbObject. The user does not normally need to deal with it directly.
constants: []

full_name: DRb::DRbConn
includes: []

instance_methods: []

name: DRbConn
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Buffer contained the marshalled, unknown object.
  name: buf
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The name of the unknown thing.
  - !ruby/struct:SM::Flow::P 
    body: Class name for unknown objects; variable name for unknown constants.
  name: name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class wrapping a marshalled object whose type is unknown locally.
- !ruby/struct:SM::Flow::P 
  body: If an object is returned by a method invoked over drb, but the class of the object is unknown in the client namespace, or the object is a constant unknown in the client namespace, then the still-marshalled object is returned wrapped in a DRbUnknown instance.
- !ruby/struct:SM::Flow::P 
  body: If this object is passed as an argument to a method invoked over drb, then the wrapped object is passed instead.
- !ruby/struct:SM::Flow::P 
  body: The class or constant name of the object can be read from the <tt>name</tt> attribute. The marshalled object is held in the <tt>buf</tt> attribute.
constants: []

full_name: DRb::DRbUnknown
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: exception
- !ruby/object:RI::MethodSummary 
  name: reload
name: DRbUnknown
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a new DRbUnknown object.
- !ruby/struct:SM::Flow::P 
  body: <tt>buf</tt> is a string containing a marshalled object that could not be unmarshalled. <tt>err</tt> is the error message that was raised when the unmarshalling failed. It is used to determine the name of the unmarshalled object.
full_name: DRb::DRbUnknown::new
is_singleton: true
name: new
params: (err, buf)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a DRbUnknownError exception containing this object.
full_name: DRb::DRbUnknown#exception
is_singleton: false
name: exception
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attempt to load the wrapped marshalled object again.
- !ruby/struct:SM::Flow::P 
  body: If the class of the object is now known locally, the object will be unmarshalled and returned. Otherwise, a new but identical DRbUnknown object will be returned.
full_name: DRb::DRbUnknown#reload
is_singleton: false
name: reload
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Handler for sending and receiving drb messages.
- !ruby/struct:SM::Flow::P 
  body: This takes care of the low-level marshalling and unmarshalling of drb requests and responses sent over the wire between server and client. This relieves the implementor of a new drb protocol layer with having to deal with these details.
- !ruby/struct:SM::Flow::P 
  body: The user does not have to directly deal with this object in normal use.
constants: []

full_name: DRb::DRbMessage
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: make_proxy
name: DRbMessage
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: DRb::DRbMessage#make_proxy
is_singleton: false
name: make_proxy
params: (obj, error=false)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns guessed encoding of <em>str</em> as integer by nkf routine.
- !ruby/struct:SM::Flow::VERB 
  body: "   case NKF.guess(input)\n   when NKF::ASCII\n     &quot;ASCII&quot;\n   when NKF::JIS\n     &quot;ISO-2022-JP&quot;\n   when NKF::SJIS\n     &quot;Shift_JIS&quot;\n   when NKF::EUC\n     &quot;EUC-JP&quot;\n   when NKF::UTF8\n     &quot;UTF-8&quot;\n   when NKF::UTF16\n     &quot;UTF-16&quot;\n   when NKF::UNKNOWN\n     &quot;UNKNOWN&quot;\n   when NKF::BINARY\n     &quot;BINARY&quot;\n   end\n"
full_name: NKF::guess2
is_singleton: true
name: guess2
params: |
  NKF.guess2(str)  -> integer

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: guess1
- !ruby/object:RI::MethodSummary 
  name: guess2
- !ruby/object:RI::MethodSummary 
  name: nkf
comment: 
- !ruby/struct:SM::Flow::P 
  body: NKF - Ruby extension for Network Kanji Filter
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Description
- !ruby/struct:SM::Flow::P 
  body: This is a Ruby Extension version of nkf (Netowrk Kanji Filter). It converts the first argument and return converted result. Conversion details are specified by flags as the first argument.
- !ruby/struct:SM::Flow::P 
  body: <b>Nkf</b> is a yet another kanji code converter among networks, hosts and terminals. It converts input kanji code to designated kanji code such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8 or UTF-16.
- !ruby/struct:SM::Flow::P 
  body: One of the most unique faculty of <b>nkf</b> is the guess of the input kanji encodings. It currently recognizes ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8 and UTF-16. So users needn't set the input kanji code explicitly.
- !ruby/struct:SM::Flow::P 
  body: By default, X0201 kana is converted into X0208 kana. For X0201 kana, SO/SI, SSO and ESC-(-I methods are supported. For automatic code detection, nkf assumes no X0201 kana in Shift_JIS. To accept X0201 in Shift_JIS, use <b>-X</b>, <b>-x</b> or <b>-S</b>.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Flags
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -b -u
- !ruby/struct:SM::Flow::P 
  body: Output is buffered (DEFAULT), Output is unbuffered.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -j -s -e -w -w16
- !ruby/struct:SM::Flow::P 
  body: Output code is ISO-2022-JP (7bit JIS), Shift_JIS, EUC-JP, UTF-8N, UTF-16BE. Without this option and compile option, ISO-2022-JP is assumed.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -J -S -E -W -W16
- !ruby/struct:SM::Flow::P 
  body: Input assumption is JIS 7 bit, Shift_JIS, EUC-JP, UTF-8, UTF-16LE.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: -J
- !ruby/struct:SM::Flow::P 
  body: Assume JIS input. It also accepts EUC-JP. This is the default. This flag does not exclude Shift_JIS.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: -S
- !ruby/struct:SM::Flow::P 
  body: Assume Shift_JIS and X0201 kana input. It also accepts JIS. EUC-JP is recognized as X0201 kana. Without <b>-x</b> flag, X0201 kana (halfwidth kana) is converted into X0208.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: -E
- !ruby/struct:SM::Flow::P 
  body: Assume EUC-JP input. It also accepts JIS. Same as -J.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -t
- !ruby/struct:SM::Flow::P 
  body: No conversion.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -i_
- !ruby/struct:SM::Flow::P 
  body: Output sequence to designate JIS-kanji. (DEFAULT B)
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -o_
- !ruby/struct:SM::Flow::P 
  body: Output sequence to designate ASCII. (DEFAULT B)
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -r
- !ruby/struct:SM::Flow::P 
  body: "{de/en}crypt ROT13/47"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -h[123] --hiragana --katakana --katakana-hiragana
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -h1 --hiragana
    body: Katakana to Hiragana conversion.
  - !ruby/struct:SM::Flow::LI 
    label: -h2 --katakana
    body: Hiragana to Katakana conversion.
  - !ruby/struct:SM::Flow::LI 
    label: -h3 --katakana-hiragana
    body: Katakana to Hiragana and Hiragana to Katakana conversion.
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -T
- !ruby/struct:SM::Flow::P 
  body: Text mode output (MS-DOS)
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -l
- !ruby/struct:SM::Flow::P 
  body: ISO8859-1 (Latin-1) support
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -f[<tt>m</tt> [- <tt>n</tt>]]
- !ruby/struct:SM::Flow::P 
  body: Folding on <tt>m</tt> length with <tt>n</tt> margin in a line. Without this option, fold length is 60 and fold margin is 10.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -F
- !ruby/struct:SM::Flow::P 
  body: New line preserving line folding.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -Z[0-3]
- !ruby/struct:SM::Flow::P 
  body: Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -Z -Z0
    body: Convert X0208 alphabet to ASCII.
  - !ruby/struct:SM::Flow::LI 
    label: -Z1
    body: Converts X0208 kankaku to single ASCII space.
  - !ruby/struct:SM::Flow::LI 
    label: -Z2
    body: Converts X0208 kankaku to double ASCII spaces.
  - !ruby/struct:SM::Flow::LI 
    label: -Z3
    body: Replacing Fullwidth &gt;, &lt;, &quot;, &amp; into '&amp;gt;', '&amp;lt;', '&amp;quot;', '&amp;amp;' as in HTML.
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -X -x
- !ruby/struct:SM::Flow::P 
  body: Assume X0201 kana in MS-Kanji. With <b>-X</b> or without this option, X0201 is converted into X0208 Kana. With <b>-x</b>, try to preserve X0208 kana and do not convert X0201 kana to X0208. In JIS output, ESC-(-I is used. In EUC output, SSO is used.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -B[0-2]
- !ruby/struct:SM::Flow::P 
  body: Assume broken JIS-Kanji input, which lost ESC. Useful when your site is using old B-News Nihongo patch.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -B1
    body: allows any char after ESC-( or ESC-$.
  - !ruby/struct:SM::Flow::LI 
    label: -B2
    body: forces ASCII after NL.
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -I
- !ruby/struct:SM::Flow::P 
  body: Replacing non iso-2022-jp char into a geta character (substitute character in Japanese).
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -d -c
- !ruby/struct:SM::Flow::P 
  body: Delete \r in line feed, Add \r in line feed.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -m[BQN0]
- !ruby/struct:SM::Flow::P 
  body: MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT) To see ISO8859-1 (Latin-1) -l is necessary.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -mB
    body: Decode MIME base64 encoded stream. Remove header or other part before
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: conversion.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -mQ
    body: Decode MIME quoted stream. '_' in quoted stream is converted to space.
  - !ruby/struct:SM::Flow::LI 
    label: -mN
    body: Non-strict decoding.
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: It allows line break in the middle of the base64 encoding.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -m0
    body: No MIME decode.
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -M
- !ruby/struct:SM::Flow::P 
  body: MIME encode. Header style. All ASCII code and control characters are intact. Kanji conversion is performed before encoding, so this cannot be used as a picture encoder.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -MB
    body: MIME encode Base64 stream.
  - !ruby/struct:SM::Flow::LI 
    label: -MQ
    body: Perfome quoted encoding.
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -l
- !ruby/struct:SM::Flow::P 
  body: Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP. <b>-s</b>, <b>-e</b> and <b>-x</b> are not compatible with this option.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: -L[uwm]
- !ruby/struct:SM::Flow::P 
  body: new line mode Without this option, nkf doesn't convert line breaks.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: -Lu
    body: unix (LF)
  - !ruby/struct:SM::Flow::LI 
    label: -Lw
    body: windows (CRLF)
  - !ruby/struct:SM::Flow::LI 
    label: -Lm
    body: mac (CR)
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --fj --unix --mac --msdos --windows
- !ruby/struct:SM::Flow::P 
  body: convert for these system
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --jis --euc --sjis --mime --base64
- !ruby/struct:SM::Flow::P 
  body: convert for named code
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --jis-input --euc-input --sjis-input --mime-input --base64-input
- !ruby/struct:SM::Flow::P 
  body: assume input system
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --ic=<tt>input codeset</tt> --oc=<tt>output codeset</tt>
- !ruby/struct:SM::Flow::P 
  body: Set the input or output codeset. NKF supports following codesets and those codeset name are case insensitive.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: ISO-2022-JP
    body: a.k.a. RFC1468, 7bit JIS, JUNET
  - !ruby/struct:SM::Flow::LI 
    label: EUC-JP (eucJP-nkf)
    body: a.k.a. AT&amp;T JIS, Japanese EUC, UJIS
  - !ruby/struct:SM::Flow::LI 
    label: eucJP-ascii
    body: a.k.a. x-eucjp-open-19970715-ascii
  - !ruby/struct:SM::Flow::LI 
    label: eucJP-ms
    body: a.k.a. x-eucjp-open-19970715-ms
  - !ruby/struct:SM::Flow::LI 
    label: CP51932
    body: Microsoft Version of EUC-JP.
  - !ruby/struct:SM::Flow::LI 
    label: Shift_JIS
    body: SJIS, MS-Kanji
  - !ruby/struct:SM::Flow::LI 
    label: CP932
    body: a.k.a. Windows-31J
  - !ruby/struct:SM::Flow::LI 
    label: UTF-8
    body: same as UTF-8N
  - !ruby/struct:SM::Flow::LI 
    label: UTF-8N
    body: UTF-8 without BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF-8-BOM
    body: UTF-8 with BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF-16
    body: same as UTF-16BE
  - !ruby/struct:SM::Flow::LI 
    label: UTF-16BE
    body: UTF-16 Big Endian without BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF-16BE-BOM
    body: UTF-16 Big Endian with BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF-16LE
    body: UTF-16 Little Endian without BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF-16LE-BOM
    body: UTF-16 Little Endian with BOM
  - !ruby/struct:SM::Flow::LI 
    label: UTF8-MAC
    body: NKDed UTF-8, a.k.a. UTF8-NFD (input only)
  type: :LABELED
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --fb-{skip, html, xml, perl, java, subchar}
- !ruby/struct:SM::Flow::P 
  body: Specify the way that nkf handles unassigned characters. Without this option, --fb-skip is assumed.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --prefix= <tt>escape character</tt> <tt>target character</tt> ..
- !ruby/struct:SM::Flow::P 
  body: When nkf converts to Shift_JIS, nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters. 1st byte of argument is the escape character and following bytes are target characters.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --disable-cp932ext
- !ruby/struct:SM::Flow::P 
  body: Handle the characters extended in CP932 as unassigned characters.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --cap-input
- !ruby/struct:SM::Flow::P 
  body: Decode hex encoded characters.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --url-input
- !ruby/struct:SM::Flow::P 
  body: Unescape percent escaped characters.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: --
- !ruby/struct:SM::Flow::P 
  body: Ignore rest of -option.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Auto-Detect
  name: AUTO
  value: INT2FIX(_AUTO)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: ISO-2022-JP
  name: JIS
  value: INT2FIX(_JIS)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: EUC-JP
  name: EUC
  value: INT2FIX(_EUC)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Shift_JIS
  name: SJIS
  value: INT2FIX(_SJIS)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: BINARY
  name: BINARY
  value: INT2FIX(_BINARY)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: No conversion
  name: NOCONV
  value: INT2FIX(_NOCONV)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: ASCII
  name: ASCII
  value: INT2FIX(_ASCII)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: UTF-8
  name: UTF8
  value: INT2FIX(_UTF8)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: UTF-16
  name: UTF16
  value: INT2FIX(_UTF16)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: UTF-32
  name: UTF32
  value: INT2FIX(_UTF32)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: UNKNOWN
  name: UNKNOWN
  value: INT2FIX(_UNKNOWN)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Full version string of nkf
  name: VERSION
  value: rb_str_new2(RUBY_NKF_VERSION)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Version of nkf
  name: NKF_VERSION
  value: rb_str_new2(NKF_VERSION)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Release date of nkf
  name: NKF_RELEASE_DATE
  value: rb_str_new2(NKF_RELEASE_DATE)
full_name: NKF
includes: []

instance_methods: []

name: NKF
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns guessed encoding of <em>str</em> as integer.
- !ruby/struct:SM::Flow::P 
  body: "Algorithm described in: Ken Lunde. `Understanding Japanese Information Processing' Sebastopol, CA: O'Reilly &amp; Associates."
- !ruby/struct:SM::Flow::VERB 
  body: "    case NKF.guess1(input)\n    when NKF::JIS\n      &quot;ISO-2022-JP&quot;\n    when NKF::SJIS\n      &quot;Shift_JIS&quot;\n    when NKF::EUC\n      &quot;EUC-JP&quot;\n    when NKF::UNKNOWN\n      &quot;UNKNOWN(ASCII)&quot;\n    when NKF::BINARY\n      &quot;BINARY&quot;\n    end\n"
full_name: NKF::guess1
is_singleton: true
name: guess1
params: |
  NKF.guess1(str)  -> integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert <em>str</em> and return converted result. Conversion details are specified by <em>opt</em> as String.
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'nkf'\n   output = NKF.nkf(&quot;-s&quot;, input)\n"
- !ruby/struct:SM::Flow::P 
  body: <b>Note</b> By default, nkf decodes MIME encoded string. If you want not to decode input, use NKF.nkf with <b>-m0</b> flag.
full_name: NKF::nkf
is_singleton: true
name: nkf
params: |
  NKF.nkf(opt, str)   -> string

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: SOCKSSocket
includes: []

instance_methods: []

name: SOCKSSocket
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: SOCKSSocket::new
is_singleton: true
name: new
params: (host, serv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Initializes instance variable.
full_name: Arguable::extend_object
is_singleton: true
name: extend_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>self</tt> destructively and returns <tt>self</tt> containing the rest arguments left unparsed.
full_name: Arguable#parse!
is_singleton: false
name: parse!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Substitution of getopts is possible as follows. Also see OptionParser#getopts.
- !ruby/struct:SM::Flow::VERB 
  body: "  def getopts(*args)\n    ($OPT = ARGV.getopts(*args)).each do |opt, val|\n      eval &quot;$OPT_#{opt.gsub(/[^A-Za-z0-9_]/, '_')} = val&quot;\n    end\n  rescue OptionParser::ParseError\n  end\n"
full_name: Arguable#getopts
is_singleton: false
name: getopts
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Extends command line arguments array (ARGV) to parse itself.
constants: []

full_name: Arguable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: getopts
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: options=
- !ruby/object:RI::MethodSummary 
  name: order!
- !ruby/object:RI::MethodSummary 
  name: parse!
- !ruby/object:RI::MethodSummary 
  name: permute!
name: Arguable
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Arguable::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: "@optparse"
comment: 
- !ruby/struct:SM::Flow::P 
  body: Actual OptionParser object, automatically created if nonexistent.
- !ruby/struct:SM::Flow::P 
  body: If called with a block, yields the OptionParser object and returns the result of the block. If an OptionParser::ParseError exception occurs in the block, it is rescued, a error message printed to STDERR and <tt>nil</tt> returned.
full_name: Arguable#options
is_singleton: false
name: options
params: () {|@optparse| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>self</tt> destructively in order and returns <tt>self</tt> containing the rest arguments left unparsed.
full_name: Arguable#order!
is_singleton: false
name: order!
params: (&blk)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>self</tt> destructively in permutation mode and returns <tt>self</tt> containing the rest arguments left unparsed.
full_name: Arguable#permute!
is_singleton: false
name: permute!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets OptionParser object, when <tt>opt</tt> is <tt>false</tt> or <tt>nil</tt>, methods OptionParser::Arguable#options and OptionParser::Arguable#options= are undefined. Thus, there is no ways to access the OptionParser object via the receiver object.
full_name: Arguable#options=
is_singleton: false
name: options=
params: (opt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: imag
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The imaginary part of a complex number, i.e. 0.
full_name: Numeric#image
is_singleton: false
name: image
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array containing the quotient and modulus obtained by dividing <em>num</em> by <em>aNumeric</em>. If <tt>q, r = x.divmod(y)</tt>, then
- !ruby/struct:SM::Flow::VERB 
  body: "    q = floor(float(x)/float(y))\n    x = q*y + r\n"
- !ruby/struct:SM::Flow::P 
  body: "The quotient is rounded toward -infinity, as shown in the following table:"
- !ruby/struct:SM::Flow::VERB 
  body: "   a    |  b  |  a.divmod(b)  |   a/b   | a.modulo(b) | a.remainder(b)\n  ------+-----+---------------+---------+-------------+---------------\n   13   |  4  |   3,    1     |   3     |    1        |     1\n  ------+-----+---------------+---------+-------------+---------------\n   13   | -4  |  -4,   -3     |  -3     |   -3        |     1\n  ------+-----+---------------+---------+-------------+---------------\n  -13   |  4  |  -4,    3     |  -4     |    3        |    -1\n  ------+-----+---------------+---------+-------------+---------------\n  -13   | -4  |   3,   -1     |   3     |   -1        |    -1\n  ------+-----+---------------+---------+-------------+---------------\n   11.5 |  4  |   2,    3.5   |   2.875 |    3.5      |     3.5\n  ------+-----+---------------+---------+-------------+---------------\n   11.5 | -4  |  -3,   -0.5   |  -2.875 |   -0.5      |     3.5\n  ------+-----+---------------+---------+-------------+---------------\n  -11.5 |  4  |  -3,    0.5   |  -2.875 |    0.5      |    -3.5\n  ------+-----+---------------+---------+-------------+---------------\n  -11.5 | -4  |   2    -3.5   |   2.875 |   -3.5      |    -3.5\n"
- !ruby/struct:SM::Flow::P 
  body: Examples
- !ruby/struct:SM::Flow::VERB 
  body: "   11.divmod(3)         #=&gt; [3, 2]\n   11.divmod(-3)        #=&gt; [-4, -1]\n   11.divmod(3.5)       #=&gt; [3, 0.5]\n   (-11).divmod(3.5)    #=&gt; [-4, 3.0]\n   (11.5).divmod(3.5)   #=&gt; [3, 1.0]\n"
full_name: Numeric#divmod
is_singleton: false
name: divmod
params: |
  num.divmod( aNumeric ) -> anArray

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Numeric#/</tt>, but overridden in subclasses.
full_name: Numeric#fdiv
is_singleton: false
name: fdiv
params: |
  num.quo(numeric)    =>   result
  num.fdiv(numeric)   =>   result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unary Plus---Returns the receiver's value.
full_name: Numeric#+@
is_singleton: false
name: +@
params: |
  +num    => num

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: conj
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "See Complex#conjugate (short answer: returns <em>self</em>)."
full_name: Numeric#conjugate
is_singleton: false
name: conjugate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #arg"
full_name: Numeric#angle
is_singleton: false
name: angle
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unary Minus---Returns the receiver's value, negated.
full_name: Numeric#-@
is_singleton: false
name: -@
params: |
  -num    => numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>num</em> and <em>numeric</em> are the same type and have equal values.
- !ruby/struct:SM::Flow::VERB 
  body: "   1 == 1.0          #=&gt; true\n   1.eql?(1.0)       #=&gt; false\n   (1.0).eql?(1.0)   #=&gt; true\n"
full_name: Numeric#eql?
is_singleton: false
name: eql?
params: |
  num.eql?(numeric)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The real part of a complex number, i.e. <em>self</em>.
full_name: Numeric#real
is_singleton: false
name: real
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns zero if <em>num</em> equals <em>other</em>, <tt>nil</tt> otherwise.
full_name: Numeric#<=>
is_singleton: false
name: <=>
params: |
  num <=> other -> 0 or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <em>num</em> and <em>numeric</em> have different signs, returns <em>mod</em>-<em>numeric</em>; otherwise, returns <em>mod</em>. In both cases <em>mod</em> is the value <em>num</em>.<tt>modulo(</tt><em>numeric</em><tt>)</tt>. The differences between <tt>remainder</tt> and modulo (<tt>%</tt>) are shown in the table under <tt>Numeric#divmod</tt>.
full_name: Numeric#remainder
is_singleton: false
name: remainder
params: |
  num.remainder(numeric)    => result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #image"
full_name: Numeric#imag
is_singleton: false
name: imag
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns <em>num</em> if <em>num</em> is not zero, <tt>nil</tt> otherwise. This behavior is useful when chaining comparisons:"
- !ruby/struct:SM::Flow::VERB 
  body: "   a = %w( z Bb bB bb BB a aA Aa AA A )\n   b = a.sort {|a,b| (a.downcase &lt;=&gt; b.downcase).nonzero? || a &lt;=&gt; b }\n   b   #=&gt; [&quot;A&quot;, &quot;a&quot;, &quot;AA&quot;, &quot;Aa&quot;, &quot;aA&quot;, &quot;BB&quot;, &quot;Bb&quot;, &quot;bB&quot;, &quot;bb&quot;, &quot;z&quot;]\n"
full_name: Numeric#nonzero?
is_singleton: false
name: nonzero?
params: |
  num.nonzero?    => num or nil

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Numeric is a built-in class on which Fixnum, Bignum, etc., are based. Here some methods are added so that all number types can be treated to some extent as Complex numbers.
constants: []

full_name: Numeric
includes: 
- !ruby/object:RI::IncludedModule 
  name: Comparable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +@
- !ruby/object:RI::MethodSummary 
  name: -@
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: angle
- !ruby/object:RI::MethodSummary 
  name: arg
- !ruby/object:RI::MethodSummary 
  name: ceil
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: conj
- !ruby/object:RI::MethodSummary 
  name: conjugate
- !ruby/object:RI::MethodSummary 
  name: div
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: fdiv
- !ruby/object:RI::MethodSummary 
  name: floor
- !ruby/object:RI::MethodSummary 
  name: im
- !ruby/object:RI::MethodSummary 
  name: imag
- !ruby/object:RI::MethodSummary 
  name: image
- !ruby/object:RI::MethodSummary 
  name: integer?
- !ruby/object:RI::MethodSummary 
  name: modulo
- !ruby/object:RI::MethodSummary 
  name: nonzero?
- !ruby/object:RI::MethodSummary 
  name: polar
- !ruby/object:RI::MethodSummary 
  name: quo
- !ruby/object:RI::MethodSummary 
  name: real
- !ruby/object:RI::MethodSummary 
  name: remainder
- !ruby/object:RI::MethodSummary 
  name: round
- !ruby/object:RI::MethodSummary 
  name: singleton_method_added
- !ruby/object:RI::MethodSummary 
  name: step
- !ruby/object:RI::MethodSummary 
  name: to_int
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: zero?
name: Numeric
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Complex#polar.
full_name: Numeric#polar
is_singleton: false
name: polar
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Uses <tt>/</tt> to perform division, then converts the result to an integer. <tt>Numeric</tt> does not define the <tt>/</tt> operator; this is left to subclasses.
full_name: Numeric#div
is_singleton: false
name: div
params: |
  num.div(numeric)    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>num</em> is an <tt>Integer</tt> (including <tt>Fixnum</tt> and <tt>Bignum</tt>).
full_name: Numeric#integer?
is_singleton: false
name: integer?
params: |
  num.integer? -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes <em>block</em> with the sequence of numbers starting at <em>num</em>, incremented by <em>step</em> on each call. The loop finishes when the value to be passed to the block is greater than <em>limit</em> (if <em>step</em> is positive) or less than <em>limit</em> (if <em>step</em> is negative). If all the arguments are integers, the loop operates using an integer counter. If any of the arguments are floating point numbers, all are converted to floats, and the loop is executed <em>floor(n + n*epsilon)+ 1</em> times, where <em>n = (limit - num)/step</em>. Otherwise, the loop starts at <em>num</em>, uses either the <tt>&lt;</tt> or <tt>&gt;</tt> operator to compare the counter against <em>limit</em>, and increments itself using the <tt>+</tt> operator.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.step(10, 2) { |i| print i, &quot; &quot; }\n   Math::E.step(Math::PI, 0.2) { |f| print f, &quot; &quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   1 3 5 7 9\n   2.71828182845905 2.91828182845905 3.11828182845905\n"
full_name: Numeric#step
is_singleton: false
name: step
params: |
  num.step(limit, step ) {|i| block }     => num

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <em>num</em>.<tt>divmod(</tt><em>aNumeric</em><tt>)[1]</tt>.
full_name: Numeric#modulo
is_singleton: false
name: modulo
params: |
  num.modulo(numeric)    => result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Trap attempts to add methods to <tt>Numeric</tt> objects. Always raises a <tt>TypeError</tt>
full_name: Numeric#singleton_method_added
is_singleton: false
name: singleton_method_added
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the child class's <tt>to_i</tt> method to convert <em>num</em> to an integer.
full_name: Numeric#to_int
is_singleton: false
name: to_int
params: |
  num.to_int    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the smallest <tt>Integer</tt> greater than or equal to <em>num</em>. Class <tt>Numeric</tt> achieves this by converting itself to a <tt>Float</tt> then invoking <tt>Float#ceil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.ceil        #=&gt; 1\n   1.2.ceil      #=&gt; 2\n   (-1.2).ceil   #=&gt; -1\n   (-1.0).ceil   #=&gt; -1\n"
full_name: Numeric#ceil
is_singleton: false
name: ceil
params: |
  num.ceil    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "If <em>aNumeric</em> is the same type as <em>num</em>, returns an array containing <em>aNumeric</em> and <em>num</em>. Otherwise, returns an array with both <em>aNumeric</em> and <em>num</em> represented as <tt>Float</tt> objects. This coercion mechanism is used by Ruby to handle mixed-type numeric operations: it is intended to find a compatible common type between the two operands of the operator."
- !ruby/struct:SM::Flow::VERB 
  body: "   1.coerce(2.5)   #=&gt; [2.5, 1.0]\n   1.2.coerce(3)   #=&gt; [3.0, 1.2]\n   1.coerce(2)     #=&gt; [2, 1]\n"
full_name: Numeric#coerce
is_singleton: false
name: coerce
params: |
  num.coerce(numeric)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the absolute value of <em>num</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   12.abs         #=&gt; 12\n   (-34.56).abs   #=&gt; 34.56\n   -34.56.abs     #=&gt; 34.56\n"
full_name: Numeric#abs
is_singleton: false
name: abs
params: |
  num.abs   => num or numeric

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: angle
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See Complex#arg.
full_name: Numeric#arg
is_singleton: false
name: arg
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>num</em> truncated to an integer. <tt>Numeric</tt> implements this by converting its value to a float and invoking <tt>Float#truncate</tt>.
full_name: Numeric#truncate
is_singleton: false
name: truncate
params: |
  num.truncate    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Numeric#/</tt>, but overridden in subclasses.
full_name: Numeric#quo
is_singleton: false
name: quo
params: |
  num.quo(numeric)    =>   result
  num.fdiv(numeric)   =>   result

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the largest integer less than or equal to <em>num</em>. <tt>Numeric</tt> implements this by converting <em>anInteger</em> to a <tt>Float</tt> and invoking <tt>Float#floor</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   1.floor      #=&gt; 1\n   (-1).floor   #=&gt; -1\n"
full_name: Numeric#floor
is_singleton: false
name: floor
params: |
  num.floor    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a Complex number <tt>(0,<em>self</em>)</tt>.
full_name: Numeric#im
is_singleton: false
name: im
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>num</em> has a zero value.
full_name: Numeric#zero?
is_singleton: false
name: zero?
params: |
  num.zero?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #conjugate"
full_name: Numeric#conj
is_singleton: false
name: conj
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rounds <em>num</em> to the nearest integer. <tt>Numeric</tt> implements this by converting itself to a <tt>Float</tt> and invoking <tt>Float#round</tt>.
full_name: Numeric#round
is_singleton: false
name: round
params: |
  num.round    => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::NoArgument::incompatible_argument_styles
is_singleton: true
name: incompatible_argument_styles
params: (*)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::NoArgument::pattern
is_singleton: true
name: pattern
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (NeedlessArgument, arg)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises an exception if any arguments given.
full_name: OptionParser::NoArgument#parse
is_singleton: false
name: parse
params: (arg, argv) {|NeedlessArgument, arg| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: incompatible_argument_styles
- !ruby/object:RI::MethodSummary 
  name: pattern
comment: 
- !ruby/struct:SM::Flow::P 
  body: Switch that takes no arguments.
constants: []

full_name: OptionParser::NoArgument
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: NoArgument
superclass: self
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Map from option/keyword string to object with completion.
constants: []

full_name: OptionParser::OptionMap
includes: 
- !ruby/object:RI::IncludedModule 
  name: Completion
instance_methods: []

name: OptionMap
superclass: Hash
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Main name of the switch.
full_name: OptionParser#switch_name
is_singleton: false
name: switch_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses argument if given, or uses default value.
full_name: OptionParser::OptionalArgument#parse
is_singleton: false
name: parse
params: (arg, argv, &error)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Switch that can omit argument.
constants: []

full_name: OptionParser::OptionalArgument
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: OptionalArgument
superclass: self
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises an exception if argument is not present.
full_name: OptionParser::RequiredArgument#parse
is_singleton: false
name: parse
params: (arg, argv)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Switch that takes an argument.
constants: []

full_name: OptionParser::RequiredArgument
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: RequiredArgument
superclass: self
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Switch that takes an argument, which does not begin with '-'.
constants: []

full_name: OptionParser::PlacedArgument
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: parse
name: PlacedArgument
superclass: self
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns nil if argument is not present or begins with '-'.
full_name: OptionParser::PlacedArgument#parse
is_singleton: false
name: parse
params: (arg, argv, &error)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Developer Documentation (not for RDoc output)
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Class tree
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "OptionParser:: front end"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "OptionParser::Switch:: each switches"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "OptionParser::List:: options list"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "OptionParser::ParseError:: errors on parsing"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: OptionParser::AmbiguousOption
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: OptionParser::NeedlessArgument
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: OptionParser::MissingArgument
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: OptionParser::InvalidOption
    - !ruby/struct:SM::Flow::LI 
      label: "-"
      body: OptionParser::InvalidArgument
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: "-"
        body: OptionParser::AmbiguousArgument
      type: :BULLET
    type: :BULLET
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Object relationship diagram
- !ruby/struct:SM::Flow::VERB 
  body: "  +--------------+\n  | OptionParser |&lt;&gt;-----+\n  +--------------+       |                      +--------+\n                         |                    ,-| Switch |\n       on_head --------&gt;+---------------+    /  +--------+\n       accept/reject --&gt;| List          |&lt;|&gt;-\n                        |               |&lt;|&gt;-  +----------+\n       on -------------&gt;+---------------+    `-| argument |\n                          :           :        |  class   |\n                        +---------------+      |==========|\n       on_tail --------&gt;|               |      |pattern   |\n                        +---------------+      |----------|\n  OptionParser.accept -&gt;| DefaultList   |      |converter |\n               reject   |(shared between|      +----------+\n                        | all instances)|\n                        +---------------+\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: OptionParser
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Introduction
- !ruby/struct:SM::Flow::P 
  body: OptionParser is a class for command-line option analysis. It is much more advanced, yet also easier to use, than GetoptLong, and is a more Ruby-oriented solution.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Features
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: The argument specification and the code to handle it are written in the same place.
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: It can output an option summary; you don't need to maintain this string separately.
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: Optional and mandatory arguments are specified very gracefully.
  - !ruby/struct:SM::Flow::LI 
    label: "4."
    body: Arguments can be automatically converted to a specified class.
  - !ruby/struct:SM::Flow::LI 
    label: "5."
    body: Arguments can be restricted to a certain set.
  type: :NUMBER
- !ruby/struct:SM::Flow::P 
  body: All of these features are demonstrated in the examples below.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Minimal example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'optparse'\n\n  options = {}\n  OptionParser.new do |opts|\n    opts.banner = &quot;Usage: example.rb [options]&quot;\n\n    opts.on(&quot;-v&quot;, &quot;--[no-]verbose&quot;, &quot;Run verbosely&quot;) do |v|\n      options[:verbose] = v\n    end\n  end.parse!\n\n  p options\n  p ARGV\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Complete example
- !ruby/struct:SM::Flow::P 
  body: The following example is a complete Ruby program. You can run it and see the effect of specifying various options. This is probably the best way to learn the features of <tt>optparse</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'optparse'\n  require 'optparse/time'\n  require 'ostruct'\n  require 'pp'\n\n  class OptparseExample\n\n    CODES = %w[iso-2022-jp shift_jis euc-jp utf8 binary]\n    CODE_ALIASES = { &quot;jis&quot; =&gt; &quot;iso-2022-jp&quot;, &quot;sjis&quot; =&gt; &quot;shift_jis&quot; }\n\n    #\n    # Return a structure describing the options.\n    #\n    def self.parse(args)\n      # The options specified on the command line will be collected in <b>options</b>.\n      # We set default values here.\n      options = OpenStruct.new\n      options.library = []\n      options.inplace = false\n      options.encoding = &quot;utf8&quot;\n      options.transfer_type = :auto\n      options.verbose = false\n\n      opts = OptionParser.new do |opts|\n        opts.banner = &quot;Usage: example.rb [options]&quot;\n\n        opts.separator &quot;&quot;\n        opts.separator &quot;Specific options:&quot;\n\n        # Mandatory argument.\n        opts.on(&quot;-r&quot;, &quot;--require LIBRARY&quot;,\n                &quot;Require the LIBRARY before executing your script&quot;) do |lib|\n          options.library &lt;&lt; lib\n        end\n\n        # Optional argument; multi-line description.\n        opts.on(&quot;-i&quot;, &quot;--inplace [EXTENSION]&quot;,\n                &quot;Edit ARGV files in place&quot;,\n                &quot;  (make backup if EXTENSION supplied)&quot;) do |ext|\n          options.inplace = true\n          options.extension = ext || ''\n          options.extension.sub!(/\\A\\.?(?=.)/, &quot;.&quot;)  # Ensure extension begins with dot.\n        end\n\n        # Cast 'delay' argument to a Float.\n        opts.on(&quot;--delay N&quot;, Float, &quot;Delay N seconds before executing&quot;) do |n|\n          options.delay = n\n        end\n\n        # Cast 'time' argument to a Time object.\n        opts.on(&quot;-t&quot;, &quot;--time [TIME]&quot;, Time, &quot;Begin execution at given time&quot;) do |time|\n          options.time = time\n        end\n\n        # Cast to octal integer.\n        opts.on(&quot;-F&quot;, &quot;--irs [OCTAL]&quot;, OptionParser::OctalInteger,\n                &quot;Specify record separator (default \\0)&quot;) do |rs|\n          options.record_separator = rs\n        end\n\n        # List of arguments.\n        opts.on(&quot;--list x,y,z&quot;, Array, &quot;Example 'list' of arguments&quot;) do |list|\n          options.list = list\n        end\n\n        # Keyword completion.  We are specifying a specific set of arguments (CODES\n        # and CODE_ALIASES - notice the latter is a Hash), and the user may provide\n        # the shortest unambiguous text.\n        code_list = (CODE_ALIASES.keys + CODES).join(',')\n        opts.on(&quot;--code CODE&quot;, CODES, CODE_ALIASES, &quot;Select encoding&quot;,\n                &quot;  (#{code_list})&quot;) do |encoding|\n          options.encoding = encoding\n        end\n\n        # Optional argument with keyword completion.\n        opts.on(&quot;--type [TYPE]&quot;, [:text, :binary, :auto],\n                &quot;Select transfer type (text, binary, auto)&quot;) do |t|\n          options.transfer_type = t\n        end\n\n        # Boolean switch.\n        opts.on(&quot;-v&quot;, &quot;--[no-]verbose&quot;, &quot;Run verbosely&quot;) do |v|\n          options.verbose = v\n        end\n\n        opts.separator &quot;&quot;\n        opts.separator &quot;Common options:&quot;\n\n        # No argument, shows at tail.  This will print an options summary.\n        # Try it and see!\n        opts.on_tail(&quot;-h&quot;, &quot;--help&quot;, &quot;Show this message&quot;) do\n          puts opts\n          exit\n        end\n\n        # Another typical switch to print the version.\n        opts.on_tail(&quot;--version&quot;, &quot;Show version&quot;) do\n          puts OptionParser::Version.join('.')\n          exit\n        end\n      end\n\n      opts.parse!(args)\n      options\n    end  # parse()\n\n  end  # class OptparseExample\n\n  options = OptparseExample.parse(ARGV)\n  pp options\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Further documentation
- !ruby/struct:SM::Flow::P 
  body: The above examples should be enough to learn how to use this class. If you have any questions, email me (gsinclair@soyabean.com.au) and I will update this document.
constants: []

full_name: OptionParser
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: switch_name
name: OptionParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::Switch::incompatible_argument_styles
is_singleton: true
name: incompatible_argument_styles
params: (arg, t)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::Switch::pattern
is_singleton: true
name: pattern
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::Switch::new
is_singleton: true
name: new
params: (pattern = nil, conv = nil, short = nil, long = nil, arg = nil, desc = ([] if short or long), block = Proc.new)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses argument, converts and returns <tt>arg</tt>, <tt>block</tt> and result of conversion. Yields at semi-error condition instead of raising an exception.
full_name: OptionParser::Switch#conv_arg
is_singleton: false
name: conv_arg
params: (arg, val = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Guesses argument style from <tt>arg</tt>. Returns corresponding OptionParser::Switch class (OptionalArgument, etc.).
full_name: OptionParser::Switch::guess
is_singleton: true
name: guess
params: (arg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: arg
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: block
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: conv
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: desc
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: long
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: pattern
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: short
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: guess
- !ruby/object:RI::MethodSummary 
  name: incompatible_argument_styles
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: pattern
comment: 
- !ruby/struct:SM::Flow::P 
  body: Individual switch class. Not important to the user.
- !ruby/struct:SM::Flow::P 
  body: "Defined within Switch are several Switch-derived classes: NoArgument, RequiredArgument, etc."
constants: []

full_name: OptionParser::Switch
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: conv_arg
- !ruby/object:RI::MethodSummary 
  name: parse_arg
- !ruby/object:RI::MethodSummary 
  name: summarize
name: Switch
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (indent + l)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Produces the summary text. Each line of the summary is yielded to the block (without newline).
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+sdone+:"
    body: Already summarized short style options keyed hash.
  - !ruby/struct:SM::Flow::LI 
    label: "+ldone+:"
    body: Already summarized long style options keyed hash.
  - !ruby/struct:SM::Flow::LI 
    label: "+width+:"
    body: Width of left side (option part). In other words, the right side (description part) starts after <tt>width</tt> columns.
  - !ruby/struct:SM::Flow::LI 
    label: "+max+:"
    body: Maximum width of left side -&gt; the options are filled within <tt>max</tt> columns.
  - !ruby/struct:SM::Flow::LI 
    label: "+indent+:"
    body: Prefix string indents all summarized lines.
  type: :NOTE
full_name: OptionParser::Switch#summarize
is_singleton: false
name: summarize
params: (sdone = [], ldone = [], width = 1, max = width - 1, indent = "") {|indent + l| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (InvalidArgument, arg)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parses <tt>arg</tt> and returns rest of <tt>arg</tt> and matched portion to the argument pattern. Yields when the pattern doesn't match substring.
full_name: OptionParser::Switch#parse_arg
is_singleton: false
name: parse_arg
params: (arg) {|InvalidArgument, arg| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (key, *sw)
comment: 
full_name: OptionParser::Completion#complete
is_singleton: false
name: complete
params: (key, icase = false, pat = nil) {|key, *sw| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OptionParser::Completion#convert
is_singleton: false
name: convert
params: (opt = nil, val = nil, *)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Keyword completion module. This allows partial arguments to be specified and resolved against a list of acceptable values.
constants: []

full_name: OptionParser::Completion
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: complete
- !ruby/object:RI::MethodSummary 
  name: convert
name: Completion
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns clean pathname of <tt>self</tt> with consecutive slashes and useless dots removed. The filesystem is not accessed.
- !ruby/struct:SM::Flow::P 
  body: "If <tt>consider_symlink</tt> is <tt>true</tt>, then a more conservative algorithm is used to avoid breaking symbolic linkages. This may retain more <tt>..</tt> entries than absolutely necessary, but without accessing the filesystem, this can't be avoided. See #realpath."
full_name: Pathname#cleanpath
is_singleton: false
name: cleanpath
params: (consider_symlink=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.socket?</tt>.
full_name: Pathname#socket?
is_singleton: false
name: socket?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: delete
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a file or directory, using <tt>File.unlink</tt> or <tt>Dir.unlink</tt> as necessary.
full_name: Pathname#unlink
is_singleton: false
name: unlink
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Predicate method for testing whether a path is absolute. It returns <tt>true</tt> if the pathname begins with a slash.
full_name: Pathname#absolute?
is_singleton: false
name: absolute?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.chown</tt>. Change owner and group of file.
full_name: Pathname#chown
is_singleton: false
name: chown
params: (owner, group)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.setuid?</tt>.
full_name: Pathname#setuid?
is_singleton: false
name: setuid?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.stat</tt>. Returns a <tt>File::Stat</tt> object.
full_name: Pathname#stat
is_singleton: false
name: stat
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.fnmatch</tt>. Return <tt>true</tt> if the receiver matches the given pattern.
full_name: Pathname#fnmatch
is_singleton: false
name: fnmatch
params: (pattern, *args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.extname</tt>. Returns the file's extension.
full_name: Pathname#extname
is_singleton: false
name: extname
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.chmod</tt>. Changes permissions.
full_name: Pathname#chmod
is_singleton: false
name: chmod
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: p
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over the entries (files and subdirectories) in the directory. It yields a Pathname object for each entry.
- !ruby/struct:SM::Flow::P 
  body: This method has existed since 1.8.1.
full_name: Pathname#each_entry
is_singleton: false
name: each_entry
params: () {|p| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.ctime</tt>. Returns last (directory entry, not file) change time.
full_name: Pathname#ctime
is_singleton: false
name: ctime
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.size</tt>.
full_name: Pathname#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>IO.sysopen</tt>.
full_name: Pathname#sysopen
is_singleton: false
name: sysopen
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.utime</tt>. Update the access and modification times.
full_name: Pathname#utime
is_singleton: false
name: utime
params: (atime, mtime)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the children of the directory (files and subdirectories, not recursive) as an array of Pathname objects. By default, the returned pathnames will have enough information to access the files. If you set <tt>with_directory</tt> to <tt>false</tt>, then the returned pathnames will contain the filename only.
- !ruby/struct:SM::Flow::P 
  body: "For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p = Pathname(&quot;/usr/lib/ruby/1.8&quot;)\n  p.children\n      # -&gt; [ Pathname:/usr/lib/ruby/1.8/English.rb,\n             Pathname:/usr/lib/ruby/1.8/Env.rb,\n             Pathname:/usr/lib/ruby/1.8/abbrev.rb, ... ]\n  p.children(false)\n      # -&gt; [ Pathname:English.rb, Pathname:Env.rb, Pathname:abbrev.rb, ... ]\n"
- !ruby/struct:SM::Flow::P 
  body: Note that the result never contain the entries <tt>.</tt> and <tt>..</tt> in the directory because they are not children.
- !ruby/struct:SM::Flow::P 
  body: This method has existed since 1.8.1.
full_name: Pathname#children
is_singleton: false
name: children
params: (with_directory=true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.atime</tt>. Returns last access time.
full_name: Pathname#atime
is_singleton: false
name: atime
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.symlink</tt>. Creates a symbolic link.
full_name: Pathname#make_symlink
is_singleton: false
name: make_symlink
params: (old)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#dir_foreach is <b>obsoleted</b> at 1.8.1.
full_name: Pathname#dir_foreach
is_singleton: false
name: dir_foreach
params: (*args, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the entries (files and subdirectories) in the directory, each as a Pathname object.
full_name: Pathname#entries
is_singleton: false
name: entries
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #=="
full_name: Pathname#eql?
is_singleton: false
name: eql?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#del_trailing_separator
is_singleton: false
name: del_trailing_separator
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provides for comparing pathnames, case-sensitively.
full_name: Pathname#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.blockdev?</tt>.
full_name: Pathname#blockdev?
is_singleton: false
name: blockdev?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.sticky?</tt>.
full_name: Pathname#sticky?
is_singleton: false
name: sticky?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.expand_path</tt>.
full_name: Pathname#expand_path
is_singleton: false
name: expand_path
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "See <tt>File.split</tt>. Returns the #dirname and the #basename in an Array."
full_name: Pathname#split
is_singleton: false
name: split
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.symlink?</tt>.
full_name: Pathname#symlink?
is_singleton: false
name: symlink?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Clean the path simply by resolving and removing excess &quot;.&quot; and &quot;..&quot; entries. Nothing more, nothing less.
full_name: Pathname#cleanpath_aggressive
is_singleton: false
name: cleanpath_aggressive
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #to_s"
full_name: Pathname#TO_PATH
is_singleton: false
name: TO_PATH
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.size?</tt>.
full_name: Pathname#size?
is_singleton: false
name: size?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "The opposite of #absolute?"
full_name: Pathname#relative?
is_singleton: false
name: relative?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.executable?</tt>.
full_name: Pathname#executable?
is_singleton: false
name: executable?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.rename</tt>. Rename the file.
full_name: Pathname#rename
is_singleton: false
name: rename
params: (to)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #=="
full_name: Pathname#===
is_singleton: false
name: ===
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: has_trailing_separator?(path) -&gt; bool
full_name: Pathname#has_trailing_separator?
is_singleton: false
name: has_trailing_separator?
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ===
- !ruby/object:RI::AliasName 
  name: eql?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compare this pathname with <tt>other</tt>. The comparison is string-based. Be aware that two different paths (<tt>foo.txt</tt> and <tt>./foo.txt</tt>) can refer to the same file.
full_name: Pathname#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#prepend_prefix
is_singleton: false
name: prepend_prefix
params: (prefix, relpath)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.readlink</tt>. Read symbolic link.
full_name: Pathname#readlink
is_singleton: false
name: readlink
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.ftype</tt>. Returns &quot;type&quot; of file (&quot;file&quot;, &quot;directory&quot;, etc).
full_name: Pathname#ftype
is_singleton: false
name: ftype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileUtils.mkpath</tt>. Creates a full path, including any intermediate directories that don't yet exist.
full_name: Pathname#mkpath
is_singleton: false
name: mkpath
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.mtime</tt>. Returns last modification time.
full_name: Pathname#mtime
is_singleton: false
name: mtime
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#taint
is_singleton: false
name: taint
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.grpowned?</tt>.
full_name: Pathname#grpowned?
is_singleton: false
name: grpowned?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#chdir is <b>obsoleted</b> at 1.8.1.
full_name: Pathname#chdir
is_singleton: false
name: chdir
params: (&block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.lchown</tt>.
full_name: Pathname#lchown
is_singleton: false
name: lchown
params: (owner, group)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: chop_basename(path) -&gt; [pre-basename, basename] or nil
full_name: Pathname#chop_basename
is_singleton: false
name: chop_basename
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: filename
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over each component of the path.
- !ruby/struct:SM::Flow::VERB 
  body: "  Pathname.new(&quot;/usr/bin/ruby&quot;).each_filename {|filename| ... }\n    # yields &quot;usr&quot;, &quot;bin&quot;, and &quot;ruby&quot;.\n"
full_name: Pathname#each_filename
is_singleton: false
name: each_filename
params: ( {|filename| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.readable_real?</tt>.
full_name: Pathname#readable_real?
is_singleton: false
name: readable_real?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#plus
is_singleton: false
name: plus
params: (path1, path2)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.chardev?</tt>.
full_name: Pathname#chardev?
is_singleton: false
name: chardev?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.executable_real?</tt>.
full_name: Pathname#executable_real?
is_singleton: false
name: executable_real?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "#parent returns the parent directory."
- !ruby/struct:SM::Flow::P 
  body: This is same as <tt>self + '..'</tt>.
full_name: Pathname#parent
is_singleton: false
name: parent
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.lchmod</tt>.
full_name: Pathname#lchmod
is_singleton: false
name: lchmod
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: "#each_line iterates over the line in the file. It yields a String object for each line."
- !ruby/struct:SM::Flow::P 
  body: This method has existed since 1.8.1.
full_name: Pathname#each_line
is_singleton: false
name: each_line
params: (*args) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.lstat</tt>.
full_name: Pathname#lstat
is_singleton: false
name: lstat
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "#mountpoint? returns <tt>true</tt> if <tt>self</tt> points to a mountpoint."
full_name: Pathname#mountpoint?
is_singleton: false
name: mountpoint?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.setgid?</tt>.
full_name: Pathname#setgid?
is_singleton: false
name: setgid?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "#root? is a predicate for root directories. I.e. it returns <tt>true</tt> if the pathname consists of consecutive slashes."
- !ruby/struct:SM::Flow::P 
  body: It doesn't access actual filesystem. So it may return <tt>false</tt> for some pathnames which points to roots such as <tt>/usr/..</tt>.
full_name: Pathname#root?
is_singleton: false
name: root?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: getwd
- !ruby/object:RI::MethodSummary 
  name: glob
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Pathname
- !ruby/struct:SM::Flow::P 
  body: "Pathname represents a pathname which locates a file in a filesystem. The pathname depends on OS: Unix, Windows, etc. Pathname library works with pathnames of local OS. However non-Unix pathnames are supported experimentally."
- !ruby/struct:SM::Flow::P 
  body: It does not represent the file itself. A Pathname can be relative or absolute. It's not until you try to reference the file that it even matters whether the file exists or not.
- !ruby/struct:SM::Flow::P 
  body: Pathname is immutable. It has no method for destructive update.
- !ruby/struct:SM::Flow::P 
  body: The value of this class is to manipulate file path information in a neater way than standard Ruby provides. The examples below demonstrate the difference. <b>All</b> functionality from File, FileTest, and some from Dir and FileUtils is included, in an unsurprising way. It is essentially a facade for all of these, and more.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example 1: Using Pathname"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'pathname'\n  p = Pathname.new(&quot;/usr/bin/ruby&quot;)\n  size = p.size              # 27662\n  isdir = p.directory?       # false\n  dir  = p.dirname           # Pathname:/usr/bin\n  base = p.basename          # Pathname:ruby\n  dir, base = p.split        # [Pathname:/usr/bin, Pathname:ruby]\n  data = p.read\n  p.open { |f| _ }\n  p.each_line { |line| _ }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example 2: Using standard Ruby"
- !ruby/struct:SM::Flow::VERB 
  body: "  p = &quot;/usr/bin/ruby&quot;\n  size = File.size(p)        # 27662\n  isdir = File.directory?(p) # false\n  dir  = File.dirname(p)     # &quot;/usr/bin&quot;\n  base = File.basename(p)    # &quot;ruby&quot;\n  dir, base = File.split(p)  # [&quot;/usr/bin&quot;, &quot;ruby&quot;]\n  data = File.read(p)\n  File.open(p) { |f| _ }\n  File.foreach(p) { |line| _ }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example 3: Special features"
- !ruby/struct:SM::Flow::VERB 
  body: "  p1 = Pathname.new(&quot;/usr/lib&quot;)   # Pathname:/usr/lib\n  p2 = p1 + &quot;ruby/1.8&quot;            # Pathname:/usr/lib/ruby/1.8\n  p3 = p1.parent                  # Pathname:/usr\n  p4 = p2.relative_path_from(p3)  # Pathname:lib/ruby/1.8\n  pwd = Pathname.pwd              # Pathname:/home/gavin\n  pwd.absolute?                   # true\n  p5 = Pathname.new &quot;.&quot;           # Pathname:.\n  p5 = p5 + &quot;music/../articles&quot;   # Pathname:music/../articles\n  p5.cleanpath                    # Pathname:articles\n  p5.realpath                     # Pathname:/home/gavin/articles\n  p5.children                     # [Pathname:/home/gavin/articles/linux, ...]\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Breakdown of functionality
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Core methods
- !ruby/struct:SM::Flow::P 
  body: "These methods are effectively manipulating a String, because that's all a path is. Except for #mountpoint?, #children, and #realpath, they don't access the filesystem."
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: +
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#join"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#parent"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#root?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#absolute?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#relative?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#relative_path_from"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each_filename"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#cleanpath"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#realpath"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#children"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#mountpoint?"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: File status predicate methods
- !ruby/struct:SM::Flow::P 
  body: "These methods are a facade for FileTest:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#blockdev?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#chardev?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#directory?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#executable?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#executable_real?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#exist?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#file?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#grpowned?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#owned?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#pipe?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readable?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#world_readable?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readable_real?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#setgid?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#setuid?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#size?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#socket?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#sticky?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#symlink?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#writable?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#world_writable?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#writable_real?"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#zero?"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: File property and manipulation methods
- !ruby/struct:SM::Flow::P 
  body: "These methods are a facade for File:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#atime"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#ctime"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#mtime"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#chmod(mode)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#lchmod(mode)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#chown(owner, group)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#lchown(owner, group)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#fnmatch(pattern, *args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#fnmatch?(pattern, *args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#ftype"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#make_link(old)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#open(*args, &amp;block)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readlink"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rename(to)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#stat"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#lstat"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#make_symlink(old)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#truncate(length)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#utime(atime, mtime)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#basename(*args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#dirname"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#extname"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#expand_path(*args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#split"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Directory methods
- !ruby/struct:SM::Flow::P 
  body: "These methods are a facade for Dir:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Pathname.glob(*args)
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: Pathname.getwd / Pathname.pwd
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rmdir"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#entries"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each_entry(&amp;block)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#mkdir(*args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#opendir(*args)"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: IO
- !ruby/struct:SM::Flow::P 
  body: "These methods are a facade for IO:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#each_line(*args, &amp;block)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#read(*args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#readlines(*args)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#sysopen(*args)"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Utilities
- !ruby/struct:SM::Flow::P 
  body: "These methods are a mixture of Find, FileUtils, and others:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#find(&amp;block)"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#mkpath"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rmtree"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#unlink / #delete"
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method documentation
- !ruby/struct:SM::Flow::P 
  body: As the above section shows, most of the methods in Pathname are facades. The documentation for these methods generally just says, for instance, &quot;See FileTest.writable?&quot;, as you should be familiar with the original method anyway, and its documentation (e.g. through <tt>ri</tt>) will contain more information. In some cases, a brief description will follow.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SEPARATOR_PAT
  value: /[#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}]/
- !ruby/object:RI::Constant 
  comment: 
  name: SEPARATOR_PAT
  value: /#{Regexp.quote File::SEPARATOR}/
full_name: Pathname
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ===
- !ruby/object:RI::MethodSummary 
  name: TO_PATH
- !ruby/object:RI::MethodSummary 
  name: absolute?
- !ruby/object:RI::MethodSummary 
  name: add_trailing_separator
- !ruby/object:RI::MethodSummary 
  name: ascend
- !ruby/object:RI::MethodSummary 
  name: atime
- !ruby/object:RI::MethodSummary 
  name: basename
- !ruby/object:RI::MethodSummary 
  name: blockdev?
- !ruby/object:RI::MethodSummary 
  name: chardev?
- !ruby/object:RI::MethodSummary 
  name: chdir
- !ruby/object:RI::MethodSummary 
  name: children
- !ruby/object:RI::MethodSummary 
  name: chmod
- !ruby/object:RI::MethodSummary 
  name: chop_basename
- !ruby/object:RI::MethodSummary 
  name: chown
- !ruby/object:RI::MethodSummary 
  name: chroot
- !ruby/object:RI::MethodSummary 
  name: cleanpath
- !ruby/object:RI::MethodSummary 
  name: cleanpath_aggressive
- !ruby/object:RI::MethodSummary 
  name: cleanpath_conservative
- !ruby/object:RI::MethodSummary 
  name: ctime
- !ruby/object:RI::MethodSummary 
  name: del_trailing_separator
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: descend
- !ruby/object:RI::MethodSummary 
  name: dir_foreach
- !ruby/object:RI::MethodSummary 
  name: directory?
- !ruby/object:RI::MethodSummary 
  name: dirname
- !ruby/object:RI::MethodSummary 
  name: each_entry
- !ruby/object:RI::MethodSummary 
  name: each_filename
- !ruby/object:RI::MethodSummary 
  name: each_line
- !ruby/object:RI::MethodSummary 
  name: entries
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: executable?
- !ruby/object:RI::MethodSummary 
  name: executable_real?
- !ruby/object:RI::MethodSummary 
  name: exist?
- !ruby/object:RI::MethodSummary 
  name: expand_path
- !ruby/object:RI::MethodSummary 
  name: extname
- !ruby/object:RI::MethodSummary 
  name: file?
- !ruby/object:RI::MethodSummary 
  name: find
- !ruby/object:RI::MethodSummary 
  name: fnmatch
- !ruby/object:RI::MethodSummary 
  name: fnmatch?
- !ruby/object:RI::MethodSummary 
  name: foreach
- !ruby/object:RI::MethodSummary 
  name: foreachline
- !ruby/object:RI::MethodSummary 
  name: freeze
- !ruby/object:RI::MethodSummary 
  name: ftype
- !ruby/object:RI::MethodSummary 
  name: grpowned?
- !ruby/object:RI::MethodSummary 
  name: has_trailing_separator?
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: lchmod
- !ruby/object:RI::MethodSummary 
  name: lchown
- !ruby/object:RI::MethodSummary 
  name: link
- !ruby/object:RI::MethodSummary 
  name: lstat
- !ruby/object:RI::MethodSummary 
  name: make_link
- !ruby/object:RI::MethodSummary 
  name: make_symlink
- !ruby/object:RI::MethodSummary 
  name: mkdir
- !ruby/object:RI::MethodSummary 
  name: mkpath
- !ruby/object:RI::MethodSummary 
  name: mountpoint?
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: opendir
- !ruby/object:RI::MethodSummary 
  name: owned?
- !ruby/object:RI::MethodSummary 
  name: parent
- !ruby/object:RI::MethodSummary 
  name: pipe?
- !ruby/object:RI::MethodSummary 
  name: plus
- !ruby/object:RI::MethodSummary 
  name: prepend_prefix
- !ruby/object:RI::MethodSummary 
  name: read
- !ruby/object:RI::MethodSummary 
  name: readable?
- !ruby/object:RI::MethodSummary 
  name: readable_real?
- !ruby/object:RI::MethodSummary 
  name: readlines
- !ruby/object:RI::MethodSummary 
  name: readlink
- !ruby/object:RI::MethodSummary 
  name: realpath
- !ruby/object:RI::MethodSummary 
  name: realpath_rec
- !ruby/object:RI::MethodSummary 
  name: relative?
- !ruby/object:RI::MethodSummary 
  name: relative_path_from
- !ruby/object:RI::MethodSummary 
  name: rename
- !ruby/object:RI::MethodSummary 
  name: rmdir
- !ruby/object:RI::MethodSummary 
  name: rmtree
- !ruby/object:RI::MethodSummary 
  name: root?
- !ruby/object:RI::MethodSummary 
  name: setgid?
- !ruby/object:RI::MethodSummary 
  name: setuid?
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: size?
- !ruby/object:RI::MethodSummary 
  name: socket?
- !ruby/object:RI::MethodSummary 
  name: split
- !ruby/object:RI::MethodSummary 
  name: split_names
- !ruby/object:RI::MethodSummary 
  name: stat
- !ruby/object:RI::MethodSummary 
  name: sticky?
- !ruby/object:RI::MethodSummary 
  name: sub
- !ruby/object:RI::MethodSummary 
  name: symlink
- !ruby/object:RI::MethodSummary 
  name: symlink?
- !ruby/object:RI::MethodSummary 
  name: sysopen
- !ruby/object:RI::MethodSummary 
  name: taint
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: truncate
- !ruby/object:RI::MethodSummary 
  name: unlink
- !ruby/object:RI::MethodSummary 
  name: untaint
- !ruby/object:RI::MethodSummary 
  name: utime
- !ruby/object:RI::MethodSummary 
  name: world_readable?
- !ruby/object:RI::MethodSummary 
  name: world_writable?
- !ruby/object:RI::MethodSummary 
  name: writable?
- !ruby/object:RI::MethodSummary 
  name: writable_real?
- !ruby/object:RI::MethodSummary 
  name: zero?
name: Pathname
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a Pathname object from the given String (or String-like object). If <tt>path</tt> contains a NUL character (<tt>\0</tt>), an ArgumentError is raised.
full_name: Pathname::new
is_singleton: true
name: new
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: self
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over and yields a new Pathname object for each element in the given path in ascending order.
- !ruby/struct:SM::Flow::VERB 
  body: " Pathname.new('/path/to/some/file.rb').ascend {|v| p v}\n    #&lt;Pathname:/path/to/some/file.rb&gt;\n    #&lt;Pathname:/path/to/some&gt;\n    #&lt;Pathname:/path/to&gt;\n    #&lt;Pathname:/path&gt;\n    #&lt;Pathname:/&gt;\n\n Pathname.new('path/to/some/file.rb').ascend {|v| p v}\n    #&lt;Pathname:path/to/some/file.rb&gt;\n    #&lt;Pathname:path/to/some&gt;\n    #&lt;Pathname:path/to&gt;\n    #&lt;Pathname:path&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: It doesn't access actual filesystem.
- !ruby/struct:SM::Flow::P 
  body: This method is available since 1.8.5.
full_name: Pathname#ascend
is_singleton: false
name: ascend
params: () {|self| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#realpath_rec
is_singleton: false
name: realpath_rec
params: (prefix, unresolved, h)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>IO.readlines</tt>. Returns all the lines from the file.
full_name: Pathname#readlines
is_singleton: false
name: readlines
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Pathname#foreachline is <b>obsoleted</b> at 1.8.1. Use #each_line."
full_name: Pathname#foreachline
is_singleton: false
name: foreachline
params: (*args, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>IO.read</tt>. Returns all the bytes from the file, or the first <tt>N</tt> if specified.
full_name: Pathname#read
is_singleton: false
name: read
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: add_trailing_separator(path) -&gt; path
full_name: Pathname#add_trailing_separator
is_singleton: false
name: add_trailing_separator
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.link</tt>. Creates a hard link.
full_name: Pathname#make_link
is_singleton: false
name: make_link
params: (old)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#link is confusing and <b>obsoleted</b> because the receiver/argument order is inverted to corresponding system call.
full_name: Pathname#link
is_singleton: false
name: link
params: (old)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.dirname</tt>. Returns all but the last component of the path.
full_name: Pathname#dirname
is_singleton: false
name: dirname
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #unlink"
full_name: Pathname#delete
is_singleton: false
name: delete
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: split_names(path) -&gt; prefix, [name, ...]
full_name: Pathname#split_names
is_singleton: false
name: split_names
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.readable?</tt>.
full_name: Pathname#readable?
is_singleton: false
name: readable?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.pipe?</tt>.
full_name: Pathname#pipe?
is_singleton: false
name: pipe?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: TO_PATH
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the path as a String.
full_name: Pathname#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: p
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Dir.glob</tt>. Returns or yields Pathname objects.
full_name: Pathname::glob
is_singleton: true
name: glob
params: (*args) {|p| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileUtils.rm_r</tt>. Deletes a directory and all beneath it.
full_name: Pathname#rmtree
is_singleton: false
name: rmtree
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.world_writable?</tt>.
full_name: Pathname#world_writable?
is_singleton: false
name: world_writable?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: p
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#find is an iterator to traverse a directory tree in a depth first manner. It yields a Pathname for each file under &quot;this&quot; directory.
- !ruby/struct:SM::Flow::P 
  body: Since it is implemented by <tt>find.rb</tt>, <tt>Find.prune</tt> can be used to control the traverse.
- !ruby/struct:SM::Flow::P 
  body: If <tt>self</tt> is <tt>.</tt>, yielded pathnames begin with a filename in the current directory, not <tt>./</tt>.
full_name: Pathname#find
is_singleton: false
name: find
params: () {|p| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.file?</tt>.
full_name: Pathname#file?
is_singleton: false
name: file?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (*args)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a pathname which is substituted by String#sub.
full_name: Pathname#sub
is_singleton: false
name: sub
params: (pattern, *rest, &block) {|*args| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "This method is <b>obsoleted</b> at 1.8.1. Use #each_line or #each_entry."
full_name: Pathname#foreach
is_singleton: false
name: foreach
params: (*args, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.basename</tt>. Returns the last component of the path.
full_name: Pathname#basename
is_singleton: false
name: basename
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: v
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over and yields a new Pathname object for each element in the given path in descending order.
- !ruby/struct:SM::Flow::VERB 
  body: " Pathname.new('/path/to/some/file.rb').descend {|v| p v}\n    #&lt;Pathname:/&gt;\n    #&lt;Pathname:/path&gt;\n    #&lt;Pathname:/path/to&gt;\n    #&lt;Pathname:/path/to/some&gt;\n    #&lt;Pathname:/path/to/some/file.rb&gt;\n\n Pathname.new('path/to/some/file.rb').descend {|v| p v}\n    #&lt;Pathname:path&gt;\n    #&lt;Pathname:path/to&gt;\n    #&lt;Pathname:path/to/some&gt;\n    #&lt;Pathname:path/to/some/file.rb&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: It doesn't access actual filesystem.
- !ruby/struct:SM::Flow::P 
  body: This method is available since 1.8.5.
full_name: Pathname#descend
is_singleton: false
name: descend
params: () {|v| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.truncate</tt>. Truncate the file to <tt>length</tt> bytes.
full_name: Pathname#truncate
is_singleton: false
name: truncate
params: (length)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#+ appends a pathname fragment to this one to produce a new Pathname object.
- !ruby/struct:SM::Flow::VERB 
  body: "  p1 = Pathname.new(&quot;/usr&quot;)      # Pathname:/usr\n  p2 = p1 + &quot;bin/ruby&quot;           # Pathname:/usr/bin/ruby\n  p3 = p1 + &quot;/etc/passwd&quot;        # Pathname:/etc/passwd\n"
- !ruby/struct:SM::Flow::P 
  body: This method doesn't access the file system; it is pure string manipulation.
full_name: Pathname#+
is_singleton: false
name: +
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.owned?</tt>.
full_name: Pathname#owned?
is_singleton: false
name: owned?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#untaint
is_singleton: false
name: untaint
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a real (absolute) pathname of <tt>self</tt> in the actual filesystem. The real pathname doesn't contain symlinks or useless dots.
- !ruby/struct:SM::Flow::P 
  body: No arguments should be given; the old behaviour is <b>obsoleted</b>.
full_name: Pathname#realpath
is_singleton: false
name: realpath
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Dir.rmdir</tt>. Remove the referenced directory.
full_name: Pathname#rmdir
is_singleton: false
name: rmdir
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Dir.mkdir</tt>. Create the referenced directory.
full_name: Pathname#mkdir
is_singleton: false
name: mkdir
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#join joins pathnames.
- !ruby/struct:SM::Flow::P 
  body: <tt>path0.join(path1, ..., pathN)</tt> is the same as <tt>path0 + path1 + ... + pathN</tt>.
full_name: Pathname#join
is_singleton: false
name: join
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#cleanpath_conservative
is_singleton: false
name: cleanpath_conservative
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#chroot is <b>obsoleted</b> at 1.8.1.
full_name: Pathname#chroot
is_singleton: false
name: chroot
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.zero?</tt>.
full_name: Pathname#zero?
is_singleton: false
name: zero?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.world_readable?</tt>.
full_name: Pathname#world_readable?
is_singleton: false
name: world_readable?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.writable?</tt>.
full_name: Pathname#writable?
is_singleton: false
name: writable?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Pathname#symlink is confusing and <b>obsoleted</b> because the receiver/argument order is inverted to corresponding system call.
full_name: Pathname#symlink
is_singleton: false
name: symlink
params: (old)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.exist?</tt>.
full_name: Pathname#exist?
is_singleton: false
name: exist?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "See <tt>File.fnmatch?</tt> (same as #fnmatch)."
full_name: Pathname#fnmatch?
is_singleton: false
name: fnmatch?
params: (pattern, *args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Dir.getwd</tt>. Returns the current working directory as a Pathname.
full_name: Pathname::getwd
is_singleton: true
name: getwd
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: file
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>File.open</tt>. Opens the file for reading or writing.
full_name: Pathname#open
is_singleton: false
name: open
params: (*args) {|file| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Pathname#freeze
is_singleton: false
name: freeze
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.writable_real?</tt>.
full_name: Pathname#writable_real?
is_singleton: false
name: writable_real?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: dir
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>Dir.open</tt>.
full_name: Pathname#opendir
is_singleton: false
name: opendir
params: () {|dir| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: See <tt>FileTest.directory?</tt>.
full_name: Pathname#directory?
is_singleton: false
name: directory?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "#relative_path_from returns a relative path from the argument to the receiver. If <tt>self</tt> is absolute, the argument must be absolute too. If <tt>self</tt> is relative, the argument must be relative too."
- !ruby/struct:SM::Flow::P 
  body: "#relative_path_from doesn't access the filesystem. It assumes no symlinks."
- !ruby/struct:SM::Flow::P 
  body: ArgumentError is raised when it cannot find a relative path.
- !ruby/struct:SM::Flow::P 
  body: This method has existed since 1.8.1.
full_name: Pathname#relative_path_from
is_singleton: false
name: relative_path_from
params: (base_directory)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Bind <em>umeth</em> to <em>obj</em>. If <tt>Klass</tt> was the class from which <em>umeth</em> was obtained, <tt>obj.kind_of?(Klass)</tt> must be true.
- !ruby/struct:SM::Flow::VERB 
  body: "   class A\n     def test\n       puts &quot;In test, class = #{self.class}&quot;\n     end\n   end\n   class B &lt; A\n   end\n   class C &lt; B\n   end\n\n   um = B.instance_method(:test)\n   bm = um.bind(C.new)\n   bm.call\n   bm = um.bind(B.new)\n   bm.call\n   bm = um.bind(A.new)\n   bm.call\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   In test, class = C\n   In test, class = B\n   prog.rb:16:in `bind': bind argument must be an instance of B (TypeError)\n    from prog.rb:16\n"
full_name: UnboundMethod#bind
is_singleton: false
name: bind
params: |
  umeth.bind(obj) -> method

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Two method objects are equal if that are bound to the same object and contain the same body.
full_name: UnboundMethod#==
is_singleton: false
name: ==
params: |
  meth == other_meth  => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the name of the method.
full_name: UnboundMethod#name
is_singleton: false
name: name
params: |
  meth.name    => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "MISSING: documentation"
full_name: UnboundMethod#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show the name of the underlying method.
- !ruby/struct:SM::Flow::VERB 
  body: "  &quot;cat&quot;.method(:count).inspect   #=&gt; &quot;#&lt;Method: String#count&gt;&quot;\n"
full_name: UnboundMethod#inspect
is_singleton: false
name: inspect
params: |
  meth.to_s      =>  string
  meth.inspect   =>  string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an indication of the number of arguments accepted by a method. Returns a nonnegative integer for methods that take a fixed number of arguments. For Ruby methods that take a variable number of arguments, returns -n-1, where n is the number of required arguments. For methods written in C, returns -1 if the call takes a variable number of arguments.
- !ruby/struct:SM::Flow::VERB 
  body: "   class C\n     def one;    end\n     def two(a); end\n     def three(*a);  end\n     def four(a, b); end\n     def five(a, b, *c);    end\n     def six(a, b, *c, &amp;d); end\n   end\n   c = C.new\n   c.method(:one).arity     #=&gt; 0\n   c.method(:two).arity     #=&gt; 1\n   c.method(:three).arity   #=&gt; -1\n   c.method(:four).arity    #=&gt; 2\n   c.method(:five).arity    #=&gt; -3\n   c.method(:six).arity     #=&gt; -3\n\n   &quot;cat&quot;.method(:size).arity      #=&gt; 0\n   &quot;cat&quot;.method(:replace).arity   #=&gt; 1\n   &quot;cat&quot;.method(:squeeze).arity   #=&gt; -1\n   &quot;cat&quot;.method(:count).arity     #=&gt; -1\n"
full_name: UnboundMethod#arity
is_singleton: false
name: arity
params: |
  meth.arity    => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show the name of the underlying method.
- !ruby/struct:SM::Flow::VERB 
  body: "  &quot;cat&quot;.method(:count).inspect   #=&gt; &quot;#&lt;Method: String#count&gt;&quot;\n"
full_name: UnboundMethod#to_s
is_singleton: false
name: to_s
params: |
  meth.to_s      =>  string
  meth.inspect   =>  string

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Ruby supports two forms of objectified methods. Class <tt>Method</tt> is used to represent methods that are associated with a particular object: these method objects are bound to that object. Bound method objects for an object can be created using <tt>Object#method</tt>."
- !ruby/struct:SM::Flow::P 
  body: Ruby also supports unbound methods; methods objects that are not associated with a particular object. These can be created either by calling <tt>Module#instance_method</tt> or by calling <tt>unbind</tt> on a bound method object. The result of both of these is an <tt>UnboundMethod</tt> object.
- !ruby/struct:SM::Flow::P 
  body: Unbound methods can only be called after they are bound to an object. That object must be be a kind_of? the method's original class.
- !ruby/struct:SM::Flow::VERB 
  body: "   class Square\n     def area\n       @side * @side\n     end\n     def initialize(side)\n       @side = side\n     end\n   end\n\n   area_un = Square.instance_method(:area)\n\n   s = Square.new(12)\n   area = area_un.bind(s)\n   area.call   #=&gt; 144\n"
- !ruby/struct:SM::Flow::P 
  body: "Unbound methods are a reference to the method at the time it was objectified: subsequent changes to the underlying class will not affect the unbound method."
- !ruby/struct:SM::Flow::VERB 
  body: "   class Test\n     def test\n       :original\n     end\n   end\n   um = Test.instance_method(:test)\n   class Test\n     def test\n       :modified\n     end\n   end\n   t = Test.new\n   t.test            #=&gt; :modified\n   um.bind(t).call   #=&gt; :original\n"
constants: []

full_name: UnboundMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: arity
- !ruby/object:RI::MethodSummary 
  name: bind
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: owner
- !ruby/object:RI::MethodSummary 
  name: to_s
name: UnboundMethod
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the class or module that defines the method.
full_name: UnboundMethod#owner
is_singleton: false
name: owner
params: |
  meth.owner    => class_or_module

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#starting
is_singleton: false
name: starting
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#error
is_singleton: false
name: error
params: (detail)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#stop
is_singleton: false
name: stop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#connecting
is_singleton: false
name: connecting
params: (client)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#stopped?
is_singleton: false
name: stopped?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#log
is_singleton: false
name: log
params: (msg)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer::new
is_singleton: true
name: new
params: (port, host = DEFAULT_HOST, maxConnections = 4, stdlog = $stderr, audit = false, debug = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#shutdown
is_singleton: false
name: shutdown
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer::in_service?
is_singleton: true
name: in_service?
params: (port, host = DEFAULT_HOST)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#disconnecting
is_singleton: false
name: disconnecting
params: (clientPort)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#stopping
is_singleton: false
name: stopping
params: ()
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer::stop
is_singleton: true
name: stop
params: (port, host = DEFAULT_HOST)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#serve
is_singleton: false
name: serve
params: (io)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: audit
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: debug
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: host
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: maxConnections
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: stdlog
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: in_service?
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: stop
comment: 
- !ruby/struct:SM::Flow::P 
  body: GServer implements a generic server, featuring thread pool management, simple logging, and multi-server management. See HttpServer in <tt>xmlrpc/httpserver.rb</tt> in the Ruby standard library for an example of GServer in action.
- !ruby/struct:SM::Flow::P 
  body: Any kind of application-level server can be implemented using this class. It accepts multiple simultaneous connections from clients, up to an optional maximum number. Several <em>services</em> (i.e. one service per TCP port) can be run simultaneously, and stopped at any time through the class method <tt>GServer.stop(port)</tt>. All the threading issues are handled, saving you the effort. All events are optionally logged, but you can provide your own event handlers if you wish.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::P 
  body: "Using GServer is simple. Below we implement a simple time server, run it, query it, and shut it down. Try this code in <tt>irb</tt>:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'gserver'\n\n  #\n  # A server that returns the time in seconds since 1970.\n  #\n  class TimeServer &lt; GServer\n    def initialize(port=10001, *args)\n      super(port, *args)\n    end\n    def serve(io)\n      io.puts(Time.now.to_i)\n    end\n  end\n\n  # Run the server with logging enabled (it's a separate thread).\n  server = TimeServer.new\n  server.audit = true                  # Turn logging on.\n  server.start\n\n  # *** Now point your browser to http://localhost:10001 to see it working ***\n\n  # See if it's still running.\n  GServer.in_service?(10001)           # -&gt; true\n  server.stopped?                      # -&gt; false\n\n  # Shut the server down gracefully.\n  server.shutdown\n\n  # Alternatively, stop it immediately.\n  GServer.stop(10001)\n  # or, of course, &quot;server.stop&quot;.\n"
- !ruby/struct:SM::Flow::P 
  body: All the business of accepting connections and exception handling is taken care of. All we have to do is implement the method that actually serves the client.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Advanced
- !ruby/struct:SM::Flow::P 
  body: As the example above shows, the way to use GServer is to subclass it to create a specific server, overriding the <tt>serve</tt> method. You can override other methods as well if you wish, perhaps to collect statistics, or emit more detailed logging.
- !ruby/struct:SM::Flow::VERB 
  body: "  connecting\n  disconnecting\n  starting\n  stopping\n"
- !ruby/struct:SM::Flow::P 
  body: The above methods are only called if auditing is enabled.
- !ruby/struct:SM::Flow::P 
  body: You can also override <tt>log</tt> and <tt>error</tt> if, for example, you wish to use a more sophisticated logging system.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT_HOST
  value: "\"127.0.0.1\""
full_name: GServer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: connecting
- !ruby/object:RI::MethodSummary 
  name: connections
- !ruby/object:RI::MethodSummary 
  name: disconnecting
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: log
- !ruby/object:RI::MethodSummary 
  name: serve
- !ruby/object:RI::MethodSummary 
  name: shutdown
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: starting
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: stopped?
- !ruby/object:RI::MethodSummary 
  name: stopping
name: GServer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#join
is_singleton: false
name: join
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#start
is_singleton: false
name: start
params: (maxConnections = -1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: GServer#connections
is_singleton: false
name: connections
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when switch is undefined.
constants: []

full_name: InvalidOption
includes: []

instance_methods: []

name: InvalidOption
superclass: ParseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generate results and print them. (see ERB#result)
full_name: ERB#run
is_singleton: false
name: run
params: (b=TOPLEVEL_BINDING)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: define <em>methodname</em> as instance method of current module, using ERB object or eRuby file
full_name: ERB::DefMethod#def_erb_method
is_singleton: false
name: def_erb_method
params: (methodname, erb_or_fname)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Utility module to define eRuby script as instance method.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::P 
  body: "example.rhtml:"
- !ruby/struct:SM::Flow::VERB 
  body: "  &lt;% for item in @items %&gt;\n  <b>&lt;%= item %&gt;</b>\n  &lt;% end %&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: "example.rb:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'erb'\n  class MyClass\n    extend ERB::DefMethod\n    def_erb_method('render()', 'example.rhtml')\n    def initialize(items)\n      @items = items\n    end\n  end\n  print MyClass.new([10,20,30]).render()\n"
- !ruby/struct:SM::Flow::P 
  body: "result:"
- !ruby/struct:SM::Flow::VERB 
  body: "  <b>10</b>\n\n  <b>20</b>\n\n  <b>30</b>\n"
constants: []

full_name: ERB::DefMethod
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_erb_method
name: DefMethod
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns revision information for the erb.rb module.
full_name: ERB::version
is_singleton: true
name: version
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The optional <em>filename</em> argument passed to Kernel#eval when the ERB code is run
  name: filename
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The Ruby code generated by ERB
  name: src
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: version
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: ERB -- Ruby Templating
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Introduction
- !ruby/struct:SM::Flow::P 
  body: ERB provides an easy to use but powerful templating system for Ruby. Using ERB, actual Ruby code can be added to any plain text document for the purposes of generating document information details and/or flow control.
- !ruby/struct:SM::Flow::P 
  body: "A very simple example is this:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'erb'\n\n  x = 42\n  template = ERB.new &lt;&lt;-EOF\n    The value of x is: &lt;%= x %&gt;\n  EOF\n  puts template.result(binding)\n"
- !ruby/struct:SM::Flow::P 
  body: "<em>Prints:</em> The value of x is: 42"
- !ruby/struct:SM::Flow::P 
  body: More complex examples are given below.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Recognized Tags
- !ruby/struct:SM::Flow::P 
  body: "ERB recognizes certain tags in the provided template and converts them based on the rules below:"
- !ruby/struct:SM::Flow::VERB 
  body: "  &lt;% Ruby code -- inline with output %&gt;\n  &lt;%= Ruby expression -- replace with result %&gt;\n  &lt;%# comment -- ignored -- useful in testing %&gt;\n  % a line of Ruby code -- treated as &lt;% line %&gt; (optional -- see ERB.new)\n  %% replaced with % if first thing on a line and % processing is used\n  &lt;%% or %%&gt; -- replace with &lt;% or %&gt; respectively\n"
- !ruby/struct:SM::Flow::P 
  body: All other text is passed through ERB filtering unchanged.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Options
- !ruby/struct:SM::Flow::P 
  body: "There are several settings you can change when you use ERB:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the nature of the tags that are recognized;
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the value of <tt>$SAFE</tt> under which the template is run;
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: the binding used to resolve local variables in the template.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: See the ERB.new and ERB#result methods for more detail.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Plain Text
- !ruby/struct:SM::Flow::P 
  body: ERB is useful for any generic templating situation. Note that in this example, we use the convenient &quot;% at start of line&quot; tag, and we quote the template literally with <tt>%q{...}</tt> to avoid trouble with the backslash.
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;erb&quot;\n\n  # Create template.\n  template = %q{\n    From:  James Edward Gray II &lt;james@grayproductions.net&gt;\n    To:  &lt;%= to %&gt;\n    Subject:  Addressing Needs\n\n    &lt;%= to[/\\w+/] %&gt;:\n\n    Just wanted to send a quick note assuring that your needs are being\n    addressed.\n\n    I want you to know that my team will keep working on the issues,\n    especially:\n\n    &lt;%# ignore numerous minor requests -- focus on priorities %&gt;\n    % priorities.each do |priority|\n      * &lt;%= priority %&gt;\n    % end\n\n    Thanks for your patience.\n\n    James Edward Gray II\n  }.gsub(/^  /, '')\n\n  message = ERB.new(template, 0, &quot;%&lt;&gt;&quot;)\n\n  # Set up template data.\n  to = &quot;Community Spokesman &lt;spokesman@ruby_community.org&gt;&quot;\n  priorities = [ &quot;Run Ruby Quiz&quot;,\n                 &quot;Document Modules&quot;,\n                 &quot;Answer Questions on Ruby Talk&quot; ]\n\n  # Produce result.\n  email = message.result\n  puts email\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "  From:  James Edward Gray II &lt;james@grayproductions.net&gt;\n  To:  Community Spokesman &lt;spokesman@ruby_community.org&gt;\n  Subject:  Addressing Needs\n\n  Community:\n\n  Just wanted to send a quick note assuring that your needs are being addressed.\n\n  I want you to know that my team will keep working on the issues, especially:\n\n      * Run Ruby Quiz\n      * Document Modules\n      * Answer Questions on Ruby Talk\n\n  Thanks for your patience.\n\n  James Edward Gray II\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Ruby in HTML
- !ruby/struct:SM::Flow::P 
  body: ERB is often used in <tt>.rhtml</tt> files (HTML with embedded Ruby). Notice the need in this example to provide a special binding when the template is run, so that the instance variables in the Product object can be resolved.
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;erb&quot;\n\n  # Build template data class.\n  class Product\n    def initialize( code, name, desc, cost )\n      @code = code\n      @name = name\n      @desc = desc\n      @cost = cost\n\n      @features = [ ]\n    end\n\n    def add_feature( feature )\n      @features &lt;&lt; feature\n    end\n\n    # Support templating of member data.\n    def get_binding\n      binding\n    end\n\n    # ...\n  end\n\n  # Create template.\n  template = %{\n    &lt;html&gt;\n      &lt;head&gt;&lt;title&gt;Ruby Toys -- &lt;%= @name %&gt;&lt;/title&gt;&lt;/head&gt;\n      &lt;body&gt;\n\n        &lt;h1&gt;&lt;%= @name %&gt; (&lt;%= @code %&gt;)&lt;/h1&gt;\n        &lt;p&gt;&lt;%= @desc %&gt;&lt;/p&gt;\n\n        &lt;ul&gt;\n          &lt;% @features.each do |f| %&gt;\n            &lt;li&gt;<b>&lt;%= f %&gt;</b>&lt;/li&gt;\n          &lt;% end %&gt;\n        &lt;/ul&gt;\n\n        &lt;p&gt;\n          &lt;% if @cost &lt; 10 %&gt;\n            <b>Only &lt;%= @cost %&gt;!!!</b>\n          &lt;% else %&gt;\n             Call for a price, today!\n          &lt;% end %&gt;\n        &lt;/p&gt;\n\n      &lt;/body&gt;\n    &lt;/html&gt;\n  }.gsub(/^  /, '')\n\n  rhtml = ERB.new(template)\n\n  # Set up template data.\n  toy = Product.new( &quot;TZ-1002&quot;,\n                     &quot;Rubysapien&quot;,\n                     &quot;Geek's Best Friend!  Responds to Ruby commands...&quot;,\n                     999.95 )\n  toy.add_feature(&quot;Listens for verbal commands in the Ruby language!&quot;)\n  toy.add_feature(&quot;Ignores Perl, Java, and all C variants.&quot;)\n  toy.add_feature(&quot;Karate-Chop Action!!!&quot;)\n  toy.add_feature(&quot;Matz signature on left leg.&quot;)\n  toy.add_feature(&quot;Gem studded eyes... Rubies, of course!&quot;)\n\n  # Produce result.\n  rhtml.run(toy.get_binding)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates (some blank lines removed):</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   &lt;html&gt;\n     &lt;head&gt;&lt;title&gt;Ruby Toys -- Rubysapien&lt;/title&gt;&lt;/head&gt;\n     &lt;body&gt;\n\n       &lt;h1&gt;Rubysapien (TZ-1002)&lt;/h1&gt;\n       &lt;p&gt;Geek's Best Friend!  Responds to Ruby commands...&lt;/p&gt;\n\n       &lt;ul&gt;\n           &lt;li&gt;<b>Listens for verbal commands in the Ruby language!</b>&lt;/li&gt;\n           &lt;li&gt;<b>Ignores Perl, Java, and all C variants.</b>&lt;/li&gt;\n           &lt;li&gt;<b>Karate-Chop Action!!!</b>&lt;/li&gt;\n           &lt;li&gt;<b>Matz signature on left leg.</b>&lt;/li&gt;\n           &lt;li&gt;<b>Gem studded eyes... Rubies, of course!</b>&lt;/li&gt;\n       &lt;/ul&gt;\n\n       &lt;p&gt;\n            Call for a price, today!\n       &lt;/p&gt;\n\n     &lt;/body&gt;\n   &lt;/html&gt;\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Notes
- !ruby/struct:SM::Flow::P 
  body: "There are a variety of templating solutions available in various Ruby projects:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: ERB's big brother, eRuby, works the same but is written in C for speed;
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Amrita (smart at producing HTML/XML);
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: cs/Template (written in C for speed);
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: RDoc, distributed with Ruby, uses its own template engine, which can be reused elsewhere;
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: and others; search the RAA.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Rails, the web application framework, uses ERB to create views.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Revision
  value: "'$Date: 2009-02-24 02:44:50 +0900 (Tue, 24 Feb 2009) $'"
full_name: ERB
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: def_class
- !ruby/object:RI::MethodSummary 
  name: def_method
- !ruby/object:RI::MethodSummary 
  name: def_module
- !ruby/object:RI::MethodSummary 
  name: result
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: set_eoutvar
name: ERB
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructs a new ERB object with the template specified in <em>str</em>.
- !ruby/struct:SM::Flow::P 
  body: An ERB object works by building a chunk of Ruby code that will output the completed template when run. If <em>safe_level</em> is set to a non-nil value, ERB code will be run in a separate thread with <b>$SAFE</b> set to the provided level.
- !ruby/struct:SM::Flow::P 
  body: "If <em>trim_mode</em> is passed a String containing one or more of the following modifiers, ERB will adjust its code generation as listed:"
- !ruby/struct:SM::Flow::VERB 
  body: "    %  enables Ruby code processing for lines beginning with %\n    &lt;&gt; omit newline for lines starting with &lt;% and ending in %&gt;\n    &gt;  omit newline for lines ending in %&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>eoutvar</em> can be used to set the name of the variable ERB will build up its output in. This is useful when you need to run multiple ERB templates through the same binding and/or when you want to control where output ends up. Pass the name of the variable to be used inside a String.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: " require &quot;erb&quot;\n\n # build data class\n class Listings\n   PRODUCT = { :name =&gt; &quot;Chicken Fried Steak&quot;,\n               :desc =&gt; &quot;A well messages pattie, breaded and fried.&quot;,\n               :cost =&gt; 9.95 }\n\n   attr_reader :product, :price\n\n   def initialize( product = &quot;&quot;, price = &quot;&quot; )\n     @product = product\n     @price = price\n   end\n\n   def build\n     b = binding\n     # create and run templates, filling member data variables\n     ERB.new(&lt;&lt;-'END_PRODUCT'.gsub(/^\\s+/, &quot;&quot;), 0, &quot;&quot;, &quot;@product&quot;).result b\n       &lt;%= PRODUCT[:name] %&gt;\n       &lt;%= PRODUCT[:desc] %&gt;\n     END_PRODUCT\n     ERB.new(&lt;&lt;-'END_PRICE'.gsub(/^\\s+/, &quot;&quot;), 0, &quot;&quot;, &quot;@price&quot;).result b\n       &lt;%= PRODUCT[:name] %&gt; -- &lt;%= PRODUCT[:cost] %&gt;\n       &lt;%= PRODUCT[:desc] %&gt;\n     END_PRICE\n   end\n end\n\n # setup template data\n listings = Listings.new\n listings.build\n\n puts listings.product + &quot;\\n&quot; + listings.price\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates</em>
- !ruby/struct:SM::Flow::VERB 
  body: " Chicken Fried Steak\n A well messages pattie, breaded and fried.\n\n Chicken Fried Steak -- 9.95\n A well messages pattie, breaded and fried.\n"
full_name: ERB::new
is_singleton: true
name: new
params: (str, safe_level=nil, trim_mode=nil, eoutvar='_erbout')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Define <em>methodname</em> as instance method of <em>mod</em> from compiled ruby source.
- !ruby/struct:SM::Flow::P 
  body: "example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  filename = 'example.rhtml'   # 'arg1' and 'arg2' are used in example.rhtml\n  erb = ERB.new(File.read(filename))\n  erb.def_method(MyClass, 'render(arg1, arg2)', filename)\n  print MyClass.new.render('foo', 123)\n"
full_name: ERB#def_method
is_singleton: false
name: def_method
params: (mod, methodname, fname='(ERB)')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Can be used to set <em>eoutvar</em> as described in ERB#new. It's probably easier to just use the constructor though, since calling this method requires the setup of an ERB <em>compiler</em> object.
full_name: ERB#set_eoutvar
is_singleton: false
name: set_eoutvar
params: (compiler, eoutvar = '_erbout')
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::SimpleScanner
includes: []

instance_methods: []

name: SimpleScanner
superclass: Scanner
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::Buffer
includes: []

instance_methods: []

name: Buffer
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler
includes: []

instance_methods: []

name: Compiler
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::TrimScanner
includes: []

instance_methods: []

name: TrimScanner
superclass: Scanner
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::Scanner
includes: []

instance_methods: []

name: Scanner
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::SimpleScanner2
includes: []

instance_methods: []

name: SimpleScanner2
superclass: Scanner
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::ExplicitScanner
includes: []

instance_methods: []

name: ExplicitScanner
superclass: Scanner
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: ERB::Compiler::PercentLine
includes: []

instance_methods: []

name: PercentLine
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #html_escape"
full_name: ERB::Util#h
is_singleton: false
name: h
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: h
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A utility method for escaping HTML tag characters in <em>s</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;erb&quot;\n  include ERB::Util\n\n  puts html_escape(&quot;is a &gt; 0 &amp; a &lt; 10?&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates</em>
- !ruby/struct:SM::Flow::VERB 
  body: "  is a &amp;gt; 0 &amp;amp; a &amp;lt; 10?\n"
full_name: ERB::Util#html_escape
is_singleton: false
name: html_escape
params: (s)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A utility module for conversion routines, often handy in HTML generation.
constants: []

full_name: ERB::Util
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: h
- !ruby/object:RI::MethodSummary 
  name: html_escape
- !ruby/object:RI::MethodSummary 
  name: u
- !ruby/object:RI::MethodSummary 
  name: url_encode
name: Util
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: u
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A utility method for encoding the String <em>s</em> as a URL.
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;erb&quot;\n  include ERB::Util\n\n  puts url_encode(&quot;Programming Ruby:  The Pragmatic Programmer's Guide&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>Generates</em>
- !ruby/struct:SM::Flow::VERB 
  body: "  Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide\n"
full_name: ERB::Util#url_encode
is_singleton: false
name: url_encode
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #url_encode"
full_name: ERB::Util#u
is_singleton: false
name: u
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Define unnamed class which has <em>methodname</em> as instance method, and return it.
- !ruby/struct:SM::Flow::P 
  body: "example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  class MyClass_\n    def initialize(arg1, arg2)\n      @arg1 = arg1;  @arg2 = arg2\n    end\n  end\n  filename = 'example.rhtml'  # @arg1 and @arg2 are used in example.rhtml\n  erb = ERB.new(File.read(filename))\n  erb.filename = filename\n  MyClass = erb.def_class(MyClass_, 'render()')\n  print MyClass.new('foo', 123).render()\n"
full_name: ERB#def_class
is_singleton: false
name: def_class
params: (superklass=Object, methodname='result')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create unnamed module, define <em>methodname</em> as instance method of it, and return it.
- !ruby/struct:SM::Flow::P 
  body: "example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  filename = 'example.rhtml'   # 'arg1' and 'arg2' are used in example.rhtml\n  erb = ERB.new(File.read(filename))\n  erb.filename = filename\n  MyModule = erb.def_module('render(arg1, arg2)')\n  class MyClass\n    include MyModule\n  end\n"
full_name: ERB#def_module
is_singleton: false
name: def_module
params: (methodname='erb')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Executes the generated ERB code to produce a completed template, returning the results of that code. (See ERB#new for details on how this process can be affected by <em>safe_level</em>.)
- !ruby/struct:SM::Flow::P 
  body: <em>b</em> accepts a Binding or Proc object which is used to set the context of code evaluation.
full_name: ERB#result
is_singleton: false
name: result
params: (b=TOPLEVEL_BINDING)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: StrictPrettyExample
includes: []

instance_methods: []

name: StrictPrettyExample
superclass: Test::Unit::TestCase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the handling of the ordering of options and arguments. A RuntimeError is raised if option processing has already started.
- !ruby/struct:SM::Flow::P 
  body: "The supplied value must be a member of GetoptLong::ORDERINGS. It alters the processing of options as follows:"
- !ruby/struct:SM::Flow::P 
  body: "<b>REQUIRE_ORDER</b> :"
- !ruby/struct:SM::Flow::P 
  body: Options are required to occur before non-options.
- !ruby/struct:SM::Flow::P 
  body: Processing of options ends as soon as a word is encountered that has not been preceded by an appropriate option flag.
- !ruby/struct:SM::Flow::P 
  body: For example, if -a and -b are options which do not take arguments, parsing command line arguments of '-a one -b two' would result in 'one', '-b', 'two' being left in ARGV, and only ('-a', '') being processed as an option/arg pair.
- !ruby/struct:SM::Flow::P 
  body: This is the default ordering, if the environment variable POSIXLY_CORRECT is set. (This is for compatibility with GNU getopt_long.)
- !ruby/struct:SM::Flow::P 
  body: "<b>PERMUTE</b> :"
- !ruby/struct:SM::Flow::P 
  body: Options can occur anywhere in the command line parsed. This is the default behavior.
- !ruby/struct:SM::Flow::P 
  body: Every sequence of words which can be interpreted as an option (with or without argument) is treated as an option; non-option words are skipped.
- !ruby/struct:SM::Flow::P 
  body: For example, if -a does not require an argument and -b optionally takes an argument, parsing '-a one -b two three' would result in ('-a','') and ('-b', 'two') being processed as option/arg pairs, and 'one','three' being left in ARGV.
- !ruby/struct:SM::Flow::P 
  body: If the ordering is set to PERMUTE but the environment variable POSIXLY_CORRECT is set, REQUIRE_ORDER is used instead. This is for compatibility with GNU getopt_long.
- !ruby/struct:SM::Flow::P 
  body: "<b>RETURN_IN_ORDER</b> :"
- !ruby/struct:SM::Flow::P 
  body: All words on the command line are processed as options. Words not preceded by a short or long option flag are passed as arguments with an option of '' (empty string).
- !ruby/struct:SM::Flow::P 
  body: For example, if -a requires an argument but -b does not, a command line of '-a one -b two three' would result in option/arg pairs of ('-a', 'one') ('-b', ''), ('', 'two'), ('', 'three') being processed.
full_name: GetoptLong#ordering=
is_singleton: false
name: ordering=
params: (ordering)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each"
full_name: GetoptLong#each_option
is_singleton: false
name: each_option
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Examine whether an option processing is failed.
  name: error
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Return ordering.
  name: ordering
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Set/Unset `quiet' mode.
  name: quiet
  rw: W
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Return the flag of `quiet' mode.
  name: quiet
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The GetoptLong class allows you to parse command line options similarly to the GNU getopt_long() C library call. Note, however, that GetoptLong is a pure Ruby implementation.
- !ruby/struct:SM::Flow::P 
  body: GetoptLong allows for POSIX-style options like <tt>--file</tt> as well as single letter options like <tt>-f</tt>
- !ruby/struct:SM::Flow::P 
  body: The empty option <tt>--</tt> (two minus symbols) is used to end option processing. This can be particularly important if options have optional arguments.
- !ruby/struct:SM::Flow::P 
  body: "Here is a simple example of usage:"
- !ruby/struct:SM::Flow::VERB 
  body: "    # == Synopsis\n    #\n    # hello: greets user, demonstrates command line parsing\n    #\n    # == Usage\n    #\n    # hello [OPTION] ... DIR\n    #\n    # -h, --help:\n    #    show help\n    #\n    # --repeat x, -n x:\n    #    repeat x times\n    #\n    # --name [name]:\n    #    greet user by name, if name not supplied default is John\n    #\n    # DIR: The directory in which to issue the greeting.\n\n    require 'getoptlong'\n    require 'rdoc/usage'\n\n    opts = GetoptLong.new(\n      [ '--help', '-h', GetoptLong::NO_ARGUMENT ],\n      [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],\n      [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]\n    )\n\n    dir = nil\n    name = nil\n    repetitions = 1\n    opts.each do |opt, arg|\n      case opt\n        when '--help'\n          RDoc::usage\n        when '--repeat'\n          repetitions = arg.to_i\n        when '--name'\n          if arg == ''\n            name = 'John'\n          else\n            name = arg\n          end\n      end\n    end\n\n    if ARGV.length != 1\n      puts &quot;Missing dir argument (try --help)&quot;\n      exit 0\n    end\n\n    dir = ARGV.shift\n\n    Dir.chdir(dir)\n    for i in (1..repetitions)\n      print &quot;Hello&quot;\n      if name\n        print &quot;, #{name}&quot;\n      end\n      puts\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: "Example command line:"
- !ruby/struct:SM::Flow::VERB 
  body: "    hello -n 6 --name -- /tmp\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Orderings.
  name: ORDERINGS
  value: "[REQUIRE_ORDER = 0, PERMUTE = 1, RETURN_IN_ORDER = 2]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Argument flags.
  name: ARGUMENT_FLAGS
  value: "[NO_ARGUMENT = 0, REQUIRED_ARGUMENT = 1,     OPTIONAL_ARGUMENT = 2]"
- !ruby/object:RI::Constant 
  comment: 
  name: STATUS_TERMINATED
  value: 0, 1, 2
full_name: GetoptLong
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_option
- !ruby/object:RI::MethodSummary 
  name: error_message
- !ruby/object:RI::MethodSummary 
  name: get
- !ruby/object:RI::MethodSummary 
  name: get_option
- !ruby/object:RI::MethodSummary 
  name: ordering=
- !ruby/object:RI::MethodSummary 
  name: set_error
- !ruby/object:RI::MethodSummary 
  name: set_options
- !ruby/object:RI::MethodSummary 
  name: terminate
- !ruby/object:RI::MethodSummary 
  name: terminated?
name: GetoptLong
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: GetoptLong::NeedlessArgument
includes: []

instance_methods: []

name: NeedlessArgument
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: get_option
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Get next option name and its argument, as an Array of two elements.
- !ruby/struct:SM::Flow::P 
  body: The option name is always converted to the first (preferred) name given in the original options to GetoptLong.new.
- !ruby/struct:SM::Flow::P 
  body: "Example: ['--option', 'value']"
- !ruby/struct:SM::Flow::P 
  body: Returns nil if the processing is complete (as determined by STATUS_TERMINATED).
full_name: GetoptLong#get
is_singleton: false
name: get
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: GetoptLong::MissingArgument
includes: []

instance_methods: []

name: MissingArgument
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error types.
constants: []

full_name: GetoptLong::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set options. Takes the same argument as GetoptLong.new.
- !ruby/struct:SM::Flow::P 
  body: Raises a RuntimeError if option processing has already started.
full_name: GetoptLong#set_options
is_singleton: false
name: set_options
params: (*arguments)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set up option processing.
- !ruby/struct:SM::Flow::P 
  body: "The options to support are passed to new() as an array of arrays. Each sub-array contains any number of String option names which carry the same meaning, and one of the following flags:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "GetoptLong::NO_ARGUMENT :"
    body: Option does not take an argument.
  - !ruby/struct:SM::Flow::LI 
    label: "GetoptLong::REQUIRED_ARGUMENT :"
    body: Option always takes an argument.
  - !ruby/struct:SM::Flow::LI 
    label: "GetoptLong::OPTIONAL_ARGUMENT :"
    body: Option may or may not take an argument.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: The first option name is considered to be the preferred (canonical) name. Other than that, the elements of each sub-array can be in any order.
full_name: GetoptLong::new
is_singleton: true
name: new
params: (*arguments)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set an error (protected).
full_name: GetoptLong#set_error
is_singleton: false
name: set_error
params: (type, message)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #get"
full_name: GetoptLong#get_option
is_singleton: false
name: get_option
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the appropriate error message in POSIX-defined format. If no error has occurred, returns nil.
full_name: GetoptLong#error_message
is_singleton: false
name: error_message
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each_option
block_params: option_name, option_argument
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterator version of `get'.
- !ruby/struct:SM::Flow::P 
  body: "The block is called repeatedly with two arguments: The first is the option name. The second is the argument which followed it (if any). Example: ('--opt', 'value')"
- !ruby/struct:SM::Flow::P 
  body: The option name is always converted to the first (preferred) name given in the original options to GetoptLong.new.
full_name: GetoptLong#each
is_singleton: false
name: each
params: () {|option_name, option_argument| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: GetoptLong::InvalidOption
includes: []

instance_methods: []

name: InvalidOption
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Explicitly terminate option processing.
full_name: GetoptLong#terminate
is_singleton: false
name: terminate
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if option processing has terminated, false otherwise.
full_name: GetoptLong#terminated?
is_singleton: false
name: terminated?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: GetoptLong::AmbigousOption
includes: []

instance_methods: []

name: AmbigousOption
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: IPSocket is the parent of TCPSocket and UDPSocket and implements functionality common to them.
- !ruby/struct:SM::Flow::P 
  body: "A number of APIs in IPSocket, Socket, and their descendants return an address as an array. The members of that array are:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "address family: A string like &quot;AF_INET&quot; or &quot;AF_INET6&quot; if it is one of the commonly used families, the string &quot;unknown:#&quot; (where `#' is the address family number) if it is not one of the common ones. The strings map to the Socket::AF_* constants."
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "port: The port number."
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "name: Either the canonical name from looking the address up in the DNS, or the address in presentation format"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "address: The address in presentation format (a dotted decimal string for IPv4, a hex string for IPv6)."
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: The address and port can be used directly to create sockets and to bind or connect them to the address.
constants: []

full_name: IPSocket
includes: []

instance_methods: []

name: IPSocket
superclass: BasicSocket
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: TSortHash
includes: []

instance_methods: []

name: TSortHash
superclass: Hash
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: class_names
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: true and false have the obvious meaning. nil means we don't care
  name: is_class_method
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: method_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Break argument into its constituent class or module names, an optional method type, and a method name
constants: []

full_name: NameDescriptor
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_class_name
name: NameDescriptor
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the full class name (with '::' between the components) or &quot;&quot; if there's no class name
full_name: NameDescriptor#full_class_name
is_singleton: false
name: full_class_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: arg may be
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: a class or module name (optionally qualified with other class or module names (Kernel, File::Stat etc)
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: a method name
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: a method name qualified by a optionally fully qualified class or module name
  type: :NUMBER
- !ruby/struct:SM::Flow::P 
  body: "We're fairly casual about delimiters: folks can say Kernel::puts, Kernel.puts, or Kernel\\#puts for example. There's one exception: if you say IO::read, we look for a class method, but if you say IO.read, we look for an instance method"
full_name: NameDescriptor::new
is_singleton: true
name: new
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RiDriver#report_class_stuff
is_singleton: false
name: report_class_stuff
params: (namespaces)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If the list of matching methods contains exactly one entry, or if it contains an entry that exactly matches the requested method, then display that entry, otherwise display the list of matching method names
full_name: RiDriver#report_method_stuff
is_singleton: false
name: report_method_stuff
params: (requested_method_name, methods)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RiDriver#get_info_for
is_singleton: false
name: get_info_for
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RiDriver::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RiDriver#process_args
is_singleton: false
name: process_args
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Couldn't find documentation in <tt>path</tt>, so tell the user what to do
full_name: RiDriver#report_missing_documentation
is_singleton: false
name: report_missing_documentation
params: (path)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: []

constants: []

full_name: RiDriver
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: get_info_for
- !ruby/object:RI::MethodSummary 
  name: process_args
- !ruby/object:RI::MethodSummary 
  name: report_class_stuff
- !ruby/object:RI::MethodSummary 
  name: report_method_stuff
- !ruby/object:RI::MethodSummary 
  name: report_missing_documentation
name: RiDriver
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if the given nth Enumerable object has reached the end. If no argument is given, returns true if any of the Enumerable objects has reached the end.
full_name: SyncEnumerator#end?
is_singleton: false
name: end?
params: (i = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of enumerated Enumerable objects, i.e. the size of each row.
full_name: SyncEnumerator#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: SyncEnumerator creates an Enumerable object from multiple Enumerable objects and enumerates them synchronously.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'generator'\n\n  s = SyncEnumerator.new([1,2,3], ['a', 'b', 'c'])\n\n  # Yields [1, 'a'], [2, 'b'], and [3,'c']\n  s.each { |row| puts row.join(', ') }\n"
constants: []

full_name: SyncEnumerator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: end?
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: size
name: SyncEnumerator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new SyncEnumerator which enumerates rows of given Enumerable objects.
full_name: SyncEnumerator::new
is_singleton: true
name: new
params: (*enums)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of enumerated Enumerable objects, i.e. the size of each row.
full_name: SyncEnumerator#length
is_singleton: false
name: length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ret
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enumerates rows of the Enumerable objects.
full_name: SyncEnumerator#each
is_singleton: false
name: each
params: () {|ret| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_lock
is_singleton: false
name: mu_lock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m::extend_object
is_singleton: true
name: extend_object
params: (obj)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_try_lock
is_singleton: false
name: mu_try_lock
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: define_aliases
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::P 
  body: "Extend an object and use it like a Mutex object:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;mutex_m.rb&quot;\n  obj = Object.new\n  obj.extend Mutex_m\n  # ...\n"
- !ruby/struct:SM::Flow::P 
  body: "Or, include Mutex_m in a class to have its instances behave like a Mutex object:"
- !ruby/struct:SM::Flow::VERB 
  body: "  class Foo\n    include Mutex_m\n    # ...\n  end\n\n  obj = Foo.new\n"
constants: []

full_name: Mutex_m
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: mu_extended
- !ruby/object:RI::MethodSummary 
  name: mu_initialize
- !ruby/object:RI::MethodSummary 
  name: mu_lock
- !ruby/object:RI::MethodSummary 
  name: mu_locked?
- !ruby/object:RI::MethodSummary 
  name: mu_synchronize
- !ruby/object:RI::MethodSummary 
  name: mu_try_lock
- !ruby/object:RI::MethodSummary 
  name: mu_unlock
name: Mutex_m
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m::append_features
is_singleton: true
name: append_features
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_locked?
is_singleton: false
name: mu_locked?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_initialize
is_singleton: false
name: mu_initialize
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_extended
is_singleton: false
name: mu_extended
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m#mu_unlock
is_singleton: false
name: mu_unlock
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Mutex_m::define_aliases
is_singleton: true
name: define_aliases
params: (cl)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: locking
full_name: Mutex_m#mu_synchronize
is_singleton: false
name: mu_synchronize
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return an array containing the values associated with the given keys. Also see <tt>Hash.select</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  h = { &quot;cat&quot; =&gt; &quot;feline&quot;, &quot;dog&quot; =&gt; &quot;canine&quot;, &quot;cow&quot; =&gt; &quot;bovine&quot; }\n  h.values_at(&quot;cow&quot;, &quot;cat&quot;)  #=&gt; [&quot;bovine&quot;, &quot;feline&quot;]\n"
full_name: Hash#values_at
is_singleton: false
name: values_at
params: |
  hsh.values_at(key, ...)   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Reference---Retrieves the <em>value</em> object corresponding to the <em>key</em> object. If not found, returns the a default value (see <tt>Hash::new</tt> for details).
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h[&quot;a&quot;]   #=&gt; 100\n   h[&quot;c&quot;]   #=&gt; nil\n"
full_name: Hash#[]
is_singleton: false
name: "[]"
params: |
  hsh[key]    =>  value

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given value is present for some key in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_value?(100)   #=&gt; true\n   h.has_value?(999)   #=&gt; false\n"
full_name: Hash#has_value?
is_singleton: false
name: has_value?
params: |
  hsh.has_value?(value)    => true or false
  hsh.value?(value)        => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the default value, the value returned for a key that does not exist in the hash. It is not possible to set the a default to a <tt>Proc</tt> that will be executed on each key lookup.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.default = &quot;Go fish&quot;\n   h[&quot;a&quot;]     #=&gt; 100\n   h[&quot;z&quot;]     #=&gt; &quot;Go fish&quot;\n   # This doesn't do what you might hope...\n   h.default = proc do |hash, key|\n     hash[key] = key + key\n   end\n   h[2]       #=&gt; #&lt;Proc:0x401b3948@-:6&gt;\n   h[&quot;cat&quot;]   #=&gt; #&lt;Proc:0x401b3948@-:6&gt;\n"
full_name: Hash#default=
is_singleton: false
name: default=
params: |
  hsh.default = obj     => hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of key-value pairs in the hash.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;d&quot; =&gt; 100, &quot;a&quot; =&gt; 200, &quot;v&quot; =&gt; 300, &quot;e&quot; =&gt; 400 }\n   h.length        #=&gt; 4\n   h.delete(&quot;a&quot;)   #=&gt; 200\n   h.length        #=&gt; 3\n"
full_name: Hash#size
is_singleton: false
name: size
params: |
  hsh.length    =>  fixnum
  hsh.size      =>  fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>hsh</em> to a nested array of <tt>[</tt> <em>key, value</em> <tt>]</tt> arrays.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;c&quot; =&gt; 300, &quot;a&quot; =&gt; 100, &quot;d&quot; =&gt; 400, &quot;c&quot; =&gt; 300  }\n   h.to_a   #=&gt; [[&quot;a&quot;, 100], [&quot;c&quot;, 300], [&quot;d&quot;, 400]]\n"
full_name: Hash#to_a
is_singleton: false
name: to_a
params: |
  hsh.to_a -> array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rebuilds the hash based on the current hash values for each key. If values of key objects have changed since they were inserted, this method will reindex <em>hsh</em>. If <tt>Hash#rehash</tt> is called while an iterator is traversing the hash, an <tt>IndexError</tt> will be raised in the iterator.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = [ &quot;a&quot;, &quot;b&quot; ]\n   c = [ &quot;c&quot;, &quot;d&quot; ]\n   h = { a =&gt; 100, c =&gt; 300 }\n   h[a]       #=&gt; 100\n   a[0] = &quot;z&quot;\n   h[a]       #=&gt; nil\n   h.rehash   #=&gt; {[&quot;z&quot;, &quot;b&quot;]=&gt;100, [&quot;c&quot;, &quot;d&quot;]=&gt;300}\n   h[a]       #=&gt; 100\n"
full_name: Hash#rehash
is_singleton: false
name: rehash
params: |
  hsh.rehash -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>hash</em> and <em>other</em> are both hashes with the same content.
full_name: Hash#eql?
is_singleton: false
name: eql?
params: |
  hash.eql?(other)  -> true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array consisting of <tt>[key,value]</tt> pairs for which the block returns true. Also see <tt>Hash.values_at</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200, &quot;c&quot; =&gt; 300 }\n   h.select {|k,v| k &gt; &quot;a&quot;}  #=&gt; [[&quot;b&quot;, 200], [&quot;c&quot;, 300]]\n   h.select {|k,v| v &lt; 200}  #=&gt; [[&quot;a&quot;, 100]]\n"
full_name: Hash#select
is_singleton: false
name: select
params: |
  hsh.select {|key, value| block}   => array

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A <tt>Hash</tt> is a collection of key-value pairs. It is similar to an <tt>Array</tt>, except that indexing is done via arbitrary keys of any object type, not an integer index. The order in which you traverse a hash by either key or value may seem arbitrary, and will generally not be in the insertion order.
- !ruby/struct:SM::Flow::P 
  body: Hashes have a <em>default value</em> that is returned when accessing keys that do not exist in the hash. By default, that value is <tt>nil</tt>.
- !ruby/struct:SM::Flow::P 
  body: <tt>Hash</tt> uses <tt>key.eql?</tt> to test keys for equality. If you need to use instances of your own classes as keys in a <tt>Hash</tt>, it is recommended that you define both the <tt>eql?</tt> and <tt>hash</tt> methods. The <tt>hash</tt> method must have the property that <tt>a.eql?(b)</tt> implies <tt>a.hash == b.hash</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  class MyClass\n    attr_reader :str\n    def initialize(str)\n      @str = str\n    end\n    def eql?(o)\n      o.is_a?(MyClass) &amp;&amp; str == o.str\n    end\n    def hash\n      @str.hash\n    end\n  end\n\n  a = MyClass.new(&quot;some string&quot;)\n  b = MyClass.new(&quot;some string&quot;)\n  a.eql? b  #=&gt; true\n\n  h = {}\n\n  h[a] = 1\n  h[a]      #=&gt; 1\n  h[b]      #=&gt; 1\n\n  h[b] = 2\n  h[a]      #=&gt; 2\n  h[b]      #=&gt; 2\n"
constants: []

full_name: Hash
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: default
- !ruby/object:RI::MethodSummary 
  name: default=
- !ruby/object:RI::MethodSummary 
  name: default_proc
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete_if
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_key
- !ruby/object:RI::MethodSummary 
  name: each_pair
- !ruby/object:RI::MethodSummary 
  name: each_value
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: has_key?
- !ruby/object:RI::MethodSummary 
  name: has_value?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: indexes
- !ruby/object:RI::MethodSummary 
  name: indices
- !ruby/object:RI::MethodSummary 
  name: initialize_copy
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: invert
- !ruby/object:RI::MethodSummary 
  name: key?
- !ruby/object:RI::MethodSummary 
  name: keys
- !ruby/object:RI::MethodSummary 
  name: length
- !ruby/object:RI::MethodSummary 
  name: member?
- !ruby/object:RI::MethodSummary 
  name: merge
- !ruby/object:RI::MethodSummary 
  name: merge!
- !ruby/object:RI::MethodSummary 
  name: pretty_print
- !ruby/object:RI::MethodSummary 
  name: pretty_print_cycle
- !ruby/object:RI::MethodSummary 
  name: rehash
- !ruby/object:RI::MethodSummary 
  name: reject
- !ruby/object:RI::MethodSummary 
  name: reject!
- !ruby/object:RI::MethodSummary 
  name: replace
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: shift
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: sort
- !ruby/object:RI::MethodSummary 
  name: store
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_hash
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: update
- !ruby/object:RI::MethodSummary 
  name: value?
- !ruby/object:RI::MethodSummary 
  name: values
- !ruby/object:RI::MethodSummary 
  name: values_at
- !ruby/object:RI::MethodSummary 
  name: yaml_initialize
name: Hash
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a value from the hash for the given key. If the key can't be found, there are several options: With no other arguments, it will raise an <tt>IndexError</tt> exception; if <em>default</em> is given, then that will be returned; if the optional code block is specified, then that will be run and its result returned."
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.fetch(&quot;a&quot;)                            #=&gt; 100\n   h.fetch(&quot;z&quot;, &quot;go fish&quot;)                 #=&gt; &quot;go fish&quot;\n   h.fetch(&quot;z&quot;) { |el| &quot;go fish, #{el}&quot;}   #=&gt; &quot;go fish, z&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: The following example shows that an exception is raised if the key is not found and a default value is not supplied.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.fetch(&quot;z&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:2:in `fetch': key not found (IndexError)\n    from prog.rb:2\n"
full_name: Hash#fetch
is_singleton: false
name: fetch
params: |
  hsh.fetch(key [, default] )       => obj
  hsh.fetch(key) {| key | block }   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the contents of <em>hsh</em> with the contents of <em>other_hash</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.replace({ &quot;c&quot; =&gt; 300, &quot;d&quot; =&gt; 400 })   #=&gt; {&quot;c&quot;=&gt;300, &quot;d&quot;=&gt;400}\n"
full_name: Hash#replace
is_singleton: false
name: replace
params: |
  hsh.replace(other_hash) -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes all key-value pairs from <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200}\n   h.clear                          #=&gt; {}\n"
full_name: Hash#clear
is_singleton: false
name: clear
params: |
  hsh.clear -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given key is present in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_key?(&quot;a&quot;)   #=&gt; true\n   h.has_key?(&quot;z&quot;)   #=&gt; false\n"
full_name: Hash#include?
is_singleton: false
name: include?
params: |
  hsh.has_key?(key)    => true or false
  hsh.include?(key)    => true or false
  hsh.key?(key)        => true or false
  hsh.member?(key)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given key is present in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_key?(&quot;a&quot;)   #=&gt; true\n   h.has_key?(&quot;z&quot;)   #=&gt; false\n"
full_name: Hash#key?
is_singleton: false
name: key?
params: |
  hsh.has_key?(key)    => true or false
  hsh.include?(key)    => true or false
  hsh.key?(key)        => true or false
  hsh.member?(key)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Hash#yaml_initialize
is_singleton: false
name: yaml_initialize
params: ( tag, val )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Same as <tt>Hash#delete_if</tt>, but works on (and returns) a copy of the <em>hsh</em>. Equivalent to <tt><em>hsh</em>.dup.delete_if</tt>.
full_name: Hash#reject
is_singleton: false
name: reject
params: |
  hsh.reject {| key, value | block }  -> a_hash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the contents of <em>other_hash</em> to <em>hsh</em>. If no block is specified entries with duplicate keys are overwritten with the values from <em>other_hash</em>, otherwise the value of each duplicate key is determined by calling the block with the key, its value in <em>hsh</em> and its value in <em>other_hash</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h1 = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h2 = { &quot;b&quot; =&gt; 254, &quot;c&quot; =&gt; 300 }\n   h1.merge!(h2)   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;254, &quot;c&quot;=&gt;300}\n\n   h1 = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h2 = { &quot;b&quot; =&gt; 254, &quot;c&quot; =&gt; 300 }\n   h1.merge!(h2) { |key, v1, v2| v1 }\n                   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200, &quot;c&quot;=&gt;300}\n"
full_name: Hash#update
is_singleton: false
name: update
params: |
  hsh.merge!(other_hash)                                 => hsh
  hsh.update(other_hash)                                 => hsh
  hsh.merge!(other_hash){|key, oldval, newval| block}    => hsh
  hsh.update(other_hash){|key, oldval, newval| block}    => hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equality---Two hashes are equal if they each contain the same number of keys and if each key-value pair is equal to (according to <tt>Object#==</tt>) the corresponding elements in the other hash.
- !ruby/struct:SM::Flow::VERB 
  body: "   h1 = { &quot;a&quot; =&gt; 1, &quot;c&quot; =&gt; 2 }\n   h2 = { 7 =&gt; 35, &quot;c&quot; =&gt; 2, &quot;a&quot; =&gt; 1 }\n   h3 = { &quot;a&quot; =&gt; 1, &quot;c&quot; =&gt; 2, 7 =&gt; 35 }\n   h4 = { &quot;a&quot; =&gt; 1, &quot;d&quot; =&gt; 2, &quot;f&quot; =&gt; 35 }\n   h1 == h2   #=&gt; false\n   h2 == h3   #=&gt; true\n   h3 == h4   #=&gt; false\n"
full_name: Hash#==
is_singleton: false
name: ==
params: |
  hsh == other_hash    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each key in <em>hsh</em>, passing the value as a parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.each_value {|value| puts value }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   100\n   200\n"
full_name: Hash#each_value
is_singleton: false
name: each_value
params: |
  hsh.each_value {| value | block } -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Assignment---Associates the value given by <em>value</em> with the key given by <em>key</em>. <em>key</em> should not have its value changed while it is in use as a key (a <tt>String</tt> passed as a key will be duplicated and frozen).
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h[&quot;a&quot;] = 9\n   h[&quot;c&quot;] = 4\n   h   #=&gt; {&quot;a&quot;=&gt;9, &quot;b&quot;=&gt;200, &quot;c&quot;=&gt;4}\n"
full_name: Hash#store
is_singleton: false
name: store
params: |
  hsh[key] = value        => value
  hsh.store(key, value)   => value

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <em>self</em>.
full_name: Hash#to_hash
is_singleton: false
name: to_hash
params: |
  hsh.to_hash   => hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the contents of this hash as a string.
full_name: Hash#inspect
is_singleton: false
name: inspect
params: |
  hsh.inspect  => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each key in <em>hsh</em>, passing the key as a parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.each_key {|key| puts key }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   a\n   b\n"
full_name: Hash#each_key
is_singleton: false
name: each_key
params: |
  hsh.each_key {| key | block } -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Replaces the contents of <em>hsh</em> with the contents of <em>other_hash</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.replace({ &quot;c&quot; =&gt; 300, &quot;d&quot; =&gt; 400 })   #=&gt; {&quot;c&quot;=&gt;300, &quot;d&quot;=&gt;400}\n"
full_name: Hash#initialize_copy
is_singleton: false
name: initialize_copy
params: |
  hsh.replace(other_hash) -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the contents of <em>other_hash</em> to <em>hsh</em>. If no block is specified entries with duplicate keys are overwritten with the values from <em>other_hash</em>, otherwise the value of each duplicate key is determined by calling the block with the key, its value in <em>hsh</em> and its value in <em>other_hash</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h1 = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h2 = { &quot;b&quot; =&gt; 254, &quot;c&quot; =&gt; 300 }\n   h1.merge!(h2)   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;254, &quot;c&quot;=&gt;300}\n\n   h1 = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h2 = { &quot;b&quot; =&gt; 254, &quot;c&quot; =&gt; 300 }\n   h1.merge!(h2) { |key, v1, v2| v1 }\n                   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200, &quot;c&quot;=&gt;300}\n"
full_name: Hash#merge!
is_singleton: false
name: merge!
params: |
  hsh.merge!(other_hash)                                 => hsh
  hsh.update(other_hash)                                 => hsh
  hsh.merge!(other_hash){|key, oldval, newval| block}    => hsh
  hsh.update(other_hash){|key, oldval, newval| block}    => hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compute a hash-code for this array. Two arrays with the same content will have the same hash code (and will compare using <tt>eql?</tt>).
full_name: Hash#hash
is_singleton: false
name: hash
params: |
  array.hash   -> fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes every key-value pair from <em>hsh</em> for which <em>block</em> evaluates to <tt>true</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200, &quot;c&quot; =&gt; 300 }\n   h.delete_if {|key, value| key &gt;= &quot;b&quot; }   #=&gt; {&quot;a&quot;=&gt;100}\n"
full_name: Hash#delete_if
is_singleton: false
name: delete_if
params: |
  hsh.delete_if {| key, value | block }  -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>hsh</em> contains no key-value pairs.
- !ruby/struct:SM::Flow::VERB 
  body: "   {}.empty?   #=&gt; true\n"
full_name: Hash#empty?
is_singleton: false
name: empty?
params: |
  hsh.empty?    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a key-value pair from <em>hsh</em> and returns it as the two-item array <tt>[</tt> <em>key, value</em> <tt>]</tt>, or the hash's default value if the hash is empty.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { 1 =&gt; &quot;a&quot;, 2 =&gt; &quot;b&quot;, 3 =&gt; &quot;c&quot; }\n   h.shift   #=&gt; [1, &quot;a&quot;]\n   h         #=&gt; {2=&gt;&quot;b&quot;, 3=&gt;&quot;c&quot;}\n"
full_name: Hash#shift
is_singleton: false
name: shift
params: |
  hsh.shift -> anArray or obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new, empty hash. If this hash is subsequently accessed by a key that doesn't correspond to a hash entry, the value returned depends on the style of <tt>new</tt> used to create the hash. In the first form, the access returns <tt>nil</tt>. If <em>obj</em> is specified, this single object will be used for all <em>default values</em>. If a block is specified, it will be called with the hash object and the key, and should return the default value. It is the block's responsibility to store the value in the hash if required.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = Hash.new(&quot;Go Fish&quot;)\n   h[&quot;a&quot;] = 100\n   h[&quot;b&quot;] = 200\n   h[&quot;a&quot;]           #=&gt; 100\n   h[&quot;c&quot;]           #=&gt; &quot;Go Fish&quot;\n   # The following alters the single default object\n   h[&quot;c&quot;].upcase!   #=&gt; &quot;GO FISH&quot;\n   h[&quot;d&quot;]           #=&gt; &quot;GO FISH&quot;\n   h.keys           #=&gt; [&quot;a&quot;, &quot;b&quot;]\n\n   # While this creates a new default object each time\n   h = Hash.new { |hash, key| hash[key] = &quot;Go Fish: #{key}&quot; }\n   h[&quot;c&quot;]           #=&gt; &quot;Go Fish: c&quot;\n   h[&quot;c&quot;].upcase!   #=&gt; &quot;GO FISH: C&quot;\n   h[&quot;d&quot;]           #=&gt; &quot;Go Fish: d&quot;\n   h.keys           #=&gt; [&quot;c&quot;, &quot;d&quot;]\n"
full_name: Hash::new
is_singleton: true
name: new
params: |
  Hash.new                          => hash
  Hash.new(obj)                     => aHash
  Hash.new {|hash, key| block }     => aHash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Hash#pretty_print_cycle
is_singleton: false
name: pretty_print_cycle
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to <tt>Hash#delete_if</tt>, but returns <tt>nil</tt> if no changes were made.
full_name: Hash#reject!
is_singleton: false
name: reject!
params: |
  hsh.reject! {| key, value | block }  -> hsh or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deprecated in favor of <tt>Hash#select</tt>.
full_name: Hash#indexes
is_singleton: false
name: indexes
params: |
  hsh.indexes(key, ...)    => array
  hsh.indices(key, ...)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new hash populated with the given objects. Equivalent to the literal <tt>{ <em>key</em>, <em>value</em>, ... }</tt>. Keys and values occur in pairs, so there must be an even number of arguments.
- !ruby/struct:SM::Flow::VERB 
  body: "   Hash[&quot;a&quot;, 100, &quot;b&quot;, 200]       #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200}\n   Hash[&quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200]   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200}\n   { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }     #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200}\n"
full_name: Hash::[]
is_singleton: true
name: "[]"
params: |
  Hash[ [key =>|, value]* ]   => hash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new hash containing the contents of <em>other_hash</em> and the contents of <em>hsh</em>, overwriting entries in <em>hsh</em> with duplicate keys with those from <em>other_hash</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h1 = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h2 = { &quot;b&quot; =&gt; 254, &quot;c&quot; =&gt; 300 }\n   h1.merge(h2)   #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;254, &quot;c&quot;=&gt;300}\n   h1             #=&gt; {&quot;a&quot;=&gt;100, &quot;b&quot;=&gt;200}\n"
full_name: Hash#merge
is_singleton: false
name: merge
params: |
  hsh.merge(other_hash)                              -> a_hash
  hsh.merge(other_hash){|key, oldval, newval| block} -> a_hash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given key is present in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_key?(&quot;a&quot;)   #=&gt; true\n   h.has_key?(&quot;z&quot;)   #=&gt; false\n"
full_name: Hash#member?
is_singleton: false
name: member?
params: |
  hsh.has_key?(key)    => true or false
  hsh.include?(key)    => true or false
  hsh.key?(key)        => true or false
  hsh.member?(key)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of key-value pairs in the hash.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;d&quot; =&gt; 100, &quot;a&quot; =&gt; 200, &quot;v&quot; =&gt; 300, &quot;e&quot; =&gt; 400 }\n   h.length        #=&gt; 4\n   h.delete(&quot;a&quot;)   #=&gt; 200\n   h.length        #=&gt; 3\n"
full_name: Hash#length
is_singleton: false
name: length
params: |
  hsh.length    =>  fixnum
  hsh.size      =>  fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes and returns a key-value pair from <em>hsh</em> whose key is equal to <em>key</em>. If the key is not found, returns <tt>nil</tt>. If the optional code block is given and the key is not found, pass in the key and return the result of <em>block</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.delete(&quot;a&quot;)                              #=&gt; 100\n   h.delete(&quot;z&quot;)                              #=&gt; nil\n   h.delete(&quot;z&quot;) { |el| &quot;#{el} not found&quot; }   #=&gt; &quot;z not found&quot;\n"
full_name: Hash#delete
is_singleton: false
name: delete
params: |
  hsh.delete(key)                   => value
  hsh.delete(key) {| key | block }  => value

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>hsh</em> to a string by converting the hash to an array of <tt>[</tt> <em>key, value</em> <tt>]</tt> pairs and then converting that array to a string using <tt>Array#join</tt> with the default separator.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;c&quot; =&gt; 300, &quot;a&quot; =&gt; 100, &quot;d&quot; =&gt; 400, &quot;c&quot; =&gt; 300  }\n   h.to_s   #=&gt; &quot;a100c300d400&quot;\n"
full_name: Hash#to_s
is_singleton: false
name: to_s
params: |
  hsh.to_s   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each key in <em>hsh</em>, passing the key and value to the block as a two-element array. Because of the assignment semantics of block parameters, these elements will be split out if the block has two formal parameters. Also see <tt>Hash.each_pair</tt>, which will be marginally more efficient for blocks with two parameters.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.each {|key, value| puts &quot;#{key} is #{value}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   a is 100\n   b is 200\n"
full_name: Hash#each
is_singleton: false
name: each
params: |
  hsh.each {| key, value | block } -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: If <tt>Hash::new</tt> was invoked with a block, return that block, otherwise return <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = Hash.new {|h,k| h[k] = k*k }   #=&gt; {}\n   p = h.default_proc                 #=&gt; #&lt;Proc:0x401b3d08@-:1&gt;\n   a = []                             #=&gt; []\n   p.call(a, 2)\n   a                                  #=&gt; [nil, nil, 4]\n"
full_name: Hash#default_proc
is_singleton: false
name: default_proc
params: |
  hsh.default_proc -> anObject

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the default value, the value that would be returned by <em>hsh</em>[<em>key</em>] if <em>key</em> did not exist in <em>hsh</em>. See also <tt>Hash::new</tt> and <tt>Hash#default=</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = Hash.new                            #=&gt; {}\n   h.default                               #=&gt; nil\n   h.default(2)                            #=&gt; nil\n\n   h = Hash.new(&quot;cat&quot;)                     #=&gt; {}\n   h.default                               #=&gt; &quot;cat&quot;\n   h.default(2)                            #=&gt; &quot;cat&quot;\n\n   h = Hash.new {|h,k| h[k] = k.to_i*10}   #=&gt; {}\n   h.default                               #=&gt; nil\n   h.default(2)                            #=&gt; 20\n"
full_name: Hash#default
is_singleton: false
name: default
params: |
  hsh.default(key=nil)   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Hash#pretty_print
is_singleton: false
name: pretty_print
params: (q)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given value is present for some key in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_value?(100)   #=&gt; true\n   h.has_value?(999)   #=&gt; false\n"
full_name: Hash#value?
is_singleton: false
name: value?
params: |
  hsh.has_value?(value)    => true or false
  hsh.value?(value)        => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given key is present in <em>hsh</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.has_key?(&quot;a&quot;)   #=&gt; true\n   h.has_key?(&quot;z&quot;)   #=&gt; false\n"
full_name: Hash#has_key?
is_singleton: false
name: has_key?
params: |
  hsh.has_key?(key)    => true or false
  hsh.include?(key)    => true or false
  hsh.key?(key)        => true or false
  hsh.member?(key)     => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Hash#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deprecated in favor of <tt>Hash#select</tt>.
full_name: Hash#indices
is_singleton: false
name: indices
params: |
  hsh.indexes(key, ...)    => array
  hsh.indices(key, ...)    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array populated with the values from <em>hsh</em>. See also <tt>Hash#keys</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200, &quot;c&quot; =&gt; 300 }\n   h.values   #=&gt; [100, 200, 300]\n"
full_name: Hash#values
is_singleton: false
name: values
params: |
  hsh.values    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the key for a given value. If not found, returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.index(200)   #=&gt; &quot;b&quot;\n   h.index(999)   #=&gt; nil\n"
full_name: Hash#index
is_singleton: false
name: index
params: |
  hsh.index(value)    => key

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new hash created by using <em>hsh</em>'s values as keys, and the keys as values.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;n&quot; =&gt; 100, &quot;m&quot; =&gt; 100, &quot;y&quot; =&gt; 300, &quot;d&quot; =&gt; 200, &quot;a&quot; =&gt; 0 }\n   h.invert   #=&gt; {0=&gt;&quot;a&quot;, 100=&gt;&quot;n&quot;, 200=&gt;&quot;d&quot;, 300=&gt;&quot;y&quot;}\n"
full_name: Hash#invert
is_singleton: false
name: invert
params: |
  hsh.invert -> aHash

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a new array populated with the keys from this hash. See also <tt>Hash#values</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200, &quot;c&quot; =&gt; 300, &quot;d&quot; =&gt; 400 }\n   h.keys   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]\n"
full_name: Hash#keys
is_singleton: false
name: keys
params: |
  hsh.keys    => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls <em>block</em> once for each key in <em>hsh</em>, passing the key and value as parameters.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h.each_pair {|key, value| puts &quot;#{key} is #{value}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   a is 100\n   b is 200\n"
full_name: Hash#each_pair
is_singleton: false
name: each_pair
params: |
  hsh.each_pair {| key_value_array | block } -> hsh

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts <em>hsh</em> to a nested array of <tt>[</tt> <em>key, value</em> <tt>]</tt> arrays and sorts it, using <tt>Array#sort</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 20, &quot;b&quot; =&gt; 30, &quot;c&quot; =&gt; 10  }\n   h.sort                       #=&gt; [[&quot;a&quot;, 20], [&quot;b&quot;, 30], [&quot;c&quot;, 10]]\n   h.sort {|a,b| a[1]&lt;=&gt;b[1]}   #=&gt; [[&quot;c&quot;, 10], [&quot;a&quot;, 20], [&quot;b&quot;, 30]]\n"
full_name: Hash#sort
is_singleton: false
name: sort
params: |
  hsh.sort                    => array
  hsh.sort {| a, b | block }  => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Element Assignment---Associates the value given by <em>value</em> with the key given by <em>key</em>. <em>key</em> should not have its value changed while it is in use as a key (a <tt>String</tt> passed as a key will be duplicated and frozen).
- !ruby/struct:SM::Flow::VERB 
  body: "   h = { &quot;a&quot; =&gt; 100, &quot;b&quot; =&gt; 200 }\n   h[&quot;a&quot;] = 9\n   h[&quot;c&quot;] = 4\n   h   #=&gt; {&quot;a&quot;=&gt;9, &quot;b&quot;=&gt;200, &quot;c&quot;=&gt;4}\n"
full_name: Hash#[]=
is_singleton: false
name: "[]="
params: |
  hsh[key] = value        => value
  hsh.store(key, value)   => value

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates HTTP request object.
full_name: Net::HTTPRequest::new
is_singleton: true
name: new
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: HTTP request class. This class wraps request header and entity path. You <b>must</b> use its subclass, Net::HTTP::Get, Post, Head.
constants: []

full_name: Net::HTTPRequest
includes: []

instance_methods: []

name: HTTPRequest
superclass: HTTPGenericRequest
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtocolError
includes: []

instance_methods: []

name: ProtocolError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a fatal SMTP error (error code 5xx, except for 500)
constants: []

full_name: Net::SMTPFatalError
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPFatalError
superclass: ProtoFatalError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ReadAdapter
includes: []

instance_methods: []

name: ReadAdapter
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Non-authentication POP3 protocol error (reply code &quot;-ERR&quot;, except authentication).
constants: []

full_name: Net::POPError
includes: []

instance_methods: []

name: POPError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Unexpected response from the server.
constants: []

full_name: Net::POPBadResponse
includes: []

instance_methods: []

name: POPBadResponse
superclass: POPError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoSyntaxError
includes: []

instance_methods: []

name: ProtoSyntaxError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::POP3Command
includes: []

instance_methods: []

name: POP3Command
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::MessageSet
includes: []

instance_methods: []

name: MessageSet
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Obsolete: use <tt>subtype</tt> instead. Calling this will generate a warning message to <tt>stderr</tt>, then return the value of <tt>subtype</tt>."
full_name: Net::IMAP::BodyTypeMultipart#media_subtype
is_singleton: false
name: media_subtype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::BodyTypeMultipart#multipart?
is_singleton: false
name: multipart?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP::BodyTypeMultipart represents multipart body structures of messages.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: "Fields:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "media_type:"
    body: Returns the content media type name as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "subtype:"
    body: Returns the content subtype name as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "parts:"
    body: Returns multiple parts.
  - !ruby/struct:SM::Flow::LI 
    label: "param:"
    body: Returns a hash that represents parameters as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "disposition:"
    body: Returns a Net::IMAP::ContentDisposition object giving the content disposition.
  - !ruby/struct:SM::Flow::LI 
    label: "language:"
    body: Returns a string or an array of strings giving the body language value as defined in [LANGUAGE-TAGS].
  - !ruby/struct:SM::Flow::LI 
    label: "extension:"
    body: Returns extension data.
  - !ruby/struct:SM::Flow::LI 
    label: "multipart?:"
    body: Returns true.
  type: :NOTE
constants: []

full_name: Net::IMAP::BodyTypeMultipart
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: media_subtype
- !ruby/object:RI::MethodSummary 
  name: multipart?
name: BodyTypeMultipart
superclass: Struct.new(:media_type, :subtype,                                          :parts,                                          :param, :disposition, :language,                                          :extension)
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a UNSUBSCRIBE command to remove the specified <tt>mailbox</tt> name from the server's set of &quot;active&quot; or &quot;subscribed&quot; mailboxes.
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if <tt>mailbox</tt> cannot be unsubscribed from, for instance because the client is not currently subscribed to it.
full_name: Net::IMAP#unsubscribe
is_singleton: false
name: unsubscribe
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #search(), but returns unique identifiers."
full_name: Net::IMAP#uid_search
is_singleton: false
name: uid_search
params: (keys, charset = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#fetch_internal
is_singleton: false
name: fetch_internal
params: (cmd, set, attr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes the response handler.
full_name: Net::IMAP#remove_response_handler
is_singleton: false
name: remove_response_handler
params: (handler)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the debug mode.
full_name: Net::IMAP::debug
is_singleton: true
name: debug
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#get_response
is_singleton: false
name: get_response
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a SELECT command to select a <tt>mailbox</tt> so that messages in the <tt>mailbox</tt> can be accessed.
- !ruby/struct:SM::Flow::P 
  body: "After you have selected a mailbox, you may retrieve the number of items in that mailbox from @responses[&quot;EXISTS&quot;][-1], and the number of recent messages from @responses[&quot;RECENT&quot;][-1]. Note that these values can change if new messages arrive during a session; see #add_response_handler() for a way of detecting this event."
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if the mailbox does not exist or is for some reason non-selectable.
full_name: Net::IMAP#select
is_singleton: false
name: select
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a STATUS command, and returns the status of the indicated <tt>mailbox</tt>. <tt>attr</tt> is a list of one or more attributes that we are request the status of. Supported attributes include:"
- !ruby/struct:SM::Flow::VERB 
  body: "  MESSAGES:: the number of messages in the mailbox.\n  RECENT:: the number of recent messages in the mailbox.\n  UNSEEN:: the number of unseen messages in the mailbox.\n"
- !ruby/struct:SM::Flow::P 
  body: "The return value is a hash of attributes. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p imap.status(&quot;inbox&quot;, [&quot;MESSAGES&quot;, &quot;RECENT&quot;])\n  #=&gt; {&quot;RECENT&quot;=&gt;0, &quot;MESSAGES&quot;=&gt;44}\n"
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if status values for <tt>mailbox</tt> cannot be returned, for instance because it does not exist.
full_name: Net::IMAP#status
is_singleton: false
name: status
params: (mailbox, attr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#receive_responses
is_singleton: false
name: receive_responses
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a NOOP command to the server. It does nothing.
full_name: Net::IMAP#noop
is_singleton: false
name: noop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a FETCH command to retrieve data associated with a message in the mailbox. The <tt>set</tt> parameter is a number or an array of numbers or a Range object. The number is a message sequence number. <tt>attr</tt> is a list of attributes to fetch; see the documentation for Net::IMAP::FetchData for a list of valid attributes. The return value is an array of Net::IMAP::FetchData. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p imap.fetch(6..8, &quot;UID&quot;)\n  #=&gt; [#&lt;Net::IMAP::FetchData seqno=6, attr={&quot;UID&quot;=&gt;98}&gt;, \\\n       #&lt;Net::IMAP::FetchData seqno=7, attr={&quot;UID&quot;=&gt;99}&gt;, \\\n       #&lt;Net::IMAP::FetchData seqno=8, attr={&quot;UID&quot;=&gt;100}&gt;]\n  p imap.fetch(6, &quot;BODY[HEADER.FIELDS (SUBJECT)]&quot;)\n  #=&gt; [#&lt;Net::IMAP::FetchData seqno=6, attr={&quot;BODY[HEADER.FIELDS (SUBJECT)]&quot;=&gt;&quot;Subject: test\\r\\n\\r\\n&quot;}&gt;]\n  data = imap.uid_fetch(98, [&quot;RFC822.SIZE&quot;, &quot;INTERNALDATE&quot;])[0]\n  p data.seqno\n  #=&gt; 6\n  p data.attr[&quot;RFC822.SIZE&quot;]\n  #=&gt; 611\n  p data.attr[&quot;INTERNALDATE&quot;]\n  #=&gt; &quot;12-Oct-2000 22:40:59 +0900&quot;\n  p data.attr[&quot;UID&quot;]\n  #=&gt; 98\n"
full_name: Net::IMAP#fetch
is_singleton: false
name: fetch
params: (set, attr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a APPEND command to append the <tt>message</tt> to the end of the <tt>mailbox</tt>. The optional <tt>flags</tt> argument is an array of flags to initially passing to the new message. The optional <tt>date_time</tt> argument specifies the creation time to assign to the new message; it defaults to the current time. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  imap.append(&quot;inbox&quot;, &lt;&lt;EOF.gsub(/\\n/, &quot;\\r\\n&quot;), [:Seen], Time.now)\n  Subject: hello\n  From: shugo@ruby-lang.org\n  To: shugo@ruby-lang.org\n\n  hello world\n  EOF\n"
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if the mailbox does not exist (it is not created automatically), or if the flags, date_time, or message arguments contain errors.
full_name: Net::IMAP#append
is_singleton: false
name: append
params: (mailbox, message, flags = nil, date_time = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#pick_up_tagged_response
is_singleton: false
name: pick_up_tagged_response
params: (tag)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Encode a string from UTF-8 format to modified UTF-7.
full_name: Net::IMAP::encode_utf7
is_singleton: true
name: encode_utf7
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#thread_internal
is_singleton: false
name: thread_internal
params: (cmd, algorithm, search_keys, charset)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a COPY command to copy the specified message(s) to the end of the specified destination <tt>mailbox</tt>. The <tt>set</tt> parameter is a number or an array of numbers or a Range object. The number is a message sequence number.
full_name: Net::IMAP#copy
is_singleton: false
name: copy
params: (set, mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_symbol_data
is_singleton: false
name: send_symbol_data
params: (symbol)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Superclass of IMAP errors.
constants: []

full_name: Net::IMAP::Error
includes: []

instance_methods: []

name: Error
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a RENAME command to change the name of the <tt>mailbox</tt> to <tt>newname</tt>.
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if a mailbox with the name <tt>mailbox</tt> cannot be renamed to <tt>newname</tt> for whatever reason; for instance, because <tt>mailbox</tt> does not exist, or because there is already a mailbox with the name <tt>newname</tt>.
full_name: Net::IMAP#rename
is_singleton: false
name: rename
params: (mailbox, newname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #thread(), but returns unique identifiers instead of message sequence numbers."
full_name: Net::IMAP#uid_thread
is_singleton: false
name: uid_thread
params: (algorithm, search_keys, charset)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised upon a &quot;BYE&quot; response from the server, indicating that the client is not being allowed to login, or has been timed out due to inactivity.
constants: []

full_name: Net::IMAP::ByeResponseError
includes: []

instance_methods: []

name: ByeResponseError
superclass: ResponseError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::QuotedString
includes: []

instance_methods: []

name: QuotedString
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a LSUB command, and returns a subset of names from the set of names that the user has declared as being &quot;active&quot; or &quot;subscribed&quot;. <tt>refname</tt> and <tt>mailbox</tt> are interpreted as for #list(). The return value is an array of +Net::IMAP::MailboxList+."
full_name: Net::IMAP#lsub
is_singleton: false
name: lsub
params: (refname, mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Decode a string from modified UTF-7 format to UTF-8.
- !ruby/struct:SM::Flow::P 
  body: UTF-7 is a 7-bit encoding of Unicode [UTF7]. IMAP uses a slightly modified version of this to encode mailbox names containing non-ASCII characters; see [IMAP] section 5.1.3.
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP does <em>not</em> automatically encode and decode mailbox names to and from utf7.
full_name: Net::IMAP::decode_utf7
is_singleton: true
name: decode_utf7
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds an authenticator for Net::IMAP#authenticate. <tt>auth_type</tt> is the type of authentication this authenticator supports (for instance, &quot;LOGIN&quot;). The <tt>authenticator</tt> is an object which defines a process() method to handle authentication with the server. See Net::IMAP::LoginAuthenticator and Net::IMAP::CramMD5Authenticator for examples.
- !ruby/struct:SM::Flow::P 
  body: If <tt>auth_type</tt> refers to an existing authenticator, it will be replaced by the new one.
full_name: Net::IMAP::add_authenticator
is_singleton: true
name: add_authenticator
params: (auth_type, authenticator)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_number_data
is_singleton: false
name: send_number_data
params: (num)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a STORE command to alter data associated with messages in the mailbox, in particular their flags. The <tt>set</tt> parameter is a number or an array of numbers or a Range object. Each number is a message sequence number. <tt>attr</tt> is the name of a data item to store: 'FLAGS' means to replace the message's flag list with the provided one; '+FLAGS' means to add the provided flags; and '-FLAGS' means to remove them. <tt>flags</tt> is a list of flags."
- !ruby/struct:SM::Flow::P 
  body: "The return value is an array of Net::IMAP::FetchData. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p imap.store(6..8, &quot;+FLAGS&quot;, [:Deleted])\n  #=&gt; [#&lt;Net::IMAP::FetchData seqno=6, attr={&quot;FLAGS&quot;=&gt;[:Seen, :Deleted]}&gt;, \\\n       #&lt;Net::IMAP::FetchData seqno=7, attr={&quot;FLAGS&quot;=&gt;[:Seen, :Deleted]}&gt;, \\\n       #&lt;Net::IMAP::FetchData seqno=8, attr={&quot;FLAGS&quot;=&gt;[:Seen, :Deleted]}&gt;]\n"
full_name: Net::IMAP#store
is_singleton: false
name: store
params: (set, attr, flags)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::RawData
includes: []

instance_methods: []

name: RawData
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #search(), but returns message sequence numbers in threaded format, as a Net::IMAP::ThreadMember tree. The supported algorithms are:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "ORDEREDSUBJECT:"
    body: split into single-level threads according to subject, ordered by date.
  - !ruby/struct:SM::Flow::LI 
    label: "REFERENCES:"
    body: split into threads by parent/child relationships determined by which message is a reply to which.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: "Unlike #search(), <tt>charset</tt> is a required argument. US-ASCII and UTF-8 are sample values."
- !ruby/struct:SM::Flow::P 
  body: See [SORT-THREAD-EXT] for more details.
full_name: Net::IMAP#thread
is_singleton: false
name: thread
params: (algorithm, search_keys, charset)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::ResponseParser
includes: []

instance_methods: []

name: ResponseParser
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::u8tou16
is_singleton: true
name: u8tou16
params: (s)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised when a response from the server is non-parseable.
constants: []

full_name: Net::IMAP::ResponseParseError
includes: []

instance_methods: []

name: ResponseParseError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#normalize_searching_criteria
is_singleton: false
name: normalize_searching_criteria
params: (keys)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a EXPUNGE command to permanently remove from the currently selected mailbox all messages that have the \Deleted flag set.
full_name: Net::IMAP#expunge
is_singleton: false
name: expunge
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a CHECK command to request a checkpoint of the currently selected mailbox. This performs implementation-specific housekeeping, for instance, reconciling the mailbox's in-memory and on-disk state.
full_name: Net::IMAP#check
is_singleton: false
name: check
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_data
is_singleton: false
name: send_data
params: (data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#copy_internal
is_singleton: false
name: copy_internal
params: (cmd, set, mailbox)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds a response handler. For example, to detect when the server sends us a new EXISTS response (which normally indicates new messages being added to the mail box), you could add the following handler after selecting the mailbox.
- !ruby/struct:SM::Flow::VERB 
  body: "  imap.add_response_handler { |resp|\n    if resp.kind_of?(Net::IMAP::UntaggedResponse) and resp.name == &quot;EXISTS&quot;\n      puts &quot;Mailbox now has #{resp.data} messages&quot;\n    end\n  }\n"
full_name: Net::IMAP#add_response_handler
is_singleton: false
name: add_response_handler
params: (handler = Proc.new)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #copy(), but <tt>set</tt> contains unique identifiers."
full_name: Net::IMAP#uid_copy
is_singleton: false
name: uid_copy
params: (set, mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends an AUTHENTICATE command to authenticate the client. The <tt>auth_type</tt> parameter is a string that represents the authentication mechanism to be used. Currently Net::IMAP supports authentication mechanisms:"
- !ruby/struct:SM::Flow::VERB 
  body: "  LOGIN:: login using cleartext user and password.\n  CRAM-MD5:: login with cleartext user and encrypted password\n             (see [RFC-2195] for a full description).  This\n             mechanism requires that the server have the user's\n             password stored in clear-text password.\n"
- !ruby/struct:SM::Flow::P 
  body: "For both these mechanisms, there should be two <tt>args</tt>: username and (cleartext) password. A server may not support one or other of these mechanisms; check #capability() for a capability of the form &quot;AUTH=LOGIN&quot; or &quot;AUTH=CRAM-MD5&quot;."
- !ruby/struct:SM::Flow::P 
  body: "Authentication is done using the appropriate authenticator object: see @@authenticators for more information on plugging in your own authenticator."
- !ruby/struct:SM::Flow::P 
  body: "For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "   imap.authenticate('LOGIN', user, password)\n"
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if authentication fails.
full_name: Net::IMAP#authenticate
is_singleton: false
name: authenticate
params: (auth_type, *args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised when data is in the incorrect format.
constants: []

full_name: Net::IMAP::DataFormatError
includes: []

instance_methods: []

name: DataFormatError
superclass: Error
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised upon a &quot;BAD&quot; response from the server, indicating that the client command violated the IMAP protocol, or an internal server failure has occurred.
constants: []

full_name: Net::IMAP::BadResponseError
includes: []

instance_methods: []

name: BadResponseError
superclass: ResponseError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#store_internal
is_singleton: false
name: store_internal
params: (cmd, set, attr, flags)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#sort_internal
is_singleton: false
name: sort_internal
params: (cmd, sort_keys, search_keys, charset)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends the GETQUOTA command along with specified <tt>mailbox</tt>. If this mailbox exists, then an array containing a Net::IMAP::MailboxQuota object is returned. This command generally is only available to server admin.
full_name: Net::IMAP#getquota
is_singleton: false
name: getquota
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_list_data
is_singleton: false
name: send_list_data
params: (list)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Net::IMAP object and connects it to the specified <tt>port</tt> (143 by default) on the named <tt>host</tt>. If <tt>usessl</tt> is true, then an attempt will be made to use SSL (now TLS) to connect to the server. For this to work OpenSSL [OSSL] and the Ruby OpenSSL [RSSL] extensions need to be installed. The <tt>certs</tt> parameter indicates the path or file containing the CA cert of the server, and the <tt>verify</tt> parameter is for the OpenSSL verification callback.
- !ruby/struct:SM::Flow::P 
  body: "The most common errors are:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Errno::ECONNREFUSED:"
    body: connection refused by <tt>host</tt> or an intervening firewall.
  - !ruby/struct:SM::Flow::LI 
    label: "Errno::ETIMEDOUT:"
    body: connection timed out (possibly due to packets being dropped by an intervening firewall).
  - !ruby/struct:SM::Flow::LI 
    label: "Errno::ENETUNREACH:"
    body: there is no route to that network.
  - !ruby/struct:SM::Flow::LI 
    label: "SocketError:"
    body: hostname not known or other socket error.
  - !ruby/struct:SM::Flow::LI 
    label: "Net::IMAP::ByeResponseError:"
    body: we connected to the host, but they immediately said goodbye to us.
  type: :NOTE
full_name: Net::IMAP::new
is_singleton: true
name: new
params: (host, port = PORT, usessl = false, certs = nil, verify = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::u16tou8
is_singleton: true
name: u16tou8
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#search_internal
is_singleton: false
name: search_internal
params: (cmd, keys, charset)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a CLOSE command to close the currently selected mailbox. The CLOSE command permanently removes from the mailbox all messages that have the \Deleted flag set.
full_name: Net::IMAP#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a LOGIN command to identify the client and carries the plaintext <tt>password</tt> authenticating this <tt>user</tt>. Note that, unlike calling #authenticate() with an <tt>auth_type</tt> of &quot;LOGIN&quot;, #login() does <b>not</b> use the login authenticator."
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if authentication fails.
full_name: Net::IMAP#login
is_singleton: false
name: login
params: (user, password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_string_data
is_singleton: false
name: send_string_data
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a SETQUOTA command along with the specified <tt>mailbox</tt> and <tt>quota</tt>. If <tt>quota</tt> is nil, then quota will be unset for that mailbox. Typically one needs to be logged in as server admin for this to work. The IMAP quota commands are described in [RFC-2087].
full_name: Net::IMAP#setquota
is_singleton: false
name: setquota
params: (mailbox, quota)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends the GETQUOTAROOT command along with specified <tt>mailbox</tt>. This command is generally available to both admin and user. If mailbox exists, returns an array containing objects of Net::IMAP::MailboxQuotaRoot and Net::IMAP::MailboxQuota.
full_name: Net::IMAP#getquotaroot
is_singleton: false
name: getquotaroot
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::CramMD5Authenticator#process
is_singleton: false
name: process
params: (challenge)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::CramMD5Authenticator#hmac_md5
is_singleton: false
name: hmac_md5
params: (text, key)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Authenticator for the &quot;CRAM-MD5&quot; authentication type. See #authenticate()."
constants: []

full_name: Net::IMAP::CramMD5Authenticator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: hmac_md5
- !ruby/object:RI::MethodSummary 
  name: process
name: CramMD5Authenticator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::CramMD5Authenticator::new
is_singleton: true
name: new
params: (user, password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #fetch(), but <tt>set</tt> contains unique identifiers."
full_name: Net::IMAP#uid_fetch
is_singleton: false
name: uid_fetch
params: (set, attr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if disconnected from the server.
full_name: Net::IMAP#disconnected?
is_singleton: false
name: disconnected?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a CAPABILITY command, and returns an array of capabilities that the server supports. Each capability is a string. See [IMAP] for a list of possible capabilities.
- !ruby/struct:SM::Flow::P 
  body: Note that the Net::IMAP class does not modify its behaviour according to the capabilities of the server; it is up to the user of the class to ensure that a certain capability is supported by a server before using it.
full_name: Net::IMAP#capability
is_singleton: false
name: capability
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a DELETE command to remove the <tt>mailbox</tt>.
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if a mailbox with that name cannot be deleted, either because it does not exist or because the client does not have permission to delete it.
full_name: Net::IMAP#delete
is_singleton: false
name: delete
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Obsolete: use <tt>subtype</tt> instead. Calling this will generate a warning message to <tt>stderr</tt>, then return the value of <tt>subtype</tt>."
full_name: Net::IMAP::BodyTypeMessage#media_subtype
is_singleton: false
name: media_subtype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::BodyTypeMessage#multipart?
is_singleton: false
name: multipart?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP::BodyTypeMessage represents MESSAGE/RFC822 body structures of messages.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: "Fields:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "envelope:"
    body: Returns a Net::IMAP::Envelope giving the envelope structure.
  - !ruby/struct:SM::Flow::LI 
    label: "body:"
    body: Returns an object giving the body structure.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: And Net::IMAP::BodyTypeMessage has all methods of Net::IMAP::BodyTypeText.
constants: []

full_name: Net::IMAP::BodyTypeMessage
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: media_subtype
- !ruby/object:RI::MethodSummary 
  name: multipart?
name: BodyTypeMessage
superclass: Struct.new(:media_type, :subtype,                                        :param, :content_id,                                        :description, :encoding, :size,                                        :envelope, :body, :lines,                                        :md5, :disposition, :language,                                        :extension)
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::Literal
includes: []

instance_methods: []

name: Literal
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the debug mode.
full_name: Net::IMAP::debug=
is_singleton: true
name: debug=
params: (val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a SUBSCRIBE command to add the specified <tt>mailbox</tt> name to the server's set of &quot;active&quot; or &quot;subscribed&quot; mailboxes as returned by #lsub()."
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if <tt>mailbox</tt> cannot be subscribed to, for instance because it does not exist.
full_name: Net::IMAP#subscribe
is_singleton: false
name: subscribe
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a CREATE command to create a new <tt>mailbox</tt>.
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if a mailbox with that name cannot be created.
full_name: Net::IMAP#create
is_singleton: false
name: create
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Disconnects from the server.
full_name: Net::IMAP#disconnect
is_singleton: false
name: disconnect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#generate_tag
is_singleton: false
name: generate_tag
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_command
is_singleton: false
name: send_command
params: (cmd, *args, &block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #sort(), but returns an array of unique identifiers."
full_name: Net::IMAP#uid_sort
is_singleton: false
name: uid_sort
params: (sort_keys, search_keys, charset)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_literal
is_singleton: false
name: send_literal
params: (str)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The thread to receive exceptions.
  name: client_thread
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns an initial greeting response from the server.
  name: greeting
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns all response handlers.
  name: response_handlers
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Returns recorded untagged responses. For example:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  imap.select(&quot;inbox&quot;)\n  p imap.responses[&quot;EXISTS&quot;][-1]\n  #=&gt; 2\n  p imap.responses[&quot;UIDVALIDITY&quot;][-1]\n  #=&gt; 968263756\n"
  name: responses
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_authenticator
- !ruby/object:RI::MethodSummary 
  name: debug
- !ruby/object:RI::MethodSummary 
  name: debug=
- !ruby/object:RI::MethodSummary 
  name: decode_utf7
- !ruby/object:RI::MethodSummary 
  name: encode_utf7
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: u16tou8
- !ruby/object:RI::MethodSummary 
  name: u8tou16
comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP implements Internet Message Access Protocol (IMAP) client functionality. The protocol is described in [IMAP].
- !ruby/struct:SM::Flow::H 
  level: 2
  text: IMAP Overview
- !ruby/struct:SM::Flow::P 
  body: "An IMAP client connects to a server, and then authenticates itself using either #authenticate() or #login(). Having authenticated itself, there is a range of commands available to it. Most work with mailboxes, which may be arranged in an hierarchical namespace, and each of which contains zero or more messages. How this is implemented on the server is implementation-dependent; on a UNIX server, it will frequently be implemented as a files in mailbox format within a hierarchy of directories."
- !ruby/struct:SM::Flow::P 
  body: "To work on the messages within a mailbox, the client must first select that mailbox, using either #select() or (for read-only access) #examine(). Once the client has successfully selected a mailbox, they enter <em>selected</em> state, and that mailbox becomes the <em>current</em> mailbox, on which mail-item related commands implicitly operate."
- !ruby/struct:SM::Flow::P 
  body: "Messages have two sorts of identifiers: message sequence numbers, and UIDs."
- !ruby/struct:SM::Flow::P 
  body: Message sequence numbers number messages within a mail box from 1 up to the number of items in the mail box. If new message arrives during a session, it receives a sequence number equal to the new size of the mail box. If messages are expunged from the mailbox, remaining messages have their sequence numbers &quot;shuffled down&quot; to fill the gaps.
- !ruby/struct:SM::Flow::P 
  body: UIDs, on the other hand, are permanently guaranteed not to identify another message within the same mailbox, even if the existing message is deleted. UIDs are required to be assigned in ascending (but not necessarily sequential) order within a mailbox; this means that if a non-IMAP client rearranges the order of mailitems within a mailbox, the UIDs have to be reassigned. An IMAP client cannot thus rearrange message orders.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples of Usage
- !ruby/struct:SM::Flow::H 
  level: 3
  text: List sender and subject of all recent messages in the default mailbox
- !ruby/struct:SM::Flow::VERB 
  body: "  imap = Net::IMAP.new('mail.example.com')\n  imap.authenticate('LOGIN', 'joe_user', 'joes_password')\n  imap.examine('INBOX')\n  imap.search([&quot;RECENT&quot;]).each do |message_id|\n    envelope = imap.fetch(message_id, &quot;ENVELOPE&quot;)[0].attr[&quot;ENVELOPE&quot;]\n    puts &quot;#{envelope.from[0].name}: \\t#{envelope.subject}&quot;\n  end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Move all messages from April 2003 from &quot;Mail/sent-mail&quot; to &quot;Mail/sent-apr03&quot;
- !ruby/struct:SM::Flow::VERB 
  body: "  imap = Net::IMAP.new('mail.example.com')\n  imap.authenticate('LOGIN', 'joe_user', 'joes_password')\n  imap.select('Mail/sent-mail')\n  if not imap.list('Mail/', 'sent-apr03')\n    imap.create('Mail/sent-apr03')\n  end\n  imap.search([&quot;BEFORE&quot;, &quot;30-Apr-2003&quot;, &quot;SINCE&quot;, &quot;1-Apr-2003&quot;]).each do |message_id|\n    imap.copy(message_id, &quot;Mail/sent-apr03&quot;)\n    imap.store(message_id, &quot;+FLAGS&quot;, [:Deleted])\n  end\n  imap.expunge\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Thread Safety
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP supports concurrent threads. For example,
- !ruby/struct:SM::Flow::VERB 
  body: "  imap = Net::IMAP.new(&quot;imap.foo.net&quot;, &quot;imap2&quot;)\n  imap.authenticate(&quot;cram-md5&quot;, &quot;bar&quot;, &quot;password&quot;)\n  imap.select(&quot;inbox&quot;)\n  fetch_thread = Thread.start { imap.fetch(1..-1, &quot;UID&quot;) }\n  search_result = imap.search([&quot;BODY&quot;, &quot;hello&quot;])\n  fetch_result = fetch_thread.value\n  imap.disconnect\n"
- !ruby/struct:SM::Flow::P 
  body: This script invokes the FETCH command and the SEARCH command concurrently.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: "An IMAP server can send three different types of responses to indicate failure:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "NO:"
    body: the attempted command could not be successfully completed. For instance, the username/password used for logging in are incorrect; the selected mailbox does not exists; etc.
  - !ruby/struct:SM::Flow::LI 
    label: "BAD:"
    body: the request from the client does not follow the server's understanding of the IMAP protocol. This includes attempting commands from the wrong client state; for instance, attempting to perform a SEARCH command without having SELECTed a current mailbox. It can also signal an internal server failure (such as a disk crash) has occurred.
  - !ruby/struct:SM::Flow::LI 
    label: "BYE:"
    body: the server is saying goodbye. This can be part of a normal logout sequence, and can be used as part of a login sequence to indicate that the server is (for some reason) unwilling to accept our connection. As a response to any other command, it indicates either that the server is shutting down, or that the server is timing out the client connection due to inactivity.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: These three error response are represented by the errors Net::IMAP::NoResponseError, Net::IMAP::BadResponseError, and Net::IMAP::ByeResponseError, all of which are subclasses of Net::IMAP::ResponseError. Essentially, all methods that involve sending a request to the server can generate one of these errors. Only the most pertinent instances have been documented below.
- !ruby/struct:SM::Flow::P 
  body: Because the IMAP class uses Sockets for communication, its methods are also susceptible to the various errors that can occur when working with sockets. These are generally represented as Errno errors. For instance, any method that involves sending a request to the server and/or receiving a response from it could raise an Errno::EPIPE error if the network connection unexpectedly goes down. See the socket(7), ip(7), tcp(7), socket(2), connect(2), and associated man pages.
- !ruby/struct:SM::Flow::P 
  body: Finally, a Net::IMAP::DataFormatError is thrown if low-level data is found to be in an incorrect format (for instance, when converting between UTF-8 and UTF-16), and Net::IMAP::ResponseParseError is thrown if a server response is non-parseable.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: References
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "[IMAP]"
    body: "M. Crispin, &quot;INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1&quot;, RFC 2060, December 1996. (Note: since obsoleted by RFC 3501)"
  - !ruby/struct:SM::Flow::LI 
    label: "[LANGUAGE-TAGS]"
    body: Alvestrand, H., &quot;Tags for the Identification of Languages&quot;, RFC 1766, March 1995.
  - !ruby/struct:SM::Flow::LI 
    label: "[MD5]"
    body: Myers, J., and M. Rose, &quot;The Content-MD5 Header Field&quot;, RFC 1864, October 1995.
  - !ruby/struct:SM::Flow::LI 
    label: "[MIME-IMB]"
    body: "Freed, N., and N. Borenstein, &quot;MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies&quot;, RFC 2045, November 1996."
  - !ruby/struct:SM::Flow::LI 
    label: "[RFC-822]"
    body: Crocker, D., &quot;Standard for the Format of ARPA Internet Text Messages&quot;, STD 11, RFC 822, University of Delaware, August 1982.
  - !ruby/struct:SM::Flow::LI 
    label: "[RFC-2087]"
    body: Myers, J., &quot;IMAP4 QUOTA extension&quot;, RFC 2087, January 1997.
  - !ruby/struct:SM::Flow::LI 
    label: "[RFC-2086]"
    body: Myers, J., &quot;IMAP4 ACL extension&quot;, RFC 2086, January 1997.
  - !ruby/struct:SM::Flow::LI 
    label: "[RFC-2195]"
    body: Klensin, J., Catoe, R., and Krumviede, P., &quot;IMAP/POP AUTHorize Extension for Simple Challenge/Response&quot;, RFC 2195, September 1997.
  - !ruby/struct:SM::Flow::LI 
    label: "[SORT-THREAD-EXT]"
    body: Crispin, M., &quot;INTERNET MESSAGE ACCESS PROTOCOL - SORT and THREAD Extensions&quot;, draft-ietf-imapext-sort, May 2003.
  - !ruby/struct:SM::Flow::LI 
    label: "[OSSL]"
    body: http://www.openssl.org
  - !ruby/struct:SM::Flow::LI 
    label: "[RSSL]"
    body: http://savannah.gnu.org/projects/rubypki
  - !ruby/struct:SM::Flow::LI 
    label: "[UTF7]"
    body: "Goldsmith, D. and Davis, M., &quot;UTF-7: A Mail-Safe Transformation Format of Unicode&quot;, RFC 2152, May 1997."
  type: :LABELED
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating a message has been seen
  name: SEEN
  value: ":Seen"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating a message has been answered
  name: ANSWERED
  value: ":Answered"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating a message has been flagged for special or urgent attention
  name: FLAGGED
  value: ":Flagged"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating a message has been marked for deletion. This will occur when the mailbox is closed or expunged.
  name: DELETED
  value: ":Deleted"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating a message is only a draft or work-in-progress version.
  name: DRAFT
  value: ":Draft"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating that the message is &quot;recent&quot;, meaning that this session is the first session in which the client has been notified of this message.
  name: RECENT
  value: ":Recent"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating that a mailbox context name cannot contain children.
  name: NOINFERIORS
  value: ":Noinferiors"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating that a mailbox is not selected.
  name: NOSELECT
  value: ":Noselect"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating that a mailbox has been marked &quot;interesting&quot; by the server; this commonly indicates that the mailbox contains new messages.
  name: MARKED
  value: ":Marked"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Flag indicating that the mailbox does not contains new messages.
  name: UNMARKED
  value: ":Unmarked"
- !ruby/object:RI::Constant 
  comment: 
  name: DATE_MONTH
  value: "%w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::ContinuationRequest represents command continuation requests.
  - !ruby/struct:SM::Flow::P 
    body: The command continuation request response is indicated by a &quot;+&quot; token instead of a tag. This form of response indicates that the server is ready to accept the continuation of a command from the client. The remainder of this response is a line of text.
  - !ruby/struct:SM::Flow::VERB 
    body: "  continue_req    ::= &quot;+&quot; SPACE (resp_text / base64)\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "data:"
      body: Returns the data (Net::IMAP::ResponseText).
    - !ruby/struct:SM::Flow::LI 
      label: "raw_data:"
      body: Returns the raw data string.
    type: :NOTE
  name: ContinuationRequest
  value: Struct.new(:data, :raw_data)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::UntaggedResponse represents untagged responses.
  - !ruby/struct:SM::Flow::P 
    body: Data transmitted by the server to the client and status responses that do not indicate command completion are prefixed with the token &quot;*&quot;, and are called untagged responses.
  - !ruby/struct:SM::Flow::VERB 
    body: "  response_data   ::= &quot;*&quot; SPACE (resp_cond_state / resp_cond_bye /\n                      mailbox_data / message_data / capability_data)\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "name:"
      body: Returns the name such as &quot;FLAGS&quot;, &quot;LIST&quot;, &quot;FETCH&quot;....
    - !ruby/struct:SM::Flow::LI 
      label: "data:"
      body: Returns the data such as an array of flag symbols,
    - !ruby/struct:SM::Flow::VERB 
      body: " a ((&lt;Net::IMAP::MailboxList&gt;)) object....\n"
    - !ruby/struct:SM::Flow::LI 
      label: "raw_data:"
      body: Returns the raw data string.
    type: :NOTE
  name: UntaggedResponse
  value: Struct.new(:name, :data, :raw_data)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::TaggedResponse represents tagged responses.
  - !ruby/struct:SM::Flow::P 
    body: The server completion result response indicates the success or failure of the operation. It is tagged with the same tag as the client command which began the operation.
  - !ruby/struct:SM::Flow::VERB 
    body: "  response_tagged ::= tag SPACE resp_cond_state CRLF\n\n  tag             ::= 1*&lt;any ATOM_CHAR except &quot;+&quot;&gt;\n\n  resp_cond_state ::= (&quot;OK&quot; / &quot;NO&quot; / &quot;BAD&quot;) SPACE resp_text\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "tag:"
      body: Returns the tag.
    - !ruby/struct:SM::Flow::LI 
      label: "name:"
      body: Returns the name. the name is one of &quot;OK&quot;, &quot;NO&quot;, &quot;BAD&quot;.
    - !ruby/struct:SM::Flow::LI 
      label: "data:"
      body: Returns the data. See ((&lt;Net::IMAP::ResponseText&gt;)).
    - !ruby/struct:SM::Flow::LI 
      label: "raw_data:"
      body: Returns the raw data string.
    type: :NOTE
  name: TaggedResponse
  value: Struct.new(:tag, :name, :data, :raw_data)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::ResponseText represents texts of responses. The text may be prefixed by the response code.
  - !ruby/struct:SM::Flow::VERB 
    body: "  resp_text       ::= [&quot;[&quot; resp_text_code &quot;]&quot; SPACE] (text_mime2 / text)\n                      ;; text SHOULD NOT begin with &quot;[&quot; or &quot;=&quot;\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "code:"
      body: Returns the response code. See ((&lt;Net::IMAP::ResponseCode&gt;)).
    - !ruby/struct:SM::Flow::LI 
      label: "text:"
      body: Returns the text.
    type: :NOTE
  name: ResponseText
  value: Struct.new(:code, :text)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::ResponseCode represents response codes.
  - !ruby/struct:SM::Flow::VERB 
    body: "  resp_text_code  ::= &quot;ALERT&quot; / &quot;PARSE&quot; /\n                      &quot;PERMANENTFLAGS&quot; SPACE &quot;(&quot; #(flag / &quot;*&quot;) &quot;)&quot; /\n                      &quot;READ-ONLY&quot; / &quot;READ-WRITE&quot; / &quot;TRYCREATE&quot; /\n                      &quot;UIDVALIDITY&quot; SPACE nz_number /\n                      &quot;UNSEEN&quot; SPACE nz_number /\n                      atom [SPACE 1*&lt;any TEXT_CHAR except &quot;]&quot;&gt;]\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "name:"
      body: Returns the name such as &quot;ALERT&quot;, &quot;PERMANENTFLAGS&quot;, &quot;UIDVALIDITY&quot;....
    - !ruby/struct:SM::Flow::LI 
      label: "data:"
      body: Returns the data if it exists.
    type: :NOTE
  name: ResponseCode
  value: Struct.new(:name, :data)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::MailboxList represents contents of the LIST response.
  - !ruby/struct:SM::Flow::VERB 
    body: "  mailbox_list    ::= &quot;(&quot; #(&quot;\\Marked&quot; / &quot;\\Noinferiors&quot; /\n                      &quot;\\Noselect&quot; / &quot;\\Unmarked&quot; / flag_extension) &quot;)&quot;\n                      SPACE (&lt;&quot;&gt; QUOTED_CHAR &lt;&quot;&gt; / nil) SPACE mailbox\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "attr:"
      body: Returns the name attributes. Each name attribute is a symbol capitalized by String#capitalize, such as :Noselect (not :NoSelect).
    - !ruby/struct:SM::Flow::LI 
      label: "delim:"
      body: Returns the hierarchy delimiter
    - !ruby/struct:SM::Flow::LI 
      label: "name:"
      body: Returns the mailbox name.
    type: :NOTE
  name: MailboxList
  value: Struct.new(:attr, :delim, :name)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::MailboxQuota represents contents of GETQUOTA response. This object can also be a response to GETQUOTAROOT. In the syntax specification below, the delimiter used with the &quot;#&quot; construct is a single space (SPACE).
  - !ruby/struct:SM::Flow::VERB 
    body: "   quota_list      ::= &quot;(&quot; #quota_resource &quot;)&quot;\n\n   quota_resource  ::= atom SPACE number SPACE number\n\n   quota_response  ::= &quot;QUOTA&quot; SPACE astring SPACE quota_list\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "mailbox:"
      body: The mailbox with the associated quota.
    - !ruby/struct:SM::Flow::LI 
      label: "usage:"
      body: Current storage usage of mailbox.
    - !ruby/struct:SM::Flow::LI 
      label: "quota:"
      body: Quota limit imposed on mailbox.
    type: :NOTE
  name: MailboxQuota
  value: Struct.new(:mailbox, :usage, :quota)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::MailboxQuotaRoot represents part of the GETQUOTAROOT response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)
  - !ruby/struct:SM::Flow::VERB 
    body: "   quotaroot_response ::= &quot;QUOTAROOT&quot; SPACE astring *(SPACE astring)\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "mailbox:"
      body: The mailbox with the associated quota.
    - !ruby/struct:SM::Flow::LI 
      label: "quotaroots:"
      body: Zero or more quotaroots that effect the quota on the specified mailbox.
    type: :NOTE
  name: MailboxQuotaRoot
  value: Struct.new(:mailbox, :quotaroots)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::MailboxACLItem represents response from GETACL.
  - !ruby/struct:SM::Flow::VERB 
    body: "   acl_data        ::= &quot;ACL&quot; SPACE mailbox *(SPACE identifier SPACE rights)\n\n   identifier      ::= astring\n\n   rights          ::= astring\n"
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "user:"
      body: Login name that has certain rights to the mailbox that was specified with the getacl command.
    - !ruby/struct:SM::Flow::LI 
      label: "rights:"
      body: The access rights the indicated user has to the mailbox.
    type: :NOTE
  name: MailboxACLItem
  value: Struct.new(:user, :rights)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::StatusData represents contents of the STATUS response.
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "mailbox:"
      body: Returns the mailbox name.
    - !ruby/struct:SM::Flow::LI 
      label: "attr:"
      body: Returns a hash. Each key is one of &quot;MESSAGES&quot;, &quot;RECENT&quot;, &quot;UIDNEXT&quot;, &quot;UIDVALIDITY&quot;, &quot;UNSEEN&quot;. Each value is a number.
    type: :NOTE
  name: StatusData
  value: Struct.new(:mailbox, :attr)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::FetchData represents contents of the FETCH response.
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "seqno:"
      body: "Returns the message sequence number. (Note: not the unique identifier, even for the UID command response.)"
    - !ruby/struct:SM::Flow::LI 
      label: "attr:"
      body: Returns a hash. Each key is a data item name, and each value is its value.
    - !ruby/struct:SM::Flow::P 
      body: "The current data items are:"
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: BODY
        body: A form of BODYSTRUCTURE without extension data.
      - !ruby/struct:SM::Flow::LI 
        label: BODY[<section>]<<origin_octet>>
        body: A string expressing the body contents of the specified section.
      - !ruby/struct:SM::Flow::LI 
        label: BODYSTRUCTURE
        body: An object that describes the [MIME-IMB] body structure of a message. See Net::IMAP::BodyTypeBasic, Net::IMAP::BodyTypeText, Net::IMAP::BodyTypeMessage, Net::IMAP::BodyTypeMultipart.
      - !ruby/struct:SM::Flow::LI 
        label: ENVELOPE
        body: A Net::IMAP::Envelope object that describes the envelope structure of a message.
      - !ruby/struct:SM::Flow::LI 
        label: FLAGS
        body: A array of flag symbols that are set for this message. flag symbols are capitalized by String#capitalize.
      - !ruby/struct:SM::Flow::LI 
        label: INTERNALDATE
        body: A string representing the internal date of the message.
      - !ruby/struct:SM::Flow::LI 
        label: RFC822
        body: Equivalent to BODY[].
      - !ruby/struct:SM::Flow::LI 
        label: RFC822.HEADER
        body: Equivalent to BODY.PEEK[HEADER].
      - !ruby/struct:SM::Flow::LI 
        label: RFC822.SIZE
        body: A number expressing the [RFC-822] size of the message.
      - !ruby/struct:SM::Flow::LI 
        label: RFC822.TEXT
        body: Equivalent to BODY[TEXT].
      - !ruby/struct:SM::Flow::LI 
        label: UID
        body: A number expressing the unique identifier of the message.
      type: :LABELED
    type: :NOTE
  name: FetchData
  value: Struct.new(:seqno, :attr)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::Envelope represents envelope structures of messages.
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "date:"
      body: Returns a string that represents the date.
    - !ruby/struct:SM::Flow::LI 
      label: "subject:"
      body: Returns a string that represents the subject.
    - !ruby/struct:SM::Flow::LI 
      label: "from:"
      body: Returns an array of Net::IMAP::Address that represents the from.
    - !ruby/struct:SM::Flow::LI 
      label: "sender:"
      body: Returns an array of Net::IMAP::Address that represents the sender.
    - !ruby/struct:SM::Flow::LI 
      label: "reply_to:"
      body: Returns an array of Net::IMAP::Address that represents the reply-to.
    - !ruby/struct:SM::Flow::LI 
      label: "to:"
      body: Returns an array of Net::IMAP::Address that represents the to.
    - !ruby/struct:SM::Flow::LI 
      label: "cc:"
      body: Returns an array of Net::IMAP::Address that represents the cc.
    - !ruby/struct:SM::Flow::LI 
      label: "bcc:"
      body: Returns an array of Net::IMAP::Address that represents the bcc.
    - !ruby/struct:SM::Flow::LI 
      label: "in_reply_to:"
      body: Returns a string that represents the in-reply-to.
    - !ruby/struct:SM::Flow::LI 
      label: "message_id:"
      body: Returns a string that represents the message-id.
    type: :NOTE
  name: Envelope
  value: Struct.new(:date, :subject, :from, :sender, :reply_to,                           :to, :cc, :bcc, :in_reply_to, :message_id)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::Address represents electronic mail addresses.
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "name:"
      body: Returns the phrase from [RFC-822] mailbox.
    - !ruby/struct:SM::Flow::LI 
      label: "route:"
      body: Returns the route from [RFC-822] route-addr.
    - !ruby/struct:SM::Flow::LI 
      label: "mailbox:"
      body: nil indicates end of [RFC-822] group. If non-nil and host is nil, returns [RFC-822] group name. Otherwise, returns [RFC-822] local-part
    - !ruby/struct:SM::Flow::LI 
      label: "host:"
      body: nil indicates [RFC-822] group syntax. Otherwise, returns [RFC-822] domain name.
    type: :NOTE
  name: Address
  value: Struct.new(:name, :route, :mailbox, :host)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::ContentDisposition represents Content-Disposition fields.
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "dsp_type:"
      body: Returns the disposition type.
    - !ruby/struct:SM::Flow::LI 
      label: "param:"
      body: Returns a hash that represents parameters of the Content-Disposition field.
    type: :NOTE
  name: ContentDisposition
  value: Struct.new(:dsp_type, :param)
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Net::IMAP::ThreadMember represents a thread-node returned by Net::IMAP#thread
  - !ruby/struct:SM::Flow::H 
    level: 4
    text: "Fields:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "seqno:"
      body: The sequence number of this message.
    - !ruby/struct:SM::Flow::LI 
      label: "children:"
      body: an array of Net::IMAP::ThreadMember objects for mail
    type: :NOTE
  - !ruby/struct:SM::Flow::P 
    body: items that are children of this in the thread.
  name: ThreadMember
  value: Struct.new(:seqno, :children)
full_name: Net::IMAP
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
- !ruby/object:RI::IncludedModule 
  name: OpenSSL
- !ruby/object:RI::IncludedModule 
  name: SSL
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_response_handler
- !ruby/object:RI::MethodSummary 
  name: append
- !ruby/object:RI::MethodSummary 
  name: authenticate
- !ruby/object:RI::MethodSummary 
  name: capability
- !ruby/object:RI::MethodSummary 
  name: check
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: copy
- !ruby/object:RI::MethodSummary 
  name: copy_internal
- !ruby/object:RI::MethodSummary 
  name: create
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: disconnect
- !ruby/object:RI::MethodSummary 
  name: disconnected?
- !ruby/object:RI::MethodSummary 
  name: examine
- !ruby/object:RI::MethodSummary 
  name: expunge
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: fetch_internal
- !ruby/object:RI::MethodSummary 
  name: generate_tag
- !ruby/object:RI::MethodSummary 
  name: get_response
- !ruby/object:RI::MethodSummary 
  name: get_tagged_response
- !ruby/object:RI::MethodSummary 
  name: getacl
- !ruby/object:RI::MethodSummary 
  name: getquota
- !ruby/object:RI::MethodSummary 
  name: getquotaroot
- !ruby/object:RI::MethodSummary 
  name: list
- !ruby/object:RI::MethodSummary 
  name: login
- !ruby/object:RI::MethodSummary 
  name: logout
- !ruby/object:RI::MethodSummary 
  name: lsub
- !ruby/object:RI::MethodSummary 
  name: noop
- !ruby/object:RI::MethodSummary 
  name: normalize_searching_criteria
- !ruby/object:RI::MethodSummary 
  name: pick_up_tagged_response
- !ruby/object:RI::MethodSummary 
  name: put_string
- !ruby/object:RI::MethodSummary 
  name: receive_responses
- !ruby/object:RI::MethodSummary 
  name: record_response
- !ruby/object:RI::MethodSummary 
  name: remove_response_handler
- !ruby/object:RI::MethodSummary 
  name: rename
- !ruby/object:RI::MethodSummary 
  name: search
- !ruby/object:RI::MethodSummary 
  name: search_internal
- !ruby/object:RI::MethodSummary 
  name: select
- !ruby/object:RI::MethodSummary 
  name: send_command
- !ruby/object:RI::MethodSummary 
  name: send_data
- !ruby/object:RI::MethodSummary 
  name: send_list_data
- !ruby/object:RI::MethodSummary 
  name: send_literal
- !ruby/object:RI::MethodSummary 
  name: send_number_data
- !ruby/object:RI::MethodSummary 
  name: send_quoted_string
- !ruby/object:RI::MethodSummary 
  name: send_string_data
- !ruby/object:RI::MethodSummary 
  name: send_symbol_data
- !ruby/object:RI::MethodSummary 
  name: send_time_data
- !ruby/object:RI::MethodSummary 
  name: setacl
- !ruby/object:RI::MethodSummary 
  name: setquota
- !ruby/object:RI::MethodSummary 
  name: sort
- !ruby/object:RI::MethodSummary 
  name: sort_internal
- !ruby/object:RI::MethodSummary 
  name: status
- !ruby/object:RI::MethodSummary 
  name: store
- !ruby/object:RI::MethodSummary 
  name: store_internal
- !ruby/object:RI::MethodSummary 
  name: subscribe
- !ruby/object:RI::MethodSummary 
  name: thread
- !ruby/object:RI::MethodSummary 
  name: thread_internal
- !ruby/object:RI::MethodSummary 
  name: uid_copy
- !ruby/object:RI::MethodSummary 
  name: uid_fetch
- !ruby/object:RI::MethodSummary 
  name: uid_search
- !ruby/object:RI::MethodSummary 
  name: uid_sort
- !ruby/object:RI::MethodSummary 
  name: uid_store
- !ruby/object:RI::MethodSummary 
  name: uid_thread
- !ruby/object:RI::MethodSummary 
  name: unsubscribe
name: IMAP
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP::BodyTypeText represents TEXT body structures of messages.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: "Fields:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "lines:"
    body: Returns the size of the body in text lines.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: And Net::IMAP::BodyTypeText has all fields of Net::IMAP::BodyTypeBasic.
constants: []

full_name: Net::IMAP::BodyTypeText
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: media_subtype
- !ruby/object:RI::MethodSummary 
  name: multipart?
name: BodyTypeText
superclass: Struct.new(:media_type, :subtype,                                     :param, :content_id,                                     :description, :encoding, :size,                                     :lines,                                     :md5, :disposition, :language,                                     :extension)
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Obsolete: use <tt>subtype</tt> instead. Calling this will generate a warning message to <tt>stderr</tt>, then return the value of <tt>subtype</tt>."
full_name: Net::IMAP::BodyTypeText#media_subtype
is_singleton: false
name: media_subtype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::BodyTypeText#multipart?
is_singleton: false
name: multipart?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Authenticator for the &quot;LOGIN&quot; authentication type. See #authenticate()."
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: STATE_USER
  value: ":USER"
- !ruby/object:RI::Constant 
  comment: 
  name: STATE_PASSWORD
  value: ":PASSWORD"
full_name: Net::IMAP::LoginAuthenticator
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: process
name: LoginAuthenticator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::LoginAuthenticator#process
is_singleton: false
name: process
params: (data)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::LoginAuthenticator::new
is_singleton: true
name: new
params: (user, password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a LIST command, and returns a subset of names from the complete set of all names available to the client. <tt>refname</tt> provides a context (for instance, a base directory in a directory-based mailbox hierarchy). <tt>mailbox</tt> specifies a mailbox or (via wildcards) mailboxes under that context. Two wildcards may be used in <tt>mailbox</tt>: '*', which matches all characters <b>including</b> the hierarchy delimiter (for instance, '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%', which matches all characters <b>except</b> the hierarchy delimiter."
- !ruby/struct:SM::Flow::P 
  body: If <tt>refname</tt> is empty, <tt>mailbox</tt> is used directly to determine which mailboxes to match. If <tt>mailbox</tt> is empty, the root name of <tt>refname</tt> and the hierarchy delimiter are returned.
- !ruby/struct:SM::Flow::P 
  body: "The return value is an array of +Net::IMAP::MailboxList+. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  imap.create(&quot;foo/bar&quot;)\n  imap.create(&quot;foo/baz&quot;)\n  p imap.list(&quot;&quot;, &quot;foo/%&quot;)\n  #=&gt; [#&lt;Net::IMAP::MailboxList attr=[:Noselect], delim=&quot;/&quot;, name=&quot;foo/&quot;&gt;, \\\n       #&lt;Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim=&quot;/&quot;, name=&quot;foo/bar&quot;&gt;, \\\n       #&lt;Net::IMAP::MailboxList attr=[:Noinferiors], delim=&quot;/&quot;, name=&quot;foo/baz&quot;&gt;]\n"
full_name: Net::IMAP#list
is_singleton: false
name: list
params: (refname, mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a EXAMINE command to select a <tt>mailbox</tt> so that messages in the <tt>mailbox</tt> can be accessed. Behaves the same as #select(), except that the selected <tt>mailbox</tt> is identified as read-only."
- !ruby/struct:SM::Flow::P 
  body: A Net::IMAP::NoResponseError is raised if the mailbox does not exist or is for some reason non-examinable.
full_name: Net::IMAP#examine
is_singleton: false
name: examine
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a LOGOUT command to inform the server that the client is done with the connection.
full_name: Net::IMAP#logout
is_singleton: false
name: logout
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::IMAP::Atom
includes: []

instance_methods: []

name: Atom
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#get_tagged_response
is_singleton: false
name: get_tagged_response
params: (tag)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a SEARCH command to search the mailbox for messages that match the given searching criteria, and returns message sequence numbers. <tt>keys</tt> can either be a string holding the entire search string, or a single-dimension array of search keywords and arguments. The following are some common search criteria; see [IMAP] section 6.4.4 for a full list.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<message set>:"
    body: a set of message sequence numbers. ',' indicates an interval, ':' indicates a range. For instance, '2,10:12,15' means &quot;2,10,11,12,15&quot;.
  - !ruby/struct:SM::Flow::LI 
    label: "BEFORE <date>:"
    body: messages with an internal date strictly before &lt;date&gt;. The date argument has a format similar to 8-Aug-2002.
  - !ruby/struct:SM::Flow::LI 
    label: "BODY <string>:"
    body: messages that contain &lt;string&gt; within their body.
  - !ruby/struct:SM::Flow::LI 
    label: "CC <string>:"
    body: messages containing &lt;string&gt; in their CC field.
  - !ruby/struct:SM::Flow::LI 
    label: "FROM <string>:"
    body: messages that contain &lt;string&gt; in their FROM field.
  - !ruby/struct:SM::Flow::LI 
    label: "NEW:"
    body: messages with the \Recent, but not the \Seen, flag set.
  - !ruby/struct:SM::Flow::LI 
    label: "NOT <search-key>:"
    body: negate the following search key.
  - !ruby/struct:SM::Flow::LI 
    label: "OR <search-key> <search-key>:"
    body: "&quot;or&quot; two search keys together."
  - !ruby/struct:SM::Flow::LI 
    label: "ON <date>:"
    body: messages with an internal date exactly equal to &lt;date&gt;, which has a format similar to 8-Aug-2002.
  - !ruby/struct:SM::Flow::LI 
    label: "SINCE <date>:"
    body: messages with an internal date on or after &lt;date&gt;.
  - !ruby/struct:SM::Flow::LI 
    label: "SUBJECT <string>:"
    body: messages with &lt;string&gt; in their subject.
  - !ruby/struct:SM::Flow::LI 
    label: "TO <string>:"
    body: messages with &lt;string&gt; in their TO field.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: "For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p imap.search([&quot;SUBJECT&quot;, &quot;hello&quot;, &quot;NOT&quot;, &quot;NEW&quot;])\n  #=&gt; [1, 6, 7, 8]\n"
full_name: Net::IMAP#search
is_singleton: false
name: search
params: (keys, charset = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #store(), but <tt>set</tt> contains unique identifiers."
full_name: Net::IMAP#uid_store
is_singleton: false
name: uid_store
params: (set, attr, flags)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#record_response
is_singleton: false
name: record_response
params: (name, data)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_time_data
is_singleton: false
name: send_time_data
params: (time)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Obsolete: use <tt>subtype</tt> instead. Calling this will generate a warning message to <tt>stderr</tt>, then return the value of <tt>subtype</tt>."
full_name: Net::IMAP::BodyTypeBasic#media_subtype
is_singleton: false
name: media_subtype
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP::BodyTypeBasic#multipart?
is_singleton: false
name: multipart?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Net::IMAP::BodyTypeBasic represents basic body structures of messages.
- !ruby/struct:SM::Flow::H 
  level: 4
  text: "Fields:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "media_type:"
    body: Returns the content media type name as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "subtype:"
    body: Returns the content subtype name as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "param:"
    body: Returns a hash that represents parameters as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "content_id:"
    body: Returns a string giving the content id as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "description:"
    body: Returns a string giving the content description as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "encoding:"
    body: Returns a string giving the content transfer encoding as defined in [MIME-IMB].
  - !ruby/struct:SM::Flow::LI 
    label: "size:"
    body: Returns a number giving the size of the body in octets.
  - !ruby/struct:SM::Flow::LI 
    label: "md5:"
    body: Returns a string giving the body MD5 value as defined in [MD5].
  - !ruby/struct:SM::Flow::LI 
    label: "disposition:"
    body: Returns a Net::IMAP::ContentDisposition object giving the content disposition.
  - !ruby/struct:SM::Flow::LI 
    label: "language:"
    body: Returns a string or an array of strings giving the body language value as defined in [LANGUAGE-TAGS].
  - !ruby/struct:SM::Flow::LI 
    label: "extension:"
    body: Returns extension data.
  - !ruby/struct:SM::Flow::LI 
    label: "multipart?:"
    body: Returns false.
  type: :NOTE
constants: []

full_name: Net::IMAP::BodyTypeBasic
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: media_subtype
- !ruby/object:RI::MethodSummary 
  name: multipart?
name: BodyTypeBasic
superclass: Struct.new(:media_type, :subtype,                                      :param, :content_id,                                      :description, :encoding, :size,                                      :md5, :disposition, :language,                                      :extension)
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends a SORT command to sort messages in the mailbox. Returns an array of message sequence numbers. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p imap.sort([&quot;FROM&quot;], [&quot;ALL&quot;], &quot;US-ASCII&quot;)\n  #=&gt; [1, 2, 3, 5, 6, 7, 8, 4, 9]\n  p imap.sort([&quot;DATE&quot;], [&quot;SUBJECT&quot;, &quot;hello&quot;], &quot;US-ASCII&quot;)\n  #=&gt; [6, 7, 8, 1]\n"
- !ruby/struct:SM::Flow::P 
  body: See [SORT-THREAD-EXT] for more details.
full_name: Net::IMAP#sort
is_singleton: false
name: sort
params: (sort_keys, search_keys, charset)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Error raised upon a &quot;NO&quot; response from the server, indicating that the client command could not be completed successfully.
constants: []

full_name: Net::IMAP::NoResponseError
includes: []

instance_methods: []

name: NoResponseError
superclass: ResponseError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Superclass of all errors used to encapsulate &quot;fail&quot; responses from the server.
constants: []

full_name: Net::IMAP::ResponseError
includes: []

instance_methods: []

name: ResponseError
superclass: Error
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends the SETACL command along with <tt>mailbox</tt>, <tt>user</tt> and the <tt>rights</tt> that user is to have on that mailbox. If <tt>rights</tt> is nil, then that user will be stripped of any rights to that mailbox. The IMAP ACL commands are described in [RFC-2086].
full_name: Net::IMAP#setacl
is_singleton: false
name: setacl
params: (mailbox, user, rights)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Send the GETACL command along with specified <tt>mailbox</tt>. If this mailbox exists, an array containing objects of Net::IMAP::MailboxACLItem will be returned.
full_name: Net::IMAP#getacl
is_singleton: false
name: getacl
params: (mailbox)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#send_quoted_string
is_singleton: false
name: send_quoted_string
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::IMAP#put_string
is_singleton: false
name: put_string
params: (str)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoAuthError
includes: []

instance_methods: []

name: ProtoAuthError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Unexpected reply code returned from server.
constants: []

full_name: Net::SMTPUnknownError
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPUnknownError
superclass: ProtoUnknownError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Command is not supported on server.
constants: []

full_name: Net::SMTPUnsupportedCommand
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPUnsupportedCommand
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net
includes: []

instance_methods: []

name: Net
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::Protocol
includes: []

instance_methods: []

name: Protocol
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoUnknownError
includes: []

instance_methods: []

name: ProtoUnknownError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::NetPrivate
includes: []

instance_methods: []

name: NetPrivate
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::BufferedIO
includes: []

instance_methods: []

name: BufferedIO
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: POP3 authentication error.
constants: []

full_name: Net::POPAuthenticationError
includes: []

instance_methods: []

name: POPAuthenticationError
superclass: ProtoAuthError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'PROPPATCH'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Proppatch
includes: []

instance_methods: []

name: Proppatch
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a UNLOCK request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#unlock
is_singleton: false
name: unlock
params: (path, body, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn on/off SSL. This flag must be set before starting session. If you change use_ssl value after session started, a Net::HTTP object raises IOError.
full_name: Net::HTTP#use_ssl=
is_singleton: false
name: use_ssl=
params: (flag)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a PROPFIND request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#propfind
is_singleton: false
name: propfind
params: (path, body = nil, initheader = {'Depth' => '0'})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: utils
full_name: Net::HTTP#addr_port
is_singleton: false
name: addr_port
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'DELETE'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Delete
includes: []

instance_methods: []

name: Delete
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turns on net/http 1.2 (ruby 1.8) features. Defaults to ON in ruby 1.8.
- !ruby/struct:SM::Flow::P 
  body: I strongly recommend to call this method always.
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'net/http'\n  Net::HTTP.version_1_2\n"
full_name: Net::HTTP::version_1_2
is_singleton: true
name: version_1_2
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: WebDAV methods --- RFC2518
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'PROPFIND'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Propfind
includes: []

instance_methods: []

name: Propfind
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +body_segment+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets data from <tt>path</tt> on the connected-to host. <tt>header</tt> must be a Hash like { 'Accept' =&gt; '*/*', ... }.
- !ruby/struct:SM::Flow::P 
  body: In version 1.1 (ruby 1.6), this method returns a pair of objects, a Net::HTTPResponse object and the entity body string. In version 1.2 (ruby 1.8), this method returns a Net::HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: If called with a block, yields each fragment of the entity body in turn as a string as it is read from the socket. Note that in this case, the returned response object will <b>not</b> contain a (meaningful) body.
- !ruby/struct:SM::Flow::P 
  body: <tt>dest</tt> argument is obsolete. It still works but you must not use it.
- !ruby/struct:SM::Flow::P 
  body: In version 1.1, this method might raise an exception for 3xx (redirect). In this case you can get a HTTPResponse object by &quot;anException.response&quot;.
- !ruby/struct:SM::Flow::P 
  body: In version 1.2, this method never raises exception.
- !ruby/struct:SM::Flow::VERB 
  body: "    # version 1.1 (bundled with Ruby 1.6)\n    response, body = http.get('/index.html')\n\n    # version 1.2 (bundled with Ruby 1.8 or later)\n    response = http.get('/index.html')\n\n    # using block\n    File.open('result.txt', 'w') {|f|\n      http.get('/~foo/') do |str|\n        f.write str\n      end\n    }\n"
full_name: Net::HTTP#get
is_singleton: false
name: get
params: (path, initheader = nil, dest = nil) {|+body_segment+| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'POST'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Post
includes: []

instance_methods: []

name: Post
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a COPY request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#copy
is_singleton: false
name: copy
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port to use for HTTPS requests; defaults to 443.
full_name: Net::HTTP::https_default_port
is_singleton: true
name: https_default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Send a GET request to the target and return the response as a string. The target can either be specified as (<tt>uri</tt>), or as (<tt>host</tt>, <tt>path</tt>, <tt>port</tt> = 80); so:"
- !ruby/struct:SM::Flow::VERB 
  body: "   print Net::HTTP.get(URI.parse('http://www.example.com/index.html'))\n"
- !ruby/struct:SM::Flow::P 
  body: "or:"
- !ruby/struct:SM::Flow::VERB 
  body: "   print Net::HTTP.get('www.example.com', '/index.html')\n"
full_name: Net::HTTP::get
is_singleton: true
name: get
params: (uri_or_host, path = nil, port = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: without proxy
full_name: Net::HTTP#conn_address
is_singleton: false
name: conn_address
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: proxyport
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Port number of proxy host. If self does not use a proxy, nil.
full_name: Net::HTTP#proxy_port
is_singleton: false
name: proxy_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns true if self is a class which was created by HTTP::Proxy.
full_name: Net::HTTP::proxy_class?
is_singleton: true
name: proxy_class?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#begin_transport
is_singleton: false
name: begin_transport
params: (req)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #ssl_timeout="
full_name: Net::HTTP#timeout=
is_singleton: false
name: timeout=
params: (sec)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'COPY'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Copy
includes: []

instance_methods: []

name: Copy
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #request_head"
full_name: Net::HTTP#head2
is_singleton: false
name: head2
params: (path, initheader = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: get2
block_params: +response+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a GET request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: When called with a block, yields an HTTPResponse object. The body of this response will not have been read yet; the caller can process it using HTTPResponse#read_body, if desired.
- !ruby/struct:SM::Flow::P 
  body: Returns the response.
- !ruby/struct:SM::Flow::P 
  body: This method never raises Net::* exceptions.
- !ruby/struct:SM::Flow::VERB 
  body: "    response = http.request_get('/index.html')\n    # The entity body is already read here.\n    p response['content-type']\n    puts response.body\n\n    # using block\n    http.request_get('/index.html') {|response|\n      p response['content-type']\n      response.read_body do |str|   # read body now\n        print str\n      end\n    }\n"
full_name: Net::HTTP#request_get
is_singleton: false
name: request_get
params: (path, initheader = nil) {|+response+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#do_start
is_singleton: false
name: do_start
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #proxy_address"
full_name: Net::HTTP#proxyaddr
is_singleton: false
name: proxyaddr
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: HTTP 1.1 methods --- RFC2616
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'GET'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Get
includes: []

instance_methods: []

name: Get
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #started?"
full_name: Net::HTTP#active?
is_singleton: false
name: active?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: True if self is a HTTP proxy class.
full_name: Net::HTTP#proxy?
is_singleton: false
name: proxy?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#do_finish
is_singleton: false
name: do_finish
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#ssl_timeout
is_singleton: false
name: ssl_timeout
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates an HTTP proxy class. Arguments are address/port of proxy host and username/password if authorization on proxy server is required. You can replace the HTTP class with created proxy class.
- !ruby/struct:SM::Flow::P 
  body: If ADDRESS is nil, this method returns self (Net::HTTP).
- !ruby/struct:SM::Flow::VERB 
  body: "    # Example\n    proxy_class = Net::HTTP::Proxy('proxy.example.com', 8080)\n                    :\n    proxy_class.start('www.ruby-lang.org') {|http|\n      # connecting proxy.foo.org:8080\n                    :\n    }\n"
full_name: Net::HTTP::Proxy
is_singleton: true
name: Proxy
params: (p_addr, p_port = nil, p_user = nil, p_pass = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'OPTIONS'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "false"
full_name: Net::HTTP::Options
includes: []

instance_methods: []

name: Options
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Get body from target and output it to +$stdout+. The target can either be specified as (<tt>uri</tt>), or as (<tt>host</tt>, <tt>path</tt>, <tt>port</tt> = 80); so:"
- !ruby/struct:SM::Flow::VERB 
  body: "   Net::HTTP.get_print URI.parse('http://www.example.com/index.html')\n"
- !ruby/struct:SM::Flow::P 
  body: "or:"
- !ruby/struct:SM::Flow::VERB 
  body: "   Net::HTTP.get_print 'www.example.com', '/index.html'\n"
full_name: Net::HTTP::get_print
is_singleton: true
name: get_print
params: (uri_or_host, path = nil, port = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#peer_cert
is_singleton: false
name: peer_cert
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +response+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends an HTTPRequest object REQUEST to the HTTP server. This method also sends DATA string if REQUEST is a post/put request. Giving DATA for get/head request causes ArgumentError.
- !ruby/struct:SM::Flow::P 
  body: When called with a block, yields an HTTPResponse object. The body of this response will not have been read yet; the caller can process it using HTTPResponse#read_body, if desired.
- !ruby/struct:SM::Flow::P 
  body: Returns a HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: This method never raises Net::* exceptions.
full_name: Net::HTTP#request
is_singleton: false
name: request
params: (req, body = nil) {|+response+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: proxyaddr
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Address of proxy host. If self does not use a proxy, nil.
full_name: Net::HTTP#proxy_address
is_singleton: false
name: proxy_address
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Net::HTTP object for the specified <tt>address</tt>. This method does not open the TCP connection.
full_name: Net::HTTP::new
is_singleton: true
name: new
params: (address, port = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: post2
block_params: +response+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a POST request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: When called with a block, yields an HTTPResponse object. The body of this response will not have been read yet; the caller can process it using HTTPResponse#read_body, if desired.
- !ruby/struct:SM::Flow::P 
  body: Returns the response.
- !ruby/struct:SM::Flow::P 
  body: This method never raises Net::* exceptions.
- !ruby/struct:SM::Flow::VERB 
  body: "    # example\n    response = http.request_post('/cgi-bin/nice.rb', 'datadatadata...')\n    p response.status\n    puts response.body          # body is already read\n\n    # using block\n    http.request_post('/cgi-bin/nice.rb', 'datadatadata...') {|response|\n      p response.status\n      p response['content-type']\n      response.read_body do |str|   # read body now\n        print str\n      end\n    }\n"
full_name: Net::HTTP#request_post
is_singleton: false
name: request_post
params: (path, data, initheader = nil) {|+response+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: active?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns true if the HTTP session is started.
full_name: Net::HTTP#started?
is_singleton: false
name: started?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#use_ssl?
is_singleton: false
name: use_ssl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP::ssl_context_accessor
is_singleton: true
name: ssl_context_accessor
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a OPTIONS request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#options
is_singleton: false
name: options
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#on_connect
is_singleton: false
name: on_connect
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'UNLOCK'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Unlock
includes: []

instance_methods: []

name: Unlock
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #proxy_port"
full_name: Net::HTTP#proxyport
is_singleton: false
name: proxyport
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a DELETE request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#delete
is_singleton: false
name: delete
params: (path, initheader = {'Depth' => 'Infinity'})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'TRACE'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Trace
includes: []

instance_methods: []

name: Trace
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if net/http is in version 1.2 mode. Defaults to true.
full_name: Net::HTTP::version_1_2?
is_singleton: true
name: version_1_2?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#D
is_singleton: false
name: D
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets only the header from <tt>path</tt> on the connected-to host. <tt>header</tt> is a Hash like { 'Accept' =&gt; '*/*', ... }.
- !ruby/struct:SM::Flow::P 
  body: This method returns a Net::HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: In version 1.1, this method might raise an exception for 3xx (redirect). On the case you can get a HTTPResponse object by &quot;anException.response&quot;. In version 1.2, this method never raises an exception.
- !ruby/struct:SM::Flow::VERB 
  body: "    response = nil\n    Net::HTTP.start('some.www.server', 80) {|http|\n      response = http.head('/index.html')\n    }\n    p response['content-type']\n"
full_name: Net::HTTP#head
is_singleton: false
name: head
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#connect
is_singleton: false
name: connect
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finishes HTTP session and closes TCP connection. Raises IOError if not started.
full_name: Net::HTTP#finish
is_singleton: false
name: finish
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port to use for HTTP requests; defaults to 80.
full_name: Net::HTTP::default_port
is_singleton: true
name: default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a LOCK request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#lock
is_singleton: false
name: lock
params: (path, body, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a MOVE request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#move
is_singleton: false
name: move
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'MKCOL'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Mkcol
includes: []

instance_methods: []

name: Mkcol
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a TRACE request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#trace
is_singleton: false
name: trace
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: timeout=
block_params: 
comment: 
full_name: Net::HTTP#ssl_timeout=
is_singleton: false
name: ssl_timeout=
params: (sec)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The host name to connect to.
  name: address
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: close_on_empty_response
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait until connection is opened. If the HTTP object cannot open a connection in this many seconds, it raises a TimeoutError exception.
  name: open_timeout
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The port number to connect to.
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: proxy_address
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: proxy_pass
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: proxy_port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: proxy_user
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait until reading one block (by one read(2) call). If the HTTP object cannot open a connection in this many seconds, it raises a TimeoutError exception.
  name: read_timeout
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: Proxy
- !ruby/object:RI::MethodSummary 
  name: default_port
- !ruby/object:RI::MethodSummary 
  name: get
- !ruby/object:RI::MethodSummary 
  name: get_print
- !ruby/object:RI::MethodSummary 
  name: get_response
- !ruby/object:RI::MethodSummary 
  name: http_default_port
- !ruby/object:RI::MethodSummary 
  name: https_default_port
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: post_form
- !ruby/object:RI::MethodSummary 
  name: proxy_class?
- !ruby/object:RI::MethodSummary 
  name: ssl_context_accessor
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: version_1_1
- !ruby/object:RI::MethodSummary 
  name: version_1_1?
- !ruby/object:RI::MethodSummary 
  name: version_1_2
- !ruby/object:RI::MethodSummary 
  name: version_1_2?
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: What Is This Library?
- !ruby/struct:SM::Flow::P 
  body: This library provides your program functions to access WWW documents via HTTP, Hyper Text Transfer Protocol version 1.1. For details of HTTP, refer [RFC2616] (http://www.ietf.org/rfc/rfc2616.txt).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Getting Document From WWW Server
- !ruby/struct:SM::Flow::P 
  body: "Example #1: Simple GET+print"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    Net::HTTP.get_print 'www.example.com', '/index.html'\n"
- !ruby/struct:SM::Flow::P 
  body: "Example #2: Simple GET+print by URL"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    require 'uri'\n    Net::HTTP.get_print URI.parse('http://www.example.com/index.html')\n"
- !ruby/struct:SM::Flow::P 
  body: "Example #3: More generic GET+print"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    require 'uri'\n\n    url = URI.parse('http://www.example.com/index.html')\n    res = Net::HTTP.start(url.host, url.port) {|http|\n      http.get('/index.html')\n    }\n    puts res.body\n"
- !ruby/struct:SM::Flow::P 
  body: "Example #4: More generic GET+print"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n\n    url = URI.parse('http://www.example.com/index.html')\n    req = Net::HTTP::Get.new(url.path)\n    res = Net::HTTP.start(url.host, url.port) {|http|\n      http.request(req)\n    }\n    puts res.body\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Posting Form Data
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    require 'uri'\n\n    #1: Simple POST\n    res = Net::HTTP.post_form(URI.parse('http://www.example.com/search.cgi'),\n                              {'q'=&gt;'ruby', 'max'=&gt;'50'})\n    puts res.body\n\n    #2: POST with basic authentication\n    res = Net::HTTP.post_form(URI.parse('http://jack:pass@www.example.com/todo.cgi'),\n                                        {'from'=&gt;'2005-01-01', 'to'=&gt;'2005-03-31'})\n    puts res.body\n\n    #3: Detailed control\n    url = URI.parse('http://www.example.com/todo.cgi')\n    req = Net::HTTP::Post.new(url.path)\n    req.basic_auth 'jack', 'pass'\n    req.set_form_data({'from'=&gt;'2005-01-01', 'to'=&gt;'2005-03-31'}, ';')\n    res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }\n    case res\n    when Net::HTTPSuccess, Net::HTTPRedirection\n      # OK\n    else\n      res.error!\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Accessing via Proxy
- !ruby/struct:SM::Flow::P 
  body: Net::HTTP.Proxy creates http proxy class. It has same methods of Net::HTTP but its instances always connect to proxy, instead of given host.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n\n    proxy_addr = 'your.proxy.host'\n    proxy_port = 8080\n            :\n    Net::HTTP::Proxy(proxy_addr, proxy_port).start('www.example.com') {|http|\n      # always connect to your.proxy.addr:8080\n            :\n    }\n"
- !ruby/struct:SM::Flow::P 
  body: Since Net::HTTP.Proxy returns Net::HTTP itself when proxy_addr is nil, there's no need to change code if there's proxy or not.
- !ruby/struct:SM::Flow::P 
  body: "There are two additional parameters in Net::HTTP.Proxy which allow to specify proxy user name and password:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::HTTP::Proxy(proxy_addr, proxy_port, proxy_user = nil, proxy_pass = nil)\n"
- !ruby/struct:SM::Flow::P 
  body: "You may use them to work with authorization-enabled proxies:"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    require 'uri'\n\n    proxy_host = 'your.proxy.host'\n    proxy_port = 8080\n    uri = URI.parse(ENV['http_proxy'])\n    proxy_user, proxy_pass = uri.userinfo.split(/:/) if uri.userinfo\n    Net::HTTP::Proxy(proxy_host, proxy_port,\n                     proxy_user, proxy_pass).start('www.example.com') {|http|\n      # always connect to your.proxy.addr:8080 using specified username and password\n            :\n    }\n"
- !ruby/struct:SM::Flow::P 
  body: Note that net/http never rely on HTTP_PROXY environment variable. If you want to use proxy, set it explicitly.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Following Redirection
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n    require 'uri'\n\n    def fetch(uri_str, limit = 10)\n      # You should choose better exception.\n      raise ArgumentError, 'HTTP redirect too deep' if limit == 0\n\n      response = Net::HTTP.get_response(URI.parse(uri_str))\n      case response\n      when Net::HTTPSuccess     then response\n      when Net::HTTPRedirection then fetch(response['location'], limit - 1)\n      else\n        response.error!\n      end\n    end\n\n    print fetch('http://www.ruby-lang.org')\n"
- !ruby/struct:SM::Flow::P 
  body: Net::HTTPSuccess and Net::HTTPRedirection is a HTTPResponse class. All HTTPResponse objects belong to its own response class which indicate HTTP result status. For details of response classes, see section &quot;HTTP Response Classes&quot;.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Basic Authentication
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/http'\n\n    Net::HTTP.start('www.example.com') {|http|\n      req = Net::HTTP::Get.new('/secret-page.html')\n      req.basic_auth 'account', 'password'\n      response = http.request(req)\n      print response.body\n    }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: HTTP Request Classes
- !ruby/struct:SM::Flow::P 
  body: Here is HTTP request class hierarchy.
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::HTTPRequest\n      Net::HTTP::Get\n      Net::HTTP::Head\n      Net::HTTP::Post\n      Net::HTTP::Put\n      Net::HTTP::Proppatch\n      Net::HTTP::Lock\n      Net::HTTP::Unlock\n      Net::HTTP::Options\n      Net::HTTP::Propfind\n      Net::HTTP::Delete\n      Net::HTTP::Move\n      Net::HTTP::Copy\n      Net::HTTP::Mkcol\n      Net::HTTP::Trace\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: HTTP Response Classes
- !ruby/struct:SM::Flow::P 
  body: Here is HTTP response class hierarchy. All classes are defined in Net module.
- !ruby/struct:SM::Flow::VERB 
  body: "  HTTPResponse\n      HTTPUnknownResponse\n      HTTPInformation                    # 1xx\n          HTTPContinue                       # 100\n          HTTPSwitchProtocl                  # 101\n      HTTPSuccess                        # 2xx\n          HTTPOK                             # 200\n          HTTPCreated                        # 201\n          HTTPAccepted                       # 202\n          HTTPNonAuthoritativeInformation    # 203\n          HTTPNoContent                      # 204\n          HTTPResetContent                   # 205\n          HTTPPartialContent                 # 206\n      HTTPRedirection                    # 3xx\n          HTTPMultipleChoice                 # 300\n          HTTPMovedPermanently               # 301\n          HTTPFound                          # 302\n          HTTPSeeOther                       # 303\n          HTTPNotModified                    # 304\n          HTTPUseProxy                       # 305\n          HTTPTemporaryRedirect              # 307\n      HTTPClientError                    # 4xx\n          HTTPBadRequest                     # 400\n          HTTPUnauthorized                   # 401\n          HTTPPaymentRequired                # 402\n          HTTPForbidden                      # 403\n          HTTPNotFound                       # 404\n          HTTPMethodNotAllowed               # 405\n          HTTPNotAcceptable                  # 406\n          HTTPProxyAuthenticationRequired    # 407\n          HTTPRequestTimeOut                 # 408\n          HTTPConflict                       # 409\n          HTTPGone                           # 410\n          HTTPLengthRequired                 # 411\n          HTTPPreconditionFailed             # 412\n          HTTPRequestEntityTooLarge          # 413\n          HTTPRequestURITooLong              # 414\n          HTTPUnsupportedMediaType           # 415\n          HTTPRequestedRangeNotSatisfiable   # 416\n          HTTPExpectationFailed              # 417\n      HTTPServerError                    # 5xx\n          HTTPInternalServerError            # 500\n          HTTPNotImplemented                 # 501\n          HTTPBadGateway                     # 502\n          HTTPServiceUnavailable             # 503\n          HTTPGatewayTimeOut                 # 504\n          HTTPVersionNotSupported            # 505\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Switching Net::HTTP versions
- !ruby/struct:SM::Flow::P 
  body: You can use net/http.rb 1.1 features (bundled with Ruby 1.6) by calling HTTP.version_1_1. Calling Net::HTTP.version_1_2 allows you to use 1.2 features again.
- !ruby/struct:SM::Flow::VERB 
  body: "    # example\n    Net::HTTP.start {|http1| ...(http1 has 1.2 features)... }\n\n    Net::HTTP.version_1_1\n    Net::HTTP.start {|http2| ...(http2 has 1.1 features)... }\n\n    Net::HTTP.version_1_2\n    Net::HTTP.start {|http3| ...(http3 has 1.2 features)... }\n"
- !ruby/struct:SM::Flow::P 
  body: This function is NOT thread-safe.
constants: []

full_name: Net::HTTP
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: D
- !ruby/object:RI::MethodSummary 
  name: active?
- !ruby/object:RI::MethodSummary 
  name: addr_port
- !ruby/object:RI::MethodSummary 
  name: begin_transport
- !ruby/object:RI::MethodSummary 
  name: conn_address
- !ruby/object:RI::MethodSummary 
  name: conn_port
- !ruby/object:RI::MethodSummary 
  name: connect
- !ruby/object:RI::MethodSummary 
  name: copy
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: do_finish
- !ruby/object:RI::MethodSummary 
  name: do_start
- !ruby/object:RI::MethodSummary 
  name: edit_path
- !ruby/object:RI::MethodSummary 
  name: end_transport
- !ruby/object:RI::MethodSummary 
  name: finish
- !ruby/object:RI::MethodSummary 
  name: get
- !ruby/object:RI::MethodSummary 
  name: get2
- !ruby/object:RI::MethodSummary 
  name: head
- !ruby/object:RI::MethodSummary 
  name: head2
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: keep_alive?
- !ruby/object:RI::MethodSummary 
  name: lock
- !ruby/object:RI::MethodSummary 
  name: mkcol
- !ruby/object:RI::MethodSummary 
  name: move
- !ruby/object:RI::MethodSummary 
  name: on_connect
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: peer_cert
- !ruby/object:RI::MethodSummary 
  name: post
- !ruby/object:RI::MethodSummary 
  name: post2
- !ruby/object:RI::MethodSummary 
  name: propfind
- !ruby/object:RI::MethodSummary 
  name: proppatch
- !ruby/object:RI::MethodSummary 
  name: proxy?
- !ruby/object:RI::MethodSummary 
  name: proxy_address
- !ruby/object:RI::MethodSummary 
  name: proxy_pass
- !ruby/object:RI::MethodSummary 
  name: proxy_port
- !ruby/object:RI::MethodSummary 
  name: proxy_user
- !ruby/object:RI::MethodSummary 
  name: proxyaddr
- !ruby/object:RI::MethodSummary 
  name: proxyport
- !ruby/object:RI::MethodSummary 
  name: read_timeout=
- !ruby/object:RI::MethodSummary 
  name: request
- !ruby/object:RI::MethodSummary 
  name: request_get
- !ruby/object:RI::MethodSummary 
  name: request_head
- !ruby/object:RI::MethodSummary 
  name: request_post
- !ruby/object:RI::MethodSummary 
  name: send_request
- !ruby/object:RI::MethodSummary 
  name: set_debug_output
- !ruby/object:RI::MethodSummary 
  name: ssl_timeout
- !ruby/object:RI::MethodSummary 
  name: ssl_timeout=
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: started?
- !ruby/object:RI::MethodSummary 
  name: timeout=
- !ruby/object:RI::MethodSummary 
  name: trace
- !ruby/object:RI::MethodSummary 
  name: unlock
- !ruby/object:RI::MethodSummary 
  name: use_ssl
- !ruby/object:RI::MethodSummary 
  name: use_ssl=
- !ruby/object:RI::MethodSummary 
  name: use_ssl?
- !ruby/object:RI::MethodSummary 
  name: use_ssl?
name: HTTP
superclass: Protocol
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#edit_path
is_singleton: false
name: edit_path
params: (path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #request_post"
full_name: Net::HTTP#post2
is_singleton: false
name: post2
params: (path, data, initheader = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'PUT'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Put
includes: []

instance_methods: []

name: Put
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#conn_port
is_singleton: false
name: conn_port
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Setter for the read_timeout attribute.
full_name: Net::HTTP#read_timeout=
is_singleton: false
name: read_timeout=
params: (sec)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'LOCK'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "true"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Lock
includes: []

instance_methods: []

name: Lock
superclass: HTTPRequest
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'MOVE'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "true"
full_name: Net::HTTP::Move
includes: []

instance_methods: []

name: Move
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#keep_alive?
is_singleton: false
name: keep_alive?
params: (req, res)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends an HTTP request to the HTTP server. This method also sends DATA string if DATA is given.
- !ruby/struct:SM::Flow::P 
  body: Returns a HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: This method never raises Net::* exceptions.
- !ruby/struct:SM::Flow::VERB 
  body: "   response = http.send_request('GET', '/index.html')\n   puts response.body\n"
full_name: Net::HTTP#send_request
is_singleton: false
name: send_request
params: (name, path, data = nil, header = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Send a GET request to the target and return the response as a Net::HTTPResponse object. The target can either be specified as (<tt>uri</tt>), or as (<tt>host</tt>, <tt>path</tt>, <tt>port</tt> = 80); so:"
- !ruby/struct:SM::Flow::VERB 
  body: "   res = Net::HTTP.get_response(URI.parse('http://www.example.com/index.html'))\n   print res.body\n"
- !ruby/struct:SM::Flow::P 
  body: "or:"
- !ruby/struct:SM::Flow::VERB 
  body: "   res = Net::HTTP.get_response('www.example.com', '/index.html')\n   print res.body\n"
full_name: Net::HTTP::get_response
is_singleton: true
name: get_response
params: (uri_or_host, path = nil, port = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turns on net/http 1.1 (ruby 1.6) features. Defaults to OFF in ruby 1.8.
full_name: Net::HTTP::version_1_1
is_singleton: true
name: version_1_1
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port to use for HTTP requests; defaults to 80.
full_name: Net::HTTP::http_default_port
is_singleton: true
name: http_default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: User name for accessing proxy. If self does not use a proxy, nil.
full_name: Net::HTTP#proxy_user
is_singleton: false
name: proxy_user
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <b>WARNING</b> This method causes serious security hole. Never use this method in production code.
- !ruby/struct:SM::Flow::P 
  body: Set an output stream for debugging.
- !ruby/struct:SM::Flow::VERB 
  body: "  http = Net::HTTP.new\n  http.set_debug_output $stderr\n  http.start { .... }\n"
full_name: Net::HTTP#set_debug_output
is_singleton: false
name: set_debug_output
params: (output)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +http+
comment: 
- !ruby/struct:SM::Flow::P 
  body: creates a new Net::HTTP object and opens its TCP connection and HTTP session. If the optional block is given, the newly created Net::HTTP object is passed to it and closed when the block finishes. In this case, the return value of this method is the return value of the block. If no block is given, the return value of this method is the newly created Net::HTTP object itself, and the caller is responsible for closing it upon completion.
full_name: Net::HTTP::start
is_singleton: true
name: start
params: (address, port = nil, p_addr = nil, p_port = nil, p_user = nil, p_pass = nil) {|+http+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +body_segment+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Posts <tt>data</tt> (must be a String) to <tt>path</tt>. <tt>header</tt> must be a Hash like { 'Accept' =&gt; '*/*', ... }.
- !ruby/struct:SM::Flow::P 
  body: In version 1.1 (ruby 1.6), this method returns a pair of objects, a Net::HTTPResponse object and an entity body string. In version 1.2 (ruby 1.8), this method returns a Net::HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: If called with a block, yields each fragment of the entity body in turn as a string as it are read from the socket. Note that in this case, the returned response object will <b>not</b> contain a (meaningful) body.
- !ruby/struct:SM::Flow::P 
  body: <tt>dest</tt> argument is obsolete. It still works but you must not use it.
- !ruby/struct:SM::Flow::P 
  body: In version 1.1, this method might raise an exception for 3xx (redirect). In this case you can get an HTTPResponse object by &quot;anException.response&quot;. In version 1.2, this method never raises exception.
- !ruby/struct:SM::Flow::VERB 
  body: "    # version 1.1\n    response, body = http.post('/cgi-bin/search.rb', 'query=foo')\n\n    # version 1.2\n    response = http.post('/cgi-bin/search.rb', 'query=foo')\n\n    # using block\n    File.open('result.txt', 'w') {|f|\n      http.post('/cgi-bin/search.rb', 'query=foo') do |str|\n        f.write str\n      end\n    }\n"
- !ruby/struct:SM::Flow::P 
  body: "You should set Content-Type: header field for POST. If no Content-Type: field given, this method uses &quot;application/x-www-form-urlencoded&quot; by default."
full_name: Net::HTTP#post
is_singleton: false
name: post
params: (path, data, initheader = nil, dest = nil) {|+body_segment+| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: METHOD
  value: "'HEAD'"
- !ruby/object:RI::Constant 
  comment: 
  name: REQUEST_HAS_BODY
  value: "false"
- !ruby/object:RI::Constant 
  comment: 
  name: RESPONSE_HAS_BODY
  value: "false"
full_name: Net::HTTP::Head
includes: []

instance_methods: []

name: Head
superclass: HTTPRequest
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Posts HTML form data to the <tt>URL</tt>. Form data must be represented as a Hash of String to String, e.g:"
- !ruby/struct:SM::Flow::VERB 
  body: "  { &quot;cmd&quot; =&gt; &quot;search&quot;, &quot;q&quot; =&gt; &quot;ruby&quot;, &quot;max&quot; =&gt; &quot;50&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: This method also does Basic Authentication iff <tt>URL</tt>.user exists.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'net/http'\n  require 'uri'\n\n  HTTP.post_form URI.parse('http://www.example.com/search.cgi'),\n                 { &quot;q&quot; =&gt; &quot;ruby&quot;, &quot;max&quot; =&gt; &quot;50&quot; }\n"
full_name: Net::HTTP::post_form
is_singleton: true
name: post_form
params: (url, params)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #request_get"
full_name: Net::HTTP#get2
is_singleton: false
name: get2
params: (path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTP#end_transport
is_singleton: false
name: end_transport
params: (req, res)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: http
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens TCP connection and HTTP session.
- !ruby/struct:SM::Flow::P 
  body: When this method is called with block, gives a HTTP object to the block and closes the TCP connection / HTTP session after the block executed.
- !ruby/struct:SM::Flow::P 
  body: When called with a block, returns the return value of the block; otherwise, returns self.
full_name: Net::HTTP#start
is_singleton: false
name: start
params: ( {|http| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: head2
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a HEAD request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
- !ruby/struct:SM::Flow::P 
  body: Returns the response.
- !ruby/struct:SM::Flow::P 
  body: This method never raises Net::* exceptions.
- !ruby/struct:SM::Flow::VERB 
  body: "    response = http.request_head('/index.html')\n    p response['content-type']\n"
full_name: Net::HTTP#request_head
is_singleton: false
name: request_head
params: (path, initheader = nil, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::HTTP::ProxyDelta
includes: []

instance_methods: []

name: ProxyDelta
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #use_ssl?"
full_name: Net::HTTP#use_ssl
is_singleton: false
name: use_ssl
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a MKCOL request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#mkcol
is_singleton: false
name: mkcol
params: (path, body = nil, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a PROPPATCH request to the <tt>path</tt> and gets a response, as an HTTPResponse object.
full_name: Net::HTTP#proppatch
is_singleton: false
name: proppatch
params: (path, body, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if net/http is in version 1.1 compatible mode. Defaults to true.
full_name: Net::HTTP::version_1_1?
is_singleton: true
name: version_1_1?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: User password for accessing proxy. If self does not use a proxy, nil.
full_name: Net::HTTP#proxy_pass
is_singleton: false
name: proxy_pass
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each_key
block_params: +key+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates for each header names.
full_name: Net::HTTPHeader#each_name
is_singleton: false
name: each_name
params: () {|+key+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the header field corresponding to the case-insensitive key. For example, a key of &quot;Content-Type&quot; might return &quot;text/html&quot;
full_name: Net::HTTPHeader#[]
is_singleton: false
name: "[]"
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "The length of the range represented in Content-Range: header."
full_name: Net::HTTPHeader#range_length
is_singleton: false
name: range_length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each_capitalized"
full_name: Net::HTTPHeader#canonical_each
is_singleton: false
name: canonical_each
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +key+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the header field corresponding to the case-insensitive key. Returns the default value <tt>args</tt>, or the result of the block, or nil, if there's no header field named key. See Hash#fetch
full_name: Net::HTTPHeader#fetch
is_singleton: false
name: fetch
params: (key, *args) {|+key+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +key+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates for each capitalized header names.
full_name: Net::HTTPHeader#each_capitalized_name
is_singleton: false
name: each_capitalized_name
params: () {|+key+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if <tt>key</tt> header exists.
full_name: Net::HTTPHeader#key?
is_singleton: false
name: key?
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPHeader#capitalize
is_singleton: false
name: capitalize
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: +value+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates for each header values.
full_name: Net::HTTPHeader#each_value
is_singleton: false
name: each_value
params: ( {|+value+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a Hash consist of header names and values.
full_name: Net::HTTPHeader#to_hash
is_singleton: false
name: to_hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: form_data=
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set header fields and a body from HTML form data. <tt>params</tt> should be a Hash containing HTML form data. Optional argument <tt>sep</tt> means data record separator.
- !ruby/struct:SM::Flow::P 
  body: "This method also set Content-Type: header field to application/x-www-form-urlencoded."
full_name: Net::HTTPHeader#set_form_data
is_singleton: false
name: set_form_data
params: (params, sep = '&')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns an Array of Range objects which represents Range: header field, or <tt>nil</tt> if there is no such header."
full_name: Net::HTTPHeader#range
is_singleton: false
name: range
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each_name"
full_name: Net::HTTPHeader#each_key
is_singleton: false
name: each_key
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns an Integer object which represents the Content-Length: header field or <tt>nil</tt> if that field is not provided."
full_name: Net::HTTPHeader#content_length
is_singleton: false
name: content_length
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a content type string such as &quot;text/html&quot;. This method returns nil if Content-Type: header field does not exist."
full_name: Net::HTTPHeader#content_type
is_singleton: false
name: content_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPHeader#basic_encode
is_singleton: false
name: basic_encode
params: (account, password)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Set Proxy-Authorization: header for &quot;Basic&quot; authorization."
full_name: Net::HTTPHeader#proxy_basic_auth
is_singleton: false
name: proxy_basic_auth
params: (account, password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPHeader#content_length=
is_singleton: false
name: content_length=
params: (len)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: range=
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Set Range: header from Range (arg r) or beginning index and length from it (arg idx&amp;len)."
- !ruby/struct:SM::Flow::VERB 
  body: "  req.range = (0..1023)\n  req.set_range 0, 1023\n"
full_name: Net::HTTPHeader#set_range
is_singleton: false
name: set_range
params: (r, e = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a header field.
full_name: Net::HTTPHeader#delete
is_singleton: false
name: delete
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a content type string such as &quot;html&quot;. This method returns nil if Content-Type: header field does not exist or sub-type is not given (e.g. &quot;Content-Type: text&quot;)."
full_name: Net::HTTPHeader#sub_type
is_singleton: false
name: sub_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each_header"
full_name: Net::HTTPHeader#each
is_singleton: false
name: each
params: (
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: canonical_each
block_params: capitalize(k), v.join(', ')
comment: 
- !ruby/struct:SM::Flow::P 
  body: "As for #each_header, except the keys are provided in capitalized form."
full_name: Net::HTTPHeader#each_capitalized
is_singleton: false
name: each_capitalized
params: () {|capitalize(k), v.join(', ')| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a Range object which represents Content-Range: header field. This indicates, for a partial entity body, where this fragment fits inside the full entity body, as range of byte offsets."
full_name: Net::HTTPHeader#content_range
is_singleton: false
name: content_range
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPHeader#urlencode
is_singleton: false
name: urlencode
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "[Ruby 1.8.3] Returns an array of header field strings corresponding to the case-insensitive <tt>key</tt>. This method allows you to get duplicated header fields without any processing. See also #[]."
- !ruby/struct:SM::Flow::VERB 
  body: "  p response.get_fields('Set-Cookie')\n    #=&gt; [&quot;session=al98axx; expires=Fri, 31-Dec-1999 23:58:23&quot;,\n         &quot;query=rubyscript; expires=Fri, 31-Dec-1999 23:58:23&quot;]\n  p response['Set-Cookie']\n    #=&gt; &quot;session=al98axx; expires=Fri, 31-Dec-1999 23:58:23, query=rubyscript; expires=Fri, 31-Dec-1999 23:58:23&quot;\n"
full_name: Net::HTTPHeader#get_fields
is_singleton: false
name: get_fields
params: (key)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #set_form_data"
full_name: Net::HTTPHeader#form_data=
is_singleton: false
name: form_data=
params: (params, sep = '&')
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Header module.
- !ruby/struct:SM::Flow::P 
  body: Provides access to @header in the mixed-into class as a hash-like object, except with case-insensitive keys. Also provides methods for accessing commonly-used header values in a more convenient format.
constants: []

full_name: Net::HTTPHeader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: add_field
- !ruby/object:RI::MethodSummary 
  name: basic_auth
- !ruby/object:RI::MethodSummary 
  name: basic_encode
- !ruby/object:RI::MethodSummary 
  name: canonical_each
- !ruby/object:RI::MethodSummary 
  name: capitalize
- !ruby/object:RI::MethodSummary 
  name: chunked?
- !ruby/object:RI::MethodSummary 
  name: content_length
- !ruby/object:RI::MethodSummary 
  name: content_length=
- !ruby/object:RI::MethodSummary 
  name: content_range
- !ruby/object:RI::MethodSummary 
  name: content_type
- !ruby/object:RI::MethodSummary 
  name: content_type=
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_capitalized
- !ruby/object:RI::MethodSummary 
  name: each_capitalized_name
- !ruby/object:RI::MethodSummary 
  name: each_header
- !ruby/object:RI::MethodSummary 
  name: each_key
- !ruby/object:RI::MethodSummary 
  name: each_name
- !ruby/object:RI::MethodSummary 
  name: each_value
- !ruby/object:RI::MethodSummary 
  name: fetch
- !ruby/object:RI::MethodSummary 
  name: form_data=
- !ruby/object:RI::MethodSummary 
  name: get_fields
- !ruby/object:RI::MethodSummary 
  name: initialize_http_header
- !ruby/object:RI::MethodSummary 
  name: key?
- !ruby/object:RI::MethodSummary 
  name: main_type
- !ruby/object:RI::MethodSummary 
  name: proxy_basic_auth
- !ruby/object:RI::MethodSummary 
  name: range
- !ruby/object:RI::MethodSummary 
  name: range=
- !ruby/object:RI::MethodSummary 
  name: range_length
- !ruby/object:RI::MethodSummary 
  name: set_content_type
- !ruby/object:RI::MethodSummary 
  name: set_form_data
- !ruby/object:RI::MethodSummary 
  name: set_range
- !ruby/object:RI::MethodSummary 
  name: sub_type
- !ruby/object:RI::MethodSummary 
  name: to_hash
- !ruby/object:RI::MethodSummary 
  name: type_params
- !ruby/object:RI::MethodSummary 
  name: urlencode
name: HTTPHeader
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns content type parameters as a Hash as like {&quot;charset&quot; =&gt; &quot;iso-2022-jp&quot;}.
full_name: Net::HTTPHeader#type_params
is_singleton: false
name: type_params
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "[Ruby 1.8.3] Adds header field instead of replace. Second argument <tt>val</tt> must be a String. See also #[]=, #[] and #get_fields."
- !ruby/struct:SM::Flow::VERB 
  body: "  request.add_field 'X-My-Header', 'a'\n  p request['X-My-Header']              #=&gt; &quot;a&quot;\n  p request.get_fields('X-My-Header')   #=&gt; [&quot;a&quot;]\n  request.add_field 'X-My-Header', 'b'\n  p request['X-My-Header']              #=&gt; &quot;a, b&quot;\n  p request.get_fields('X-My-Header')   #=&gt; [&quot;a&quot;, &quot;b&quot;]\n  request.add_field 'X-My-Header', 'c'\n  p request['X-My-Header']              #=&gt; &quot;a, b, c&quot;\n  p request.get_fields('X-My-Header')   #=&gt; [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]\n"
full_name: Net::HTTPHeader#add_field
is_singleton: false
name: add_field
params: (key, val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #set_range"
full_name: Net::HTTPHeader#range=
is_singleton: false
name: range=
params: (r, e = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Set the Authorization: header for &quot;Basic&quot; authorization."
full_name: Net::HTTPHeader#basic_auth
is_singleton: false
name: basic_auth
params: (account, password)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns &quot;true&quot; if the &quot;transfer-encoding&quot; header is present and set to &quot;chunked&quot;. This is an HTTP/1.1 feature, allowing the the content to be sent in &quot;chunks&quot; without at the outset stating the entire content length.
full_name: Net::HTTPHeader#chunked?
is_singleton: false
name: chunked?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each
block_params: +key+, +value+
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates for each header names and values.
full_name: Net::HTTPHeader#each_header
is_singleton: false
name: each_header
params: ( {|+key+, +value+| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #set_content_type"
full_name: Net::HTTPHeader#content_type=
is_singleton: false
name: content_type=
params: (type, params = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the header field corresponding to the case-insensitive key.
full_name: Net::HTTPHeader#[]=
is_singleton: false
name: "[]="
params: (key, val)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPHeader#initialize_http_header
is_singleton: false
name: initialize_http_header
params: (initheader)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a content type string such as &quot;text&quot;. This method returns nil if Content-Type: header field does not exist."
full_name: Net::HTTPHeader#main_type
is_singleton: false
name: main_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: content_type=
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Set Content-Type: header field by <tt>type</tt> and <tt>params</tt>. <tt>type</tt> must be a String, <tt>params</tt> must be a Hash."
full_name: Net::HTTPHeader#set_content_type
is_singleton: false
name: set_content_type
params: (type, params = {})
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse#procdest
is_singleton: false
name: procdest
params: (dest, block)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse::read_status_line
is_singleton: true
name: read_status_line
params: (sock)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets entity body. If the block given, yields it to <tt>block</tt>. The body is provided in fragments, as it is read in from the socket.
- !ruby/struct:SM::Flow::P 
  body: Calling this method a second or subsequent time will return the already read string.
- !ruby/struct:SM::Flow::VERB 
  body: "  http.request_get('/index.html') {|res|\n    puts res.read_body\n  }\n\n  http.request_get('/index.html') {|res|\n    p res.read_body.object_id   # 538149362\n    p res.read_body.object_id   # 538149362\n  }\n\n  # using iterator\n  http.request_get('/index.html') {|res|\n    res.read_body do |segment|\n      print segment\n    end\n  }\n"
full_name: Net::HTTPResponse#read_body
is_singleton: false
name: read_body
params: (dest = nil, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if the response has body.
full_name: Net::HTTPResponse::body_permitted?
is_singleton: true
name: body_permitted?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse::response_class
is_singleton: true
name: response_class
params: (code)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: m[1], m.post_match
comment: 
full_name: Net::HTTPResponse::each_response_header
is_singleton: true
name: each_response_header
params: (sock) {|m[1], m.post_match| ...}
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: HTTP result code string. For example, '302'. You can also determine the response type by which response subclass the response object is an instance of.
  name: code
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The HTTP version supported by the server.
  name: http_version
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: HTTP result message. For example, 'Not Found'.
  name: message
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: body_permitted?
- !ruby/object:RI::MethodSummary 
  name: each_response_header
- !ruby/object:RI::MethodSummary 
  name: read_status_line
- !ruby/object:RI::MethodSummary 
  name: response_class
comment: 
- !ruby/struct:SM::Flow::P 
  body: HTTP response class. This class wraps response header and entity. Mixes in the HTTPHeader module, which provides access to response header values both via hash-like methods and individual readers. Note that each possible HTTP response code defines its own HTTPResponse subclass. These are listed below. All classes are defined under the Net module. Indentation indicates inheritance.
- !ruby/struct:SM::Flow::VERB 
  body: "  xxx        HTTPResponse\n\n    1xx        HTTPInformation\n      100        HTTPContinue\n      101        HTTPSwitchProtocol\n\n    2xx        HTTPSuccess\n      200        HTTPOK\n      201        HTTPCreated\n      202        HTTPAccepted\n      203        HTTPNonAuthoritativeInformation\n      204        HTTPNoContent\n      205        HTTPResetContent\n      206        HTTPPartialContent\n\n    3xx        HTTPRedirection\n      300        HTTPMultipleChoice\n      301        HTTPMovedPermanently\n      302        HTTPFound\n      303        HTTPSeeOther\n      304        HTTPNotModified\n      305        HTTPUseProxy\n      307        HTTPTemporaryRedirect\n\n    4xx        HTTPClientError\n      400        HTTPBadRequest\n      401        HTTPUnauthorized\n      402        HTTPPaymentRequired\n      403        HTTPForbidden\n      404        HTTPNotFound\n      405        HTTPMethodNotAllowed\n      406        HTTPNotAcceptable\n      407        HTTPProxyAuthenticationRequired\n      408        HTTPRequestTimeOut\n      409        HTTPConflict\n      410        HTTPGone\n      411        HTTPLengthRequired\n      412        HTTPPreconditionFailed\n      413        HTTPRequestEntityTooLarge\n      414        HTTPRequestURITooLong\n      415        HTTPUnsupportedMediaType\n      416        HTTPRequestedRangeNotSatisfiable\n      417        HTTPExpectationFailed\n\n    5xx        HTTPServerError\n      500        HTTPInternalServerError\n      501        HTTPNotImplemented\n      502        HTTPBadGateway\n      503        HTTPServiceUnavailable\n      504        HTTPGatewayTimeOut\n      505        HTTPVersionNotSupported\n\n    xxx        HTTPUnknownResponse\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CODE_CLASS_TO_OBJ
  value: "{       '1' => HTTPInformation,       '2' => HTTPSuccess,       '3' => HTTPRedirection,       '4' => HTTPClientError,       '5' => HTTPServerError"
- !ruby/object:RI::Constant 
  comment: 
  name: CODE_TO_OBJ
  value: "{       '100' => HTTPContinue,       '101' => HTTPSwitchProtocol,        '200' => HTTPOK,       '201' => HTTPCreated,       '202' => HTTPAccepted,       '203' => HTTPNonAuthoritativeInformation,       '204' => HTTPNoContent,       '205' => HTTPResetContent,       '206' => HTTPPartialContent,        '300' => HTTPMultipleChoice,       '301' => HTTPMovedPermanently,       '302' => HTTPFound,       '303' => HTTPSeeOther,       '304' => HTTPNotModified,       '305' => HTTPUseProxy,       '307' => HTTPTemporaryRedirect,        '400' => HTTPBadRequest,       '401' => HTTPUnauthorized,       '402' => HTTPPaymentRequired,       '403' => HTTPForbidden,       '404' => HTTPNotFound,       '405' => HTTPMethodNotAllowed,       '406' => HTTPNotAcceptable,       '407' => HTTPProxyAuthenticationRequired,       '408' => HTTPRequestTimeOut,       '409' => HTTPConflict,       '410' => HTTPGone,       '411' => HTTPLengthRequired,       '412' => HTTPPreconditionFailed,       '413' => HTTPRequestEntityTooLarge,       '414' => HTTPRequestURITooLong,       '415' => HTTPUnsupportedMediaType,       '416' => HTTPRequestedRangeNotSatisfiable,       '417' => HTTPExpectationFailed,        '500' => HTTPInternalServerError,       '501' => HTTPNotImplemented,       '502' => HTTPBadGateway,       '503' => HTTPServiceUnavailable,       '504' => HTTPGatewayTimeOut,       '505' => HTTPVersionNotSupported"
full_name: Net::HTTPResponse
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPHeader
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: body
- !ruby/object:RI::MethodSummary 
  name: entity
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: procdest
- !ruby/object:RI::MethodSummary 
  name: read_body
- !ruby/object:RI::MethodSummary 
  name: read_body_0
- !ruby/object:RI::MethodSummary 
  name: read_chunked
- !ruby/object:RI::MethodSummary 
  name: stream_check
- !ruby/object:RI::MethodSummary 
  name: to_ary
- !ruby/object:RI::MethodSummary 
  name: value
name: HTTPResponse
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises HTTP error if the response is not 2xx.
full_name: Net::HTTPResponse#value
is_singleton: false
name: value
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse#stream_check
is_singleton: false
name: stream_check
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: entity
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the entity body.
- !ruby/struct:SM::Flow::P 
  body: Calling this method a second or subsequent time will return the already read string.
- !ruby/struct:SM::Flow::VERB 
  body: "  http.request_get('/index.html') {|res|\n    puts res.body\n  }\n\n  http.request_get('/index.html') {|res|\n    p res.body.object_id   # 538149362\n    p res.body.object_id   # 538149362\n  }\n"
full_name: Net::HTTPResponse#body
is_singleton: false
name: body
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #body"
full_name: Net::HTTPResponse#entity
is_singleton: false
name: entity
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For backward compatibility. To allow Net::HTTP 1.1 style assignment e.g.
- !ruby/struct:SM::Flow::VERB 
  body: "   response, body = Net::HTTP.get(....)\n"
full_name: Net::HTTPResponse#to_ary
is_singleton: false
name: to_ary
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse#read_body_0
is_singleton: false
name: read_body_0
params: (dest)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPResponse#read_chunked
is_singleton: false
name: read_chunked
params: (dest)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: print
block_params: 
comment: 
full_name: Net::WriteAdapter#write
is_singleton: false
name: write
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::WriteAdapter#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #write"
full_name: Net::WriteAdapter#print
is_singleton: false
name: print
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::WriteAdapter::new
is_singleton: true
name: new
params: (socket, method)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The writer adapter class
constants: []

full_name: Net::WriteAdapter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: printf
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: write
name: WriteAdapter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::WriteAdapter#printf
is_singleton: false
name: printf
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::WriteAdapter#puts
is_singleton: false
name: puts
params: (str = '')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::WriteAdapter#<<
is_singleton: false
name: "<<"
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#mailfrom
is_singleton: false
name: mailfrom
params: (from_addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#ehlo
is_singleton: false
name: ehlo
params: (domain)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: status
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: string
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: parse
comment: 
constants: []

full_name: Net::SMTP::Response
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: capabilities
- !ruby/object:RI::MethodSummary 
  name: continue?
- !ruby/object:RI::MethodSummary 
  name: cram_md5_challenge
- !ruby/object:RI::MethodSummary 
  name: exception_class
- !ruby/object:RI::MethodSummary 
  name: message
- !ruby/object:RI::MethodSummary 
  name: status_type_char
- !ruby/object:RI::MethodSummary 
  name: success?
name: Response
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#capabilities
is_singleton: false
name: capabilities
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#cram_md5_challenge
is_singleton: false
name: cram_md5_challenge
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#message
is_singleton: false
name: message
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#status_type_char
is_singleton: false
name: status_type_char
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response::new
is_singleton: true
name: new
params: (status, string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response::parse
is_singleton: true
name: parse
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#continue?
is_singleton: false
name: continue?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#exception_class
is_singleton: false
name: exception_class
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::Response#success?
is_singleton: false
name: success?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ssl?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if this object uses SMTP/TLS (SMTPS).
full_name: Net::SMTP#tls?
is_singleton: false
name: tls?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_response
is_singleton: false
name: check_response
params: (res)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#get_response
is_singleton: false
name: get_response
params: (reqline)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns supported authentication methods on this server. You cannot get valid value before opening SMTP session.
full_name: Net::SMTP#capable_auth_types
is_singleton: false
name: capable_auth_types
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#logging
is_singleton: false
name: logging
params: (msg)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP::default_ssl_context
is_singleton: true
name: default_ssl_context
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if server advertises STARTTLS. You cannot get valid value before opening SMTP session.
full_name: Net::SMTP#capable_starttls?
is_singleton: false
name: capable_starttls?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default SMTPS port number, 465.
full_name: Net::SMTP::default_tls_port
is_singleton: true
name: default_tls_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#do_helo
is_singleton: false
name: do_helo
params: (helo_domain)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: esmtp
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if the SMTP object uses ESMTP (which it does by default).
full_name: Net::SMTP#esmtp?
is_singleton: false
name: esmtp?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if server advertises AUTH PLAIN. You cannot get valid value before opening SMTP session.
full_name: Net::SMTP#capable_plain_auth?
is_singleton: false
name: capable_plain_auth?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: disable_ssl
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Disables SMTP/TLS for this object. Must be called before the connection is established to have any effect.
full_name: Net::SMTP#disable_tls
is_singleton: false
name: disable_tls
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#auth_plain
is_singleton: false
name: auth_plain
params: (user, secret)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_auth_args
is_singleton: false
name: check_auth_args
params: (user, secret)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: enable_ssl
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Enables SMTP/TLS (SMTPS: SMTP over direct TLS connection) for this object. Must be called before the connection is established to have any effect. <tt>context</tt> is a OpenSSL::SSL::SSLContext object."
full_name: Net::SMTP#enable_tls
is_singleton: false
name: enable_tls
params: (context = SMTP.default_ssl_context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_auth_method
is_singleton: false
name: check_auth_method
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: SMTP command dispatcher
full_name: Net::SMTP#starttls
is_singleton: false
name: starttls
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #enable_tls"
full_name: Net::SMTP#enable_ssl
is_singleton: false
name: enable_ssl
params: (context = SMTP.default_ssl_context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: stream
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method sends a message. If <tt>msgstr</tt> is given, sends it as a message. If block is given, yield a message writer stream. You must write message before the block is closed.
- !ruby/struct:SM::Flow::VERB 
  body: "  # Example 1 (by string)\n  smtp.data(&lt;&lt;EndMessage)\n  From: john@example.com\n  To: betty@example.com\n  Subject: I found a bug\n\n  Check vm.c:58879.\n  EndMessage\n\n  # Example 2 (by block)\n  smtp.data {|f|\n    f.puts &quot;From: john@example.com&quot;\n    f.puts &quot;To: betty@example.com&quot;\n    f.puts &quot;Subject: I found a bug&quot;\n    f.puts &quot;&quot;\n    f.puts &quot;Check vm.c:58879.&quot;\n  }\n"
full_name: Net::SMTP#data
is_singleton: false
name: data
params: (msgstr = nil) {|stream| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Disables SMTP/TLS (STARTTLS) for this object. Must be called before the connection is established to have any effect.
full_name: Net::SMTP#disable_starttls
is_singleton: false
name: disable_starttls
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #tls?"
full_name: Net::SMTP#ssl?
is_singleton: false
name: ssl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provide human-readable stringification of class state.
full_name: Net::SMTP#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default mail submission port number, 587.
full_name: Net::SMTP::default_submission_port
is_singleton: true
name: default_submission_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#auth_login
is_singleton: false
name: auth_login
params: (user, secret)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#do_start
is_singleton: false
name: do_start
params: (helo_domain, user, secret, authtype)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#cram_secret
is_singleton: false
name: cram_secret
params: (secret, mask)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#getok
is_singleton: false
name: getok
params: (reqline)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#do_finish
is_singleton: false
name: do_finish
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#base64_encode
is_singleton: false
name: base64_encode
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#capable?
is_singleton: false
name: capable?
params: (key)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enables SMTP/TLS (STARTTLS) for this object. <tt>context</tt> is a OpenSSL::SSL::SSLContext object.
full_name: Net::SMTP#enable_starttls
is_singleton: false
name: enable_starttls
params: (context = SMTP.default_ssl_context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #send_message"
full_name: Net::SMTP#sendmail
is_singleton: false
name: sendmail
params: (msgstr, from_addr, *to_addrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#auth_capable?
is_singleton: false
name: auth_capable?
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#authenticate
is_singleton: false
name: authenticate
params: (user, secret, authtype = DEFAULT_AUTH_TYPE)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#rcptto
is_singleton: false
name: rcptto
params: (to_addr)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if this object uses STARTTLS.
full_name: Net::SMTP#starttls_always?
is_singleton: false
name: starttls_always?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enables SMTP/TLS (STARTTLS) for this object if server accepts. <tt>context</tt> is a OpenSSL::SSL::SSLContext object.
full_name: Net::SMTP#enable_starttls_auto
is_singleton: false
name: enable_starttls_auto
params: (context = SMTP.default_ssl_context)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "CRAM-MD5: [RFC2195]"
full_name: Net::SMTP#cram_md5_response
is_singleton: false
name: cram_md5_response
params: (secret, challenge)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Net::SMTP object.
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> is the hostname or ip address of your SMTP server. <tt>port</tt> is the port to connect to; it defaults to port 25.
- !ruby/struct:SM::Flow::P 
  body: This method does not open the TCP connection. You can use SMTP.start instead of SMTP.new if you want to do everything at once. Otherwise, follow SMTP.new with SMTP#start.
full_name: Net::SMTP::new
is_singleton: true
name: new
params: (address, port = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#recv_response
is_singleton: false
name: recv_response
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if the SMTP session has been started.
full_name: Net::SMTP#started?
is_singleton: false
name: started?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ready
block_params: stream
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Opens a message writer stream and gives it to the block. The stream is valid only in the block, and has these methods:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "puts(str = ''):"
    body: outputs STR and CR LF.
  - !ruby/struct:SM::Flow::LI 
    label: "print(str):"
    body: outputs STR.
  - !ruby/struct:SM::Flow::LI 
    label: "printf(fmt, *args):"
    body: outputs sprintf(fmt,*args).
  - !ruby/struct:SM::Flow::LI 
    label: "write(str):"
    body: outputs STR and returns the length of written bytes.
  - !ruby/struct:SM::Flow::LI 
    label: "<<(str):"
    body: outputs STR and returns self.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: If a single CR (&quot;\r&quot;) or LF (&quot;\n&quot;) is found in the message, it is converted to the CR LF pair. You cannot send a binary message with this method.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/struct:SM::Flow::P 
  body: <tt>from_addr</tt> is a String representing the source mail address.
- !ruby/struct:SM::Flow::P 
  body: <tt>to_addr</tt> is a String or Strings or Array of Strings, representing the destination mail address or addresses.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::SMTP.start('smtp.example.com', 25) do |smtp|\n      smtp.open_message_stream('from@example.com', ['dest@example.com']) do |f|\n        f.puts 'From: from@example.com'\n        f.puts 'To: dest@example.com'\n        f.puts 'Subject: test message'\n        f.puts\n        f.puts 'This is a test message.'\n      end\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: "This method may raise:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPServerBusy
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPSyntaxError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPFatalError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPUnknownError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IOError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TimeoutError
  type: :BULLET
full_name: Net::SMTP#open_message_stream
is_singleton: false
name: open_message_stream
params: (from_addr, *to_addrs) {|stream| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns truth value if this object uses STARTTLS. If this object always uses STARTTLS, returns :always. If this object uses STARTTLS when the server support TLS, returns :auto.
full_name: Net::SMTP#starttls?
is_singleton: false
name: starttls?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if server advertises AUTH CRAM-MD5. You cannot get valid value before opening SMTP session.
full_name: Net::SMTP#capable_cram_md5_auth?
is_singleton: false
name: capable_cram_md5_auth?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_continue
is_singleton: false
name: check_continue
params: (res)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The address of the SMTP server to connect to.
  name: address
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait while attempting to open a connection. If the connection cannot be opened within this time, a TimeoutError is raised.
  name: open_timeout
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The port number of the SMTP server to connect to.
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait while reading one block (by one read(2) call). If the read(2) call does not complete within this time, a TimeoutError is raised.
  name: read_timeout
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: default_port
- !ruby/object:RI::MethodSummary 
  name: default_ssl_context
- !ruby/object:RI::MethodSummary 
  name: default_submission_port
- !ruby/object:RI::MethodSummary 
  name: default_tls_port
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: start
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Net::SMTP
- !ruby/struct:SM::Flow::H 
  level: 2
  text: What is This Library?
- !ruby/struct:SM::Flow::P 
  body: This library provides functionality to send internet mail via SMTP, the Simple Mail Transfer Protocol. For details of SMTP itself, see [RFC2821] (http://www.ietf.org/rfc/rfc2821.txt).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: What is This Library NOT?
- !ruby/struct:SM::Flow::P 
  body: This library does NOT provide functions to compose internet mails. You must create them by yourself. If you want better mail support, try RubyMail or TMail. You can get both libraries from RAA. (http://www.ruby-lang.org/en/raa.html)
- !ruby/struct:SM::Flow::P 
  body: "FYI: the official documentation on internet mail is: [RFC2822] (http://www.ietf.org/rfc/rfc2822.txt)."
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Sending Messages
- !ruby/struct:SM::Flow::P 
  body: You must open a connection to an SMTP server before sending messages. The first argument is the address of your SMTP server, and the second argument is the port number. Using SMTP.start with a block is the simplest way to do this. This way, the SMTP connection is closed automatically after the block is executed.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/smtp'\n    Net::SMTP.start('your.smtp.server', 25) do |smtp|\n      # Use the SMTP object smtp only in this block.\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: Replace 'your.smtp.server' with your SMTP server. Normally your system manager or internet provider supplies a server for you.
- !ruby/struct:SM::Flow::P 
  body: Then you can send messages.
- !ruby/struct:SM::Flow::VERB 
  body: "    msgstr = &lt;&lt;END_OF_MESSAGE\n    From: Your Name &lt;your@mail.address&gt;\n    To: Destination Address &lt;someone@example.com&gt;\n    Subject: test message\n    Date: Sat, 23 Jun 2001 16:26:43 +0900\n    Message-Id: &lt;unique.message.id.string@example.com&gt;\n\n    This is a test message.\n    END_OF_MESSAGE\n\n    require 'net/smtp'\n    Net::SMTP.start('your.smtp.server', 25) do |smtp|\n      smtp.send_message msgstr,\n                        'your@mail.address',\n                        'his_addess@example.com'\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Closing the Session
- !ruby/struct:SM::Flow::P 
  body: "You MUST close the SMTP session after sending messages, by calling the #finish method:"
- !ruby/struct:SM::Flow::VERB 
  body: "    # using SMTP#finish\n    smtp = Net::SMTP.start('your.smtp.server', 25)\n    smtp.send_message msgstr, 'from@address', 'to@address'\n    smtp.finish\n"
- !ruby/struct:SM::Flow::P 
  body: "You can also use the block form of SMTP.start/SMTP#start. This closes the SMTP session automatically:"
- !ruby/struct:SM::Flow::VERB 
  body: "    # using block form of SMTP.start\n    Net::SMTP.start('your.smtp.server', 25) do |smtp|\n      smtp.send_message msgstr, 'from@address', 'to@address'\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: I strongly recommend this scheme. This form is simpler and more robust.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: HELO domain
- !ruby/struct:SM::Flow::P 
  body: In almost all situations, you must provide a third argument to SMTP.start/SMTP#start. This is the domain name which you are on (the host to send mail from). It is called the &quot;HELO domain&quot;. The SMTP server will judge whether it should send or reject the SMTP session by inspecting the HELO domain.
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::SMTP.start('your.smtp.server', 25,\n                    'mail.from.domain') { |smtp| ... }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: SMTP Authentication
- !ruby/struct:SM::Flow::P 
  body: "The Net::SMTP class supports three authentication schemes; PLAIN, LOGIN and CRAM MD5. (SMTP Authentication: [RFC2554]) To use SMTP authentication, pass extra arguments to SMTP.start/SMTP#start."
- !ruby/struct:SM::Flow::VERB 
  body: "    # PLAIN\n    Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',\n                    'Your Account', 'Your Password', :plain)\n    # LOGIN\n    Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',\n                    'Your Account', 'Your Password', :login)\n\n    # CRAM MD5\n    Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',\n                    'Your Account', 'Your Password', :cram_md5)\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Revision
  value: "%q$Revision: 28208 $.split[1]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Authentication
  name: DEFAULT_AUTH_TYPE
  value: ":plain"
- !ruby/object:RI::Constant 
  comment: 
  name: IMASK
  value: "0x36"
- !ruby/object:RI::Constant 
  comment: 
  name: OMASK
  value: "0x5c"
- !ruby/object:RI::Constant 
  comment: 
  name: CRAM_BUFSIZE
  value: "64"
full_name: Net::SMTP
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: auth_capable?
- !ruby/object:RI::MethodSummary 
  name: auth_cram_md5
- !ruby/object:RI::MethodSummary 
  name: auth_login
- !ruby/object:RI::MethodSummary 
  name: auth_method
- !ruby/object:RI::MethodSummary 
  name: auth_plain
- !ruby/object:RI::MethodSummary 
  name: authenticate
- !ruby/object:RI::MethodSummary 
  name: base64_encode
- !ruby/object:RI::MethodSummary 
  name: capable?
- !ruby/object:RI::MethodSummary 
  name: capable_auth_types
- !ruby/object:RI::MethodSummary 
  name: capable_cram_md5_auth?
- !ruby/object:RI::MethodSummary 
  name: capable_login_auth?
- !ruby/object:RI::MethodSummary 
  name: capable_plain_auth?
- !ruby/object:RI::MethodSummary 
  name: capable_starttls?
- !ruby/object:RI::MethodSummary 
  name: check_auth_args
- !ruby/object:RI::MethodSummary 
  name: check_auth_continue
- !ruby/object:RI::MethodSummary 
  name: check_auth_method
- !ruby/object:RI::MethodSummary 
  name: check_auth_response
- !ruby/object:RI::MethodSummary 
  name: check_continue
- !ruby/object:RI::MethodSummary 
  name: check_response
- !ruby/object:RI::MethodSummary 
  name: cram_md5_response
- !ruby/object:RI::MethodSummary 
  name: cram_secret
- !ruby/object:RI::MethodSummary 
  name: critical
- !ruby/object:RI::MethodSummary 
  name: data
- !ruby/object:RI::MethodSummary 
  name: debug_output=
- !ruby/object:RI::MethodSummary 
  name: disable_ssl
- !ruby/object:RI::MethodSummary 
  name: disable_starttls
- !ruby/object:RI::MethodSummary 
  name: disable_tls
- !ruby/object:RI::MethodSummary 
  name: do_finish
- !ruby/object:RI::MethodSummary 
  name: do_helo
- !ruby/object:RI::MethodSummary 
  name: do_start
- !ruby/object:RI::MethodSummary 
  name: ehlo
- !ruby/object:RI::MethodSummary 
  name: enable_ssl
- !ruby/object:RI::MethodSummary 
  name: enable_starttls
- !ruby/object:RI::MethodSummary 
  name: enable_starttls_auto
- !ruby/object:RI::MethodSummary 
  name: enable_tls
- !ruby/object:RI::MethodSummary 
  name: esmtp
- !ruby/object:RI::MethodSummary 
  name: esmtp=
- !ruby/object:RI::MethodSummary 
  name: esmtp?
- !ruby/object:RI::MethodSummary 
  name: finish
- !ruby/object:RI::MethodSummary 
  name: get_response
- !ruby/object:RI::MethodSummary 
  name: getok
- !ruby/object:RI::MethodSummary 
  name: helo
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: logging
- !ruby/object:RI::MethodSummary 
  name: mailfrom
- !ruby/object:RI::MethodSummary 
  name: new_internet_message_io
- !ruby/object:RI::MethodSummary 
  name: open_message_stream
- !ruby/object:RI::MethodSummary 
  name: quit
- !ruby/object:RI::MethodSummary 
  name: rcptto
- !ruby/object:RI::MethodSummary 
  name: rcptto_list
- !ruby/object:RI::MethodSummary 
  name: read_timeout=
- !ruby/object:RI::MethodSummary 
  name: ready
- !ruby/object:RI::MethodSummary 
  name: recv_response
- !ruby/object:RI::MethodSummary 
  name: send_mail
- !ruby/object:RI::MethodSummary 
  name: send_message
- !ruby/object:RI::MethodSummary 
  name: sendmail
- !ruby/object:RI::MethodSummary 
  name: set_debug_output
- !ruby/object:RI::MethodSummary 
  name: ssl?
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: started?
- !ruby/object:RI::MethodSummary 
  name: starttls
- !ruby/object:RI::MethodSummary 
  name: starttls?
- !ruby/object:RI::MethodSummary 
  name: starttls_always?
- !ruby/object:RI::MethodSummary 
  name: starttls_auto?
- !ruby/object:RI::MethodSummary 
  name: tls?
- !ruby/object:RI::MethodSummary 
  name: tlsconnect
name: SMTP
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#auth_method
is_singleton: false
name: auth_method
params: (type)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#auth_cram_md5
is_singleton: false
name: auth_cram_md5
params: (user, secret)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #disable_tls"
full_name: Net::SMTP#disable_ssl
is_singleton: false
name: disable_ssl
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_auth_continue
is_singleton: false
name: check_auth_continue
params: (res)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #open_message_stream"
full_name: Net::SMTP#ready
is_singleton: false
name: ready
params: (from_addr, *to_addrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finishes the SMTP session and closes TCP connection. Raises IOError if not started.
full_name: Net::SMTP#finish
is_singleton: false
name: finish
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default SMTP port number, 25.
full_name: Net::SMTP::default_port
is_singleton: true
name: default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#new_internet_message_io
is_singleton: false
name: new_internet_message_io
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Set whether to use ESMTP or not. This should be done before calling #start. Note that if #start is called in ESMTP mode, and the connection fails due to a ProtocolError, the SMTP object will automatically switch to plain SMTP mode and retry (but not vice versa)."
full_name: Net::SMTP#esmtp=
is_singleton: false
name: esmtp=
params: (bool)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the number of seconds to wait until timing-out a read(2) call.
full_name: Net::SMTP#read_timeout=
is_singleton: false
name: read_timeout=
params: (sec)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Net::SMTP#rcptto_list
is_singleton: false
name: rcptto_list
params: (to_addrs) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #send_message"
full_name: Net::SMTP#send_mail
is_singleton: false
name: send_mail
params: (msgstr, from_addr, *to_addrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if this object uses STARTTLS when server advertises STARTTLS.
full_name: Net::SMTP#starttls_auto?
is_singleton: false
name: starttls_auto?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#helo
is_singleton: false
name: helo
params: (domain)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #debug_output="
full_name: Net::SMTP#set_debug_output
is_singleton: false
name: set_debug_output
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ()
comment: 
full_name: Net::SMTP#critical
is_singleton: false
name: critical
params: (&block) {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#check_auth_response
is_singleton: false
name: check_auth_response
params: (res)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: smtp
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Net::SMTP object and connects to the server.
- !ruby/struct:SM::Flow::P 
  body: "This method is equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::SMTP.new(address, port).start(helo_domain, account, password, authtype)\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::SMTP.start('your.smtp.server') do |smtp|\n      smtp.send_message msgstr, 'from@example.com', ['dest@example.com']\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Block Usage
- !ruby/struct:SM::Flow::P 
  body: If called with a block, the newly-opened Net::SMTP object is yielded to the block, and automatically closed when the block finishes. If called without a block, the newly-opened Net::SMTP object is returned to the caller, and it is the caller's responsibility to close it when finished.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> is the hostname or ip address of your smtp server.
- !ruby/struct:SM::Flow::P 
  body: <tt>port</tt> is the port to connect to; it defaults to port 25.
- !ruby/struct:SM::Flow::P 
  body: <tt>helo</tt> is the <em>HELO</em> <em>domain</em> provided by the client to the server (see overview comments); it defaults to 'localhost.localdomain'.
- !ruby/struct:SM::Flow::P 
  body: The remaining arguments are used for SMTP authentication, if required or desired. <tt>user</tt> is the account name; <tt>secret</tt> is your password or other authentication token; and <tt>authtype</tt> is the authentication type, one of :plain, :login, or :cram_md5. See the discussion of SMTP Authentication in the overview notes.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: "This method may raise:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPAuthenticationError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPServerBusy
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPSyntaxError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPFatalError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPUnknownError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IOError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TimeoutError
  type: :BULLET
full_name: Net::SMTP::start
is_singleton: true
name: start
params: (address, port = nil, helo = 'localhost.localdomain', user = nil, secret = nil, authtype = nil) {|smtp| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: true if server advertises AUTH LOGIN. You cannot get valid value before opening SMTP session.
full_name: Net::SMTP#capable_login_auth?
is_singleton: false
name: capable_login_auth?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: set_debug_output
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "WARNING: This method causes serious security holes. Use this method for only debugging."
- !ruby/struct:SM::Flow::P 
  body: "Set an output stream for debug logging. You must call this before #start."
- !ruby/struct:SM::Flow::VERB 
  body: "  # example\n  smtp = Net::SMTP.new(addr, port)\n  smtp.set_debug_output $stderr\n  smtp.start do |smtp|\n    ....\n  end\n"
full_name: Net::SMTP#debug_output=
is_singleton: false
name: debug_output=
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: smtp
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a TCP connection and starts the SMTP session.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/struct:SM::Flow::P 
  body: <tt>helo</tt> is the <em>HELO</em> <em>domain</em> that you'll dispatch mails from; see the discussion in the overview notes.
- !ruby/struct:SM::Flow::P 
  body: If both of <tt>user</tt> and <tt>secret</tt> are given, SMTP authentication will be attempted using the AUTH command. <tt>authtype</tt> specifies the type of authentication to attempt; it must be one of :login, :plain, and :cram_md5. See the notes on SMTP Authentication in the overview.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Block Usage
- !ruby/struct:SM::Flow::P 
  body: When this methods is called with a block, the newly-started SMTP object is yielded to the block, and automatically closed after the block call finishes. Otherwise, it is the caller's responsibility to close the session when finished.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::P 
  body: This is very similar to the class method SMTP.start.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/smtp'\n    smtp = Net::SMTP.new('smtp.mail.server', 25)\n    smtp.start(helo_domain, account, password, authtype) do |smtp|\n      smtp.send_message msgstr, 'from@example.com', ['dest@example.com']\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: The primary use of this method (as opposed to SMTP.start) is probably to set debugging (#set_debug_output) or ESMTP (#esmtp=), which must be done before the session is started.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: If session has already been started, an IOError will be raised.
- !ruby/struct:SM::Flow::P 
  body: "This method may raise:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPAuthenticationError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPServerBusy
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPSyntaxError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPFatalError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPUnknownError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IOError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TimeoutError
  type: :BULLET
full_name: Net::SMTP#start
is_singleton: false
name: start
params: (helo = 'localhost.localdomain', user = nil, secret = nil, authtype = nil) {|smtp| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#quit
is_singleton: false
name: quit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: send_mail
- !ruby/object:RI::AliasName 
  name: sendmail
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends <tt>msgstr</tt> as a message. Single CR (&quot;\r&quot;) and LF (&quot;\n&quot;) found in the <tt>msgstr</tt>, are converted into the CR LF pair. You cannot send a binary message with this method. <tt>msgstr</tt> should include both the message headers and body.
- !ruby/struct:SM::Flow::P 
  body: <tt>from_addr</tt> is a String representing the source mail address.
- !ruby/struct:SM::Flow::P 
  body: <tt>to_addr</tt> is a String or Strings or Array of Strings, representing the destination mail address or addresses.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::SMTP.start('smtp.example.com') do |smtp|\n      smtp.send_message msgstr,\n                        'from@example.com',\n                        ['dest@example.com', 'dest2@example.com']\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: "This method may raise:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPServerBusy
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPSyntaxError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPFatalError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPUnknownError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IOError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TimeoutError
  type: :BULLET
full_name: Net::SMTP#send_message
is_singleton: false
name: send_message
params: (msgstr, from_addr, *to_addrs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::SMTP#tlsconnect
is_singleton: false
name: tlsconnect
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #esmtp?"
full_name: Net::SMTP#esmtp
is_singleton: false
name: esmtp
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This class is equivalent to POP3, except that it uses APOP authentication.
constants: []

full_name: Net::APOP
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: apop?
name: APOP
superclass: POP3
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns true.
full_name: Net::APOP#apop?
is_singleton: false
name: apop?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: response
  rw: R
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: HTTP exception class. You must use its subclasses.
constants: []

full_name: Net::HTTPExceptions
includes: []

instance_methods: []

name: HTTPExceptions
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::HTTPRetriableError
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPExceptions
instance_methods: []

name: HTTPRetriableError
superclass: ProtoRetriableError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::InternetMessageIO
includes: []

instance_methods: []

name: InternetMessageIO
superclass: BufferedIO
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoServerError
includes: []

instance_methods: []

name: ProtoServerError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoCommandError
includes: []

instance_methods: []

name: ProtoCommandError
superclass: ProtocolError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #unique_id"
full_name: Net::POPMail#uidl
is_singleton: false
name: uidl
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The length of the message in octets.
  name: length
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The sequence number of the message on the server.
  name: number
  rw: R
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This class represents a message which exists on the POP server. Instances of this class are created by the POP3 class; they should not be directly created by the user.
constants: []

full_name: Net::POPMail
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: all
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: delete!
- !ruby/object:RI::MethodSummary 
  name: deleted?
- !ruby/object:RI::MethodSummary 
  name: header
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: mail
- !ruby/object:RI::MethodSummary 
  name: pop
- !ruby/object:RI::MethodSummary 
  name: top
- !ruby/object:RI::MethodSummary 
  name: uidl
- !ruby/object:RI::MethodSummary 
  name: unique_id
name: POPMail
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: all
- !ruby/object:RI::AliasName 
  name: mail
block_params: message_chunk
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method fetches the message. If called with a block, the message is yielded to the block one chunk at a time. If called without a block, the message is returned as a String. The optional <tt>dest</tt> argument will be prepended to the returned String; this argument is essentially obsolete.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example without block
- !ruby/struct:SM::Flow::VERB 
  body: "    POP3.start('pop.example.com', 110,\n               'YourAccount, 'YourPassword') do |pop|\n      n = 1\n      pop.mails.each do |popmail|\n        File.open(&quot;inbox/#{n}&quot;, 'w') do |f|\n          f.write popmail.pop\n        end\n        popmail.delete\n        n += 1\n      end\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example with block
- !ruby/struct:SM::Flow::VERB 
  body: "    POP3.start('pop.example.com', 110,\n               'YourAccount, 'YourPassword') do |pop|\n      n = 1\n      pop.mails.each do |popmail|\n        File.open(&quot;inbox/#{n}&quot;, 'w') do |f|\n          popmail.pop do |chunk|            ####\n            f.write chunk\n          end\n        end\n        n += 1\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POPMail#pop
is_singleton: false
name: pop
params: ( dest = '' ) {|message_chunk| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #delete"
full_name: Net::POPMail#delete!
is_singleton: false
name: delete!
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches the message header and <tt>lines</tt> lines of body.
- !ruby/struct:SM::Flow::P 
  body: The optional <tt>dest</tt> argument is obsolete.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POPMail#top
is_singleton: false
name: top
params: (lines, dest = '')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provide human-readable stringification of class state.
full_name: Net::POPMail#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: Net::POPMail#mail
is_singleton: false
name: mail
params: ( dest = '' )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: uidl
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the unique-id of the message. Normally the unique-id is a hash string of the message.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POPMail#unique_id
is_singleton: false
name: unique_id
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: delete!
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Marks a message for deletion on the server. Deletion does not actually occur until the end of the session; deletion may be cancelled for <em>all</em> marked messages by calling POP3#reset().
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    POP3.start('pop.example.com', 110,\n               'YourAccount, 'YourPassword') do |pop|\n      n = 1\n      pop.mails.each do |popmail|\n        File.open(&quot;inbox/#{n}&quot;, 'w') do |f|\n          f.write popmail.pop\n        end\n        popmail.delete         ####\n        n += 1\n      end\n    end\n"
full_name: Net::POPMail#delete
is_singleton: false
name: delete
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: True if the mail has been deleted.
full_name: Net::POPMail#deleted?
is_singleton: false
name: deleted?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Fetches the message header.
- !ruby/struct:SM::Flow::P 
  body: The optional <tt>dest</tt> argument is obsolete.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POPMail#header
is_singleton: false
name: header
params: (dest = '')
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pop"
full_name: Net::POPMail#all
is_singleton: false
name: all
params: ( dest = '' )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn telnet command interpretation on (true) or off (false). It should be on for true telnet sessions, off if using Net::Telnet to connect to a non-telnet service such as SMTP.
full_name: Net::Telnet#telnetmode=
is_singleton: false
name: telnetmode=
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Write <tt>string</tt> to the host.
- !ruby/struct:SM::Flow::P 
  body: Does not perform any conversions on <tt>string</tt>. Will log <tt>string</tt> to the dumplog, if the Dump_log option is set.
full_name: Net::Telnet#write
is_singleton: false
name: write
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: recvdata
comment: 
- !ruby/struct:SM::Flow::P 
  body: Send a command to the host.
- !ruby/struct:SM::Flow::P 
  body: More exactly, sends a string to the host, and reads in all received data until is sees the prompt or other matched sequence.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, the received data will be yielded to it as it is read in. Whether a block is given or not, the received data will be return as a string. Note that the received data includes the prompt and in most cases the host's echo of our command.
- !ruby/struct:SM::Flow::P 
  body: "<tt>options</tt> is either a String, specified the string or command to send to the host; or it is a hash of options. If a hash, the following options can be specified:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "String:"
    body: the command or other string to send to the host.
  - !ruby/struct:SM::Flow::LI 
    label: "Match:"
    body: a regular expression, the sequence to look for in the received data before returning. If not specified, the Prompt option value specified when this instance was created will be used, or, failing that, the default prompt of /[$%#&gt;] \z/n.
  - !ruby/struct:SM::Flow::LI 
    label: "Timeout:"
    body: the seconds to wait for data from the host before raising a Timeout error. If not specified, the Timeout option value specified when this instance was created will be used, or, failing that, the default value of 10 seconds.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: The command or other string will have the newline sequence appended to it.
full_name: Net::Telnet#cmd
is_singleton: false
name: cmd
params: (options) {|recvdata| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Preprocess received data from the host.
- !ruby/struct:SM::Flow::P 
  body: "Performs newline conversion and detects telnet command sequences. Called automatically by #waitfor(). You should only use this method yourself if you have read input directly using sysread() or similar, and even then only if in telnet mode."
full_name: Net::Telnet#preprocess
is_singleton: false
name: preprocess
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn newline conversion on (false) or off (true).
full_name: Net::Telnet#binmode=
is_singleton: false
name: binmode=
params: (mode)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set telnet command interpretation on (<tt>mode</tt> == true) or off (<tt>mode</tt> == false), or return the current value (<tt>mode</tt> not provided). It should be on for true telnet sessions, off if using Net::Telnet to connect to a non-telnet service such as SMTP.
full_name: Net::Telnet#telnetmode
is_singleton: false
name: telnetmode
params: (mode = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a string to the host.
- !ruby/struct:SM::Flow::P 
  body: This does <em>not</em> automatically append a newline to the string. Embedded newlines may be converted and telnet command sequences escaped depending upon the values of telnetmode, binmode, and telnet options set by the host.
full_name: Net::Telnet#print
is_singleton: false
name: print
params: (string)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The socket the Telnet object is using. Note that this object becomes a delegate of the Telnet object, so normally you invoke its methods directly on the Telnet object.
  name: sock
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Net::Telnet
- !ruby/struct:SM::Flow::P 
  body: Provides telnet client functionality.
- !ruby/struct:SM::Flow::P 
  body: This class also has, through delegation, all the methods of a socket object (by default, a <tt>TCPSocket</tt>, but can be set by the <tt>Proxy</tt> option to <tt>new()</tt>). This provides methods such as <tt>close()</tt> to end the session and <tt>sysread()</tt> to read data directly from the host, instead of via the <tt>waitfor()</tt> mechanism. Note that if you do use <tt>sysread()</tt> directly when in telnet mode, you should probably pass the output through <tt>preprocess()</tt> to extract telnet command sequences.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Overview
- !ruby/struct:SM::Flow::P 
  body: "The telnet protocol allows a client to login remotely to a user account on a server and execute commands via a shell. The equivalent is done by creating a Net::Telnet class with the <tt>Host</tt> option set to your host, calling #login() with your user and password, issuing one or more #cmd() calls, and then calling #close() to end the session. The #waitfor(), #print(), #puts(), and #write() methods, which #cmd() is implemented on top of, are only needed if you are doing something more complicated."
- !ruby/struct:SM::Flow::P 
  body: "A Net::Telnet object can also be used to connect to non-telnet services, such as SMTP or HTTP. In this case, you normally want to provide the <tt>Port</tt> option to specify the port to connect to, and set the <tt>Telnetmode</tt> option to false to prevent the client from attempting to interpret telnet command sequences. Generally, #login() will not work with other protocols, and you have to handle authentication yourself."
- !ruby/struct:SM::Flow::P 
  body: "For some protocols, it will be possible to specify the <tt>Prompt</tt> option once when you create the Telnet object and use #cmd() calls; for others, you will have to specify the response sequence to look for as the Match option to every #cmd() call, or call #puts() and #waitfor() directly; for yet others, you will have to use #sysread() instead of #waitfor() and parse server responses yourself."
- !ruby/struct:SM::Flow::P 
  body: It is worth noting that when you create a new Net::Telnet object, you can supply a proxy IO channel via the Proxy option. This can be used to attach the Telnet object to other Telnet objects, to already open sockets, or to any read-write IO object. This can be useful, for instance, for setting up a test fixture for unit testing.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Log in and send a command, echoing all output to stdout
- !ruby/struct:SM::Flow::VERB 
  body: "  localhost = Net::Telnet::new(&quot;Host&quot; =&gt; &quot;localhost&quot;,\n                               &quot;Timeout&quot; =&gt; 10,\n                               &quot;Prompt&quot; =&gt; /[$%#&gt;] \\z/n)\n  localhost.login(&quot;username&quot;, &quot;password&quot;) { |c| print c }\n  localhost.cmd(&quot;command&quot;) { |c| print c }\n  localhost.close\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Check a POP server to see if you have mail
- !ruby/struct:SM::Flow::VERB 
  body: "  pop = Net::Telnet::new(&quot;Host&quot; =&gt; &quot;your_destination_host_here&quot;,\n                         &quot;Port&quot; =&gt; 110,\n                         &quot;Telnetmode&quot; =&gt; false,\n                         &quot;Prompt&quot; =&gt; /^+OK/n)\n  pop.cmd(&quot;user &quot; + &quot;your_username_here&quot;) { |c| print c }\n  pop.cmd(&quot;pass &quot; + &quot;your_password_here&quot;) { |c| print c }\n  pop.cmd(&quot;list&quot;) { |c| print c }\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: References
- !ruby/struct:SM::Flow::P 
  body: There are a large number of RFCs relevant to the Telnet protocol. RFCs 854-861 define the base protocol. For a complete listing of relevant RFCs, see http://www.omnifarious.org/~hopper/technical/telnet-rfc.html
constants: []

full_name: Net::Telnet
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: binmode
- !ruby/object:RI::MethodSummary 
  name: binmode=
- !ruby/object:RI::MethodSummary 
  name: cmd
- !ruby/object:RI::MethodSummary 
  name: login
- !ruby/object:RI::MethodSummary 
  name: preprocess
- !ruby/object:RI::MethodSummary 
  name: print
- !ruby/object:RI::MethodSummary 
  name: puts
- !ruby/object:RI::MethodSummary 
  name: telnetmode
- !ruby/object:RI::MethodSummary 
  name: telnetmode=
- !ruby/object:RI::MethodSummary 
  name: waitfor
- !ruby/object:RI::MethodSummary 
  name: write
name: Telnet
superclass: SimpleDelegator
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: recvdata
comment: 
- !ruby/struct:SM::Flow::P 
  body: Read data from the host until a certain sequence is matched.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, the received data will be yielded as it is read in (not necessarily all in one go), or nil if EOF occurs before any data is received. Whether a block is given or not, all data read will be returned in a single string, or again nil if EOF occurs before any data is received. Note that received data includes the matched sequence we were looking for.
- !ruby/struct:SM::Flow::P 
  body: "<tt>options</tt> can be either a regular expression or a hash of options. If a regular expression, this specifies the data to wait for. If a hash, this can specify the following options:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Match:"
    body: a regular expression, specifying the data to wait for.
  - !ruby/struct:SM::Flow::LI 
    label: "Prompt:"
    body: as for Match; used only if Match is not specified.
  - !ruby/struct:SM::Flow::LI 
    label: "String:"
    body: as for Match, except a string that will be converted into a regular expression. Used only if Match and Prompt are not specified.
  - !ruby/struct:SM::Flow::LI 
    label: "Timeout:"
    body: the number of seconds to wait for data from the host before raising a TimeoutError. If set to false, no timeout will occur. If not specified, the Timeout option value specified when this instance was created will be used, or, failing that, the default value of 10 seconds.
  - !ruby/struct:SM::Flow::LI 
    label: "Waittime:"
    body: the number of seconds to wait after matching against the input data to see if more data arrives. If more data arrives within this time, we will judge ourselves not to have matched successfully, and will continue trying to match. If not specified, the Waittime option value specified when this instance was created will be used, or, failing that, the default value of 0 seconds, which means not to wait for more input.
  - !ruby/struct:SM::Flow::LI 
    label: "FailEOF:"
    body: if true, when the remote end closes the connection then an EOFError will be raised. Otherwise, defaults to the old behaviour that the function will return whatever data has been received already, or nil if nothing was received.
  type: :NOTE
full_name: Net::Telnet#waitfor
is_singleton: false
name: waitfor
params: (options) {|recvdata| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: "mesg "
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Net::Telnet object.
- !ruby/struct:SM::Flow::P 
  body: "Attempts to connect to the host (unless the Proxy option is provided: see below). If a block is provided, it is yielded status messages on the attempt to connect to the server, of the form:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Trying localhost...\n  Connected to localhost.\n"
- !ruby/struct:SM::Flow::P 
  body: <tt>options</tt> is a hash of options. The following example lists all options and their default values.
- !ruby/struct:SM::Flow::VERB 
  body: "  host = Net::Telnet::new(\n           &quot;Host&quot;       =&gt; &quot;localhost&quot;,  # default: &quot;localhost&quot;\n           &quot;Port&quot;       =&gt; 23,           # default: 23\n           &quot;Binmode&quot;    =&gt; false,        # default: false\n           &quot;Output_log&quot; =&gt; &quot;output_log&quot;, # default: nil (no output)\n           &quot;Dump_log&quot;   =&gt; &quot;dump_log&quot;,   # default: nil (no output)\n           &quot;Prompt&quot;     =&gt; /[$%#&gt;] \\z/n, # default: /[$%#&gt;] \\z/n\n           &quot;Telnetmode&quot; =&gt; true,         # default: true\n           &quot;Timeout&quot;    =&gt; 10,           # default: 10\n             # if ignore timeout then set &quot;Timeout&quot; to false.\n           &quot;Waittime&quot;   =&gt; 0,            # default: 0\n           &quot;Proxy&quot;      =&gt; proxy         # default: nil\n                           # proxy is Net::Telnet or IO object\n         )\n"
- !ruby/struct:SM::Flow::P 
  body: "The options have the following meanings:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Host:"
    body: the hostname or IP address of the host to connect to, as a String. Defaults to &quot;localhost&quot;.
  - !ruby/struct:SM::Flow::LI 
    label: "Port:"
    body: the port to connect to. Defaults to 23.
  - !ruby/struct:SM::Flow::LI 
    label: "Binmode:"
    body: "if false (the default), newline substitution is performed. Outgoing LF is converted to CRLF, and incoming CRLF is converted to LF. If true, this substitution is not performed. This value can also be set with the #binmode() method. The outgoing conversion only applies to the #puts() and #print() methods, not the #write() method. The precise nature of the newline conversion is also affected by the telnet options SGA and BIN."
  - !ruby/struct:SM::Flow::LI 
    label: "Output_log:"
    body: the name of the file to write connection status messages and all received traffic to. In the case of a proper Telnet session, this will include the client input as echoed by the host; otherwise, it only includes server responses. Output is appended verbatim to this file. By default, no output log is kept.
  - !ruby/struct:SM::Flow::LI 
    label: "Dump_log:"
    body: as for Output_log, except that output is written in hexdump format (16 bytes per line as hex pairs, followed by their printable equivalent), with connection status messages preceded by '#', sent traffic preceded by '&gt;', and received traffic preceded by '&lt;'. By default, not dump log is kept.
  - !ruby/struct:SM::Flow::LI 
    label: "Prompt:"
    body: a regular expression matching the host's command-line prompt sequence. This is needed by the Telnet class to determine when the output from a command has finished and the host is ready to receive a new command. By default, this regular expression is /[$%#&gt;] \z/n.
  - !ruby/struct:SM::Flow::LI 
    label: "Telnetmode:"
    body: "a boolean value, true by default. In telnet mode, traffic received from the host is parsed for special command sequences, and these sequences are escaped in outgoing traffic sent using #puts() or #print() (but not #write()). If you are using the Net::Telnet object to connect to a non-telnet service (such as SMTP or POP), this should be set to &quot;false&quot; to prevent undesired data corruption. This value can also be set by the #telnetmode() method."
  - !ruby/struct:SM::Flow::LI 
    label: "Timeout:"
    body: "the number of seconds to wait before timing out both the initial attempt to connect to host (in this constructor), and all attempts to read data from the host (in #waitfor(), #cmd(), and #login()). Exceeding this timeout causes a TimeoutError to be raised. The default value is 10 seconds. You can disable the timeout by setting this value to false. In this case, the connect attempt will eventually timeout on the underlying connect(2) socket call with an Errno::ETIMEDOUT error (but generally only after a few minutes), but other attempts to read data from the host will hand indefinitely if no data is forthcoming."
  - !ruby/struct:SM::Flow::LI 
    label: "Waittime:"
    body: the amount of time to wait after seeing what looks like a prompt (that is, received data that matches the Prompt option regular expression) to see if more data arrives. If more data does arrive in this time, Net::Telnet assumes that what it saw was not really a prompt. This is to try to avoid false matches, but it can also lead to missing real prompts (if, for instance, a background process writes to the terminal soon after the prompt is displayed). By default, set to 0, meaning not to wait for more data.
  - !ruby/struct:SM::Flow::LI 
    label: "Proxy:"
    body: a proxy object to used instead of opening a direct connection to the host. Must be either another Net::Telnet object or an IO object. If it is another Net::Telnet object, this instance will use that one's socket for communication. If an IO object, it is used directly for communication. Any other kind of object will cause an error to be raised.
  type: :NOTE
full_name: Net::Telnet::new
is_singleton: true
name: new
params: (options) {|mesg| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: recvdata
comment: 
- !ruby/struct:SM::Flow::P 
  body: Login to the host with a given username and password.
- !ruby/struct:SM::Flow::P 
  body: The username and password can either be provided as two string arguments in that order, or as a hash with keys &quot;Name&quot; and &quot;Password&quot;.
- !ruby/struct:SM::Flow::P 
  body: This method looks for the strings &quot;login&quot; and &quot;Password&quot; from the host to determine when to send the username and password. If the login sequence does not follow this pattern (for instance, you are connecting to a service other than telnet), you will need to handle login yourself.
- !ruby/struct:SM::Flow::P 
  body: The password can be omitted, either by only provided one String argument, which will be used as the username, or by providing a has that has no &quot;Password&quot; key. In this case, the method will not look for the &quot;Password:&quot; prompt; if it is sent, it will have to be dealt with by later calls.
- !ruby/struct:SM::Flow::P 
  body: The method returns all data received during the login process from the host, including the echoed username but not the password (which the host should not echo). If a block is passed in, this received data is also yielded to the block as it is received.
full_name: Net::Telnet#login
is_singleton: false
name: login
params: (options, password = nil) {|recvdata| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a string to the host.
- !ruby/struct:SM::Flow::P 
  body: "Same as #print(), but appends a newline to the string."
full_name: Net::Telnet#puts
is_singleton: false
name: puts
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turn newline conversion on (<tt>mode</tt> == false) or off (<tt>mode</tt> == true), or return the current value (<tt>mode</tt> is not specified).
full_name: Net::Telnet#binmode
is_singleton: false
name: binmode
params: (mode = nil)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Module mixed in to all SMTP error classes
constants: []

full_name: Net::SMTPError
includes: []

instance_methods: []

name: SMTPError
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#request_body_permitted?
is_singleton: false
name: request_body_permitted?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#send_request_with_body_stream
is_singleton: false
name: send_request_with_body_stream
params: (sock, ver, path, f)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#body=
is_singleton: false
name: body=
params: (str)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#send_request_with_body
is_singleton: false
name: send_request_with_body
params: (sock, ver, path, body)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#supply_default_content_type
is_singleton: false
name: supply_default_content_type
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest::new
is_singleton: true
name: new
params: (m, reqbody, resbody, path, initheader = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#body_stream=
is_singleton: false
name: body_stream=
params: (input)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#response_body_permitted?
is_singleton: false
name: response_body_permitted?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: body
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: body_stream
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: method
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: path
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parent of HTTPRequest class. Do not use this directly; use a subclass of HTTPRequest.
- !ruby/struct:SM::Flow::P 
  body: Mixes in the HTTPHeader module.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: BUFSIZE
  value: 16*1024
full_name: Net::HTTPGenericRequest
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPHeader
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: body=
- !ruby/object:RI::MethodSummary 
  name: body_exist?
- !ruby/object:RI::MethodSummary 
  name: body_stream=
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: request_body_permitted?
- !ruby/object:RI::MethodSummary 
  name: response_body_permitted?
- !ruby/object:RI::MethodSummary 
  name: send_request_with_body
- !ruby/object:RI::MethodSummary 
  name: send_request_with_body_stream
- !ruby/object:RI::MethodSummary 
  name: supply_default_content_type
- !ruby/object:RI::MethodSummary 
  name: write_header
name: HTTPGenericRequest
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#write_header
is_singleton: false
name: write_header
params: (sock, ver, path)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::HTTPGenericRequest#body_exist?
is_singleton: false
name: body_exist?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents an SMTP authentication error.
constants: []

full_name: Net::SMTPAuthenticationError
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPAuthenticationError
superclass: ProtoAuthError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the APOP class if <tt>isapop</tt> is true; otherwise, returns the POP class. For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    # Example 1\n    pop = Net::POP3::APOP($is_apop).new(addr, port)\n\n    # Example 2\n    Net::POP3::APOP($is_apop).start(addr, port) do |pop|\n      ....\n    end\n"
full_name: Net::POP3::APOP
is_singleton: true
name: APOP
params: (isapop)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a POP3 session, attempts authentication, and quits.
- !ruby/struct:SM::Flow::P 
  body: This method raises POPAuthenticationError if authentication fails.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example: normal POP3"
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::POP3.auth_only('pop.example.com', 110,\n                        'YourAccount', 'YourPassword')\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: "Example: APOP"
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::POP3.auth_only('pop.example.com', 110,\n                        'YourAccount', 'YourPassword', true)\n"
full_name: Net::POP3::auth_only
is_singleton: true
name: auth_only
params: (address, port = nil, account = nil, password = nil, isapop = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The port number to connect to.
full_name: Net::POP3#port
is_singleton: false
name: port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#logging
is_singleton: false
name: logging
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3::use_ssl?
is_singleton: true
name: use_ssl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#command
is_singleton: false
name: command
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of messages on the POP server.
full_name: Net::POP3#n_mails
is_singleton: false
name: n_mails
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3::verify
is_singleton: true
name: verify
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of Net::POPMail objects, representing all the messages on the server. This array is renewed when the session restarts; otherwise, it is fetched from the server the first time this method is called (directly or indirectly) and cached.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POP3#mails
is_singleton: false
name: mails
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enables SSL for this instance. Must be called before the connection is established to have any effect. +params[:port]+ is port to establish the SSL connection on; Defaults to 995. <tt>params</tt> (except :port) is passed to OpenSSL::SSLContext#set_params.
full_name: Net::POP3#enable_ssl
is_singleton: false
name: enable_ssl
params: |
  Net::POP#enable_ssl(params = {})

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3::create_ssl_params
is_singleton: true
name: create_ssl_params
params: (verify_or_params = {}, certs = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: each
block_params: message
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Yields each message to the passed-in block in turn. Equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "  pop3.mails.each do |popmail|\n    ....\n  end\n"
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POP3#each_mail
is_singleton: false
name: each_mail
params: () {|message| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provide human-readable stringification of class state.
full_name: Net::POP3#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3::certs
is_singleton: true
name: certs
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#do_start
is_singleton: false
name: do_start
params: (account, password)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resets the session. This clears all &quot;deleted&quot; marks from messages.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POP3#reset
is_singleton: false
name: reset
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #started?"
full_name: Net::POP3#active?
is_singleton: false
name: active?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: message
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes all messages on the server.
- !ruby/struct:SM::Flow::P 
  body: If called with a block, yields each message in turn before deleting it.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    n = 1\n    pop.delete_all do |m|\n      File.open(&quot;inbox/#{n}&quot;) do |f|\n        f.write m.pop\n      end\n      n += 1\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPError if an error occurs.
full_name: Net::POP3#delete_all
is_singleton: false
name: delete_all
params: ( {|message| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#do_finish
is_singleton: false
name: do_finish
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Does this instance use APOP authentication?
full_name: Net::POP3#apop?
is_singleton: false
name: apop?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new POP3 object.
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> is the hostname or ip address of your POP3 server.
- !ruby/struct:SM::Flow::P 
  body: The optional <tt>port</tt> is the port to connect to.
- !ruby/struct:SM::Flow::P 
  body: The optional <tt>isapop</tt> specifies whether this connection is going to use APOP authentication; it defaults to <tt>false</tt>.
- !ruby/struct:SM::Flow::P 
  body: This method does <b>not</b> open the TCP connection.
full_name: Net::POP3::new
is_singleton: true
name: new
params: (addr, port = nil, isapop = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: active?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>true</tt> if the POP3 session has started.
full_name: Net::POP3#started?
is_singleton: false
name: started?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: does this instance use SSL?
full_name: Net::POP3#use_ssl?
is_singleton: false
name: use_ssl?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#on_connect
is_singleton: false
name: on_connect
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: message
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Starts a POP3 session and iterates over each POPMail object, yielding it to the <tt>block</tt>. This method is equivalent to:"
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::POP3.start(address, port, account, password) do |pop|\n      pop.each_mail do |m|\n        yield m\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPAuthenticationError if authentication fails.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::POP3.foreach('pop.example.com', 110,\n                      'YourAccount', 'YourPassword') do |m|\n      file.write m.pop\n      m.delete if $DELETE\n    end\n"
full_name: Net::POP3::foreach
is_singleton: true
name: foreach
params: (address, port = nil, account = nil, password = nil, isapop = false) {|message| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #each_mail"
full_name: Net::POP3#each
is_singleton: false
name: each
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3#disable_ssl
is_singleton: false
name: disable_ssl
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Disable SSL for all new instances.
full_name: Net::POP3::disable_ssl
is_singleton: true
name: disable_ssl
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finishes a POP3 session and closes TCP connection.
full_name: Net::POP3#finish
is_singleton: false
name: finish
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Class Parameters
full_name: Net::POP3::default_port
is_singleton: true
name: default_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port for POP3 connections, port 110
full_name: Net::POP3::default_pop3_port
is_singleton: true
name: default_pop3_port
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Starts a pop3 session, attempts authentication, and quits. This method must not be called while POP3 session is opened. This method raises POPAuthenticationError if authentication fails.
full_name: Net::POP3#auth_only
is_singleton: false
name: auth_only
params: (account, password)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The address to connect to.
  name: address
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait until a connection is opened. If the POP3 object cannot open a connection within this time, it raises a TimeoutError exception.
  name: open_timeout
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Seconds to wait until reading one block (by one read(1) call). If the POP3 object cannot complete a read() within this time, it raises a TimeoutError exception.
  name: read_timeout
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: APOP
- !ruby/object:RI::MethodSummary 
  name: auth_only
- !ruby/object:RI::MethodSummary 
  name: certs
- !ruby/object:RI::MethodSummary 
  name: create_ssl_params
- !ruby/object:RI::MethodSummary 
  name: default_pop3_port
- !ruby/object:RI::MethodSummary 
  name: default_pop3s_port
- !ruby/object:RI::MethodSummary 
  name: default_port
- !ruby/object:RI::MethodSummary 
  name: delete_all
- !ruby/object:RI::MethodSummary 
  name: disable_ssl
- !ruby/object:RI::MethodSummary 
  name: enable_ssl
- !ruby/object:RI::MethodSummary 
  name: foreach
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: ssl_params
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: use_ssl?
- !ruby/object:RI::MethodSummary 
  name: verify
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Net::POP3
- !ruby/struct:SM::Flow::H 
  level: 2
  text: What is This Library?
- !ruby/struct:SM::Flow::P 
  body: This library provides functionality for retrieving email via POP3, the Post Office Protocol version 3. For details of POP3, see [RFC1939] (http://www.ietf.org/rfc/rfc1939.txt).
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Examples
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Retrieving Messages
- !ruby/struct:SM::Flow::P 
  body: This example retrieves messages from the server and deletes them on the server.
- !ruby/struct:SM::Flow::P 
  body: Messages are written to files named 'inbox/1', 'inbox/2', .... Replace 'pop.example.com' with your POP3 server address, and 'YourAccount' and 'YourPassword' with the appropriate account details.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    pop = Net::POP3.new('pop.example.com')\n    pop.start('YourAccount', 'YourPassword')             # (1)\n    if pop.mails.empty?\n      puts 'No mail.'\n    else\n      i = 0\n      pop.each_mail do |m|   # or &quot;pop.mails.each ...&quot;   # (2)\n        File.open(&quot;inbox/#{i}&quot;, 'w') do |f|\n          f.write m.pop\n        end\n        m.delete\n        i += 1\n      end\n      puts &quot;#{pop.mails.size} mails popped.&quot;\n    end\n    pop.finish                                           # (3)\n"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: Call Net::POP3#start and start POP session.
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: Access messages by using POP3#each_mail and/or POP3#mails.
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: "Close POP session by calling POP3#finish or use the block form of #start."
  type: :NUMBER
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Shortened Code
- !ruby/struct:SM::Flow::P 
  body: The example above is very verbose. You can shorten the code by using some utility methods. First, the block form of Net::POP3.start can be used instead of POP3.new, POP3#start and POP3#finish.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    Net::POP3.start('pop.example.com', 110,\n                    'YourAccount', 'YourPassword') do |pop|\n      if pop.mails.empty?\n        puts 'No mail.'\n      else\n        i = 0\n        pop.each_mail do |m|   # or &quot;pop.mails.each ...&quot;\n          File.open(&quot;inbox/#{i}&quot;, 'w') do |f|\n            f.write m.pop\n          end\n          m.delete\n          i += 1\n        end\n        puts &quot;#{pop.mails.size} mails popped.&quot;\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: "POP3#delete_all is an alternative for #each_mail and #delete."
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    Net::POP3.start('pop.example.com', 110,\n                    'YourAccount', 'YourPassword') do |pop|\n      if pop.mails.empty?\n        puts 'No mail.'\n      else\n        i = 1\n        pop.delete_all do |m|\n          File.open(&quot;inbox/#{i}&quot;, 'w') do |f|\n            f.write m.pop\n          end\n          i += 1\n        end\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: And here is an even shorter example.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    i = 0\n    Net::POP3.delete_all('pop.example.com', 110,\n                         'YourAccount', 'YourPassword') do |m|\n      File.open(&quot;inbox/#{i}&quot;, 'w') do |f|\n        f.write m.pop\n      end\n      i += 1\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Memory Space Issues
- !ruby/struct:SM::Flow::P 
  body: All the examples above get each message as one big string. This example avoids this.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    i = 1\n    Net::POP3.delete_all('pop.example.com', 110,\n                         'YourAccount', 'YourPassword') do |m|\n      File.open(&quot;inbox/#{i}&quot;, 'w') do |f|\n        m.pop do |chunk|    # get a message little by little.\n          f.write chunk\n        end\n        i += 1\n      end\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Using APOP
- !ruby/struct:SM::Flow::P 
  body: "The net/pop library supports APOP authentication. To use APOP, use the Net::APOP class instead of the Net::POP3 class. You can use the utility method, Net::POP3.APOP(). For example:"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/pop'\n\n    # Use APOP authentication if $isapop == true\n    pop = Net::POP3.APOP($is_apop).new('apop.example.com', 110)\n    pop.start(YourAccount', 'YourPassword') do |pop|\n      # Rest of the code is the same.\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Fetch Only Selected Mail Using 'UIDL' POP Command
- !ruby/struct:SM::Flow::P 
  body: If your POP server provides UIDL functionality, you can grab only selected mails from the POP server. e.g.
- !ruby/struct:SM::Flow::VERB 
  body: "    def need_pop?( id )\n      # determine if we need pop this mail...\n    end\n\n    Net::POP3.start('pop.example.com', 110,\n                    'Your account', 'Your password') do |pop|\n      pop.mails.select { |m| need_pop?(m.unique_id) }.each do |m|\n        do_something(m.pop)\n      end\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: The POPMail#unique_id() method returns the unique-id of the message as a String. Normally the unique-id is a hash of the message.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Revision
  value: "%q$Revision: 29903 $.split[1]"
full_name: Net::POP3
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: active?
- !ruby/object:RI::MethodSummary 
  name: apop?
- !ruby/object:RI::MethodSummary 
  name: auth_only
- !ruby/object:RI::MethodSummary 
  name: command
- !ruby/object:RI::MethodSummary 
  name: delete_all
- !ruby/object:RI::MethodSummary 
  name: disable_ssl
- !ruby/object:RI::MethodSummary 
  name: do_finish
- !ruby/object:RI::MethodSummary 
  name: do_start
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: each_mail
- !ruby/object:RI::MethodSummary 
  name: enable_ssl
- !ruby/object:RI::MethodSummary 
  name: finish
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: logging
- !ruby/object:RI::MethodSummary 
  name: mails
- !ruby/object:RI::MethodSummary 
  name: n_bytes
- !ruby/object:RI::MethodSummary 
  name: n_mails
- !ruby/object:RI::MethodSummary 
  name: on_connect
- !ruby/object:RI::MethodSummary 
  name: port
- !ruby/object:RI::MethodSummary 
  name: read_timeout=
- !ruby/object:RI::MethodSummary 
  name: reset
- !ruby/object:RI::MethodSummary 
  name: set_debug_output
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: started?
- !ruby/object:RI::MethodSummary 
  name: use_ssl?
name: POP3
superclass: Protocol
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Set the read timeout.
full_name: Net::POP3#read_timeout=
is_singleton: false
name: read_timeout=
params: (sec)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Starts a POP3 session and deletes all messages on the server. If a block is given, each POPMail object is yielded to it before being deleted.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPAuthenticationError if authentication fails.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "    Net::POP3.delete_all('pop.example.com', 110,\n                         'YourAccount', 'YourPassword') do |m|\n      file.write m.pop\n    end\n"
full_name: Net::POP3::delete_all
is_singleton: true
name: delete_all
params: (address, port = nil, account = nil, password = nil, isapop = false, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "<b>WARNING</b>: This method causes a serious security hole. Use this method only for debugging."
- !ruby/struct:SM::Flow::P 
  body: Set an output stream for debugging.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  pop = Net::POP.new(addr, port)\n  pop.set_debug_output $stderr\n  pop.start(account, passwd) do |pop|\n    ....\n  end\n"
full_name: Net::POP3#set_debug_output
is_singleton: false
name: set_debug_output
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::POP3::ssl_params
is_singleton: true
name: ssl_params
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: pop
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new POP3 object and open the connection. Equivalent to
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::POP3.new(address, port, isapop).start(account, password)\n"
- !ruby/struct:SM::Flow::P 
  body: If <tt>block</tt> is provided, yields the newly-opened POP3 object to it, and automatically closes it at the end of the session.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "   Net::POP3.start(addr, port, account, password) do |pop|\n     pop.each_mail do |m|\n       file.write m.pop\n       m.delete\n     end\n   end\n"
full_name: Net::POP3::start
is_singleton: true
name: start
params: (address, port = nil, account = nil, password = nil, isapop = false) {|pop| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: pop
comment: 
- !ruby/struct:SM::Flow::P 
  body: Starts a POP3 session.
- !ruby/struct:SM::Flow::P 
  body: When called with block, gives a POP3 object to the block and closes the session after block call finishes.
- !ruby/struct:SM::Flow::P 
  body: This method raises a POPAuthenticationError if authentication fails.
full_name: Net::POP3#start
is_singleton: false
name: start
params: (account, password) {|pop| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Enable SSL for all new instances. <tt>params</tt> is passed to OpenSSL::SSLContext#set_params.
full_name: Net::POP3::enable_ssl
is_singleton: true
name: enable_ssl
params: |
  Net::POP.enable_ssl(params = {})

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the total size in bytes of all the messages on the POP server.
full_name: Net::POP3#n_bytes
is_singleton: false
name: n_bytes
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The default port for POP3S connections, port 995
full_name: Net::POP3::default_pop3s_port
is_singleton: true
name: default_pop3s_port
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoFatalError
includes: []

instance_methods: []

name: ProtoFatalError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::HTTPFatalError
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPExceptions
instance_methods: []

name: HTTPFatalError
superclass: ProtoFatalError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::HTTPError
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPExceptions
instance_methods: []

name: HTTPError
superclass: ProtocolError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::ProtoRetriableError
includes: []

instance_methods: []

name: ProtoRetriableError
superclass: ProtocolError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #list"
full_name: Net::FTP#ls
is_singleton: false
name: ls
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: Puts the connection into ASCII (text) mode, issues the given command, and passes the resulting data, one line at a time, to the associated block. If no block is given, prints the lines. Note that <tt>cmd</tt> is a server command (such as &quot;RETR myfile&quot;).
full_name: Net::FTP#retrlines
is_singleton: false
name: retrlines
params: (cmd) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of filenames in the remote directory.
full_name: Net::FTP#nlst
is_singleton: false
name: nlst
params: (dir = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the size of the given (remote) filename.
full_name: Net::FTP#size
is_singleton: false
name: size
params: (filename)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #list"
full_name: Net::FTP#dir
is_singleton: false
name: dir
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the status (STAT command).
full_name: Net::FTP#status
is_singleton: false
name: status
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: Transfers <tt>localfile</tt> to the server in ASCII (text) mode, storing the result in <tt>remotefile</tt>. If callback or an associated block is supplied, calls it, passing in the transmitted data one line at a time.
full_name: Net::FTP#puttextfile
is_singleton: false
name: puttextfile
params: (localfile, remotefile = File.basename(localfile)) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Issues a NOOP command.
full_name: Net::FTP#noop
is_singleton: false
name: noop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: data
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Retrieves <tt>remotefile</tt> in whatever mode the session is set (text or binary). See #gettextfile and #getbinaryfile."
full_name: Net::FTP#get
is_singleton: false
name: get
params: (remotefile, localfile = File.basename(remotefile), blocksize = DEFAULT_BLOCKSIZE) {|data| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Obsolete
full_name: Net::FTP#return_code
is_singleton: false
name: return_code
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#getmultiline
is_singleton: false
name: getmultiline
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: getdir
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the current remote directory.
full_name: Net::FTP#pwd
is_singleton: false
name: pwd
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: data
comment: 
- !ruby/struct:SM::Flow::P 
  body: Puts the connection into binary (image) mode, issues the given server-side command (such as &quot;STOR myfile&quot;), and sends the contents of the file named <tt>file</tt> to the server. If the optional block is given, it also passes it the data, in chunks of <tt>blocksize</tt> characters.
full_name: Net::FTP#storbinary
is_singleton: false
name: storbinary
params: (cmd, file, blocksize, rest_offset = nil) {|data| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: Puts the connection into ASCII (text) mode, issues the given server-side command (such as &quot;STOR myfile&quot;), and sends the contents of the file named <tt>file</tt> to the server, one line at a time. If the optional block is given, it also passes it the lines.
full_name: Net::FTP#storlines
is_singleton: false
name: storlines
params: (cmd, file) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#parse227
is_singleton: false
name: parse227
params: (resp)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Renames a file on the server.
full_name: Net::FTP#rename
is_singleton: false
name: rename
params: (fromname, toname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sends the ACCT command. TODO: more info."
full_name: Net::FTP#acct
is_singleton: false
name: acct
params: (account)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: WRITEME or make private
full_name: Net::FTP#set_socket
is_singleton: false
name: set_socket
params: (sock, get_greeting = true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a command and expect a response beginning with '2'.
full_name: Net::FTP#voidcmd
is_singleton: false
name: voidcmd
params: (cmd)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ftp
comment: 
- !ruby/struct:SM::Flow::P 
  body: A synonym for <tt>FTP.new</tt>, but with a mandatory host parameter.
- !ruby/struct:SM::Flow::P 
  body: If a block is given, it is passed the <tt>FTP</tt> object, which will be closed when the block finishes, or when an exception is raised.
full_name: Net::FTP::open
is_singleton: true
name: open
params: (host, user = nil, passwd = nil, acct = nil) {|ftp| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the last modification time of the (remote) file. If <tt>local</tt> is <tt>true</tt>, it is returned as a local time, otherwise it's a UTC time.
full_name: Net::FTP#mtime
is_singleton: false
name: mtime
params: (filename, local = false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#voidresp
is_singleton: false
name: voidresp
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Changes the (remote) directory.
full_name: Net::FTP#chdir
is_singleton: false
name: chdir
params: (dirname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Issues the HELP command.
full_name: Net::FTP#help
is_singleton: false
name: help
params: (arg = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: data
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves <tt>remotefile</tt> in binary mode, storing the result in <tt>localfile</tt>. If a block is supplied, it is passed the retrieved data in <tt>blocksize</tt> chunks.
full_name: Net::FTP#getbinaryfile
is_singleton: false
name: getbinaryfile
params: (remotefile, localfile = File.basename(remotefile), blocksize = DEFAULT_BLOCKSIZE) {|data| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the connection is closed.
full_name: Net::FTP#closed?
is_singleton: false
name: closed?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#open_socket
is_singleton: false
name: open_socket
params: (host, port)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retrieves <tt>remotefile</tt> in ASCII (text) mode, storing the result in <tt>localfile</tt>. If a block is supplied, it is passed the retrieved data one line at a time.
full_name: Net::FTP#gettextfile
is_singleton: false
name: gettextfile
params: (remotefile, localfile = File.basename(remotefile)) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sends a command and returns the response.
full_name: Net::FTP#sendcmd
is_singleton: false
name: sendcmd
params: (cmd)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Obsolete
full_name: Net::FTP#return_code=
is_singleton: false
name: return_code=
params: (s)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#makeport
is_singleton: false
name: makeport
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Creates and returns a new <tt>FTP</tt> object. If a <tt>host</tt> is given, a connection is made. Additionally, if the <tt>user</tt> is given, the given user name, password, and (optionally) account are used to log in. See #login."
full_name: Net::FTP::new
is_singleton: true
name: new
params: (host = nil, user = nil, passwd = nil, acct = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #pwd"
full_name: Net::FTP#getdir
is_singleton: false
name: getdir
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns system information.
full_name: Net::FTP#system
is_singleton: false
name: system
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#transfercmd
is_singleton: false
name: transfercmd
params: (cmd, rest_offset = nil)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Closes the connection. Further operations are impossible until you open a new connection with #connect."
full_name: Net::FTP#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#getline
is_singleton: false
name: getline
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Logs in to the remote host. The session must have been previously connected. If <tt>user</tt> is the string &quot;anonymous&quot; and the <tt>password</tt> is <tt>nil</tt>, a password of <tt>user@host</tt> is synthesized. If the <tt>acct</tt> parameter is not <tt>nil</tt>, an FTP ACCT command is sent following the successful login. Raises an exception on error (typically <tt>Net::FTPPermError</tt>).
full_name: Net::FTP#login
is_singleton: false
name: login
params: (user = "anonymous", passwd = nil, acct = nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: data
comment: 
- !ruby/struct:SM::Flow::P 
  body: Puts the connection into binary (image) mode, issues the given command, and fetches the data returned, passing it to the associated block in chunks of <tt>blocksize</tt> characters. Note that <tt>cmd</tt> is a server command (such as &quot;RETR myfile&quot;).
full_name: Net::FTP#retrbinary
is_singleton: false
name: retrbinary
params: (cmd, blocksize, rest_offset = nil) {|data| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Issues the MDTM command. TODO: more info."
full_name: Net::FTP#mdtm
is_singleton: false
name: mdtm
params: (filename)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#parse228
is_singleton: false
name: parse228
params: (resp)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#getaddress
is_singleton: false
name: getaddress
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#sanitize
is_singleton: false
name: sanitize
params: (s)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: data
comment: 
- !ruby/struct:SM::Flow::P 
  body: Transfers <tt>localfile</tt> to the server in binary mode, storing the result in <tt>remotefile</tt>. If a block is supplied, calls it, passing in the transmitted data in <tt>blocksize</tt> chunks.
full_name: Net::FTP#putbinaryfile
is_singleton: false
name: putbinaryfile
params: (localfile, remotefile = File.basename(localfile), blocksize = DEFAULT_BLOCKSIZE) {|data| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Deletes a file on the server.
full_name: Net::FTP#delete
is_singleton: false
name: delete
params: (filename)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#sendport
is_singleton: false
name: sendport
params: (host, port)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Transfers <tt>localfile</tt> to the server in whatever mode the session is set (text or binary). See #puttextfile and #putbinaryfile."
full_name: Net::FTP#put
is_singleton: false
name: put
params: (localfile, remotefile = File.basename(localfile), blocksize = DEFAULT_BLOCKSIZE, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#parse257
is_singleton: false
name: parse257
params: (resp)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#makepasv
is_singleton: false
name: makepasv
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Establishes an FTP connection to host, optionally overriding the default port. If the environment variable <tt>SOCKS_SERVER</tt> is set, sets up the connection through a SOCKS proxy. Raises an exception (typically <tt>Errno::ECONNREFUSED</tt>) if the connection cannot be established.
full_name: Net::FTP#connect
is_singleton: false
name: connect
params: (host, port = FTP_PORT)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#getresp
is_singleton: false
name: getresp
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: ls
- !ruby/object:RI::AliasName 
  name: dir
block_params: line
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of file information in the directory (the output is like `ls -l`). If a block is given, it iterates through the listing.
full_name: Net::FTP#list
is_singleton: false
name: list
params: (*args) {|line| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes a remote directory.
full_name: Net::FTP#rmdir
is_singleton: false
name: rmdir
params: (dirname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Aborts the previous command (ABOR command).
full_name: Net::FTP#abort
is_singleton: false
name: abort
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "When <tt>true</tt>, transfers are performed in binary mode. Default: <tt>true</tt>."
  name: binary
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "When <tt>true</tt>, all traffic to and from the server is written to +$stdout+. Default: <tt>false</tt>."
  name: debug_mode
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The server's last response.
  name: last_response
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The server's last response code.
  name: last_response_code
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "When <tt>true</tt>, the connection is in passive mode. Default: <tt>false</tt>."
  name: passive
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Sets or retrieves the <tt>resume</tt> status, which decides whether incomplete transfers are resumed or restarted. Default: <tt>false</tt>."
  name: resume
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The server's welcome message.
  name: welcome
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: This class implements the File Transfer Protocol. If you have used a command-line FTP program, and are familiar with the commands, you will be able to use this class easily. Some extra features are included to take advantage of Ruby's style and strengths.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'net/ftp'\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example 1
- !ruby/struct:SM::Flow::VERB 
  body: "  ftp = Net::FTP.new('ftp.netlab.co.jp')\n  ftp.login\n  files = ftp.chdir('pub/lang/ruby/contrib')\n  files = ftp.list('n*')\n  ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)\n  ftp.close\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example 2
- !ruby/struct:SM::Flow::VERB 
  body: "  Net::FTP.open('ftp.netlab.co.jp') do |ftp|\n    ftp.login\n    files = ftp.chdir('pub/lang/ruby/contrib')\n    files = ftp.list('n*')\n    ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)\n  end\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Major Methods
- !ruby/struct:SM::Flow::P 
  body: "The following are the methods most likely to be useful to users:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: FTP.open
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#getbinaryfile"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#gettextfile"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#putbinaryfile"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#puttextfile"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#chdir"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#nlst"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#size"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#rename"
  - !ruby/struct:SM::Flow::LI 
    label: "-"
    body: "#delete"
  type: :BULLET
constants: []

full_name: Net::FTP
includes: 
- !ruby/object:RI::IncludedModule 
  name: MonitorMixin
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: abort
- !ruby/object:RI::MethodSummary 
  name: acct
- !ruby/object:RI::MethodSummary 
  name: chdir
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: closed?
- !ruby/object:RI::MethodSummary 
  name: connect
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: dir
- !ruby/object:RI::MethodSummary 
  name: get
- !ruby/object:RI::MethodSummary 
  name: getaddress
- !ruby/object:RI::MethodSummary 
  name: getbinaryfile
- !ruby/object:RI::MethodSummary 
  name: getdir
- !ruby/object:RI::MethodSummary 
  name: getline
- !ruby/object:RI::MethodSummary 
  name: getmultiline
- !ruby/object:RI::MethodSummary 
  name: getresp
- !ruby/object:RI::MethodSummary 
  name: gettextfile
- !ruby/object:RI::MethodSummary 
  name: help
- !ruby/object:RI::MethodSummary 
  name: list
- !ruby/object:RI::MethodSummary 
  name: login
- !ruby/object:RI::MethodSummary 
  name: ls
- !ruby/object:RI::MethodSummary 
  name: makepasv
- !ruby/object:RI::MethodSummary 
  name: makeport
- !ruby/object:RI::MethodSummary 
  name: mdtm
- !ruby/object:RI::MethodSummary 
  name: mkdir
- !ruby/object:RI::MethodSummary 
  name: mtime
- !ruby/object:RI::MethodSummary 
  name: nlst
- !ruby/object:RI::MethodSummary 
  name: noop
- !ruby/object:RI::MethodSummary 
  name: open_socket
- !ruby/object:RI::MethodSummary 
  name: parse227
- !ruby/object:RI::MethodSummary 
  name: parse228
- !ruby/object:RI::MethodSummary 
  name: parse229
- !ruby/object:RI::MethodSummary 
  name: parse257
- !ruby/object:RI::MethodSummary 
  name: put
- !ruby/object:RI::MethodSummary 
  name: putbinaryfile
- !ruby/object:RI::MethodSummary 
  name: putline
- !ruby/object:RI::MethodSummary 
  name: puttextfile
- !ruby/object:RI::MethodSummary 
  name: pwd
- !ruby/object:RI::MethodSummary 
  name: quit
- !ruby/object:RI::MethodSummary 
  name: rename
- !ruby/object:RI::MethodSummary 
  name: retrbinary
- !ruby/object:RI::MethodSummary 
  name: retrlines
- !ruby/object:RI::MethodSummary 
  name: return_code
- !ruby/object:RI::MethodSummary 
  name: return_code=
- !ruby/object:RI::MethodSummary 
  name: rmdir
- !ruby/object:RI::MethodSummary 
  name: sanitize
- !ruby/object:RI::MethodSummary 
  name: sendcmd
- !ruby/object:RI::MethodSummary 
  name: sendport
- !ruby/object:RI::MethodSummary 
  name: set_socket
- !ruby/object:RI::MethodSummary 
  name: site
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: status
- !ruby/object:RI::MethodSummary 
  name: storbinary
- !ruby/object:RI::MethodSummary 
  name: storlines
- !ruby/object:RI::MethodSummary 
  name: system
- !ruby/object:RI::MethodSummary 
  name: transfercmd
- !ruby/object:RI::MethodSummary 
  name: voidcmd
- !ruby/object:RI::MethodSummary 
  name: voidresp
name: FTP
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a remote directory.
full_name: Net::FTP#mkdir
is_singleton: false
name: mkdir
params: (dirname)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#putline
is_singleton: false
name: putline
params: (line)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Net::FTP#parse229
is_singleton: false
name: parse229
params: (resp)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Exits the FTP session.
full_name: Net::FTP#quit
is_singleton: false
name: quit
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Issues a SITE command.
full_name: Net::FTP#site
is_singleton: false
name: site
params: (arg)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Net::HTTPServerException
includes: 
- !ruby/object:RI::IncludedModule 
  name: HTTPExceptions
instance_methods: []

name: HTTPServerException
superclass: ProtoServerError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents an SMTP command syntax error (error code 500)
constants: []

full_name: Net::SMTPSyntaxError
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPSyntaxError
superclass: ProtoSyntaxError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents SMTP error code 420 or 450, a temporary error.
constants: []

full_name: Net::SMTPServerBusy
includes: 
- !ruby/object:RI::IncludedModule 
  name: SMTPError
instance_methods: []

name: SMTPServerBusy
superclass: ProtoServerError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: NoMethodError
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: args
name: NoMethodError
superclass: NameError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Construct a NoMethodError exception for a method of the given name called with the given arguments. The name may be accessed using the <tt>#name</tt> method on the resulting object, and the arguments using the <tt>#args</tt> method.
full_name: NoMethodError::new
is_singleton: true
name: new
params: |
  NoMethodError.new(msg, name [, args])  => no_method_error

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the arguments passed in as the third parameter to the constructor.
full_name: NoMethodError#args
is_singleton: false
name: args
params: |
  no_method_error.args  => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#asinh
is_singleton: false
name: asinh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the inverse hyperbolic cosine of <em>x</em>.
full_name: Math::acosh
is_singleton: true
name: acosh
params: |
  Math.acosh(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the value of <em>flt</em>*(2**<em>int</em>).
- !ruby/struct:SM::Flow::VERB 
  body: "   fraction, exponent = Math.frexp(1234)\n   Math.ldexp(fraction, exponent)   #=&gt; 1234.0\n"
full_name: Math::ldexp
is_singleton: true
name: ldexp
params: |
  Math.ldexp(flt, int) -> float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the cosine of <em>x</em> (expressed in radians). Returns -1..1.
full_name: Math::cos
is_singleton: true
name: cos
params: |
  Math.cos(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#acos
is_singleton: false
name: acos
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the arc cosine of <em>x</em>. Returns 0..PI.
full_name: Math::acos
is_singleton: true
name: acos
params: |
  Math.acos(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#cos
is_singleton: false
name: cos
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the inverse hyperbolic tangent of <em>x</em>.
full_name: Math::atanh
is_singleton: true
name: atanh
params: |
  Math.atanh(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns sqrt(x**2 + y**2), the hypotenuse of a right-angled triangle with sides <em>x</em> and <em>y</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Math.hypot(3, 4)   #=&gt; 5.0\n"
full_name: Math::hypot
is_singleton: true
name: hypot
params: |
  Math.hypot(x, y)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#exp
is_singleton: false
name: exp
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#rsqrt
is_singleton: false
name: rsqrt
params: (a)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the arc tangent of <em>x</em>. Returns -{PI/2} .. {PI/2}.
full_name: Math::atan
is_singleton: true
name: atan
params: |
  Math.atan(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the inverse hyperbolic sine of <em>x</em>.
full_name: Math::asinh
is_singleton: true
name: asinh
params: |
  Math.asinh(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#sqrt
is_singleton: false
name: sqrt
params: (a)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the hyperbolic sine of <em>x</em> (expressed in radians).
full_name: Math::sinh
is_singleton: true
name: sinh
params: |
  Math.sinh(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculates the error function of x.
full_name: Math::erf
is_singleton: true
name: erf
params: |
  Math.erf(x)  => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#tanh
is_singleton: false
name: tanh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#cosh
is_singleton: false
name: cosh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the base 10 logarithm of <em>numeric</em>.
full_name: Math::log10
is_singleton: true
name: log10
params: |
  Math.log10(numeric)    => float

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: acos
- !ruby/object:RI::MethodSummary 
  name: acosh
- !ruby/object:RI::MethodSummary 
  name: asin
- !ruby/object:RI::MethodSummary 
  name: asinh
- !ruby/object:RI::MethodSummary 
  name: atan
- !ruby/object:RI::MethodSummary 
  name: atan2
- !ruby/object:RI::MethodSummary 
  name: atanh
- !ruby/object:RI::MethodSummary 
  name: cos
- !ruby/object:RI::MethodSummary 
  name: cosh
- !ruby/object:RI::MethodSummary 
  name: erf
- !ruby/object:RI::MethodSummary 
  name: erfc
- !ruby/object:RI::MethodSummary 
  name: exp
- !ruby/object:RI::MethodSummary 
  name: frexp
- !ruby/object:RI::MethodSummary 
  name: hypot
- !ruby/object:RI::MethodSummary 
  name: ldexp
- !ruby/object:RI::MethodSummary 
  name: log
- !ruby/object:RI::MethodSummary 
  name: log10
- !ruby/object:RI::MethodSummary 
  name: sin
- !ruby/object:RI::MethodSummary 
  name: sinh
- !ruby/object:RI::MethodSummary 
  name: sqrt
- !ruby/object:RI::MethodSummary 
  name: tan
- !ruby/object:RI::MethodSummary 
  name: tanh
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Math</tt> module contains module functions for basic trigonometric and transcendental functions. See class <tt>Float</tt> for a list of constants that define Ruby's floating point accuracy.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: PI
  value: rb_float_new(M_PI)
- !ruby/object:RI::Constant 
  comment: 
  name: PI
  value: rb_float_new(atan(1.0)*4.0)
- !ruby/object:RI::Constant 
  comment: 
  name: E
  value: rb_float_new(M_E)
- !ruby/object:RI::Constant 
  comment: 
  name: E
  value: rb_float_new(exp(1.0))
full_name: Math
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: acos
- !ruby/object:RI::MethodSummary 
  name: acosh
- !ruby/object:RI::MethodSummary 
  name: asin
- !ruby/object:RI::MethodSummary 
  name: asinh
- !ruby/object:RI::MethodSummary 
  name: atan
- !ruby/object:RI::MethodSummary 
  name: atan2
- !ruby/object:RI::MethodSummary 
  name: atanh
- !ruby/object:RI::MethodSummary 
  name: cos
- !ruby/object:RI::MethodSummary 
  name: cosh
- !ruby/object:RI::MethodSummary 
  name: exp
- !ruby/object:RI::MethodSummary 
  name: log
- !ruby/object:RI::MethodSummary 
  name: log10
- !ruby/object:RI::MethodSummary 
  name: rsqrt
- !ruby/object:RI::MethodSummary 
  name: sin
- !ruby/object:RI::MethodSummary 
  name: sinh
- !ruby/object:RI::MethodSummary 
  name: sqrt
- !ruby/object:RI::MethodSummary 
  name: sqrt
- !ruby/object:RI::MethodSummary 
  name: tan
- !ruby/object:RI::MethodSummary 
  name: tanh
name: Math
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#log
is_singleton: false
name: log
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns e**x.
full_name: Math::exp
is_singleton: true
name: exp
params: |
  Math.exp(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the sine of <em>x</em> (expressed in radians). Returns -1..1.
full_name: Math::sin
is_singleton: true
name: sin
params: |
  Math.sin(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#sinh
is_singleton: false
name: sinh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the arc tangent given <em>y</em> and <em>x</em>. Returns -PI..PI.
full_name: Math::atan2
is_singleton: true
name: atan2
params: |
  Math.atan2(y, x)  => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#asin
is_singleton: false
name: asin
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#log10
is_singleton: false
name: log10
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#atan
is_singleton: false
name: atan
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the arc sine of <em>x</em>. Returns -{PI/2} .. {PI/2}.
full_name: Math::asin
is_singleton: true
name: asin
params: |
  Math.asin(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the hyperbolic cosine of <em>x</em> (expressed in radians).
full_name: Math::cosh
is_singleton: true
name: cosh
params: |
  Math.cosh(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#acosh
is_singleton: false
name: acosh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#sin
is_singleton: false
name: sin
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a two-element array containing the normalized fraction (a <tt>Float</tt>) and exponent (a <tt>Fixnum</tt>) of <em>numeric</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   fraction, exponent = Math.frexp(1234)   #=&gt; [0.6025390625, 11]\n   fraction * 2**exponent                  #=&gt; 1234.0\n"
full_name: Math::frexp
is_singleton: true
name: frexp
params: |
  Math.frexp(numeric)    => [ fraction, exponent ]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calculates the complementary error function of x.
full_name: Math::erfc
is_singleton: true
name: erfc
params: |
  Math.erfc(x)  => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#atan2
is_singleton: false
name: atan2
params: (y,x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the tangent of <em>x</em> (expressed in radians).
full_name: Math::tan
is_singleton: true
name: tan
params: |
  Math.tan(x)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Redefined to handle a Complex argument.
full_name: Math#tan
is_singleton: false
name: tan
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Computes the hyperbolic tangent of <em>x</em> (expressed in radians).
full_name: Math::tanh
is_singleton: true
name: tanh
params: |
  Math.tanh()    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the natural logarithm of <em>numeric</em>.
full_name: Math::log
is_singleton: true
name: log
params: |
  Math.log(numeric)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Math#atanh
is_singleton: false
name: atanh
params: (z)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the non-negative square root of <em>numeric</em>.
full_name: Math::sqrt
is_singleton: true
name: sqrt
params: |
  Math.sqrt(numeric)    => float

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns a list of encodings in Content-Encoding field as an Array of String. The encodings are downcased for canonicalization.
full_name: OpenURI::Meta#content_encoding
is_singleton: false
name: content_encoding
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns &quot;type/subtype&quot; which is MIME Content-Type. It is downcased for canonicalization. Content-Type parameters are stripped.
full_name: OpenURI::Meta#content_type
is_singleton: false
name: content_type
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns a charset parameter in Content-Type field. It is downcased for canonicalization.
- !ruby/struct:SM::Flow::P 
  body: If charset parameter is not given but a block is given, the block is called and its result is returned. It can be used to guess charset.
- !ruby/struct:SM::Flow::P 
  body: If charset parameter and block is not given, nil is returned except text type in HTTP. In that case, &quot;iso-8859-1&quot; is returned as defined by RFC2616 3.7.1.
full_name: OpenURI::Meta#charset
is_singleton: false
name: charset
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns a Time which represents Last-Modified field.
full_name: OpenURI::Meta#last_modified
is_singleton: false
name: last_modified
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: returns a URI which is base of relative URIs in the data. It may differ from the URI supplied by a user because redirection.
  name: base_uri
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: returns a Hash which represents header fields. The Hash keys are downcased for canonicalization.
  name: meta
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: returns an Array which consists status code and message.
  name: status
  rw: RW
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Mixin for holding meta-information.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RE_LWS
  value: /[\r\n\t ]+/n
- !ruby/object:RI::Constant 
  comment: 
  name: RE_TOKEN
  value: "%r{[^\\x00- ()<>@,;:\\\\\"/\\[\\]?={}\\x7f]+}n"
- !ruby/object:RI::Constant 
  comment: 
  name: RE_QUOTED_STRING
  value: "%r{\"(?:[\\r\\n\\t !#-\\[\\]-~\\x80-\\xff]|\\\\[\\x00-\\x7f])*\"}n"
- !ruby/object:RI::Constant 
  comment: 
  name: RE_PARAMETERS
  value: "%r{(?:;#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?=#{RE_LWS}?(?:#{RE_TOKEN}|#{RE_QUOTED_STRING})#{RE_LWS}?)*}n"
full_name: OpenURI::Meta
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: charset
- !ruby/object:RI::MethodSummary 
  name: content_encoding
- !ruby/object:RI::MethodSummary 
  name: content_type
- !ruby/object:RI::MethodSummary 
  name: last_modified
name: Meta
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::VERB 
  body: " OpenURI is an easy-to-use wrapper for net/http, net/https and net/ftp.\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: " It is possible to open http/https/ftp URL as usual like opening a file:\n\n   open(&quot;http://www.ruby-lang.org/&quot;) {|f|\n     f.each_line {|line| p line}\n   }\n\n The opened file has several methods for meta information as follows since\n it is extended by OpenURI::Meta.\n\n   open(&quot;http://www.ruby-lang.org/en&quot;) {|f|\n     f.each_line {|line| p line}\n     p f.base_uri         # &lt;URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/&gt;\n     p f.content_type     # &quot;text/html&quot;\n     p f.charset          # &quot;iso-8859-1&quot;\n     p f.content_encoding # []\n     p f.last_modified    # Thu Dec 05 02:45:02 UTC 2002\n   }\n\n Additional header fields can be specified by an optional hash argument.\n\n   open(&quot;http://www.ruby-lang.org/en/&quot;,\n     &quot;User-Agent&quot; =&gt; &quot;Ruby/#{RUBY_VERSION}&quot;,\n     &quot;From&quot; =&gt; &quot;foo@bar.invalid&quot;,\n     &quot;Referer&quot; =&gt; &quot;http://www.ruby-lang.org/&quot;) {|f|\n     # ...\n   }\n\n The environment variables such as http_proxy, https_proxy and ftp_proxy\n are in effect by default.  :proxy =&gt; nil disables proxy.\n\n   open(&quot;http://www.ruby-lang.org/en/raa.html&quot;, :proxy =&gt; nil) {|f|\n     # ...\n   }\n\n URI objects can be opened in a similar way.\n\n   uri = URI.parse(&quot;http://www.ruby-lang.org/en/&quot;)\n   uri.open {|f|\n     # ...\n   }\n\n URI objects can be read directly. The returned string is also extended by\n OpenURI::Meta.\n\n   str = uri.read\n   p str.base_uri\n\n Author:: Tanaka Akira &lt;akr@m17n.org&gt;\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Options
  value: "{     :proxy => true,     :progress_proc => true,     :content_length_proc => true,     :http_basic_authentication => true,   }"
full_name: OpenURI
includes: []

instance_methods: []

name: OpenURI
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: OpenURI::Buffer
includes: []

instance_methods: []

name: Buffer
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: OpenURI::OpenRead#read([options]) reads a content referenced by self and returns the content as string. The string is extended with OpenURI::Meta. The argument `options' is same as OpenURI::OpenRead#open.
full_name: OpenURI::OpenRead#read
is_singleton: false
name: read
params: (options={})
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Mixin for HTTP and FTP URIs.
constants: []

full_name: OpenURI::OpenRead
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: open
- !ruby/object:RI::MethodSummary 
  name: read
name: OpenRead
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: OpenURI::OpenRead#open provides `open' for URI::HTTP and URI::FTP.
- !ruby/struct:SM::Flow::P 
  body: "OpenURI::OpenRead#open takes optional 3 arguments as: OpenURI::OpenRead#open([mode [, perm]] [, options]) [{|io| ... }]"
- !ruby/struct:SM::Flow::P 
  body: `mode', `perm' is same as Kernel#open.
- !ruby/struct:SM::Flow::P 
  body: However, `mode' must be read mode because OpenURI::OpenRead#open doesn't support write mode (yet). Also `perm' is just ignored because it is meaningful only for file creation.
- !ruby/struct:SM::Flow::P 
  body: `options' must be a hash.
- !ruby/struct:SM::Flow::P 
  body: Each pairs which key is a string in the hash specify a extra header field for HTTP. I.e. it is ignored for FTP without HTTP proxy.
- !ruby/struct:SM::Flow::P 
  body: "The hash may include other options which key is a symbol:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: ":proxy"
    body: "Synopsis:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  :proxy =&gt; &quot;http://proxy.foo.com:8000/&quot;\n  :proxy =&gt; URI.parse(&quot;http://proxy.foo.com:8000/&quot;)\n  :proxy =&gt; true\n  :proxy =&gt; false\n  :proxy =&gt; nil\n"
  - !ruby/struct:SM::Flow::P 
    body: If :proxy option is specified, the value should be String, URI, boolean or nil. When String or URI is given, it is treated as proxy URI. When true is given or the option itself is not specified, environment variable `scheme_proxy' is examined. `scheme' is replaced by `http', `https' or `ftp'. When false or nil is given, the environment variables are ignored and connection will be made to a server directly.
  - !ruby/struct:SM::Flow::LI 
    label: ":http_basic_authentication"
    body: "Synopsis:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  :http_basic_authentication=&gt;[user, password]\n"
  - !ruby/struct:SM::Flow::P 
    body: "If :http_basic_authentication is specified, the value should be an array which contains 2 strings: username and password. It is used for HTTP Basic authentication defined by RFC 2617."
  - !ruby/struct:SM::Flow::LI 
    label: ":content_length_proc"
    body: "Synopsis:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  :content_length_proc =&gt; lambda {|content_length| ... }\n"
  - !ruby/struct:SM::Flow::P 
    body: If :content_length_proc option is specified, the option value procedure is called before actual transfer is started. It takes one argument which is expected content length in bytes.
  - !ruby/struct:SM::Flow::P 
    body: If two or more transfer is done by HTTP redirection, the procedure is called only one for a last transfer.
  - !ruby/struct:SM::Flow::P 
    body: When expected content length is unknown, the procedure is called with nil. It is happen when HTTP response has no Content-Length header.
  - !ruby/struct:SM::Flow::LI 
    label: ":progress_proc"
    body: "Synopsis:"
  - !ruby/struct:SM::Flow::VERB 
    body: "  :progress_proc =&gt; lambda {|size| ...}\n"
  - !ruby/struct:SM::Flow::P 
    body: If :progress_proc option is specified, the proc is called with one argument each time when `open' gets content fragment from network. The argument `size' `size' is a accumulated transfered size in bytes.
  - !ruby/struct:SM::Flow::P 
    body: If two or more transfer is done by HTTP redirection, the procedure is called only one for a last transfer.
  - !ruby/struct:SM::Flow::P 
    body: ":progress_proc and :content_length_proc are intended to be used for progress bar. For example, it can be implemented as follows using Ruby/ProgressBar."
  - !ruby/struct:SM::Flow::VERB 
    body: "  pbar = nil\n  open(&quot;http://...&quot;,\n    :content_length_proc =&gt; lambda {|t|\n      if t &amp;&amp; 0 &lt; t\n        pbar = ProgressBar.new(&quot;...&quot;, t)\n        pbar.file_transfer_mode\n      end\n    },\n    :progress_proc =&gt; lambda {|s|\n      pbar.set s if pbar\n    }) {|f| ... }\n"
  type: :LABELED
- !ruby/struct:SM::Flow::P 
  body: OpenURI::OpenRead#open returns an IO like object if block is not given. Otherwise it yields the IO object and return the value of the block. The IO object is extended with OpenURI::Meta.
full_name: OpenURI::OpenRead#open
is_singleton: false
name: open
params: (*rest, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: io
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: OpenURI::HTTPError
includes: []

instance_methods: []

name: HTTPError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: OpenURI::HTTPError::new
is_singleton: true
name: new
params: (message, io)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares two objects based on the receiver's <tt>&lt;=&gt;</tt> method, returning true if it returns -1 or 0.
full_name: Comparable#<=
is_singleton: false
name: <=
params: |
  obj <= other    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares two objects based on the receiver's <tt>&lt;=&gt;</tt> method, returning true if it returns 0. Also returns true if <em>obj</em> and <em>other</em> are the same object.
full_name: Comparable#==
is_singleton: false
name: ==
params: |
  obj == other    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares two objects based on the receiver's <tt>&lt;=&gt;</tt> method, returning true if it returns -1.
full_name: Comparable#<
is_singleton: false
name: <
params: |
  obj < other    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>false</tt> if <em>obj</em> <tt>&lt;=&gt;</tt> <em>min</em> is less than zero or if <em>anObject</em> <tt>&lt;=&gt;</tt> <em>max</em> is greater than zero, <tt>true</tt> otherwise.
- !ruby/struct:SM::Flow::VERB 
  body: "   3.between?(1, 5)               #=&gt; true\n   6.between?(1, 5)               #=&gt; false\n   'cat'.between?('ant', 'dog')   #=&gt; true\n   'gnu'.between?('ant', 'dog')   #=&gt; false\n"
full_name: Comparable#between?
is_singleton: false
name: between?
params: |
  obj.between?(min, max)    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares two objects based on the receiver's <tt>&lt;=&gt;</tt> method, returning true if it returns 1.
full_name: Comparable#>
is_singleton: false
name: ">"
params: |
  obj > other    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares two objects based on the receiver's <tt>&lt;=&gt;</tt> method, returning true if it returns 0 or 1.
full_name: Comparable#>=
is_singleton: false
name: ">="
params: |
  obj >= other    => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Comparable</tt> mixin is used by classes whose objects may be ordered. The class must define the <tt>&lt;=&gt;</tt> operator, which compares the receiver against another object, returning -1, 0, or +1 depending on whether the receiver is less than, equal to, or greater than the other object. <tt>Comparable</tt> uses <tt>&lt;=&gt;</tt> to implement the conventional comparison operators (<tt>&lt;</tt>, <tt>&lt;=</tt>, <tt>==</tt>, <tt>&gt;=</tt>, and <tt>&gt;</tt>) and the method <tt>between?</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   class SizeMatters\n     include Comparable\n     attr :str\n     def &lt;=&gt;(anOther)\n       str.size &lt;=&gt; anOther.str.size\n     end\n     def initialize(str)\n       @str = str\n     end\n     def inspect\n       @str\n     end\n   end\n\n   s1 = SizeMatters.new(&quot;Z&quot;)\n   s2 = SizeMatters.new(&quot;YY&quot;)\n   s3 = SizeMatters.new(&quot;XXX&quot;)\n   s4 = SizeMatters.new(&quot;WWWW&quot;)\n   s5 = SizeMatters.new(&quot;VVVVV&quot;)\n\n   s1 &lt; s2                       #=&gt; true\n   s4.between?(s1, s3)           #=&gt; false\n   s4.between?(s3, s5)           #=&gt; true\n   [ s3, s2, s5, s4, s1 ].sort   #=&gt; [Z, YY, XXX, WWWW, VVVVV]\n"
constants: []

full_name: Comparable
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <
- !ruby/object:RI::MethodSummary 
  name: <=
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: ">"
- !ruby/object:RI::MethodSummary 
  name: ">="
- !ruby/object:RI::MethodSummary 
  name: between?
name: Comparable
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: SocketError
includes: []

instance_methods: []

name: SocketError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Causes the given <em>thread</em> to exit (see <tt>Thread::exit</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   count = 0\n   a = Thread.new { loop { count += 1 } }\n   sleep(0.1)       #=&gt; 0\n   Thread.kill(a)   #=&gt; #&lt;Thread:0x401b3d30 dead&gt;\n   count            #=&gt; 93947\n   a.alive?         #=&gt; false\n"
full_name: Thread::kill
is_singleton: true
name: kill
params: |
  Thread.kill(thread)   => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attribute Reference---Returns the value of a thread-local variable, using either a symbol or a string name. If the specified variable does not exist, returns <tt>nil</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { Thread.current[&quot;name&quot;] = &quot;A&quot;; Thread.stop }\n   b = Thread.new { Thread.current[:name]  = &quot;B&quot;; Thread.stop }\n   c = Thread.new { Thread.current[&quot;name&quot;] = &quot;C&quot;; Thread.stop }\n   Thread.list.each {|x| puts &quot;#{x.inspect}: #{x[:name]}&quot; }\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   #&lt;Thread:0x401b3b3c sleep&gt;: C\n   #&lt;Thread:0x401b3bc8 sleep&gt;: B\n   #&lt;Thread:0x401b3c68 sleep&gt;: A\n   #&lt;Thread:0x401bdf4c run&gt;:\n"
full_name: Thread#[]
is_singleton: false
name: "[]"
params: |
  thr[sym]   => obj or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>thr</em> is running or sleeping.
- !ruby/struct:SM::Flow::VERB 
  body: "   thr = Thread.new { }\n   thr.join                #=&gt; #&lt;Thread:0x401b3fb0 dead&gt;\n   Thread.current.alive?   #=&gt; true\n   thr.alive?              #=&gt; false\n"
full_name: Thread#alive?
is_singleton: false
name: alive?
params: |
  thr.alive?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
full_name: Thread#exit
is_singleton: false
name: exit
params: |
  thr.exit        => thr
  thr.kill        => thr
  thr.terminate   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
full_name: Thread#kill
is_singleton: false
name: kill
params: |
  thr.exit        => thr
  thr.kill        => thr
  thr.terminate   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Sets the priority of <em>thr</em> to <em>integer</em>. Higher-priority threads will run before lower-priority threads.
- !ruby/struct:SM::Flow::VERB 
  body: "   count1 = count2 = 0\n   a = Thread.new do\n         loop { count1 += 1 }\n       end\n   a.priority = -1\n\n   b = Thread.new do\n         loop { count2 += 1 }\n       end\n   b.priority = -2\n   sleep 1   #=&gt; 1\n   Thread.critical = 1\n   count1    #=&gt; 622504\n   count2    #=&gt; 5832\n"
full_name: Thread#priority=
is_singleton: false
name: priority=
params: |
  thr.priority= integer   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the priority of <em>thr</em>. Default is inherited from the current thread which creating the new thread, or zero for the initial main thread; higher-priority threads will run before lower-priority threads.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.current.priority   #=&gt; 0\n"
full_name: Thread#priority
is_singleton: false
name: priority
params: |
  thr.priority   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wakes up <em>thr</em>, making it eligible for scheduling. If not in a critical section, then invokes the scheduler.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { puts &quot;a&quot;; Thread.stop; puts &quot;c&quot; }\n   Thread.pass\n   puts &quot;Got here&quot;\n   a.run\n   a.join\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   a\n   Got here\n   c\n"
full_name: Thread#run
is_singleton: false
name: run
params: |
  thr.run   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the main thread for the process.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.main   #=&gt; #&lt;Thread:0x401bdf4c run&gt;\n"
full_name: Thread::main
is_singleton: true
name: main
params: |
  Thread.main   => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> without calling ensure clauses and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
- !ruby/struct:SM::Flow::P 
  body: See <tt>Thread#exit</tt> for the safer version.
full_name: Thread#terminate!
is_singleton: false
name: terminate!
params: |
  thr.exit!        => thr
  thr.kill!        => thr
  thr.terminate!   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> without calling ensure clauses and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
- !ruby/struct:SM::Flow::P 
  body: See <tt>Thread#exit</tt> for the safer version.
full_name: Thread#exit!
is_singleton: false
name: exit!
params: |
  thr.exit!        => thr
  thr.kill!        => thr
  thr.terminate!   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns the status of <em>thr</em>: ``<tt>sleep</tt>'' if <em>thr</em> is sleeping or waiting on I/O, ``<tt>run</tt>'' if <em>thr</em> is executing, ``<tt>aborting</tt>'' if <em>thr</em> is aborting, <tt>false</tt> if <em>thr</em> terminated normally, and <tt>nil</tt> if <em>thr</em> terminated with an exception."
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { raise(&quot;die now&quot;) }\n   b = Thread.new { Thread.stop }\n   c = Thread.new { Thread.exit }\n   d = Thread.new { sleep }\n   Thread.critical = true\n   d.kill                  #=&gt; #&lt;Thread:0x401b3678 aborting&gt;\n   a.status                #=&gt; nil\n   b.status                #=&gt; &quot;sleep&quot;\n   c.status                #=&gt; false\n   d.status                #=&gt; &quot;aborting&quot;\n   Thread.current.status   #=&gt; &quot;run&quot;\n"
full_name: Thread#status
is_singleton: false
name: status
params: |
  thr.status   => string, false or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: When set to <tt>true</tt>, all threads will abort if an exception is raised. Returns the new state.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.abort_on_exception = true\n   t1 = Thread.new do\n     puts  &quot;In new thread&quot;\n     raise &quot;Exception from thread&quot;\n   end\n   sleep(1)\n   puts &quot;not reached&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   In new thread\n   prog.rb:4: Exception from thread (RuntimeError)\n    from prog.rb:2:in `initialize'\n    from prog.rb:2:in `new'\n    from prog.rb:2\n"
full_name: Thread::abort_on_exception=
is_singleton: true
name: abort_on_exception=
params: |
  Thread.abort_on_exception= boolean   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if the given string (or symbol) exists as a thread-local variable.
- !ruby/struct:SM::Flow::VERB 
  body: "   me = Thread.current\n   me[:oliver] = &quot;a&quot;\n   me.key?(:oliver)    #=&gt; true\n   me.key?(:stanley)   #=&gt; false\n"
full_name: Thread#key?
is_singleton: false
name: key?
params: |
  thr.key?(sym)   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: When set to <tt>true</tt>, causes all threads (including the main program) to abort if an exception is raised in <em>thr</em>. The process will effectively <tt>exit(0)</tt>.
full_name: Thread#abort_on_exception=
is_singleton: false
name: abort_on_exception=
params: |
  thr.abort_on_exception= boolean   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Dump the name, id, and status of <em>thr</em> to a string.
full_name: Thread#inspect
is_singleton: false
name: inspect
params: |
  thr.inspect   => string

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the status of the global ``thread critical'' condition.
full_name: Thread::critical
is_singleton: true
name: critical
params: |
  Thread.critical   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of <tt>Thread</tt> objects for all threads that are either runnable or stopped.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.new { sleep(200) }\n   Thread.new { 1000000.times {|i| i*i } }\n   Thread.new { Thread.stop }\n   Thread.list.each {|t| p t}\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   #&lt;Thread:0x401b3e84 sleep&gt;\n   #&lt;Thread:0x401b3f38 run&gt;\n   #&lt;Thread:0x401b3fb0 sleep&gt;\n   #&lt;Thread:0x401bdf4c run&gt;\n"
full_name: Thread::list
is_singleton: true
name: list
params: |
  Thread.list   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Wraps a block in Thread.critical, restoring the original value upon exit from the critical section.
full_name: Thread::exclusive
is_singleton: true
name: exclusive
params: () {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises an exception (see <tt>Kernel::raise</tt>) from <em>thr</em>. The caller does not have to be <em>thr</em>.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.abort_on_exception = true\n   a = Thread.new { sleep(200) }\n   a.raise(&quot;Gotcha&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   prog.rb:3: Gotcha (RuntimeError)\n    from prog.rb:2:in `initialize'\n    from prog.rb:2:in `new'\n    from prog.rb:2\n"
full_name: Thread#raise
is_singleton: false
name: raise
params: |
  thr.raise(exception)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates and runs a new thread to execute the instructions given in <em>block</em>. Any arguments passed to <tt>Thread::new</tt> are passed into the block.
- !ruby/struct:SM::Flow::VERB 
  body: "   x = Thread.new { sleep 0.1; print &quot;x&quot;; print &quot;y&quot;; print &quot;z&quot; }\n   a = Thread.new { print &quot;a&quot;; print &quot;b&quot;; sleep 0.2; print &quot;c&quot; }\n   x.join # Let the threads finish before\n   a.join # main thread exits...\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   abxyzc\n"
full_name: Thread::new
is_singleton: true
name: new
params: |
  Thread.new([arg]*) {|args| block }   => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>thr</em> is dead or sleeping.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { Thread.stop }\n   b = Thread.current\n   a.stop?   #=&gt; true\n   b.stop?   #=&gt; false\n"
full_name: Thread#stop?
is_singleton: false
name: stop?
params: |
  thr.stop?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Waits for <em>thr</em> to complete (via <tt>Thread#join</tt>) and returns its value.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { 2 + 2 }\n   a.value   #=&gt; 4\n"
full_name: Thread#value
is_singleton: false
name: value
params: |
  thr.value   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the thread scheduler to pass execution to another thread.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { print &quot;a&quot;; Thread.pass;\n                    print &quot;b&quot;; Thread.pass;\n                    print &quot;c&quot; }\n   b = Thread.new { print &quot;x&quot;; Thread.pass;\n                    print &quot;y&quot;; Thread.pass;\n                    print &quot;z&quot; }\n   a.join\n   b.join\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   axbycz\n"
full_name: Thread::pass
is_singleton: true
name: pass
params: |
  Thread.pass   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the currently executing thread.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.current   #=&gt; #&lt;Thread:0x401bdf4c run&gt;\n"
full_name: Thread::current
is_singleton: true
name: current
params: |
  Thread.current   => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Stops execution of the current thread, putting it into a ``sleep'' state, and schedules execution of another thread. Resets the ``critical'' condition to <tt>false</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { print &quot;a&quot;; Thread.stop; print &quot;c&quot; }\n   Thread.pass\n   print &quot;b&quot;\n   a.run\n   a.join\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   abc\n"
full_name: Thread::stop
is_singleton: true
name: stop
params: |
  Thread.stop   => nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the <tt>ThreadGroup</tt> which contains <em>thr</em>, or nil if the thread is not a member of any group.
- !ruby/struct:SM::Flow::VERB 
  body: "   Thread.main.group   #=&gt; #&lt;ThreadGroup:0x4029d914&gt;\n"
full_name: Thread#group
is_singleton: false
name: group
params: |
  thr.group   => thgrp or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
full_name: Thread#terminate
is_singleton: false
name: terminate
params: |
  thr.exit        => thr
  thr.kill        => thr
  thr.terminate   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the status of the global ``abort on exception'' condition. The default is <tt>false</tt>. When set to <tt>true</tt>, or if the global <tt>$DEBUG</tt> flag is <tt>true</tt> (perhaps because the command line option <tt>-d</tt> was specified) all threads will abort (the process will <tt>exit(0)</tt>) if an exception is raised in any thread. See also <tt>Thread::abort_on_exception=</tt>.
full_name: Thread::abort_on_exception
is_singleton: true
name: abort_on_exception
params: |
  Thread.abort_on_exception   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Marks <em>thr</em> as eligible for scheduling (it may still remain blocked on I/O, however). Does not invoke the scheduler (see <tt>Thread#run</tt>).
- !ruby/struct:SM::Flow::VERB 
  body: "   c = Thread.new { Thread.stop; puts &quot;hey!&quot; }\n   c.wakeup\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   hey!\n"
full_name: Thread#wakeup
is_singleton: false
name: wakeup
params: |
  thr.wakeup   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates the currently running thread and schedules another thread to be run. If this thread is already marked to be killed, <tt>exit</tt> returns the <tt>Thread</tt>. If this is the main thread, or the last thread, exit the process.
full_name: Thread::exit
is_singleton: true
name: exit
params: |
  Thread.exit   => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Basically the same as <tt>Thread::new</tt>. However, if class <tt>Thread</tt> is subclassed, then calling <tt>start</tt> in that subclass will not invoke the subclass's <tt>initialize</tt> method.
full_name: Thread::fork
is_singleton: true
name: fork
params: |
  Thread.start([args]*) {|args| block }   => thread
  Thread.fork([args]*) {|args| block }    => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Sets the status of the global ``thread critical'' condition and returns it. When set to <tt>true</tt>, prohibits scheduling of any existing thread. Does not block new threads from being created and run. Certain thread operations (such as stopping or killing a thread, sleeping in the current thread, and raising an exception) may cause a thread to be scheduled even when in a critical section. <tt>Thread::critical</tt> is not intended for daily use: it is primarily there to support folks writing threading libraries."
full_name: Thread::critical=
is_singleton: true
name: critical=
params: |
  Thread.critical= boolean   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an an array of the names of the thread-local variables (as Symbols).
- !ruby/struct:SM::Flow::VERB 
  body: "   thr = Thread.new do\n     Thread.current[:cat] = 'meow'\n     Thread.current[&quot;dog&quot;] = 'woof'\n   end\n   thr.join   #=&gt; #&lt;Thread:0x401b3f10 dead&gt;\n   thr.keys   #=&gt; [:dog, :cat]\n"
full_name: Thread#keys
is_singleton: false
name: keys
params: |
  thr.keys   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Basically the same as <tt>Thread::new</tt>. However, if class <tt>Thread</tt> is subclassed, then calling <tt>start</tt> in that subclass will not invoke the subclass's <tt>initialize</tt> method.
full_name: Thread::start
is_singleton: true
name: start
params: |
  Thread.start([args]*) {|args| block }   => thread
  Thread.fork([args]*) {|args| block }    => thread

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The calling thread will suspend execution and run <em>thr</em>. Does not return until <em>thr</em> exits or until <em>limit</em> seconds have passed. If the time limit expires, <tt>nil</tt> will be returned, otherwise <em>thr</em> is returned.
- !ruby/struct:SM::Flow::P 
  body: Any threads not joined will be killed when the main program exits. If <em>thr</em> had previously raised an exception and the <tt>abort_on_exception</tt> and <tt>$DEBUG</tt> flags are not set (so the exception has not yet been processed) it will be processed at this time.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = Thread.new { print &quot;a&quot;; sleep(10); print &quot;b&quot;; print &quot;c&quot; }\n   x = Thread.new { print &quot;x&quot;; Thread.pass; print &quot;y&quot;; print &quot;z&quot; }\n   x.join # Let x thread finish, a will be killed on exit.\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   axyz\n"
- !ruby/struct:SM::Flow::P 
  body: The following example illustrates the <em>limit</em> parameter.
- !ruby/struct:SM::Flow::VERB 
  body: "   y = Thread.new { 4.times { sleep 0.1; puts 'tick... ' }}\n   puts &quot;Waiting&quot; until y.join(0.15)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   tick...\n   Waiting\n   tick...\n   Waitingtick...\n\n   tick...\n"
full_name: Thread#join
is_singleton: false
name: join
params: |
  thr.join          => thr
  thr.join(limit)   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the safe level in effect for <em>thr</em>. Setting thread-local safe levels can help when implementing sandboxes which run insecure code.
- !ruby/struct:SM::Flow::VERB 
  body: "   thr = Thread.new { $SAFE = 3; sleep }\n   Thread.current.safe_level   #=&gt; 0\n   thr.safe_level              #=&gt; 3\n"
full_name: Thread#safe_level
is_singleton: false
name: safe_level
params: |
  thr.safe_level   => integer

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Terminates <em>thr</em> without calling ensure clauses and schedules another thread to be run, returning the terminated <tt>Thread</tt>. If this is the main thread, or the last thread, exits the process.
- !ruby/struct:SM::Flow::P 
  body: See <tt>Thread#exit</tt> for the safer version.
full_name: Thread#kill!
is_singleton: false
name: kill!
params: |
  thr.exit!        => thr
  thr.kill!        => thr
  thr.terminate!   => thr

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Attribute Assignment---Sets or creates the value of a thread-local variable, using either a symbol or a string. See also <tt>Thread#[]</tt>.
full_name: Thread#[]=
is_singleton: false
name: "[]="
params: |
  thr[sym] = obj   => obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the status of the thread-local ``abort on exception'' condition for <em>thr</em>. The default is <tt>false</tt>. See also <tt>Thread::abort_on_exception=</tt>.
full_name: Thread#abort_on_exception
is_singleton: false
name: abort_on_exception
params: |
  thr.abort_on_exception   => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: abort_on_exception
- !ruby/object:RI::MethodSummary 
  name: abort_on_exception=
- !ruby/object:RI::MethodSummary 
  name: critical
- !ruby/object:RI::MethodSummary 
  name: critical=
- !ruby/object:RI::MethodSummary 
  name: current
- !ruby/object:RI::MethodSummary 
  name: exclusive
- !ruby/object:RI::MethodSummary 
  name: exit
- !ruby/object:RI::MethodSummary 
  name: fork
- !ruby/object:RI::MethodSummary 
  name: kill
- !ruby/object:RI::MethodSummary 
  name: list
- !ruby/object:RI::MethodSummary 
  name: main
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: pass
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: stop
comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>Thread</tt> encapsulates the behavior of a thread of execution, including the main thread of the Ruby script.
- !ruby/struct:SM::Flow::P 
  body: In the descriptions of the methods in this class, the parameter <em>sym</em> refers to a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as <tt>:name</tt>).
constants: []

full_name: Thread
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: "[]="
- !ruby/object:RI::MethodSummary 
  name: abort_on_exception
- !ruby/object:RI::MethodSummary 
  name: abort_on_exception=
- !ruby/object:RI::MethodSummary 
  name: alive?
- !ruby/object:RI::MethodSummary 
  name: exit
- !ruby/object:RI::MethodSummary 
  name: exit!
- !ruby/object:RI::MethodSummary 
  name: group
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: join
- !ruby/object:RI::MethodSummary 
  name: key?
- !ruby/object:RI::MethodSummary 
  name: keys
- !ruby/object:RI::MethodSummary 
  name: kill
- !ruby/object:RI::MethodSummary 
  name: kill!
- !ruby/object:RI::MethodSummary 
  name: priority
- !ruby/object:RI::MethodSummary 
  name: priority=
- !ruby/object:RI::MethodSummary 
  name: raise
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: safe_level
- !ruby/object:RI::MethodSummary 
  name: status
- !ruby/object:RI::MethodSummary 
  name: stop?
- !ruby/object:RI::MethodSummary 
  name: terminate
- !ruby/object:RI::MethodSummary 
  name: terminate!
- !ruby/object:RI::MethodSummary 
  name: value
- !ruby/object:RI::MethodSummary 
  name: wakeup
name: Thread
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: <tt>ThreadGroup</tt> provides a means of keeping track of a number of threads as a group. A <tt>Thread</tt> can belong to only one <tt>ThreadGroup</tt> at a time; adding a thread to a new group will remove it from any previous group.
- !ruby/struct:SM::Flow::P 
  body: Newly created threads belong to the same group as the thread from which they were created.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Default
  value: thgroup_default
full_name: ThreadGroup
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add
- !ruby/object:RI::MethodSummary 
  name: enclose
- !ruby/object:RI::MethodSummary 
  name: enclosed?
- !ruby/object:RI::MethodSummary 
  name: list
name: ThreadGroup
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the given <em>thread</em> to this group, removing it from any other group to which it may have previously belonged.
- !ruby/struct:SM::Flow::VERB 
  body: "   puts &quot;Initial group is #{ThreadGroup::Default.list}&quot;\n   tg = ThreadGroup.new\n   t1 = Thread.new { sleep }\n   t2 = Thread.new { sleep }\n   puts &quot;t1 is #{t1}&quot;\n   puts &quot;t2 is #{t2}&quot;\n   tg.add(t1)\n   puts &quot;Initial group now #{ThreadGroup::Default.list}&quot;\n   puts &quot;tg group now #{tg.list}&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Initial group is #&lt;Thread:0x401bdf4c&gt;\n   t1 is #&lt;Thread:0x401b3c90&gt;\n   t2 is #&lt;Thread:0x401b3c18&gt;\n   Initial group now #&lt;Thread:0x401b3c18&gt;#&lt;Thread:0x401bdf4c&gt;\n   tg group now #&lt;Thread:0x401b3c90&gt;\n"
full_name: ThreadGroup#add
is_singleton: false
name: add
params: |
  thgrp.add(thread)   => thgrp

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Prevents threads from being added to or removed from the receiving <tt>ThreadGroup</tt>. New threads can still be started in an enclosed <tt>ThreadGroup</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "   ThreadGroup::Default.enclose        #=&gt; #&lt;ThreadGroup:0x4029d914&gt;\n   thr = Thread::new { Thread.stop }   #=&gt; #&lt;Thread:0x402a7210 sleep&gt;\n   tg = ThreadGroup::new               #=&gt; #&lt;ThreadGroup:0x402752d4&gt;\n   tg.add thr\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   ThreadError: can't move from the enclosed thread group\n"
full_name: ThreadGroup#enclose
is_singleton: false
name: enclose
params: |
  thgrp.enclose   => thgrp

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if <em>thgrp</em> is enclosed. See also ThreadGroup#enclose.
full_name: ThreadGroup#enclosed?
is_singleton: false
name: enclosed?
params: |
  thgrp.enclosed?   => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of all existing <tt>Thread</tt> objects that belong to this group.
- !ruby/struct:SM::Flow::VERB 
  body: "   ThreadGroup::Default.list   #=&gt; [#&lt;Thread:0x401bdf4c run&gt;]\n"
full_name: ThreadGroup#list
is_singleton: false
name: list
params: |
  thgrp.list   => array

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the continuation. The program continues from the end of the <tt>callcc</tt> block. If no arguments are given, the original <tt>callcc</tt> returns <tt>nil</tt>. If one argument is given, <tt>callcc</tt> returns it. Otherwise, an array containing <em>args</em> is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "   callcc {|cont|  cont.call }           #=&gt; nil\n   callcc {|cont|  cont.call 1 }         #=&gt; 1\n   callcc {|cont|  cont.call 1, 2, 3 }   #=&gt; [1, 2, 3]\n"
full_name: Continuation#[]
is_singleton: false
name: "[]"
params: |
  cont.call(args, ...) 
  cont[args, ...]

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Continuation objects are generated by <tt>Kernel#callcc</tt>. They hold a return address and execution context, allowing a nonlocal return to the end of the <tt>callcc</tt> block from anywhere within a program. Continuations are somewhat analogous to a structured version of C's <tt>setjmp/longjmp</tt> (although they contain more state, so you might consider them closer to threads).
- !ruby/struct:SM::Flow::P 
  body: "For instance:"
- !ruby/struct:SM::Flow::VERB 
  body: "   arr = [ &quot;Freddie&quot;, &quot;Herbie&quot;, &quot;Ron&quot;, &quot;Max&quot;, &quot;Ringo&quot; ]\n   callcc{|$cc|}\n   puts(message = arr.shift)\n   $cc.call unless message =~ /Max/\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Freddie\n   Herbie\n   Ron\n   Max\n"
- !ruby/struct:SM::Flow::P 
  body: "This (somewhat contrived) example allows the inner loop to abandon processing early:"
- !ruby/struct:SM::Flow::VERB 
  body: "   callcc {|cont|\n     for i in 0..4\n       print &quot;\\n#{i}: &quot;\n       for j in i*5...(i+1)*5\n         cont.call() if j == 17\n         printf &quot;%3d&quot;, j\n       end\n     end\n   }\n   print &quot;\\n&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   0:   0  1  2  3  4\n   1:   5  6  7  8  9\n   2:  10 11 12 13 14\n   3:  15 16\n"
constants: []

full_name: Continuation
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: call
name: Continuation
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Invokes the continuation. The program continues from the end of the <tt>callcc</tt> block. If no arguments are given, the original <tt>callcc</tt> returns <tt>nil</tt>. If one argument is given, <tt>callcc</tt> returns it. Otherwise, an array containing <em>args</em> is returned.
- !ruby/struct:SM::Flow::VERB 
  body: "   callcc {|cont|  cont.call }           #=&gt; nil\n   callcc {|cont|  cont.call 1 }         #=&gt; 1\n   callcc {|cont|  cont.call 1, 2, 3 }   #=&gt; [1, 2, 3]\n"
full_name: Continuation#call
is_singleton: false
name: call
params: |
  cont.call(args, ...) 
  cont[args, ...]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a matrix using <tt>columns</tt> as an array of column vectors.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.columns([[25, 93], [-1, 66]])\n     =&gt;  25 -1\n         93 66\n"
full_name: Matrix::columns
is_singleton: true
name: columns
params: (columns)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> is this is a singular (i.e. non-regular) matrix.
full_name: Matrix#singular?
is_singleton: false
name: singular?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns element (<tt>i</tt>,<tt>j</tt>) of the matrix. That is: row <tt>i</tt>, column <tt>j</tt>."
full_name: Matrix#[]
is_singleton: false
name: "[]"
params: (i, j)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns a section of the matrix. The parameters are either:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: start_row, nrows, start_col, ncols; OR
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: col_range, row_range
  type: :BULLET
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.diagonal(9, 5, -3).minor(0..1, 0..2)\n    =&gt; 9 0 0\n       0 5 0\n"
full_name: Matrix#minor
is_singleton: false
name: minor
params: (*param)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of arrays that describe the rows of the matrix.
full_name: Matrix#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #=="
full_name: Matrix#eql?
is_singleton: false
name: eql?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not for public consumption?
full_name: Matrix#inverse_from
is_singleton: false
name: inverse_from
params: (src)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a single-column matrix where the values of that column are as given in <tt>column</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.column_vector([4,5,6])\n    =&gt; 4\n       5\n       6\n"
full_name: Matrix::column_vector
is_singleton: true
name: column_vector
params: (column)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: eql?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if and only if the two matrices contain equal elements.
full_name: Matrix#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates an <tt>n</tt> by <tt>n</tt> zero matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.zero(2)\n    =&gt; 0 0\n       0 0\n"
full_name: Matrix::zero
is_singleton: true
name: zero
params: (n)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of rows.
full_name: Matrix#row_size
is_singleton: false
name: row_size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a clone of the matrix, so that the contents of each do not reference identical objects.
full_name: Matrix#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matrix multiplication.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[2,4], [6,8]] * Matrix.identity(2)\n    =&gt; 2 4\n       6 8\n"
full_name: Matrix#*
is_singleton: false
name: "*"
params: (m)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overrides Object#inspect
full_name: Matrix#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates an <tt>n</tt> by <tt>n</tt> identity matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.identity(2)\n    =&gt; 1 0\n       0 1\n"
full_name: Matrix::identity
is_singleton: true
name: identity
params: (n)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a single-row matrix where the values of that row are as given in <tt>row</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.row_vector([4,5,6])\n    =&gt; 4 5 6\n"
full_name: Matrix::row_vector
is_singleton: true
name: row_vector
params: (row)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> is this is a square matrix. See note in column_size about this being unreliable, though.
full_name: Matrix#square?
is_singleton: false
name: square?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a hash-code for the matrix.
full_name: Matrix#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #trace"
full_name: Matrix#tr
is_singleton: false
name: tr
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the rank of the matrix. Beware that using Float values, with their usual lack of precision, can affect the value returned by this method. Use Rational values instead if this is important to you.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[7,6], [3,9]].rank\n    =&gt; 2\n"
full_name: Matrix#rank
is_singleton: false
name: rank
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matrix exponentiation. Defined for integer powers only. Equivalent to multiplying the matrix by itself N times.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[7,6], [3,9]] ** 2\n    =&gt; 67 96\n       48 99\n"
full_name: Matrix#**
is_singleton: false
name: "**"
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> if this is a regular matrix.
full_name: Matrix#regular?
is_singleton: false
name: regular?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a matrix where the diagonal elements are composed of <tt>values</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.diagonal(9, 5, -3)\n    =&gt;  9  0  0\n        0  5  0\n        0  0 -3\n"
full_name: Matrix::diagonal
is_singleton: true
name: diagonal
params: (*values)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: This method is used by the other methods that create matrices, and is of no use to general users.
full_name: Matrix::new
is_singleton: true
name: new
params: (init_method, *argv)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a matrix where each argument is a row.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[ [25, 93], [-1, 66] ]\n     =&gt;  25 93\n         -1 66\n"
full_name: Matrix::[]
is_singleton: true
name: "[]"
params: (*rows)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the row vectors of the matrix. See Vector.
full_name: Matrix#row_vectors
is_singleton: false
name: row_vectors
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns row vector number <tt>i</tt> of the matrix as a Vector (starting at 0 like an array). When a block is given, the elements of that vector are iterated.
full_name: Matrix#row
is_singleton: false
name: row
params: (i) {|e| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns column vector number <tt>j</tt> of the matrix as a Vector (starting at 0 like an array). When a block is given, the elements of that vector are iterated.
full_name: Matrix#column
is_singleton: false
name: column
params: (j) {|e| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Private CLASS
constants: []

full_name: Matrix::Scalar
includes: []

instance_methods: []

name: Scalar
superclass: Numeric
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: inv
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the inverse of the matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[1, 2], [2, 1]].inverse\n    =&gt; -1  1\n        0 -1\n"
full_name: Matrix#inverse
is_singleton: false
name: inverse
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overrides Object#to_s
full_name: Matrix#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME: describe #coerce."
full_name: Matrix#coerce
is_singleton: false
name: coerce
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #collect"
full_name: Matrix#map
is_singleton: false
name: map
params: (
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: map
block_params: e
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a matrix that is the result of iteration of the given block over all elements of the matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[ [1,2], [3,4] ].collect { |i| i**2 }\n    =&gt; 1  4\n       9 16\n"
full_name: Matrix#collect
is_singleton: false
name: collect
params: ( {|e| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #inverse"
full_name: Matrix#inv
is_singleton: false
name: inv
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #determinant"
full_name: Matrix#det
is_singleton: false
name: det
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matrix division (multiplication by the inverse).
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[7,6], [3,9]] / Matrix[[2,9], [3,1]]\n    =&gt; -7  1\n       -3 -6\n"
full_name: Matrix#/
is_singleton: false
name: /
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matrix addition.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.scalar(2,5) + Matrix[[1,0], [-4,7]]\n    =&gt;  6  0\n       -4 12\n"
full_name: Matrix#+
is_singleton: false
name: +
params: (m)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: det
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the determinant of the matrix. If the matrix is not square, the result is 0.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[7,6], [3,9]].determinant\n    =&gt; 63\n"
full_name: Matrix#determinant
is_singleton: false
name: determinant
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Matrix subtraction.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[1,5], [4,2]] - Matrix[[9,3], [-4,1]]\n    =&gt; -8  2\n        8  1\n"
full_name: Matrix#-
is_singleton: false
name: "-"
params: (m)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: tr
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the trace (sum of diagonal elements) of the matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[7,6], [3,9]].trace\n    =&gt; 16\n"
full_name: Matrix#trace
is_singleton: false
name: trace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: t
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the transpose of the matrix.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix[[1,2], [3,4], [5,6]]\n    =&gt; 1 2\n       3 4\n       5 6\n  Matrix[[1,2], [3,4], [5,6]].transpose\n    =&gt; 1 3 5\n       2 4 6\n"
full_name: Matrix#transpose
is_singleton: false
name: transpose
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #transpose"
full_name: Matrix#t
is_singleton: false
name: t
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of columns. Note that it is possible to construct a matrix with uneven columns (e.g. Matrix[ [1,2,3], [4,5] ]), but this is mathematically unsound. This method uses the first row to determine the result.
full_name: Matrix#column_size
is_singleton: false
name: column_size
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: column_vector
- !ruby/object:RI::MethodSummary 
  name: columns
- !ruby/object:RI::MethodSummary 
  name: diagonal
- !ruby/object:RI::MethodSummary 
  name: identity
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: row_vector
- !ruby/object:RI::MethodSummary 
  name: rows
- !ruby/object:RI::MethodSummary 
  name: scalar
- !ruby/object:RI::MethodSummary 
  name: zero
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Matrix</tt> class represents a mathematical matrix, and provides methods for creating special-case matrices (zero, identity, diagonal, singular, vector), operating on them arithmetically and algebraically, and determining their mathematical properties (trace, rank, inverse, determinant).
- !ruby/struct:SM::Flow::P 
  body: Note that although matrices should theoretically be rectangular, this is not enforced by the class.
- !ruby/struct:SM::Flow::P 
  body: Also note that the determinant of integer matrices may be incorrectly calculated unless you also <tt>require 'mathn'</tt>. This may be fixed in the future.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Catalogue
- !ruby/struct:SM::Flow::P 
  body: "To create a matrix:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix[*rows] </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.[](*rows) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.rows(rows, copy = true) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.columns(columns) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.diagonal(*values) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.scalar(n, value) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.scalar(n, value) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.identity(n) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.unit(n) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.I(n) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.zero(n) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.row_vector(row) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Matrix.column_vector(column) </tt>
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "To access Matrix elements/columns/rows/submatrices/properties:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> [](i, j) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #row_size </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #column_size </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #row(i) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #column(j) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #collect </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #map </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #minor(*param) </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Properties of a matrix:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #regular? </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #singular? </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #square? </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Matrix arithmetic:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> *(m) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> +(m) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> -(m) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #/(m) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #inverse </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #inv </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> ** </tt>
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Matrix functions:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #determinant </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #det </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #rank </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #trace </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #tr </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #transpose </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #t </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Conversion to other data types:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #coerce(other) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #row_vectors </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #column_vectors </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #to_a </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "String representations:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #to_s </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #inspect </tt>"
  type: :BULLET
constants: []

full_name: Matrix
includes: 
- !ruby/object:RI::IncludedModule 
  name: ExceptionForMatrix
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: column
- !ruby/object:RI::MethodSummary 
  name: column_size
- !ruby/object:RI::MethodSummary 
  name: column_vectors
- !ruby/object:RI::MethodSummary 
  name: compare_by_row_vectors
- !ruby/object:RI::MethodSummary 
  name: det
- !ruby/object:RI::MethodSummary 
  name: determinant
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: init_rows
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: inv
- !ruby/object:RI::MethodSummary 
  name: inverse
- !ruby/object:RI::MethodSummary 
  name: inverse_from
- !ruby/object:RI::MethodSummary 
  name: map
- !ruby/object:RI::MethodSummary 
  name: minor
- !ruby/object:RI::MethodSummary 
  name: rank
- !ruby/object:RI::MethodSummary 
  name: regular?
- !ruby/object:RI::MethodSummary 
  name: row
- !ruby/object:RI::MethodSummary 
  name: row_size
- !ruby/object:RI::MethodSummary 
  name: row_vectors
- !ruby/object:RI::MethodSummary 
  name: singular?
- !ruby/object:RI::MethodSummary 
  name: square?
- !ruby/object:RI::MethodSummary 
  name: t
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: tr
- !ruby/object:RI::MethodSummary 
  name: trace
- !ruby/object:RI::MethodSummary 
  name: transpose
name: Matrix
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Matrix#init_rows
is_singleton: false
name: init_rows
params: (rows, copy)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Not really intended for general consumption.
full_name: Matrix#compare_by_row_vectors
is_singleton: false
name: compare_by_row_vectors
params: (rows)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a matrix where <tt>rows</tt> is an array of arrays, each of which is a row to the matrix. If the optional argument <tt>copy</tt> is false, use the given arrays as the internal structure of the matrix without copying.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.rows([[25, 93], [-1, 66]])\n     =&gt;  25 93\n         -1 66\n"
full_name: Matrix::rows
is_singleton: true
name: rows
params: (rows, copy = true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns an array of the column vectors of the matrix. See Vector.
full_name: Matrix#column_vectors
is_singleton: false
name: column_vectors
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates an <tt>n</tt> by <tt>n</tt> diagonal matrix where each diagonal element is <tt>value</tt>.
- !ruby/struct:SM::Flow::VERB 
  body: "  Matrix.scalar(2, 5)\n    =&gt; 5 0\n       0 5\n"
full_name: Matrix::scalar
is_singleton: true
name: scalar
params: (n, value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: UDPSocket#send
is_singleton: false
name: send
params: (mesg, flags, *rest)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: UDPSocket#bind
is_singleton: false
name: bind
params: (host, port)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Class <tt>Socket</tt> provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes but at the expense of greater complexity. In particular, the class handles addresses using +struct sockaddr+ structures packed into Ruby strings, which can be a joy to manipulate.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exception Handling
- !ruby/struct:SM::Flow::P 
  body: Ruby's implementation of <tt>Socket</tt> causes an exception to be raised based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on particular exception is needed please refer to the Unix manual pages or the Windows WinSock reference.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Documentation by
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Zach Dennis
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Sam Roberts
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <em>Programming Ruby</em> from The Pragmatic Bookshelf.
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Much material in this documentation is taken with permission from <em>Programming Ruby</em> from The Pragmatic Bookshelf.
constants: []

full_name: UDPSocket
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bind
- !ruby/object:RI::MethodSummary 
  name: connect
- !ruby/object:RI::MethodSummary 
  name: recvfrom_nonblock
- !ruby/object:RI::MethodSummary 
  name: send
name: UDPSocket
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: UDPSocket#connect
is_singleton: false
name: connect
params: (host, port)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Receives up to <em>maxlen</em> bytes from <tt>udpsocket</tt> using recvfrom(2) after O_NONBLOCK is set for the underlying file descriptor. <em>flags</em> is zero or more of the <tt>MSG_</tt> options. The first element of the results, <em>mesg</em>, is the data received. The second element, <em>sender_inet_addr</em>, is an array to represent the sender address.
- !ruby/struct:SM::Flow::P 
  body: When recvfrom(2) returns 0, Socket#recvfrom_nonblock returns an empty string as data. It means an empty packet.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>maxlen</tt> - the number of bytes to receive from the socket
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt>flags</tt> - zero or more of the <tt>MSG_</tt> options
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "     require 'socket'\n     s1 = UDPSocket.new\n     s1.bind(&quot;127.0.0.1&quot;, 0)\n     s2 = UDPSocket.new\n     s2.bind(&quot;127.0.0.1&quot;, 0)\n     s2.connect(*s1.addr.values_at(3,1))\n     s1.connect(*s2.addr.values_at(3,1))\n     s1.send &quot;aaa&quot;, 0\n     IO.select([s2])\n     p s2.recvfrom_nonblock(10)  #=&gt; [&quot;aaa&quot;, [&quot;AF_INET&quot;, 33302, &quot;localhost.localdomain&quot;, &quot;127.0.0.1&quot;]]\n"
- !ruby/struct:SM::Flow::P 
  body: Refer to Socket#recvfrom for the exceptions that may be thrown if the call to <em>recvfrom_nonblock</em> fails.
- !ruby/struct:SM::Flow::P 
  body: UDPSocket#recvfrom_nonblock may raise any error corresponding to recvfrom(2) failure, including Errno::EAGAIN.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: See
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Socket#recvfrom
  type: :BULLET
full_name: UDPSocket#recvfrom_nonblock
is_singleton: false
name: recvfrom_nonblock
params: |
  udpsocket.recvfrom_nonblock(maxlen) => [mesg, sender_inet_addr]
  udpsocket.recvfrom_nonblock(maxlen, flags) => [mesg, sender_inet_addr]

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Removes all finalizers for <em>obj</em>.
full_name: ObjectSpace::undefine_finalizer
is_singleton: true
name: undefine_finalizer
params: |
  ObjectSpace.undefine_finalizer(obj)

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Calls the block once for each living, nonimmediate object in this Ruby process. If <em>module</em> is specified, calls the block for only those classes or modules that match (or are a subclass of) <em>module</em>. Returns the number of objects found. Immediate objects (<tt>Fixnum</tt>s, <tt>Symbol</tt>s <tt>true</tt>, <tt>false</tt>, and <tt>nil</tt>) are never returned. In the example below, <tt>each_object</tt> returns both the numbers we defined and several constants defined in the <tt>Math</tt> module.
- !ruby/struct:SM::Flow::VERB 
  body: "   a = 102.7\n   b = 95       # Won't be returned\n   c = 12345678987654321\n   count = ObjectSpace.each_object(Numeric) {|x| p x }\n   puts &quot;Total count: #{count}&quot;\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   12345678987654321\n   102.7\n   2.71828182845905\n   3.14159265358979\n   2.22044604925031e-16\n   1.7976931348623157e+308\n   2.2250738585072e-308\n   Total count: 7\n"
full_name: ObjectSpace::each_object
is_singleton: true
name: each_object
params: |
  ObjectSpace.each_object([module]) {|obj| ... } => fixnum

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: deprecated
full_name: ObjectSpace::finalizers
is_singleton: true
name: finalizers
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Converts an object id to a reference to the object. May not be called on an object id passed as a parameter to a finalizer.
- !ruby/struct:SM::Flow::VERB 
  body: "   s = &quot;I am a string&quot;                    #=&gt; &quot;I am a string&quot;\n   r = ObjectSpace._id2ref(s.object_id)   #=&gt; &quot;I am a string&quot;\n   r == s                                 #=&gt; true\n"
full_name: ObjectSpace::_id2ref
is_singleton: true
name: _id2ref
params: |
  ObjectSpace._id2ref(object_id) -> an_object

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: deprecated
full_name: ObjectSpace::call_finalizer
is_singleton: true
name: call_finalizer
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: deprecated
full_name: ObjectSpace::remove_finalizer
is_singleton: true
name: remove_finalizer
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Initiates garbage collection, unless manually disabled.
full_name: ObjectSpace::garbage_collect
is_singleton: true
name: garbage_collect
params: |
  GC.start                     => nil
  gc.garbage_collect           => nil
  ObjectSpace.garbage_collect  => nil

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: _id2ref
- !ruby/object:RI::MethodSummary 
  name: add_finalizer
- !ruby/object:RI::MethodSummary 
  name: call_finalizer
- !ruby/object:RI::MethodSummary 
  name: define_finalizer
- !ruby/object:RI::MethodSummary 
  name: each_object
- !ruby/object:RI::MethodSummary 
  name: finalizers
- !ruby/object:RI::MethodSummary 
  name: garbage_collect
- !ruby/object:RI::MethodSummary 
  name: remove_finalizer
- !ruby/object:RI::MethodSummary 
  name: undefine_finalizer
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>ObjectSpace</tt> module contains a number of routines that interact with the garbage collection facility and allow you to traverse all living objects with an iterator.
- !ruby/struct:SM::Flow::P 
  body: <tt>ObjectSpace</tt> also provides support for object finalizers, procs that will be called when a specific object is about to be destroyed by garbage collection.
- !ruby/struct:SM::Flow::VERB 
  body: "   include ObjectSpace\n\n   a = &quot;A&quot;\n   b = &quot;B&quot;\n   c = &quot;C&quot;\n\n   define_finalizer(a, proc {|id| puts &quot;Finalizer one on #{id}&quot; })\n   define_finalizer(a, proc {|id| puts &quot;Finalizer two on #{id}&quot; })\n   define_finalizer(b, proc {|id| puts &quot;Finalizer three on #{id}&quot; })\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Finalizer three on 537763470\n   Finalizer one on 537763480\n   Finalizer two on 537763480\n"
constants: []

full_name: ObjectSpace
includes: []

instance_methods: []

name: ObjectSpace
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds <em>aProc</em> as a finalizer, to be called after <em>obj</em> was destroyed.
full_name: ObjectSpace::define_finalizer
is_singleton: true
name: define_finalizer
params: |
  ObjectSpace.define_finalizer(obj, aProc=proc())

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: deprecated
full_name: ObjectSpace::add_finalizer
is_singleton: true
name: add_finalizer
params: (p1)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Attribute::new
is_singleton: true
name: new
params: (name, rw, comment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: rw
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::Attribute
includes: []

instance_methods: []

name: Attribute
superclass: NamedThing
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::NamedThing#eql?
is_singleton: false
name: eql?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::NamedThing#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::NamedThing#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::NamedThing::new
is_singleton: true
name: new
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::NamedThing
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
name: NamedThing
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::RULE 
  width: 2
full_name: RI::RiReader#find_classes_in
is_singleton: false
name: find_classes_in
params: (res, klass)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a class description
full_name: RI::RiReader#get_class
is_singleton: false
name: get_class
params: (class_entry)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader#lookup_namespace_in
is_singleton: false
name: lookup_namespace_in
params: (target, namespaces)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::RiReader
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: all_names
- !ruby/object:RI::MethodSummary 
  name: find_class_by_name
- !ruby/object:RI::MethodSummary 
  name: find_classes_in
- !ruby/object:RI::MethodSummary 
  name: find_methods
- !ruby/object:RI::MethodSummary 
  name: find_names_in
- !ruby/object:RI::MethodSummary 
  name: full_class_names
- !ruby/object:RI::MethodSummary 
  name: get_class
- !ruby/object:RI::MethodSummary 
  name: get_method
- !ruby/object:RI::MethodSummary 
  name: lookup_namespace_in
- !ruby/object:RI::MethodSummary 
  name: top_level_namespace
name: RiReader
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader#top_level_namespace
is_singleton: false
name: top_level_namespace
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader#find_methods
is_singleton: false
name: find_methods
params: (name, is_class_method, namespaces)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the MethodDescription for a given MethodEntry by deserializing the YAML
full_name: RI::RiReader#get_method
is_singleton: false
name: get_method
params: (method_entry)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the names of all classes and modules
full_name: RI::RiReader#full_class_names
is_singleton: false
name: full_class_names
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader::new
is_singleton: true
name: new
params: (ri_cache)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return a list of all classes, modules, and methods
full_name: RI::RiReader#all_names
is_singleton: false
name: all_names
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader#find_class_by_name
is_singleton: false
name: find_class_by_name
params: (full_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiReader#find_names_in
is_singleton: false
name: find_names_in
params: (res, klass)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Encapsulate all the strangeness to do with finding out where to find RDoc files
- !ruby/struct:SM::Flow::P 
  body: "We basically deal with three directories:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "1."
    body: The 'system' documentation directory, which holds the documentation distributed with Ruby, and which is managed by the Ruby install process
  - !ruby/struct:SM::Flow::LI 
    label: "2."
    body: The 'site' directory, which contains site-wide documentation added locally.
  - !ruby/struct:SM::Flow::LI 
    label: "3."
    body: The 'user' documentation directory, stored under the user's own home directory.
  type: :NUMBER
- !ruby/struct:SM::Flow::P 
  body: "There's contention about all this, but for now:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "system:"
    body: $datadir/ri/&lt;ver&gt;/system/...
  - !ruby/struct:SM::Flow::LI 
    label: "site:"
    body: $datadir/ri/&lt;ver&gt;/site/...
  - !ruby/struct:SM::Flow::LI 
    label: "user:"
    body: ~/.rdoc
  type: :NOTE
constants: []

full_name: RI::Paths
includes: []

instance_methods: []

name: Paths
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::MethodSummary
includes: []

instance_methods: []

name: MethodSummary
superclass: NamedThing
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::MethodSummary::new
is_singleton: true
name: new
params: (name="")
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: toplevel
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: We represent everything know about all 'ri' files accessible to this program
constants: []

full_name: RI::RiCache
includes: []

instance_methods: []

name: RiCache
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiCache::new
is_singleton: true
name: new
params: (dirs)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AnsiFormatter#update_attributes
is_singleton: false
name: update_attributes
params: (attr)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AnsiFormatter::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This formatter uses ANSI escape sequences to colorize stuff works with pages such as man and less.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: HEADINGS
  value: "{       1 => [ \"\\033[1;32m\", \"\\033[m\" ] ,       2 => [\"\\033[4;32m\", \"\\033[m\" ],       3 => [\"\\033[32m\", \"\\033[m\" ]"
- !ruby/object:RI::Constant 
  comment: 
  name: ATTR_MAP
  value: "{       BOLD   => \"1\",       ITALIC => \"33\",       CODE   => \"36\""
full_name: RI::AnsiFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bold_print
- !ruby/object:RI::MethodSummary 
  name: display_heading
- !ruby/object:RI::MethodSummary 
  name: update_attributes
- !ruby/object:RI::MethodSummary 
  name: write_attribute_text
name: AnsiFormatter
superclass: AttributeFormatter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AnsiFormatter#write_attribute_text
is_singleton: false
name: write_attribute_text
params: (prefix, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AnsiFormatter#display_heading
is_singleton: false
name: display_heading
params: (text, level, indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AnsiFormatter#bold_print
is_singleton: false
name: bold_print
params: (txt)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A TopLevelEntry is like a class entry, but when asked to search for methods searches all classes, not just itself
constants: []

full_name: RI::TopLevelEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: methods_matching
- !ruby/object:RI::MethodSummary 
  name: module_named
name: TopLevelEntry
superclass: ClassEntry
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TopLevelEntry#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TopLevelEntry#methods_matching
is_singleton: false
name: methods_matching
params: (name, is_class_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TopLevelEntry#module_named
is_singleton: false
name: module_named
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ClassDescription#display_name
is_singleton: false
name: display_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ClassDescription#superclass_string
is_singleton: false
name: superclass_string
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: superclass
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RI::ClassDescription
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: display_name
- !ruby/object:RI::MethodSummary 
  name: superclass_string
name: ClassDescription
superclass: ModuleDescription
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#update_attributes
is_singleton: false
name: update_attributes
params: (current, wanted)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#escape
is_singleton: false
name: escape
params: (str)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: RI::HtmlFormatter#tag
is_singleton: false
name: tag
params: (code) {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#display_verbatim_flow_item
is_singleton: false
name: display_verbatim_flow_item
params: (item, prefix=@indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter::new
is_singleton: true
name: new
params: (*args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#write_attribute_text
is_singleton: false
name: write_attribute_text
params: (prefix, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#display_heading
is_singleton: false
name: display_heading
params: (text, level, indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#blankline
is_singleton: false
name: blankline
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#draw_line
is_singleton: false
name: draw_line
params: (label=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::HtmlFormatter#display_list
is_singleton: false
name: display_list
params: (list)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This formatter uses HTML.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ATTR_MAP
  value: "{       BOLD   => \"b>\",       ITALIC => \"i>\",       CODE   => \"tt>\""
full_name: RI::HtmlFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: blankline
- !ruby/object:RI::MethodSummary 
  name: bold_print
- !ruby/object:RI::MethodSummary 
  name: break_to_newline
- !ruby/object:RI::MethodSummary 
  name: display_heading
- !ruby/object:RI::MethodSummary 
  name: display_list
- !ruby/object:RI::MethodSummary 
  name: display_verbatim_flow_item
- !ruby/object:RI::MethodSummary 
  name: draw_line
- !ruby/object:RI::MethodSummary 
  name: escape
- !ruby/object:RI::MethodSummary 
  name: tag
- !ruby/object:RI::MethodSummary 
  name: update_attributes
- !ruby/object:RI::MethodSummary 
  name: write_attribute_text
name: HtmlFormatter
superclass: AttributeFormatter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#break_to_newline
is_singleton: false
name: break_to_newline
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::HtmlFormatter#bold_print
is_singleton: false
name: bold_print
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Constant::new
is_singleton: true
name: new
params: (name, value, comment)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: value
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::Constant
includes: []

instance_methods: []

name: Constant
superclass: NamedThing
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This formatter generates overstrike-style formatting, which works with pagers such as man and less.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: BS
  value: "\"\\C-h\""
full_name: RI::OverstrikeFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: bold_print
- !ruby/object:RI::MethodSummary 
  name: write_attribute_text
name: OverstrikeFormatter
superclass: AttributeFormatter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::OverstrikeFormatter#write_attribute_text
is_singleton: false
name: write_attribute_text
params: (prefix, line)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: draw a string in bold
full_name: RI::OverstrikeFormatter#bold_print
is_singleton: false
name: bold_print
params: (text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Options::OptionList::options
is_singleton: true
name: options
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show an error and exit
full_name: RI::Options::OptionList::error
is_singleton: true
name: error
params: (msg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Options::OptionList::strip_output
is_singleton: true
name: strip_output
params: (text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: error
- !ruby/object:RI::MethodSummary 
  name: options
- !ruby/object:RI::MethodSummary 
  name: strip_output
- !ruby/object:RI::MethodSummary 
  name: usage
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: OPTION_LIST
  value: "[         [ \"--help\",          \"-h\",   nil,           \"you're looking at it\" ],          [ \"--classes\",      \"-c\",   nil,           \"Display the names of classes and modules we\\n\" +           \"know about\"],          [ \"--doc-dir\",      \"-d\",   \"<dirname>\",           \"A directory to search for documentation. If not\\n\" +           \"specified, we search the standard rdoc/ri directories.\\n\" +           \"May be repeated.\"],          [ \"--system\",       nil,    nil,           \"Include documentation from Ruby's standard library:\\n  \" +           RI::Paths::SYSDIR ],          [ \"--site\",         nil,    nil,           \"Include documentation from libraries installed in site_lib:\\n  \" +           RI::Paths::SITEDIR ],          [ \"--home\",         nil,    nil,           \"Include documentation stored in ~/.rdoc:\\n  \" +           (RI::Paths::HOMEDIR || \"No ~/.rdoc found\") ],          [ \"--gems\",         nil,    nil,           \"Include documentation from RubyGems:\\n\" +           (RI::Paths::GEMDIRS ?            Gem.path.map { |dir| \"  #{dir}/doc/*/ri\" }.join(\"\\n\") :            \"No Rubygems ri found.\") ],          [ \"--format\",       \"-f\",   \"<name>\",           \"Format to use when displaying output:\\n\" +           \"   \" + RI::TextFormatter.list + \"\\n\" +           \"Use 'bs' (backspace) with most pager programs.\\n\" +           \"To use ANSI, either also use the -T option, or\\n\" +           \"tell your pager to allow control characters\\n\" +           \"(for example using the -R option to less)\"],          [ \"--list-names\",    \"-l\",   nil,           \"List all the names known to RDoc, one per line\""
full_name: RI::Options::OptionList
includes: []

instance_methods: []

name: OptionList
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show usage and exit
full_name: RI::Options::OptionList::usage
is_singleton: true
name: usage
params: (short_form=false)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return an instance of the displayer (the thing that actually writes the information). This allows us to load in new displayer classes at runtime (for example to help with IDE integration)
full_name: RI::Options#displayer
is_singleton: false
name: displayer
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the selected documentation directories.
full_name: RI::Options#path
is_singleton: false
name: path
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the directory we search for original documentation
  name: doc_dir
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: the formatting we apply to the output
  name: formatter
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should we just display a class list and exit
  name: list_classes
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: should we display a list of all names
  name: list_names
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: No not use a pager. Writable, because ri sets it if it can't find a pager
  name: use_stdout
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The width of the output line
  name: width
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::Options
includes: 
- !ruby/object:RI::IncludedModule 
  name: Singleton
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: displayer
- !ruby/object:RI::MethodSummary 
  name: parse
- !ruby/object:RI::MethodSummary 
  name: path
- !ruby/object:RI::MethodSummary 
  name: raw_path
- !ruby/object:RI::MethodSummary 
  name: show_version
name: Options
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Options::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse command line options.
full_name: RI::Options#parse
is_singleton: false
name: parse
params: (args)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Show the version and exit
full_name: RI::Options#show_version
is_singleton: false
name: show_version
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Options#raw_path
is_singleton: false
name: raw_path
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#display_flow_item
is_singleton: false
name: display_flow_item
params: (item, prefix=@indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#raw_print_line
is_singleton: false
name: raw_print_line
params: (txt)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: indent
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: for
- !ruby/object:RI::MethodSummary 
  name: list
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finally, fill in the list of known formatters
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: FORMATTERS
  value: "{       \"ansi\"   => AnsiFormatter,       \"bs\"     => OverstrikeFormatter,       \"html\"   => HtmlFormatter,       \"plain\"  => TextFormatter,       \"simple\" => SimpleFormatter,     }"
full_name: RI::TextFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: blankline
- !ruby/object:RI::MethodSummary 
  name: bold_print
- !ruby/object:RI::MethodSummary 
  name: break_to_newline
- !ruby/object:RI::MethodSummary 
  name: conv_html
- !ruby/object:RI::MethodSummary 
  name: conv_markup
- !ruby/object:RI::MethodSummary 
  name: display_flow
- !ruby/object:RI::MethodSummary 
  name: display_flow_item
- !ruby/object:RI::MethodSummary 
  name: display_heading
- !ruby/object:RI::MethodSummary 
  name: display_list
- !ruby/object:RI::MethodSummary 
  name: display_verbatim_flow_item
- !ruby/object:RI::MethodSummary 
  name: draw_line
- !ruby/object:RI::MethodSummary 
  name: raw_print_line
- !ruby/object:RI::MethodSummary 
  name: strip_attributes
- !ruby/object:RI::MethodSummary 
  name: wrap
name: TextFormatter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#display_verbatim_flow_item
is_singleton: false
name: display_verbatim_flow_item
params: (item, prefix=@indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TextFormatter::list
is_singleton: true
name: list
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TextFormatter::new
is_singleton: true
name: new
params: (options, indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TextFormatter#strip_attributes
is_singleton: false
name: strip_attributes
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#wrap
is_singleton: false
name: wrap
params: (txt, prefix=@indent, linelen=@width)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: convert HTML entities back to ASCII
full_name: RI::TextFormatter#conv_html
is_singleton: false
name: conv_html
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#display_heading
is_singleton: false
name: display_heading
params: (text, level, indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#blankline
is_singleton: false
name: blankline
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#draw_line
is_singleton: false
name: draw_line
params: (label=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TextFormatter#display_flow
is_singleton: false
name: display_flow
params: (flow)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#display_list
is_singleton: false
name: display_list
params: (list)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::TextFormatter::for
is_singleton: true
name: for
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: convert markup into display form
full_name: RI::TextFormatter#conv_markup
is_singleton: false
name: conv_markup
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: called when we want to ensure a nbew 'wrap' starts on a newline Only needed for HtmlFormatter, because the rest do their own line breaking
full_name: RI::TextFormatter#break_to_newline
is_singleton: false
name: break_to_newline
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: []

full_name: RI::TextFormatter#bold_print
is_singleton: false
name: bold_print
params: (txt)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a list of all out method names
full_name: RI::ClassEntry#all_method_names
is_singleton: false
name: all_method_names
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: read in our methods and any classes and modules in our namespace. Methods are stored in files called name-c|i.yaml, where the 'name' portion is the external form of the method name and the c|i is a class|instance flag
full_name: RI::ClassEntry#load_from
is_singleton: false
name: load_from
params: (dir)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Find methods matching 'name' in ourselves and in any classes we contain
full_name: RI::ClassEntry#recursively_find_methods_matching
is_singleton: false
name: recursively_find_methods_matching
params: (name, is_class_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a list of all our methods matching a given string. Is <tt>is_class_methods</tt> if 'nil', we don't care if the method is a class method or not, otherwise we only return those methods that match
full_name: RI::ClassEntry#local_methods_matching
is_singleton: false
name: local_methods_matching
params: (name, is_class_method)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return our full name
full_name: RI::ClassEntry#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return an exact match to a particular name
full_name: RI::ClassEntry#contained_class_named
is_singleton: false
name: contained_class_named
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: path_names
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::ClassEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_path
- !ruby/object:RI::MethodSummary 
  name: all_method_names
- !ruby/object:RI::MethodSummary 
  name: classes_and_modules
- !ruby/object:RI::MethodSummary 
  name: contained_class_named
- !ruby/object:RI::MethodSummary 
  name: contained_modules_matching
- !ruby/object:RI::MethodSummary 
  name: full_name
- !ruby/object:RI::MethodSummary 
  name: load_from
- !ruby/object:RI::MethodSummary 
  name: local_methods_matching
- !ruby/object:RI::MethodSummary 
  name: methods_matching
- !ruby/object:RI::MethodSummary 
  name: recursively_find_methods_matching
name: ClassEntry
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ClassEntry::new
is_singleton: true
name: new
params: (path_name, name, in_class)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: return the list of local methods matching name We're split into two because we need distinct behavior when called from the <em>toplevel</em>
full_name: RI::ClassEntry#methods_matching
is_singleton: false
name: methods_matching
params: (name, is_class_method)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ClassEntry#classes_and_modules
is_singleton: false
name: classes_and_modules
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a list of any classes or modules that we contain that match a given string
full_name: RI::ClassEntry#contained_modules_matching
is_singleton: false
name: contained_modules_matching
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: We found this class in more tha one place, so add in the name from there.
full_name: RI::ClassEntry#add_path
is_singleton: false
name: add_path
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ModuleDescription#display_name
is_singleton: false
name: display_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::ModuleDescription#merge
is_singleton: false
name: merge
params: (into, from)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: the 'ClassDescription' subclass overrides this to format up the name of a parent
full_name: RI::ModuleDescription#superclass_string
is_singleton: false
name: superclass_string
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: merge in another class desscription into this one
full_name: RI::ModuleDescription#merge_in
is_singleton: false
name: merge_in
params: (old)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attributes
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: class_methods
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: constants
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: includes
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: instance_methods
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RI::ModuleDescription
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: display_name
- !ruby/object:RI::MethodSummary 
  name: merge
- !ruby/object:RI::MethodSummary 
  name: merge_in
- !ruby/object:RI::MethodSummary 
  name: superclass_string
name: ModuleDescription
superclass: Description
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: RI::IncludedModule
includes: []

instance_methods: []

name: IncludedModule
superclass: NamedThing
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: overridden in specific formatters
full_name: RI::AttributeFormatter#write_attribute_text
is_singleton: false
name: write_attribute_text
params: (prefix, line)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: overrides base class. Looks for <tt>...</tt> etc sequences and generates an array of AttrChars. This array is then used as the basis for the split
full_name: RI::AttributeFormatter#wrap
is_singleton: false
name: wrap
params: (txt, prefix=@indent, linelen=@width)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: "Handle text with attributes. We're a base class: there are different presentation classes (one, for example, uses overstrikes to handle bold and underlining, while another using ANSI escape sequences"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: BOLD
  value: "1"
- !ruby/object:RI::Constant 
  comment: 
  name: ITALIC
  value: "2"
- !ruby/object:RI::Constant 
  comment: 
  name: CODE
  value: "4"
- !ruby/object:RI::Constant 
  comment: 
  name: ATTR_MAP
  value: "{       \"b\"    => BOLD,       \"code\" => CODE,       \"em\"   => ITALIC,       \"i\"    => ITALIC,       \"tt\"   => CODE"
full_name: RI::AttributeFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_attributes_to
- !ruby/object:RI::MethodSummary 
  name: bold_print
- !ruby/object:RI::MethodSummary 
  name: wrap
- !ruby/object:RI::MethodSummary 
  name: write_attribute_text
name: AttributeFormatter
superclass: TextFormatter
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: attr
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: char
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "TODO: struct?"
constants: []

full_name: RI::AttributeFormatter::AttrChar
includes: []

instance_methods: []

name: AttrChar
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AttributeFormatter::AttrChar::new
is_singleton: true
name: new
params: (char, attr)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: txt
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::AttributeFormatter::AttributeString
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: next_word
name: AttributeString
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AttributeFormatter::AttributeString#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AttributeFormatter::AttributeString::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AttributeFormatter::AttributeString#<<
is_singleton: false
name: "<<"
params: (char)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: accept non space, then all following spaces
full_name: RI::AttributeFormatter::AttributeString#next_word
is_singleton: false
name: next_word
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::AttributeFormatter#add_attributes_to
is_singleton: false
name: add_attributes_to
params: (txt)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: again, overridden
full_name: RI::AttributeFormatter#bold_print
is_singleton: false
name: bold_print
params: (txt)
visibility: protected
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Description#<=>
is_singleton: false
name: <=>
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Description::deserialize
is_singleton: true
name: deserialize
params: (from)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::Description#serialize
is_singleton: false
name: serialize
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: comment
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: full_name
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: deserialize
comment: 
constants: []

full_name: RI::Description
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: serialize
name: Description
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: aliases
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: block_params
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: is_alias_for
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: is_class_method
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: is_singleton
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: params
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: visibility
  rw: RW
class_methods: []

comment: 
constants: []

full_name: RI::MethodDescription
includes: []

instance_methods: []

name: MethodDescription
superclass: Description
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::MethodEntry#full_name
is_singleton: false
name: full_name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::MethodEntry::new
is_singleton: true
name: new
params: (path_name, name, is_class_method, in_class)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: path_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::MethodEntry
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: full_name
name: MethodEntry
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Alias = Struct.new(:old_name, :new_name)
constants: []

full_name: RI::AliasName
includes: []

instance_methods: []

name: AliasName
superclass: NamedThing
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter#remove_class
is_singleton: false
name: remove_class
params: (class_desc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter::new
is_singleton: true
name: new
params: (base_dir)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter::class_desc_path
is_singleton: true
name: class_desc_path
params: (dir, class_desc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Convert a name from internal form (containing punctuation) to an external form (where punctuation is replaced by %xx)
full_name: RI::RiWriter::internal_to_external
is_singleton: true
name: internal_to_external
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter#add_method
is_singleton: false
name: add_method
params: (class_desc, method_desc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter#add_class
is_singleton: false
name: add_class
params: (class_desc)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: class_desc_path
- !ruby/object:RI::MethodSummary 
  name: external_to_internal
- !ruby/object:RI::MethodSummary 
  name: internal_to_external
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: RI::RiWriter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_class
- !ruby/object:RI::MethodSummary 
  name: add_method
- !ruby/object:RI::MethodSummary 
  name: path_to_dir
- !ruby/object:RI::MethodSummary 
  name: remove_class
name: RiWriter
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: And the reverse operation
full_name: RI::RiWriter::external_to_internal
is_singleton: true
name: external_to_internal
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: RI::RiWriter#path_to_dir
is_singleton: false
name: path_to_dir
params: (class_name)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: We handle the parsing of options, and subsequently as a singleton object to be queried for option values
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: VERSION_STRING
  value: "\"ri v1.0.1 - 20041108\""
full_name: RI
includes: []

instance_methods: []

name: RI
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: This formatter reduces extra lines for a simpler output. It improves way output looks for tools like IRC bots.
constants: []

full_name: RI::SimpleFormatter
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: blankline
- !ruby/object:RI::MethodSummary 
  name: display_heading
- !ruby/object:RI::MethodSummary 
  name: draw_line
name: SimpleFormatter
superclass: TextFormatter
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Place heading level indicators inline with heading.
full_name: RI::SimpleFormatter#display_heading
is_singleton: false
name: display_heading
params: (text, level, indent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: No extra blank lines
full_name: RI::SimpleFormatter#blankline
is_singleton: false
name: blankline
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Display labels only, no lines
full_name: RI::SimpleFormatter#draw_line
is_singleton: false
name: draw_line
params: (label=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: name.to_s
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all hostnames for <tt>address</tt>.
full_name: Resolv#each_name
is_singleton: false
name: each_name
params: (address) {|name.to_s| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Resolv::IPv4::create
is_singleton: true
name: create
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turns this IPv4 address into a Resolv::DNS::Name.
full_name: Resolv::IPv4#to_name
is_singleton: false
name: to_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The raw IPv4 address as a String.
  name: address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: create
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Resolv::DNS IPv4 address.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Regular expression IPv4 addresses must match.
  name: Regex256
  value: /0                |1(?:[0-9][0-9]?)?                |2(?:[0-4][0-9]?|5[0-5]?|[6-9])?                |[3-9][0-9]?/x
- !ruby/object:RI::Constant 
  comment: 
  name: Regex
  value: /\A(#{Regex256})\.(#{Regex256})\.(#{Regex256})\.(#{Regex256})\z/
full_name: Resolv::IPv4
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_name
name: IPv4
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all hostnames for <tt>address</tt>.
full_name: Resolv::each_name
is_singleton: true
name: each_name
params: (address, &proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: name
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all IP addresses for <tt>name</tt>.
full_name: Resolv#each_address
is_singleton: false
name: each_address
params: (name) {|name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Creates a new IPv6 address from <tt>arg</tt> which may be:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "IPv6:"
    body: returns <tt>arg</tt>.
  - !ruby/struct:SM::Flow::LI 
    label: "String:"
    body: <tt>arg</tt> must match one of the IPv6::Regex* constants
  type: :NOTE
full_name: Resolv::IPv6::create
is_singleton: true
name: create
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Turns this IPv6 address into a Resolv::DNS::Name.
full_name: Resolv::IPv6#to_name
is_singleton: false
name: to_name
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The raw IPv6 address as a String.
  name: address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: create
comment: 
- !ruby/struct:SM::Flow::P 
  body: A Resolv::DNS IPv6 address.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: IPv6 address format a:b:c:d:e:f:g:h
  name: Regex_8Hex
  value: /\A       (?:[0-9A-Fa-f]{1,4}:){7}          [0-9A-Fa-f]{1,4}       \z/x
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Compressed IPv6 address format a::b
  name: Regex_CompressedHex
  value: "/\\A       ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::       ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)       \\z/x"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: IPv4 mapped IPv6 address format a:b:c:d:e:f:w.x.y.z
  name: Regex_6Hex4Dec
  value: /\A       ((?:[0-9A-Fa-f]{1,4}:){6,6})       (\d+)\.(\d+)\.(\d+)\.(\d+)       \z/x
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Compressed IPv4 mapped IPv6 address format a::b:w.x.y.z
  name: Regex_CompressedHex4Dec
  value: "/\\A       ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::       ((?:[0-9A-Fa-f]{1,4}:)*)       (\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)       \\z/x"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A composite IPv6 address Regexp.
  name: Regex
  value: /       (?:#{Regex_8Hex}) |       (?:#{Regex_CompressedHex}) |       (?:#{Regex_6Hex4Dec}) |       (?:#{Regex_CompressedHex4Dec})/x
full_name: Resolv::IPv6
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: to_name
name: IPv6
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up the hostname of <tt>address</tt>.
full_name: Resolv::getname
is_singleton: true
name: getname
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up all IP address for <tt>name</tt>.
full_name: Resolv::getaddresses
is_singleton: true
name: getaddresses
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates a failure to resolve a name or address.
constants: []

full_name: Resolv::ResolvError
includes: []

instance_methods: []

name: ResolvError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Resolv using <tt>resolvers</tt>.
full_name: Resolv::new
is_singleton: true
name: new
params: (resolvers=[Hosts.new, DNS.new])
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates a timeout resolving a name or address.
constants: []

full_name: Resolv::ResolvTimeout
includes: []

instance_methods: []

name: ResolvTimeout
superclass: TimeoutError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up all hostnames for <tt>address</tt>.
full_name: Resolv#getnames
is_singleton: false
name: getnames
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: resource.name
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all hostnames for <tt>address</tt> retrieved from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved names will be Resolv::DNS::Name instances.
full_name: Resolv::DNS#each_name
is_singleton: false
name: each_name
params: (address) {|resource.name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Creates a new DNS name from <tt>arg</tt>. <tt>arg</tt> can be:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "Name:"
    body: returns <tt>arg</tt>.
  - !ruby/struct:SM::Flow::LI 
    label: "String:"
    body: Creates a new Name.
  type: :NOTE
full_name: Resolv::DNS::Name::create
is_singleton: true
name: create
params: (arg)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: True if this name is absolute.
full_name: Resolv::DNS::Name#absolute?
is_singleton: false
name: absolute?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: returns the domain name as a string.
- !ruby/struct:SM::Flow::P 
  body: The domain name doesn't have a trailing dot even if the name object is absolute.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p Resolv::DNS::Name.create(&quot;x.y.z.&quot;).to_s #=&gt; &quot;x.y.z&quot;\n  p Resolv::DNS::Name.create(&quot;x.y.z&quot;).to_s #=&gt; &quot;x.y.z&quot;\n"
full_name: Resolv::DNS::Name#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns true if <tt>other</tt> is a subdomain.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  domain = Resolv::DNS::Name.create(&quot;y.z&quot;)\n  p Resolv::DNS::Name.create(&quot;w.x.y.z&quot;).subdomain_of?(domain) #=&gt; true\n  p Resolv::DNS::Name.create(&quot;x.y.z&quot;).subdomain_of?(domain) #=&gt; true\n  p Resolv::DNS::Name.create(&quot;y.z&quot;).subdomain_of?(domain) #=&gt; false\n  p Resolv::DNS::Name.create(&quot;z&quot;).subdomain_of?(domain) #=&gt; false\n  p Resolv::DNS::Name.create(&quot;x.y.z.&quot;).subdomain_of?(domain) #=&gt; false\n  p Resolv::DNS::Name.create(&quot;w.z&quot;).subdomain_of?(domain) #=&gt; false\n"
full_name: Resolv::DNS::Name#subdomain_of?
is_singleton: false
name: subdomain_of?
params: (other)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: create
comment: 
- !ruby/struct:SM::Flow::P 
  body: A representation of a DNS name.
constants: []

full_name: Resolv::DNS::Name
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: absolute?
- !ruby/object:RI::MethodSummary 
  name: subdomain_of?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Name
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resolv::DNS is a DNS stub resolver.
- !ruby/struct:SM::Flow::P 
  body: "Information taken from the following places:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: STD0013
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: RFC 1035
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: etc.
  type: :BULLET
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Default DNS Port
  name: Port
  value: "53"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Default DNS UDP packet size
  name: UDPSize
  value: "512"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Group of DNS resolver threads (obsolete)
  name: DNSThreadGroup
  value: ThreadGroup.new
- !ruby/object:RI::Constant 
  comment: 
  name: RequestID
  value: "{}"
- !ruby/object:RI::Constant 
  comment: 
  name: RequestIDMutex
  value: Mutex.new
full_name: Resolv::DNS
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: each_address
- !ruby/object:RI::MethodSummary 
  name: each_name
- !ruby/object:RI::MethodSummary 
  name: each_resource
- !ruby/object:RI::MethodSummary 
  name: getaddress
- !ruby/object:RI::MethodSummary 
  name: getaddresses
- !ruby/object:RI::MethodSummary 
  name: getname
- !ruby/object:RI::MethodSummary 
  name: getnames
- !ruby/object:RI::MethodSummary 
  name: getresource
- !ruby/object:RI::MethodSummary 
  name: getresources
name: DNS
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::OpCode
includes: []

instance_methods: []

name: OpCode
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates that the DNS request was unable to be encoded.
constants: []

full_name: Resolv::DNS::EncodeError
includes: []

instance_methods: []

name: EncodeError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Look up the <tt>typeclass</tt> DNS resource of <tt>name</tt>.
- !ruby/struct:SM::Flow::P 
  body: <tt>name</tt> must be a Resolv::DNS::Name or a String.
- !ruby/struct:SM::Flow::P 
  body: "<tt>typeclass</tt> should be one of the following:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::A
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::AAAA
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::ANY
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::CNAME
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::HINFO
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::MINFO
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::MX
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::NS
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::PTR
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::SOA
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::TXT
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Resolv::DNS::Resource::IN::WKS
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: Returned resource is represented as a Resolv::DNS::Resource instance, i.e. Resolv::DNS::Resource::IN::A.
full_name: Resolv::DNS#getresource
is_singleton: false
name: getresource
params: (name, typeclass)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: resource.address
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all IP addresses for <tt>name</tt> retrieved from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>name</tt> can be a Resolv::DNS::Name or a String. Retrieved addresses will be a Resolv::IPv4 or Resolv::IPv6
full_name: Resolv::DNS#each_address
is_singleton: false
name: each_address
params: (name) {|resource.address| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Iterates over all <tt>typeclass</tt> DNS resources for <tt>name</tt>. See #getresource for argument details."
full_name: Resolv::DNS#each_resource
is_singleton: false
name: each_resource
params: (name, typeclass, &proc)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A DNS query abstract class.
constants: []

full_name: Resolv::DNS::Query
includes: []

instance_methods: []

name: Query
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: dns
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new DNS resolver. See Resolv::DNS.new for argument details.
- !ruby/struct:SM::Flow::P 
  body: Yields the created DNS resolver to the block, if given, otherwise returns it.
full_name: Resolv::DNS::open
is_singleton: true
name: open
params: (*args) {|dns| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: "<tt>config_info</tt> can be:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "nil:"
    body: Uses /etc/resolv.conf.
  - !ruby/struct:SM::Flow::LI 
    label: "String:"
    body: Path to a file using /etc/resolv.conf's format.
  - !ruby/struct:SM::Flow::LI 
    label: "Hash:"
    body: Must contain :nameserver, :search and :ndots keys.
  type: :NOTE
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Resolv::DNS.new(:nameserver =&gt; ['210.251.121.21'],\n                  :search =&gt; ['ruby-lang.org'],\n                  :ndots =&gt; 1)\n"
full_name: Resolv::DNS::new
is_singleton: true
name: new
params: (config_info=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets all hostnames for <tt>address</tt> from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved names will be Resolv::DNS::Name instances.
full_name: Resolv::DNS#getnames
is_singleton: false
name: getnames
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Closes the DNS resolver.
full_name: Resolv::DNS#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the IP address of <tt>name</tt> from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>name</tt> can be a Resolv::DNS::Name or a String. Retrieved address will be a Resolv::IPv4 or Resolv::IPv6
full_name: Resolv::DNS#getaddress
is_singleton: false
name: getaddress
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Looks up all <tt>typeclass</tt> DNS resources for <tt>name</tt>. See #getresource for argument details."
full_name: Resolv::DNS#getresources
is_singleton: false
name: getresources
params: (name, typeclass)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: An authoritative name server.
constants: []

full_name: Resolv::DNS::Resource::NS
includes: []

instance_methods: []

name: NS
superclass: DomainName
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A Pointer to another DNS name.
constants: []

full_name: Resolv::DNS::Resource::PTR
includes: []

instance_methods: []

name: PTR
superclass: DomainName
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Resolv::DNS::Resource::MINFO::new
is_singleton: true
name: new
params: (rmailbx, emailbx)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Mailbox to use for error messages related to the mail list or mailbox.
  name: emailbx
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Domain name responsible for this mail list or mailbox.
  name: rmailbx
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Mailing list or mailbox information.
constants: []

full_name: Resolv::DNS::Resource::MINFO
includes: []

instance_methods: []

name: MINFO
superclass: Resource
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A Query type requesting any RR.
constants: []

full_name: Resolv::DNS::Resource::ANY
includes: []

instance_methods: []

name: ANY
superclass: Query
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The canonical name for an alias.
constants: []

full_name: Resolv::DNS::Resource::CNAME
includes: []

instance_methods: []

name: CNAME
superclass: DomainName
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the first string from <tt>strings</tt>.
full_name: Resolv::DNS::Resource::TXT#data
is_singleton: false
name: data
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Resolv::DNS::Resource::TXT::new
is_singleton: true
name: new
params: (first_string, *rest_strings)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Returns an Array of Strings for this TXT record.
  name: strings
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Unstructured text resource.
constants: []

full_name: Resolv::DNS::Resource::TXT
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: data
name: TXT
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Resolv::DNS::Resource::IN::WKS::new
is_singleton: true
name: new
params: (address, protocol, bitmap)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The host these services run on.
  name: address
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A bit map of enabled services on this host.
  - !ruby/struct:SM::Flow::P 
    body: If protocol is 6 (TCP) then the 26th bit corresponds to the SMTP service (port 25). If this bit is set, then an SMTP server should be listening on TCP port 25; if zero, SMTP service is not supported.
  name: bitmap
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: IP protocol number for these services.
  name: protocol
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Well Known Service resource.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TypeValue
  value: "11"
- !ruby/object:RI::Constant 
  comment: 
  name: ClassValue
  value: IN::ClassValue
full_name: Resolv::DNS::Resource::IN::WKS
includes: []

instance_methods: []

name: WKS
superclass: Resource
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: module IN contains ARPA Internet specific RRs.
constants: []

full_name: Resolv::DNS::Resource::IN
includes: []

instance_methods: []

name: IN
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new AAAA for <tt>address</tt>.
full_name: Resolv::DNS::Resource::IN::AAAA::new
is_singleton: true
name: new
params: (address)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The Resolv::IPv6 address for this AAAA.
  name: address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: An IPv6 address record.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TypeValue
  value: "28"
- !ruby/object:RI::Constant 
  comment: 
  name: ClassValue
  value: IN::ClassValue
full_name: Resolv::DNS::Resource::IN::AAAA
includes: []

instance_methods: []

name: AAAA
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Create a SRV resource record.
- !ruby/struct:SM::Flow::P 
  body: "See the documentation for #priority, #weight, #port and #target for <tt>priority</tt>, <tt>weight</tt>, +port and <tt>target</tt> respectively."
full_name: Resolv::DNS::Resource::IN::SRV::new
is_singleton: true
name: new
params: (priority, weight, port, target)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The port on this target host of this service.
  - !ruby/struct:SM::Flow::P 
    body: The range is 0-65535.
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The priority of this target host.
  - !ruby/struct:SM::Flow::P 
    body: A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field. The range is 0-65535. Note that it is not widely implemented and should be set to zero.
  name: priority
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The domain name of the target host.
  - !ruby/struct:SM::Flow::P 
    body: A target of &quot;.&quot; means that the service is decidedly not available at this domain.
  name: target
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A server selection mechanism.
  - !ruby/struct:SM::Flow::P 
    body: The weight field specifies a relative weight for entries with the same priority. Larger weights SHOULD be given a proportionately higher probability of being selected. The range of this number is 0-65535. Domain administrators SHOULD use Weight 0 when there isn't any server selection to do, to make the RR easier to read for humans (less noisy). Note that it is not widely implemented and should be set to zero.
  name: weight
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: SRV resource record defined in RFC 2782
- !ruby/struct:SM::Flow::P 
  body: These records identify the hostname and port that a service is available at.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TypeValue
  value: "33"
- !ruby/object:RI::Constant 
  comment: 
  name: ClassValue
  value: IN::ClassValue
full_name: Resolv::DNS::Resource::IN::SRV
includes: []

instance_methods: []

name: SRV
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new A for <tt>address</tt>.
full_name: Resolv::DNS::Resource::IN::A::new
is_singleton: true
name: new
params: (address)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The Resolv::IPv4 address for this A.
  name: address
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: IPv4 Address resource
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: TypeValue
  value: "1"
- !ruby/object:RI::Constant 
  comment: 
  name: ClassValue
  value: IN::ClassValue
full_name: Resolv::DNS::Resource::IN::A
includes: []

instance_methods: []

name: A
superclass: Resource
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Time in seconds that a secondary name server is to use the data before refreshing from the primary name server.
  name: expire
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The minimum number of seconds to be used for TTL values in RRs.
  name: minimum
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Name of the host where the master zone file for this zone resides.
  name: mname
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: How often, in seconds, a secondary name server is to check for updates from the primary name server.
  name: refresh
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: How often, in seconds, a secondary name server is to retry after a failure to check for a refresh.
  name: retry
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The person responsible for this domain name.
  name: rname
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The version number of the zone file.
  name: serial
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Start Of Authority resource.
constants: []

full_name: Resolv::DNS::Resource::SOA
includes: []

instance_methods: []

name: SOA
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new SOA record. See the attr documentation for the details of each argument.
full_name: Resolv::DNS::Resource::SOA::new
is_singleton: true
name: new
params: (mname, rname, serial, refresh, retry_, expire, minimum)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: CPU architecture for this resource.
  name: cpu
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Operating system for this resource.
  name: os
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Host Information resource.
constants: []

full_name: Resolv::DNS::Resource::HINFO
includes: []

instance_methods: []

name: HINFO
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new HINFO running <tt>os</tt> on <tt>cpu</tt>.
full_name: Resolv::DNS::Resource::HINFO::new
is_singleton: true
name: new
params: (cpu, os)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The host of this MX.
  name: exchange
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The preference for this MX.
  name: preference
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Mail Exchanger resource.
constants: []

full_name: Resolv::DNS::Resource::MX
includes: []

instance_methods: []

name: MX
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new MX record with <tt>preference</tt>, accepting mail at <tt>exchange</tt>.
full_name: Resolv::DNS::Resource::MX::new
is_singleton: true
name: new
params: (preference, exchange)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The name of this DomainName.
  name: name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Domain Name resource abstract class.
constants: []

full_name: Resolv::DNS::Resource::DomainName
includes: []

instance_methods: []

name: DomainName
superclass: Resource
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new DomainName from <tt>name</tt>.
full_name: Resolv::DNS::Resource::DomainName::new
is_singleton: true
name: new
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Remaining Time To Live for this Resource.
  name: ttl
  rw: R
class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: A DNS resource abstract class.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: ClassInsensitiveTypes
  value: "[ # :nodoc:         NS, CNAME, SOA, PTR, HINFO, MINFO, MX, TXT, ANY"
full_name: Resolv::DNS::Resource
includes: []

instance_methods: []

name: Resource
superclass: Query
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new generic resource.
full_name: Resolv::DNS::Resource::Generic::new
is_singleton: true
name: new
params: (data)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Data for this generic resource.
  name: data
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A generic resource abstract class.
constants: []

full_name: Resolv::DNS::Resource::Generic
includes: []

instance_methods: []

name: Generic
superclass: Resource
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::Sender
includes: []

instance_methods: []

name: Sender
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::UnconnectedUDP::Sender
includes: []

instance_methods: []

name: Sender
superclass: Requester::Sender
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::UnconnectedUDP
includes: []

instance_methods: []

name: UnconnectedUDP
superclass: Requester
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::ConnectedUDP::Sender
includes: []

instance_methods: []

name: Sender
superclass: Requester::Sender
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::ConnectedUDP
includes: []

instance_methods: []

name: ConnectedUDP
superclass: Requester
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::TCP::Sender
includes: []

instance_methods: []

name: Sender
superclass: Requester::Sender
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester::TCP
includes: []

instance_methods: []

name: TCP
superclass: Requester
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Requester
includes: []

instance_methods: []

name: Requester
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates a problem with the DNS request.
constants: []

full_name: Resolv::DNS::Requester::RequestError
includes: []

instance_methods: []

name: RequestError
superclass: StandardError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Message::MessageDecoder
includes: []

instance_methods: []

name: MessageDecoder
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Message::MessageEncoder
includes: []

instance_methods: []

name: MessageEncoder
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Message
includes: []

instance_methods: []

name: Message
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Config
includes: []

instance_methods: []

name: Config
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates no such domain was found.
constants: []

full_name: Resolv::DNS::Config::NXDomain
includes: []

instance_methods: []

name: NXDomain
superclass: ResolvError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates some other unhandled resolver error was encountered.
constants: []

full_name: Resolv::DNS::Config::OtherResolvError
includes: []

instance_methods: []

name: OtherResolvError
superclass: ResolvError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the hostname for <tt>address</tt> from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>address</tt> must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved name will be a Resolv::DNS::Name.
full_name: Resolv::DNS#getname
is_singleton: false
name: getname
params: (address)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Indicates that the DNS response was unable to be decoded.
constants: []

full_name: Resolv::DNS::DecodeError
includes: []

instance_methods: []

name: DecodeError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets all IP addresses for <tt>name</tt> from the DNS resolver.
- !ruby/struct:SM::Flow::P 
  body: <tt>name</tt> can be a Resolv::DNS::Name or a String. Retrieved addresses will be a Resolv::IPv4 or Resolv::IPv6
full_name: Resolv::DNS#getaddresses
is_singleton: false
name: getaddresses
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::RCode
includes: []

instance_methods: []

name: RCode
superclass: 
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Label::Str
includes: []

instance_methods: []

name: Str
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Resolv::DNS::Label
includes: []

instance_methods: []

name: Label
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up the first IP address for <tt>name</tt>.
full_name: Resolv#getaddress
is_singleton: false
name: getaddress
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all hostnames for <tt>address</tt> retrieved from the hosts file.
full_name: Resolv::Hosts#each_name
is_singleton: false
name: each_name
params: (address, &proc)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: DNS::Hosts is a hostname resolver that uses the system hosts file.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: DefaultFileName
  value: Win32::Resolv.get_hosts_path
- !ruby/object:RI::Constant 
  comment: 
  name: DefaultFileName
  value: "'/etc/hosts'"
full_name: Resolv::Hosts
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_address
- !ruby/object:RI::MethodSummary 
  name: each_name
- !ruby/object:RI::MethodSummary 
  name: getaddress
- !ruby/object:RI::MethodSummary 
  name: getaddresses
- !ruby/object:RI::MethodSummary 
  name: getname
- !ruby/object:RI::MethodSummary 
  name: getnames
name: Hosts
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all IP addresses for <tt>name</tt> retrieved from the hosts file.
full_name: Resolv::Hosts#each_address
is_singleton: false
name: each_address
params: (name, &proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new DNS::Hosts, using <tt>filename</tt> for its data source.
full_name: Resolv::Hosts::new
is_singleton: true
name: new
params: (filename = DefaultFileName)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets all hostnames for <tt>address</tt> from the hosts file.
full_name: Resolv::Hosts#getnames
is_singleton: false
name: getnames
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the IP address of <tt>name</tt> from the hosts file.
full_name: Resolv::Hosts#getaddress
is_singleton: false
name: getaddress
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets the hostname of <tt>address</tt> from the hosts file.
full_name: Resolv::Hosts#getname
is_singleton: false
name: getname
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Gets all IP addresses for <tt>name</tt> from the hosts file.
full_name: Resolv::Hosts#getaddresses
is_singleton: false
name: getaddresses
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up all hostnames for <tt>address</tt>.
full_name: Resolv::getnames
is_singleton: true
name: getnames
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up the hostname of <tt>address</tt>.
full_name: Resolv#getname
is_singleton: false
name: getname
params: (address)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up the first IP address for <tt>name</tt>.
full_name: Resolv::getaddress
is_singleton: true
name: getaddress
params: (name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterates over all IP addresses for <tt>name</tt>.
full_name: Resolv::each_address
is_singleton: true
name: each_address
params: (name, &block)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Looks up all IP address for <tt>name</tt>.
full_name: Resolv#getaddresses
is_singleton: false
name: getaddresses
params: (name)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_address
- !ruby/object:RI::MethodSummary 
  name: each_name
- !ruby/object:RI::MethodSummary 
  name: getaddress
- !ruby/object:RI::MethodSummary 
  name: getaddresses
- !ruby/object:RI::MethodSummary 
  name: getname
- !ruby/object:RI::MethodSummary 
  name: getnames
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Resolv is a thread-aware DNS resolver library written in Ruby. Resolv can handle multiple DNS requests concurrently without blocking. The ruby interpreter.
- !ruby/struct:SM::Flow::P 
  body: "See also resolv-replace.rb to replace the libc resolver with # Resolv."
- !ruby/struct:SM::Flow::P 
  body: Resolv can look up various DNS resources using the DNS module directly.
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  p Resolv.getaddress &quot;www.ruby-lang.org&quot;\n  p Resolv.getname &quot;210.251.121.214&quot;\n\n  Resolv::DNS.open do |dns|\n    ress = dns.getresources &quot;www.ruby-lang.org&quot;, Resolv::DNS::Resource::IN::A\n    p ress.map { |r| r.address }\n    ress = dns.getresources &quot;ruby-lang.org&quot;, Resolv::DNS::Resource::IN::MX\n    p ress.map { |r| [r.exchange.to_s, r.preference] }\n  end\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Bugs
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: NIS is not supported.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: /etc/nsswitch.conf is not supported.
  type: :BULLET
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Default resolver to use for Resolv class methods.
  name: DefaultResolver
  value: self.new
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Address Regexp to use for matching IP addresses.
  name: AddressRegex
  value: /(?:#{IPv4::Regex})|(?:#{IPv6::Regex})/
full_name: Resolv
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: each_address
- !ruby/object:RI::MethodSummary 
  name: each_name
- !ruby/object:RI::MethodSummary 
  name: getaddress
- !ruby/object:RI::MethodSummary 
  name: getaddresses
- !ruby/object:RI::MethodSummary 
  name: getname
- !ruby/object:RI::MethodSummary 
  name: getnames
name: Resolv
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return the name associated with this NameError exception.
full_name: NameError#name
is_singleton: false
name: name
params: |
  name_error.name    =>  string or nil

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Construct a new NameError exception. If given the <em>name</em> parameter may subsequently be examined using the <tt>NameError.name</tt> method.
full_name: NameError::new
is_singleton: true
name: new
params: |
  NameError.new(msg [, name])  => name_error

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: NameError
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: to_s
name: NameError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Produce a nicely-formated string representing the <tt>NameError</tt>.
full_name: NameError#to_s
is_singleton: false
name: to_s
params: |
  name_error.to_s   => string

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Descendents of class <tt>Exception</tt> are used to communicate between <tt>raise</tt> methods and <tt>rescue</tt> statements in <tt>begin/end</tt> blocks. <tt>Exception</tt> objects carry information about the exception---its type (the exception's class name), an optional descriptive string, and optional traceback information. Programs may subclass <tt>Exception</tt> to add additional information.
constants: []

full_name: NameError::message
includes: []

instance_methods: []

name: message
superclass: Data
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: And---Returns <tt>false</tt> if <em>obj</em> is <tt>nil</tt> or <tt>false</tt>, <tt>true</tt> otherwise.
full_name: TrueClass#&
is_singleton: false
name: "&"
params: |
  true & obj    => true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Exclusive Or---Returns <tt>true</tt> if <em>obj</em> is <tt>nil</tt> or <tt>false</tt>, <tt>false</tt> otherwise.
full_name: TrueClass#^
is_singleton: false
name: ^
params: |
  true ^ obj   => !obj

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: The string representation of <tt>true</tt> is &quot;true&quot;.
full_name: TrueClass#to_s
is_singleton: false
name: to_s
params: |
  true.to_s   =>  "true"

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Or---Returns <tt>true</tt>. As <em>anObject</em> is an argument to a method call, it is always evaluated; there is no short-circuit evaluation in this case.
- !ruby/struct:SM::Flow::VERB 
  body: "   true |  puts(&quot;or&quot;)\n   true || puts(&quot;logical or&quot;)\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   or\n"
full_name: TrueClass#|
is_singleton: false
name: "|"
params: |
  true | obj   => true

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: TrueClass#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The global value <tt>true</tt> is the only instance of class <tt>TrueClass</tt> and represents a logically true value in boolean expressions. The class provides operators allowing <tt>true</tt> to be used in logical expressions.
constants: []

full_name: TrueClass
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: "|"
name: TrueClass
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WadlerExample::Tree
includes: []

instance_methods: []

name: Tree
superclass: Object
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: WadlerExample
includes: []

instance_methods: []

name: WadlerExample
superclass: Test::Unit::TestCase
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns an empty array.
- !ruby/struct:SM::Flow::VERB 
  body: "   nil.to_a   #=&gt; []\n"
full_name: NilClass#to_a
is_singleton: false
name: to_a
params: |
  nil.to_a    => []

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: And---Returns <tt>false</tt>. <em>obj</em> is always evaluated as it is the argument to a method call---there is no short-circuit evaluation in this case.
full_name: NilClass#&
is_singleton: false
name: "&"
params: |
  false & obj   => false
  nil & obj     => false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns zero.
- !ruby/struct:SM::Flow::VERB 
  body: "   nil.to_i   #=&gt; 0\n"
full_name: NilClass#to_i
is_singleton: false
name: to_i
params: |
  nil.to_i => 0

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns the string &quot;nil&quot;.
full_name: NilClass#inspect
is_singleton: false
name: inspect
params: |
  nil.inspect  => "nil"

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Exclusive Or---If <em>obj</em> is <tt>nil</tt> or <tt>false</tt>, returns <tt>false</tt>; otherwise, returns <tt>true</tt>.
full_name: NilClass#^
is_singleton: false
name: ^
params: |
  false ^ obj    => true or false
  nil   ^ obj    => true or false

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: The class of the singleton object <tt>nil</tt>.
constants: []

full_name: NilClass
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "&"
- !ruby/object:RI::MethodSummary 
  name: ^
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: nil?
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_s
- !ruby/object:RI::MethodSummary 
  name: to_yaml
- !ruby/object:RI::MethodSummary 
  name: "|"
name: NilClass
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns the empty string.
- !ruby/struct:SM::Flow::VERB 
  body: "   nil.to_s   #=&gt; &quot;&quot;\n"
full_name: NilClass#to_s
is_singleton: false
name: to_s
params: |
  nil.to_s    => ""

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Or---Returns <tt>false</tt> if <em>obj</em> is <tt>nil</tt> or <tt>false</tt>; <tt>true</tt> otherwise.
full_name: NilClass#|
is_singleton: false
name: "|"
params: |
  false | obj   =>   true or false
  nil   | obj   =>   true or false

visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: NilClass#to_yaml
is_singleton: false
name: to_yaml
params: ( opts = {} )
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "call_seq:"
- !ruby/struct:SM::Flow::VERB 
  body: "  nil.nil?               =&gt; true\n"
- !ruby/struct:SM::Flow::P 
  body: Only the object <em>nil</em> responds <tt>true</tt> to <tt>nil?</tt>.
full_name: NilClass#nil?
is_singleton: false
name: nil?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Always returns zero.
- !ruby/struct:SM::Flow::VERB 
  body: "   nil.to_f   #=&gt; 0.0\n"
full_name: NilClass#to_f
is_singleton: false
name: to_f
params: |
  nil.to_f    => 0.0

visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Raises when the given argument word can't be completed uniquely.
constants: []

full_name: AmbiguousArgument
includes: []

instance_methods: []

name: AmbiguousArgument
superclass: InvalidArgument
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Input conversion stopped due to an incomplete character or shift sequence at the end of the input buffer.
constants: []

full_name: Iconv::InvalidCharacter
includes: 
- !ruby/object:RI::IncludedModule 
  name: Iconv::Failure
instance_methods: []

name: InvalidCharacter
superclass: ArgError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Equivalent to Iconv.new except that when it is called with a block, it yields with the new instance and closes it, and returns the result which returned from the block.
full_name: Iconv::open
is_singleton: true
name: open
params: " Iconv.open(to, from) { |iconv| ... }\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: Iconv::conv"
- !ruby/struct:SM::Flow::P 
  body: Shorthand for
- !ruby/struct:SM::Flow::VERB 
  body: "  Iconv.iconv(to, from, str).join\n"
- !ruby/struct:SM::Flow::P 
  body: See Iconv.iconv.
full_name: Iconv::conv
is_singleton: true
name: conv
params: " Iconv.conv(to, from, str)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: Iconv#iconv"
- !ruby/struct:SM::Flow::P 
  body: Converts string and returns the result.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: If <tt>str</tt> is a String, converts <tt>str[start, length]</tt> and returns the converted string.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: If <tt>str</tt> is <tt>nil</tt>, places converter itself into initial shift state and just returns a string containing the byte sequence to change the output buffer to its initial shift state.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Otherwise, raises an exception.
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "str:"
    body: string to be converted, or nil
  - !ruby/struct:SM::Flow::LI 
    label: "start:"
    body: starting offset
  - !ruby/struct:SM::Flow::LI 
    label: "length:"
    body: conversion length; nil or -1 means whole the string from start
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exceptions
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IconvIllegalSequence
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IconvInvalidCharacter
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IconvOutOfRange
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Examples
- !ruby/struct:SM::Flow::P 
  body: See the Iconv documentation.
full_name: Iconv#iconv
is_singleton: false
name: iconv
params: " iconv(str, start=0, length=-1)\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates new code converter from a coding-system designated with <tt>from</tt> to another one designated with <tt>to</tt>.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+to+:"
    body: encoding name for destination
  - !ruby/struct:SM::Flow::LI 
    label: "+from+:"
    body: encoding name for source
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exceptions
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "TypeError:"
    body: if <tt>to</tt> or <tt>from</tt> aren't String
  - !ruby/struct:SM::Flow::LI 
    label: "InvalidEncoding:"
    body: if designated converter couldn't find out
  - !ruby/struct:SM::Flow::LI 
    label: "SystemCallError:"
    body: if <tt>iconv_open(3)</tt> fails
  type: :NOTE
full_name: Iconv::new
is_singleton: true
name: new
params: " Iconv.new(to, from)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Iconv library internal error. Must not occur.
constants: []

full_name: Iconv::OutOfRange
includes: 
- !ruby/object:RI::IncludedModule 
  name: Iconv::Failure
instance_methods: []

name: OutOfRange
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the map from canonical name to system dependent name.
full_name: Iconv::charset_map
is_singleton: true
name: charset_map
params: " Iconv.charset_map\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Finishes conversion.
- !ruby/struct:SM::Flow::P 
  body: "After calling this, calling Iconv#iconv will cause an exception, but multiple calls of #close are guaranteed to end successfully."
- !ruby/struct:SM::Flow::P 
  body: Returns a string containing the byte sequence to change the output buffer to its initial shift state.
full_name: Iconv#close
is_singleton: false
name: close
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Returns inspected string like as: #&lt;<em>class</em>: <em>success</em>, <em>failed</em>&gt;"
full_name: Iconv::Failure#inspect
is_singleton: false
name: inspect
params: " inspect\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns substring of the original string passed to Iconv that starts at the character caused the exception.
full_name: Iconv::Failure#failed
is_singleton: false
name: failed
params: " failed\n"
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates new code converter from a coding-system designated with <tt>from</tt> to another one designated with <tt>to</tt>.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "+to+:"
    body: encoding name for destination
  - !ruby/struct:SM::Flow::LI 
    label: "+from+:"
    body: encoding name for source
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exceptions
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "TypeError:"
    body: if <tt>to</tt> or <tt>from</tt> aren't String
  - !ruby/struct:SM::Flow::LI 
    label: "InvalidEncoding:"
    body: if designated converter couldn't find out
  - !ruby/struct:SM::Flow::LI 
    label: "SystemCallError:"
    body: if <tt>iconv_open(3)</tt> fails
  type: :NOTE
full_name: Iconv::Failure::new
is_singleton: true
name: new
params: " Iconv.new(to, from)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Base attributes for Iconv exceptions.
constants: []

full_name: Iconv::Failure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: failed
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: success
name: Failure
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns string(s) translated successfully until the exception occurred.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: In the case of failure occurred within Iconv.iconv, returned value is an array of strings translated successfully preceding failure and the last element is string on the way.
  type: :BULLET
full_name: Iconv::Failure#success
is_singleton: false
name: success
params: " success\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Requested coding-system is not available on this system.
constants: []

full_name: Iconv::InvalidEncoding
includes: 
- !ruby/object:RI::IncludedModule 
  name: Iconv::Failure
instance_methods: []

name: InvalidEncoding
superclass: ArgError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Input conversion stopped due to an input byte that does not belong to the input codeset, or the output codeset does not contain the character.
constants: []

full_name: Iconv::IllegalSequence
includes: 
- !ruby/object:RI::IncludedModule 
  name: Iconv::Failure
instance_methods: []

name: IllegalSequence
superclass: ArgError
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Detected a bug of underlying iconv(3) libray.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: returns an error without setting errno properly
  type: :BULLET
constants: []

full_name: Iconv::BrokenLibrary
includes: 
- !ruby/object:RI::IncludedModule 
  name: Iconv::Failure
instance_methods: []

name: BrokenLibrary
superclass: RuntimeError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-method: Iconv::iconv"
- !ruby/struct:SM::Flow::P 
  body: Shorthand for
- !ruby/struct:SM::Flow::VERB 
  body: "  Iconv.open(to, from) { |cd|\n    (strs + [nil]).collect { |s| cd.iconv(s) }\n  }\n"
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>to, from</tt>:"
    body: see Iconv.new
  - !ruby/struct:SM::Flow::LI 
    label: "<tt>strs</tt>:"
    body: strings to be converted
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Exceptions
- !ruby/struct:SM::Flow::P 
  body: Exceptions thrown by Iconv.new, Iconv.open and Iconv#iconv.
full_name: Iconv::iconv
is_singleton: true
name: iconv
params: " Iconv.iconv(to, from, *strs)\n"
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: charset_map
- !ruby/object:RI::MethodSummary 
  name: conv
- !ruby/object:RI::MethodSummary 
  name: iconv
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: open
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Document-class: Iconv::BrokenLibrary"
- !ruby/struct:SM::Flow::P 
  body: Detected a bug of underlying iconv(3) libray.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: returns an error without setting errno properly
  type: :BULLET
constants: []

full_name: Iconv
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: close
- !ruby/object:RI::MethodSummary 
  name: iconv
name: Iconv
superclass: Data
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: elements
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: The <tt>Vector</tt> class represents a mathematical vector, which is useful in its own right, and also constitutes a row or column of a Matrix.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Method Catalogue
- !ruby/struct:SM::Flow::P 
  body: "To create a Vector:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Vector.[](*array) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> Vector.elements(array, copy = true) </tt>
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "To access elements:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> [](i) </tt>
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "To enumerate the elements:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #each2(v) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #collect2(v) </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Vector arithmetic:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> *(x) &quot;is matrix or number&quot; </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> +(v) </tt>
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: <tt> -(v) </tt>
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Vector functions:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #inner_product(v) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #collect </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #map </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #map2(v) </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #r </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #size </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Conversion to other data types:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #covector </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #to_a </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #coerce(other) </tt>"
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "String representations:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #to_s </tt>"
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "<tt> #inspect </tt>"
  type: :BULLET
constants: []

full_name: Vector
includes: 
- !ruby/object:RI::IncludedModule 
  name: ExceptionForMatrix
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: "[]"
- !ruby/object:RI::MethodSummary 
  name: clone
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: collect2
- !ruby/object:RI::MethodSummary 
  name: compare_by
- !ruby/object:RI::MethodSummary 
  name: covector
- !ruby/object:RI::MethodSummary 
  name: each2
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: init_elements
- !ruby/object:RI::MethodSummary 
  name: inner_product
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: map
- !ruby/object:RI::MethodSummary 
  name: map2
- !ruby/object:RI::MethodSummary 
  name: r
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_a
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Vector
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns element number <tt>i</tt> (starting at zero) of the vector.
full_name: Vector#[]
is_singleton: false
name: "[]"
params: (i)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the inner product of this vector with the other.
- !ruby/struct:SM::Flow::VERB 
  body: "  Vector[4,7].inner_product Vector[10,1]  =&gt; 47\n"
full_name: Vector#inner_product
is_singleton: false
name: inner_product
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of elements in the vector.
full_name: Vector#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the elements of the vector in an array.
full_name: Vector#to_a
is_singleton: false
name: to_a
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #=="
full_name: Vector#eql?
is_singleton: false
name: eql?
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: eql?
block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns <tt>true</tt> iff the two vectors have the same elements in the same order.
full_name: Vector#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e1, e2
comment: 
- !ruby/struct:SM::Flow::P 
  body: Collects (as in Enumerable#collect) over the elements of this vector and <tt>v</tt> in conjunction.
full_name: Vector#collect2
is_singleton: false
name: collect2
params: (v) {|e1, e2| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a copy of the vector.
full_name: Vector#clone
is_singleton: false
name: clone
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Multiplies the vector by <tt>x</tt>, where <tt>x</tt> is a number or another vector.
full_name: Vector#*
is_singleton: false
name: "*"
params: (x)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overrides Object#inspect
full_name: Vector#inspect
is_singleton: false
name: inspect
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For internal use.
full_name: Vector#compare_by
is_singleton: false
name: compare_by
params: (elements)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e1, e2
comment: 
- !ruby/struct:SM::Flow::P 
  body: Like Vector#collect2, but returns a Vector instead of an Array.
full_name: Vector#map2
is_singleton: false
name: map2
params: (v) {|e1, e2| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Return a hash-code for the vector.
full_name: Vector#hash
is_singleton: false
name: hash
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the modulus (Pythagorean distance) of the vector.
- !ruby/struct:SM::Flow::VERB 
  body: "  Vector[5,8,2].r =&gt; 9.643650761\n"
full_name: Vector#r
is_singleton: false
name: r
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For internal use.
full_name: Vector::new
is_singleton: true
name: new
params: (method, array, copy)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a Vector from a list of elements.
- !ruby/struct:SM::Flow::VERB 
  body: "  Vector[7, 4, ...]\n"
full_name: Vector::[]
is_singleton: true
name: "[]"
params: (*array)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: For internal use.
full_name: Vector#init_elements
is_singleton: false
name: init_elements
params: (array, copy)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overrides Object#to_s
full_name: Vector#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "FIXME: describe Vector#coerce."
full_name: Vector#coerce
is_singleton: false
name: coerce
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Alias for #collect"
full_name: Vector#map
is_singleton: false
name: map
params: (
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a single-row matrix from this vector.
full_name: Vector#covector
is_singleton: false
name: covector
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: 
- !ruby/object:RI::AliasName 
  name: map
block_params: e
comment: 
- !ruby/struct:SM::Flow::P 
  body: Like Array#collect.
full_name: Vector#collect
is_singleton: false
name: collect
params: ( {|e| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a vector from an Array. The optional second argument specifies whether the array itself or a copy is used internally.
full_name: Vector::elements
is_singleton: true
name: elements
params: (array, copy = true)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Vector addition.
full_name: Vector#+
is_singleton: false
name: +
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Vector subtraction.
full_name: Vector#-
is_singleton: false
name: "-"
params: (v)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: e1, e2
comment: 
- !ruby/struct:SM::Flow::P 
  body: Iterate over the elements of this vector and <tt>v</tt> in conjunction.
full_name: Vector#each2
is_singleton: false
name: each2
params: (v) {|e1, e2| ...}
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test
includes: []

instance_methods: []

name: Test
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestCase#default_test
is_singleton: false
name: default_test
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestCase#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (STARTED, name)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs the individual test method represented by this instance of the fixture, collecting statistics, failures and errors in result.
full_name: Test::Unit::TestCase#run
is_singleton: false
name: run
params: (result) {|STARTED, name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: It's handy to be able to compare TestCase instances.
full_name: Test::Unit::TestCase#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a human-readable name for the specific test that this instance of TestCase represents.
full_name: Test::Unit::TestCase#name
is_singleton: false
name: name
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestCase#add_assertion
is_singleton: false
name: add_assertion
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rolls up all of the test* methods in the fixture into one suite, creating a new instance of the fixture for each method.
full_name: Test::Unit::TestCase::suite
is_singleton: true
name: suite
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestCase#add_failure
is_singleton: false
name: add_failure
params: (message, all_locations=caller())
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: method_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: suite
comment: 
- !ruby/struct:SM::Flow::P 
  body: Ties everything together. If you subclass and add your own test methods, it takes care of making them into tests and wrapping those tests into a suite. It also does the nitty-gritty of actually running an individual test and collecting its results into a Test::Unit::TestResult object.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: STARTED
  value: name + "::STARTED"
- !ruby/object:RI::Constant 
  comment: 
  name: FINISHED
  value: name + "::FINISHED"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "These exceptions are not caught by #run."
  name: PASSTHROUGH_EXCEPTIONS
  value: "[NoMemoryError, SignalException, Interrupt,                                 SystemExit]"
full_name: Test::Unit::TestCase
includes: 
- !ruby/object:RI::IncludedModule 
  name: Assertions
- !ruby/object:RI::IncludedModule 
  name: Util::BacktraceFilter
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: add_assertion
- !ruby/object:RI::MethodSummary 
  name: add_error
- !ruby/object:RI::MethodSummary 
  name: add_failure
- !ruby/object:RI::MethodSummary 
  name: default_test
- !ruby/object:RI::MethodSummary 
  name: name
- !ruby/object:RI::MethodSummary 
  name: passed?
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: setup
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: teardown
- !ruby/object:RI::MethodSummary 
  name: to_s
name: TestCase
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called after every test method runs. Can be used to tear down fixture information.
full_name: Test::Unit::TestCase#teardown
is_singleton: false
name: teardown
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new instance of the fixture for running the test represented by test_method_name.
full_name: Test::Unit::TestCase::new
is_singleton: true
name: new
params: (test_method_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called before every test method runs. Can be used to set up fixture information.
full_name: Test::Unit::TestCase#setup
is_singleton: false
name: setup
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Overridden to return #name."
full_name: Test::Unit::TestCase#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns whether this individual test passed or not. Primarily for use in teardown so that artifacts can be left behind if the test fails.
full_name: Test::Unit::TestCase#passed?
is_singleton: false
name: passed?
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestCase#add_error
is_singleton: false
name: add_error
params: (exception)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Thrown by Test::Unit::Assertions when an assertion fails.
constants: []

full_name: Test::Unit::AssertionFailedError
includes: []

instance_methods: []

name: AssertionFailedError
superclass: StandardError
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a single character representation of an error.
full_name: Test::Unit::Error#single_character_display
is_singleton: false
name: single_character_display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the message associated with the error.
full_name: Test::Unit::Error#message
is_singleton: false
name: message
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: exception
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: test_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Encapsulates an error in a test. Created by Test::Unit::TestCase when it rescues an exception thrown during the processing of a test.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SINGLE_CHARACTER
  value: "'E'"
full_name: Test::Unit::Error
includes: 
- !ruby/object:RI::IncludedModule 
  name: Util::BacktraceFilter
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: long_display
- !ruby/object:RI::MethodSummary 
  name: message
- !ruby/object:RI::MethodSummary 
  name: short_display
- !ruby/object:RI::MethodSummary 
  name: single_character_display
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Error
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Error with the given test_name and exception.
full_name: Test::Unit::Error::new
is_singleton: true
name: new
params: (test_name, exception)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overridden to return long_display.
full_name: Test::Unit::Error#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a brief version of the error description.
full_name: Test::Unit::Error#short_display
is_singleton: false
name: short_display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a verbose version of the error description.
full_name: Test::Unit::Error#long_display
is_singleton: false
name: long_display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Select whether or not to use the pretty-printer. If this option is set to false before any assertions are made, pp.rb will not be required.
full_name: Test::Unit::Assertions::use_pp=
is_singleton: true
name: use_pp=
params: (value)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>actual</tt> .equal? <tt>expected</tt> (i.e. they are the same instance).
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  o = Object.new\n  assert_same o, o\n"
full_name: Test::Unit::Assertions#assert_same
is_singleton: false
name: assert_same
params: (expected, actual, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if the block throws <tt>expected_symbol</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_throws :done do\n    throw :done\n  end\n"
full_name: Test::Unit::Assertions#assert_throws
is_singleton: false
name: assert_throws
params: (expected_symbol, message="", &proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>object</tt> .kind_of? <tt>klass</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_kind_of Object, 'foo'\n"
full_name: Test::Unit::Assertions#assert_kind_of
is_singleton: false
name: assert_kind_of
params: (klass, object, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>regexp</tt> !~ <tt>string</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_no_match(/two/, 'one 2 three')\n"
full_name: Test::Unit::Assertions#assert_no_match
is_singleton: false
name: assert_no_match
params: (regexp, string, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>object</tt> is nil.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_nil [1, 2].uniq!\n"
full_name: Test::Unit::Assertions#assert_nil
is_singleton: false
name: assert_nil
params: (object, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>expected_float</tt> and <tt>actual_float</tt> are equal within <tt>delta</tt> tolerance.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_in_delta 0.05, (50000.0 / 10**6), 0.00001\n"
full_name: Test::Unit::Assertions#assert_in_delta
is_singleton: false
name: assert_in_delta
params: (expected_float, actual_float, delta, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Called whenever an assertion is made. Define this in classes that include Test::Unit::Assertions to record assertion counts.
full_name: Test::Unit::Assertions#add_assertion
is_singleton: false
name: add_assertion
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>expected</tt> == +actual.
- !ruby/struct:SM::Flow::P 
  body: Note that the ordering of arguments is important, since a helpful error message is generated when this one fails that tells you the values of expected and actual.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_equal 'MY STRING', 'my string'.upcase\n"
full_name: Test::Unit::Assertions#assert_equal
is_singleton: false
name: assert_equal
params: (expected, actual, message=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Flunk always fails.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  flunk 'Not done testing yet.'\n"
full_name: Test::Unit::Assertions#flunk
is_singleton: false
name: flunk
params: (message="Flunked")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>string</tt> =~ <tt>pattern</tt>.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_match(/\\d+/, 'five, 6, seven')\n"
full_name: Test::Unit::Assertions#assert_match
is_singleton: false
name: assert_match
params: (pattern, string, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Builds a failure message. <tt>head</tt> is added before the <tt>template</tt> and <tt>arguments</tt> replaces the '?'s positionally in the template.
full_name: Test::Unit::Assertions#build_message
is_singleton: false
name: build_message
params: (head, template=nil, *arguments)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if the method send returns a true value.
- !ruby/struct:SM::Flow::P 
  body: "<tt>send_array</tt> is composed of:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A receiver
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: A method
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Arguments to the method
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_send [[1, 2], :include?, 4]\n"
full_name: Test::Unit::Assertions#assert_send
is_singleton: false
name: assert_send
params: (send_array, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>expected</tt> != <tt>actual</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_not_equal 'some string', 5\n"
full_name: Test::Unit::Assertions#assert_not_equal
is_singleton: false
name: assert_not_equal
params: (expected, actual, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if ! <tt>object</tt> .nil?
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_not_nil '1 two 3'.sub!(/two/, '2')\n"
full_name: Test::Unit::Assertions#assert_not_nil
is_singleton: false
name: assert_not_nil
params: (object, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Test::Unit::Assertions#_wrap_assertion
is_singleton: false
name: _wrap_assertion
params: () {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: The assertion upon which all other assertions are based. Passes if the block yields true.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_block &quot;Couldn't do the thing&quot; do\n    do_the_thing\n  end\n"
full_name: Test::Unit::Assertions#assert_block
is_singleton: false
name: assert_block
params: (message="assert_block failed.") {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Compares the +object1+ with +object2+ using <tt>operator</tt>.
- !ruby/struct:SM::Flow::P 
  body: Passes if object1.<em>send</em>(operator, object2) is true.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_operator 5, :&gt;=, 4\n"
full_name: Test::Unit::Assertions#assert_operator
is_singleton: false
name: assert_operator
params: (object1, operator, object2, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if ! <tt>actual</tt> .equal? <tt>expected</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_not_same Object.new, Object.new\n"
full_name: Test::Unit::Assertions#assert_not_same
is_singleton: false
name: assert_not_same
params: (expected, actual, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if the block raises one of the given exceptions.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_raise RuntimeError, LoadError do\n    raise 'Boom!!!'\n  end\n"
full_name: Test::Unit::Assertions#assert_raise
is_singleton: false
name: assert_raise
params: (*args) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Alias of assert_raise.
- !ruby/struct:SM::Flow::P 
  body: Will be deprecated in 1.9, and removed in 2.0.
full_name: Test::Unit::Assertions#assert_raises
is_singleton: false
name: assert_raises
params: (*args, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: use_pp=
comment: 
- !ruby/struct:SM::Flow::P 
  body: Test::Unit::Assertions contains the standard Test::Unit assertions. Assertions is included in Test::Unit::TestCase.
- !ruby/struct:SM::Flow::P 
  body: To include it in your own code and use its functionality, you simply need to rescue Test::Unit::AssertionFailedError. Additionally you may override add_assertion to get notified whenever an assertion is made.
- !ruby/struct:SM::Flow::P 
  body: "Notes:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: The message to each assertion, if given, will be propagated with the failure.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: It is easy to add your own assertions based on assert_block().
  type: :BULLET
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Example Custom Assertion
- !ruby/struct:SM::Flow::VERB 
  body: "  def deny(boolean, message = nil)\n    message = build_message message, '&lt;?&gt; is not false or nil.', boolean\n    assert_block message do\n      not boolean\n    end\n  end\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: UncaughtThrow
  value: "{NameError => /^uncaught throw \\`(.+)\\'$/,                        ThreadError => /^uncaught throw \\`(.+)\\' in thread /}"
full_name: Test::Unit::Assertions
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: _wrap_assertion
- !ruby/object:RI::MethodSummary 
  name: add_assertion
- !ruby/object:RI::MethodSummary 
  name: assert
- !ruby/object:RI::MethodSummary 
  name: assert_block
- !ruby/object:RI::MethodSummary 
  name: assert_equal
- !ruby/object:RI::MethodSummary 
  name: assert_in_delta
- !ruby/object:RI::MethodSummary 
  name: assert_instance_of
- !ruby/object:RI::MethodSummary 
  name: assert_kind_of
- !ruby/object:RI::MethodSummary 
  name: assert_match
- !ruby/object:RI::MethodSummary 
  name: assert_nil
- !ruby/object:RI::MethodSummary 
  name: assert_no_match
- !ruby/object:RI::MethodSummary 
  name: assert_not_equal
- !ruby/object:RI::MethodSummary 
  name: assert_not_nil
- !ruby/object:RI::MethodSummary 
  name: assert_not_same
- !ruby/object:RI::MethodSummary 
  name: assert_nothing_raised
- !ruby/object:RI::MethodSummary 
  name: assert_nothing_thrown
- !ruby/object:RI::MethodSummary 
  name: assert_operator
- !ruby/object:RI::MethodSummary 
  name: assert_raise
- !ruby/object:RI::MethodSummary 
  name: assert_raises
- !ruby/object:RI::MethodSummary 
  name: assert_respond_to
- !ruby/object:RI::MethodSummary 
  name: assert_same
- !ruby/object:RI::MethodSummary 
  name: assert_send
- !ruby/object:RI::MethodSummary 
  name: assert_throws
- !ruby/object:RI::MethodSummary 
  name: build_message
- !ruby/object:RI::MethodSummary 
  name: flunk
name: Assertions
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if block does not raise an exception.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_nothing_raised do\n    [1, 2].uniq\n  end\n"
full_name: Test::Unit::Assertions#assert_nothing_raised
is_singleton: false
name: assert_nothing_raised
params: (*args) {|| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>object</tt> .respond_to? <tt>method</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_respond_to 'bugbear', :slice\n"
full_name: Test::Unit::Assertions#assert_respond_to
is_singleton: false
name: assert_respond_to
params: (object, method, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Asserts that <tt>boolean</tt> is not false or nil.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert [1, 2].include?(5)\n"
full_name: Test::Unit::Assertions#assert
is_singleton: false
name: assert
params: (boolean, message=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if block does not throw anything.
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: " assert_nothing_thrown do\n   [1, 2].uniq\n end\n"
full_name: Test::Unit::Assertions#assert_nothing_thrown
is_singleton: false
name: assert_nothing_thrown
params: (message="", &proc)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Passes if <tt>object</tt> .instance_of? <tt>klass</tt>
- !ruby/struct:SM::Flow::P 
  body: "Example:"
- !ruby/struct:SM::Flow::VERB 
  body: "  assert_instance_of String, 'foo'\n"
full_name: Test::Unit::Assertions#assert_instance_of
is_singleton: false
name: assert_instance_of
params: (klass, object, message="")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::AutoRunner::standalone?
is_singleton: true
name: standalone?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::AutoRunner::run
is_singleton: true
name: run
params: (force_standalone=false, default_dir=nil, argv=ARGV, &block)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: standalone?
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RUNNERS
  value: "{         :console => proc do |r|           require 'test/unit/ui/console/testrunner'"
full_name: Test::Unit::AutoRunner
includes: []

instance_methods: []

name: AutoRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector#include?
is_singleton: false
name: include?
params: (test)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector#add_suite
is_singleton: false
name: add_suite
params: (destination, suite)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir#recursive_collect
is_singleton: false
name: recursive_collect
params: (name, already_gathered)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir#find_test_cases
is_singleton: false
name: find_test_cases
params: (ignore=[])
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir::new
is_singleton: true
name: new
params: (dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir#collect_file
is_singleton: false
name: collect_file
params: (name, suites, already_gathered)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: base
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  name: exclude
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: pattern
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::Collector::Dir
includes: 
- !ruby/object:RI::IncludedModule 
  name: Collector
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: collect
- !ruby/object:RI::MethodSummary 
  name: collect_file
- !ruby/object:RI::MethodSummary 
  name: find_test_cases
- !ruby/object:RI::MethodSummary 
  name: realdir
- !ruby/object:RI::MethodSummary 
  name: recursive_collect
name: Dir
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir#collect
is_singleton: false
name: collect
params: (*from)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::Dir#realdir
is_singleton: false
name: realdir
params: (path)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::ObjectSpace::new
is_singleton: true
name: new
params: (source=::ObjectSpace)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: NAME
  value: "'collected from the ObjectSpace'"
full_name: Test::Unit::Collector::ObjectSpace
includes: 
- !ruby/object:RI::IncludedModule 
  name: Collector
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: collect
name: ObjectSpace
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector::ObjectSpace#collect
is_singleton: false
name: collect
params: (name=NAME)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector#sort
is_singleton: false
name: sort
params: (suites)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::Collector#filter=
is_singleton: false
name: filter=
params: (filters)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::Collector
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_suite
- !ruby/object:RI::MethodSummary 
  name: filter=
- !ruby/object:RI::MethodSummary 
  name: include?
- !ruby/object:RI::MethodSummary 
  name: sort
name: Collector
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Retuns the rolled up number of tests in this suite; i.e. if the suite contains other suites, it counts the tests within those suites, not the suites themselves.
full_name: Test::Unit::TestSuite#size
is_singleton: false
name: size
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: (STARTED, name)
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs the tests and/or suites contained in this TestSuite.
full_name: Test::Unit::TestSuite#run
is_singleton: false
name: run
params: (result, &progress_block) {|STARTED, name| ...}
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: It's handy to be able to compare TestSuite instances.
full_name: Test::Unit::TestSuite#==
is_singleton: false
name: ==
params: (other)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestSuite#empty?
is_singleton: false
name: empty?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestSuite with the given name.
full_name: Test::Unit::TestSuite::new
is_singleton: true
name: new
params: (name="Unnamed TestSuite")
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::TestSuite#delete
is_singleton: false
name: delete
params: (test)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overridden to return the name given the suite at creation.
full_name: Test::Unit::TestSuite#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Adds the test to the suite.
full_name: Test::Unit::TestSuite#<<
is_singleton: false
name: "<<"
params: (test)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: name
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: tests
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: "A collection of tests which can be #run."
- !ruby/struct:SM::Flow::P 
  body: "Note: It is easy to confuse a TestSuite instance with something that has a static suite method; I know because <em>I</em> have trouble keeping them straight. Think of something that has a suite method as simply providing a way to get a meaningful TestSuite instance."
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: STARTED
  value: name + "::STARTED"
- !ruby/object:RI::Constant 
  comment: 
  name: FINISHED
  value: name + "::FINISHED"
full_name: Test::Unit::TestSuite
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "<<"
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: delete
- !ruby/object:RI::MethodSummary 
  name: empty?
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: size
- !ruby/object:RI::MethodSummary 
  name: to_s
name: TestSuite
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of failures this TestResult has recorded.
full_name: Test::Unit::TestResult#failure_count
is_singleton: false
name: failure_count
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: assertion_count
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: run_count
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Collects Test::Unit::Failure and Test::Unit::Error so that they can be displayed to the user. To this end, observers can be added to it, allowing the dynamic updating of, say, a UI.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: CHANGED
  value: "\"CHANGED\""
- !ruby/object:RI::Constant 
  comment: 
  name: FAULT
  value: "\"FAULT\""
full_name: Test::Unit::TestResult
includes: 
- !ruby/object:RI::IncludedModule 
  name: Util::Observable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_assertion
- !ruby/object:RI::MethodSummary 
  name: add_error
- !ruby/object:RI::MethodSummary 
  name: add_failure
- !ruby/object:RI::MethodSummary 
  name: add_run
- !ruby/object:RI::MethodSummary 
  name: error_count
- !ruby/object:RI::MethodSummary 
  name: failure_count
- !ruby/object:RI::MethodSummary 
  name: passed?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: TestResult
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Records an individual assertion.
full_name: Test::Unit::TestResult#add_assertion
is_singleton: false
name: add_assertion
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Records a test run.
full_name: Test::Unit::TestResult#add_run
is_singleton: false
name: add_run
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Records a Test::Unit::Failure.
full_name: Test::Unit::TestResult#add_failure
is_singleton: false
name: add_failure
params: (failure)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Constructs a new, empty TestResult.
full_name: Test::Unit::TestResult::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a string contain the recorded runs, assertions, failures and errors in this TestResult.
full_name: Test::Unit::TestResult#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns whether or not this TestResult represents successful completion.
full_name: Test::Unit::TestResult#passed?
is_singleton: false
name: passed?
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns the number of errors this TestResult has recorded.
full_name: Test::Unit::TestResult#error_count
is_singleton: false
name: error_count
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Records a Test::Unit::Error.
full_name: Test::Unit::TestResult#add_error
is_singleton: false
name: add_error
params: (error)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: run=
- !ruby/object:RI::MethodSummary 
  name: run?
comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Test::Unit - Ruby Unit Testing Framework
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Introduction
- !ruby/struct:SM::Flow::P 
  body: Unit testing is making waves all over the place, largely due to the fact that it is a core practice of XP. While XP is great, unit testing has been around for a long time and has always been a good idea. One of the keys to good unit testing, though, is not just writing tests, but having tests. What's the difference? Well, if you just <em>write</em> a test and throw it away, you have no guarantee that something won't change later which breaks your code. If, on the other hand, you <em>have</em> tests (obviously you have to write them first), and run them as often as possible, you slowly build up a wall of things that cannot break without you immediately knowing about it. This is when unit testing hits its peak usefulness.
- !ruby/struct:SM::Flow::P 
  body: Enter Test::Unit, a framework for unit testing in Ruby, helping you to design, debug and evaluate your code by making it easy to write and have tests for it.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Notes
- !ruby/struct:SM::Flow::P 
  body: Test::Unit has grown out of and superceded Lapidary.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Feedback
- !ruby/struct:SM::Flow::P 
  body: I like (and do my best to practice) XP, so I value early releases, user feedback, and clean, simple, expressive code. There is always room for improvement in everything I do, and Test::Unit is no exception. Please, let me know what you think of Test::Unit as it stands, and what you'd like to see expanded/changed/improved/etc. If you find a bug, let me know ASAP; one good way to let me know what the bug is is to submit a new test that catches it :-) Also, I'd love to hear about any successes you have with Test::Unit, and any documentation you might add will be greatly appreciated. My contact info is below.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Contact Information
- !ruby/struct:SM::Flow::P 
  body: A lot of discussion happens about Ruby in general on the ruby-talk mailing list (http://www.ruby-lang.org/en/ml.html), and you can ask any questions you might have there. I monitor the list, as do many other helpful Rubyists, and you're sure to get a quick answer. Of course, you're also welcome to email me (Nathaniel Talbott) directly at mailto:testunit@talbott.ws, and I'll do my best to help you out.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Credits
- !ruby/struct:SM::Flow::P 
  body: I'd like to thank...
- !ruby/struct:SM::Flow::P 
  body: Matz, for a great language!
- !ruby/struct:SM::Flow::P 
  body: Masaki Suketa, for his work on RubyUnit, which filled a vital need in the Ruby world for a very long time. I'm also grateful for his help in polishing Test::Unit and getting the RubyUnit compatibility layer right. His graciousness in allowing Test::Unit to supercede RubyUnit continues to be a challenge to me to be more willing to defer my own rights.
- !ruby/struct:SM::Flow::P 
  body: Ken McKinlay, for his interest and work on unit testing, and for his willingness to dialog about it. He was also a great help in pointing out some of the holes in the RubyUnit compatibility layer.
- !ruby/struct:SM::Flow::P 
  body: Dave Thomas, for the original idea that led to the extremely simple &quot;require 'test/unit'&quot;, plus his code to improve it even more by allowing the selection of tests from the command-line. Also, without RDoc, the documentation for Test::Unit would stink a lot more than it does now.
- !ruby/struct:SM::Flow::P 
  body: Everyone who's helped out with bug reports, feature ideas, encouragement to continue, etc. It's a real privilege to be a part of the Ruby community.
- !ruby/struct:SM::Flow::P 
  body: The guys at RoleModel Software, for putting up with me repeating, &quot;But this would be so much easier in Ruby!&quot; whenever we're coding in Java.
- !ruby/struct:SM::Flow::P 
  body: My Creator, for giving me life, and giving it more abundantly.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: License
- !ruby/struct:SM::Flow::P 
  body: Test::Unit is copyright (c) 2000-2003 Nathaniel Talbott. It is free software, and is distributed under the Ruby license. See the COPYING file in the standard Ruby distribution for details.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Warranty
- !ruby/struct:SM::Flow::P 
  body: This software is provided &quot;as is&quot; and without any express or implied warranties, including, without limitation, the implied warranties of merchantibility and fitness for a particular purpose.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Author
- !ruby/struct:SM::Flow::P 
  body: Nathaniel Talbott. Copyright (c) 2000-2003, Nathaniel Talbott
- !ruby/struct:SM::Flow::RULE 
  width: 2
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Usage
- !ruby/struct:SM::Flow::P 
  body: The general idea behind unit testing is that you write a <em>test</em> <em>method</em> that makes certain <em>assertions</em> about your code, working against a <em>test</em> <em>fixture</em>. A bunch of these <em>test</em> <em>methods</em> are bundled up into a <em>test</em> <em>suite</em> and can be run any time the developer wants. The results of a run are gathered in a <em>test</em> <em>result</em> and displayed to the user through some UI. So, lets break this down and see how Test::Unit provides each of these necessary pieces.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Assertions
- !ruby/struct:SM::Flow::P 
  body: These are the heart of the framework. Think of an assertion as a statement of expected outcome, i.e. &quot;I assert that x should be equal to y&quot;. If, when the assertion is executed, it turns out to be correct, nothing happens, and life is good. If, on the other hand, your assertion turns out to be false, an error is propagated with pertinent information so that you can go back and make your assertion succeed, and, once again, life is good. For an explanation of the current assertions, see Test::Unit::Assertions.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Test Method &amp; Test Fixture
- !ruby/struct:SM::Flow::P 
  body: Obviously, these assertions have to be called within a context that knows about them and can do something meaningful with their pass/fail value. Also, it's handy to collect a bunch of related tests, each test represented by a method, into a common test class that knows how to run them. The tests will be in a separate class from the code they're testing for a couple of reasons. First of all, it allows your code to stay uncluttered with test code, making it easier to maintain. Second, it allows the tests to be stripped out for deployment, since they're really there for you, the developer, and your users don't need them. Third, and most importantly, it allows you to set up a common test fixture for your tests to run against.
- !ruby/struct:SM::Flow::P 
  body: What's a test fixture? Well, tests do not live in a vacuum; rather, they're run against the code they are testing. Often, a collection of tests will run against a common set of data, also called a fixture. If they're all bundled into the same test class, they can all share the setting up and tearing down of that data, eliminating unnecessary duplication and making it much easier to add related tests.
- !ruby/struct:SM::Flow::P 
  body: "Test::Unit::TestCase wraps up a collection of test methods together and allows you to easily set up and tear down the same test fixture for each test. This is done by overriding #setup and/or #teardown, which will be called before and after each test method that is run. The TestCase also knows how to collect the results of your assertions into a Test::Unit::TestResult, which can then be reported back to you... but I'm getting ahead of myself. To write a test, follow these steps:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Make sure Test::Unit is in your library path.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: require 'test/unit' in your test script.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Create a class that subclasses Test::Unit::TestCase.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Add a method that begins with &quot;test&quot; to your class.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Make assertions in your test method.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "Optionally define #setup and/or #teardown to set up and/or tear down your common test fixture."
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: You can now run your test as you would any other Ruby script... try it and see!
  type: :BULLET
- !ruby/struct:SM::Flow::P 
  body: "A really simple test might look like this (#setup and #teardown are commented out to indicate that they are completely optional):"
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'test/unit'\n\n    class TC_MyTest &lt; Test::Unit::TestCase\n      # def setup\n      # end\n\n      # def teardown\n      # end\n\n      def test_fail\n        assert(false, 'Assertion was false.')\n      end\n    end\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Test Runners
- !ruby/struct:SM::Flow::P 
  body: "So, now you have this great test class, but you still need a way to run it and view any failures that occur during the run. This is where Test::Unit::UI::Console::TestRunner (and others, such as Test::Unit::UI::GTK::TestRunner) comes into play. The console test runner is automatically invoked for you if you require 'test/unit' and simply run the file. To use another runner, or to manually invoke a runner, simply call its run class method and pass in an object that responds to the suite message with a Test::Unit::TestSuite. This can be as simple as passing in your TestCase class (which has a class suite method). It might look something like this:"
- !ruby/struct:SM::Flow::VERB 
  body: "   require 'test/unit/ui/console/testrunner'\n   Test::Unit::UI::Console::TestRunner.run(TC_MyTest)\n"
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Test Suite
- !ruby/struct:SM::Flow::P 
  body: "As more and more unit tests accumulate for a given project, it becomes a real drag running them one at a time, and it also introduces the potential to overlook a failing test because you forget to run it. Suddenly it becomes very handy that the TestRunners can take any object that returns a Test::Unit::TestSuite in response to a suite method. The TestSuite can, in turn, contain other TestSuites or individual tests (typically created by a TestCase). In other words, you can easily wrap up a group of TestCases and TestSuites like this:"
- !ruby/struct:SM::Flow::VERB 
  body: " require 'test/unit/testsuite'\n require 'tc_myfirsttests'\n require 'tc_moretestsbyme'\n require 'ts_anothersetoftests'\n\n class TS_MyTests\n   def self.suite\n     suite = Test::Unit::TestSuite.new\n     suite &lt;&lt; TC_MyFirstTests.suite\n     suite &lt;&lt; TC_MoreTestsByMe.suite\n     suite &lt;&lt; TS_AnotherSetOfTests.suite\n     return suite\n   end\n end\n Test::Unit::UI::Console::TestRunner.run(TS_MyTests)\n"
- !ruby/struct:SM::Flow::P 
  body: "Now, this is a bit cumbersome, so Test::Unit does a little bit more for you, by wrapping these up automatically when you require 'test/unit'. What does this mean? It means you could write the above test case like this instead:"
- !ruby/struct:SM::Flow::VERB 
  body: " require 'test/unit'\n require 'tc_myfirsttests'\n require 'tc_moretestsbyme'\n require 'ts_anothersetoftests'\n"
- !ruby/struct:SM::Flow::P 
  body: Test::Unit is smart enough to find all the test cases existing in the ObjectSpace and wrap them up into a suite for you. It then runs the dynamic suite using the console TestRunner.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Questions?
- !ruby/struct:SM::Flow::P 
  body: I'd really like to get feedback from all levels of Ruby practitioners about typos, grammatical errors, unclear statements, missing points, etc., in this document (or any other).
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: OUTPUT_LEVELS
  value: "[         [:silent, UI::SILENT],         [:progress, UI::PROGRESS_ONLY],         [:normal, UI::NORMAL],         [:verbose, UI::VERBOSE],       ]"
- !ruby/object:RI::Constant 
  comment: 
  name: COLLECTORS
  value: "{         :objectspace => proc do |r|           require 'test/unit/collector/objectspace'"
full_name: Test::Unit
includes: []

instance_methods: []

name: Unit
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Already tests have run?
full_name: Test::Unit::run?
is_singleton: true
name: run?
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::Fox
includes: []

instance_methods: []

name: Fox
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::FaultListItem::new
is_singleton: true
name: new
params: (fault)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: fault
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::UI::Fox::FaultListItem
includes: []

instance_methods: []

name: FaultListItem
superclass: FXListItem
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#result_changed
is_singleton: false
name: result_changed
params: (result)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_button
is_singleton: false
name: create_button
params: (parent, text, action)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_progress_bar
is_singleton: false
name: create_progress_bar
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#raw_show_fault
is_singleton: false
name: raw_show_fault
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#started
is_singleton: false
name: started
params: (result)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_suite_panel
is_singleton: false
name: create_suite_panel
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_entry
is_singleton: false
name: create_entry
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_fault_list
is_singleton: false
name: create_fault_list
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_window
is_singleton: false
name: create_window
params: (app)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_info_panel
is_singleton: false
name: create_info_panel
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_list_panel
is_singleton: false
name: create_list_panel
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_detail_panel
is_singleton: false
name: create_detail_panel
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#stop
is_singleton: false
name: stop
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#test_started
is_singleton: false
name: test_started
params: (test_name)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_text
is_singleton: false
name: create_text
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#output_status
is_singleton: false
name: output_status
params: (string)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunner for running the passed suite.
full_name: Test::Unit::UI::Fox::TestRunner::new
is_singleton: true
name: new
params: (suite, output_level = NORMAL)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#reset_ui
is_singleton: false
name: reset_ui
params: (count)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#show_fault
is_singleton: false
name: show_fault
params: (fault)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs a Test::Unit::TestSuite in a Fox UI. Obviously, this one requires you to have Fox (http://www.fox-toolkit.org/fox.html) and the Ruby Fox extension (http://fxruby.sourceforge.net/) installed.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RED_STYLE
  value: FXRGBA(0xFF,0,0,0xFF)
- !ruby/object:RI::Constant 
  comment: 
  name: GREEN_STYLE
  value: FXRGBA(0,0xFF,0,0xFF)
full_name: Test::Unit::UI::Fox::TestRunner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: attach_to_mediator
- !ruby/object:RI::MethodSummary 
  name: clear_fault
- !ruby/object:RI::MethodSummary 
  name: create_application
- !ruby/object:RI::MethodSummary 
  name: create_button
- !ruby/object:RI::MethodSummary 
  name: create_detail_panel
- !ruby/object:RI::MethodSummary 
  name: create_entry
- !ruby/object:RI::MethodSummary 
  name: create_fault_list
- !ruby/object:RI::MethodSummary 
  name: create_info_panel
- !ruby/object:RI::MethodSummary 
  name: create_label
- !ruby/object:RI::MethodSummary 
  name: create_list_panel
- !ruby/object:RI::MethodSummary 
  name: create_main_panel
- !ruby/object:RI::MethodSummary 
  name: create_progress_bar
- !ruby/object:RI::MethodSummary 
  name: create_suite_panel
- !ruby/object:RI::MethodSummary 
  name: create_text
- !ruby/object:RI::MethodSummary 
  name: create_tooltip
- !ruby/object:RI::MethodSummary 
  name: create_window
- !ruby/object:RI::MethodSummary 
  name: finished
- !ruby/object:RI::MethodSummary 
  name: output_status
- !ruby/object:RI::MethodSummary 
  name: raw_show_fault
- !ruby/object:RI::MethodSummary 
  name: reset_ui
- !ruby/object:RI::MethodSummary 
  name: result_changed
- !ruby/object:RI::MethodSummary 
  name: setup_mediator
- !ruby/object:RI::MethodSummary 
  name: setup_ui
- !ruby/object:RI::MethodSummary 
  name: show_fault
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_ui
- !ruby/object:RI::MethodSummary 
  name: started
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: test_started
name: TestRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#setup_ui
is_singleton: false
name: setup_ui
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#attach_to_mediator
is_singleton: false
name: attach_to_mediator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#finished
is_singleton: false
name: finished
params: (elapsed_time)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_main_panel
is_singleton: false
name: create_main_panel
params: (parent)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_application
is_singleton: false
name: create_application
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_tooltip
is_singleton: false
name: create_tooltip
params: (app)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#setup_mediator
is_singleton: false
name: setup_mediator
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#start_ui
is_singleton: false
name: start_ui
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#clear_fault
is_singleton: false
name: clear_fault
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Begins the test run.
full_name: Test::Unit::UI::Fox::TestRunner#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Fox::TestRunner#create_label
is_singleton: false
name: create_label
params: (parent, text)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunner and runs the suite.
full_name: Test::Unit::UI::TestRunnerUtilities#run
is_singleton: false
name: run
params: (suite, output_level=NORMAL)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::P 
  body: Provides some utilities common to most, if not all, TestRunners.
constants: []

full_name: Test::Unit::UI::TestRunnerUtilities
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: start_command_line_test
name: TestRunnerUtilities
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Takes care of the ARGV parsing and suite determination necessary for running one of the TestRunners from the command line.
full_name: Test::Unit::UI::TestRunnerUtilities#start_command_line_test
is_singleton: false
name: start_command_line_test
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::GTK
includes: []

instance_methods: []

name: GTK
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::EnhancedLabel#set_text
is_singleton: false
name: set_text
params: (text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::GTK::EnhancedLabel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: set_text
name: EnhancedLabel
superclass: Gtk::Label
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::FaultListItem::new
is_singleton: true
name: new
params: (fault)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: fault
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::UI::GTK::FaultListItem
includes: []

instance_methods: []

name: FaultListItem
superclass: Gtk::ListItem
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::EnhancedProgressBar#set_style
is_singleton: false
name: set_style
params: (style)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::GTK::EnhancedProgressBar
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: set_style
name: EnhancedProgressBar
superclass: Gtk::ProgressBar
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#result_changed
is_singleton: false
name: result_changed
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#main_panel
is_singleton: false
name: main_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#test_progress_bar
is_singleton: false
name: test_progress_bar
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#raw_show_fault
is_singleton: false
name: raw_show_fault
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#info_panel
is_singleton: false
name: info_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#started
is_singleton: false
name: started
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#status_entry
is_singleton: false
name: status_entry
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#lazy_initialize
is_singleton: false
name: lazy_initialize
params: (symbol) {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#error_count_label
is_singleton: false
name: error_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#detail_panel
is_singleton: false
name: detail_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#fault_list
is_singleton: false
name: fault_list
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#stop
is_singleton: false
name: stop
params: (*)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#outer_detail_sub_panel
is_singleton: false
name: outer_detail_sub_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#test_started
is_singleton: false
name: test_started
params: (test_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#progress_panel
is_singleton: false
name: progress_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#green_style
is_singleton: false
name: green_style
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#inner_detail_sub_panel
is_singleton: false
name: inner_detail_sub_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#output_status
is_singleton: false
name: output_status
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#list_scrolled_window
is_singleton: false
name: list_scrolled_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#run_test
is_singleton: false
name: run_test
params: (*)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#fault_detail_label
is_singleton: false
name: fault_detail_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunner for running the passed suite.
full_name: Test::Unit::UI::GTK::TestRunner::new
is_singleton: true
name: new
params: (suite, output_level = NORMAL)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#reset_ui
is_singleton: false
name: reset_ui
params: (count)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#show_fault
is_singleton: false
name: show_fault
params: (fault)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs a Test::Unit::TestSuite in a Gtk UI. Obviously, this one requires you to have Gtk (http://www.gtk.org/) and the Ruby Gtk extension (http://ruby-gnome.sourceforge.net/) installed.
constants: []

full_name: Test::Unit::UI::GTK::TestRunner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: assertion_count_label
- !ruby/object:RI::MethodSummary 
  name: attach_to_mediator
- !ruby/object:RI::MethodSummary 
  name: clear_fault
- !ruby/object:RI::MethodSummary 
  name: detail_panel
- !ruby/object:RI::MethodSummary 
  name: detail_scrolled_window
- !ruby/object:RI::MethodSummary 
  name: error_count_label
- !ruby/object:RI::MethodSummary 
  name: failure_count_label
- !ruby/object:RI::MethodSummary 
  name: fault_detail_label
- !ruby/object:RI::MethodSummary 
  name: fault_list
- !ruby/object:RI::MethodSummary 
  name: finished
- !ruby/object:RI::MethodSummary 
  name: green_style
- !ruby/object:RI::MethodSummary 
  name: info_panel
- !ruby/object:RI::MethodSummary 
  name: inner_detail_sub_panel
- !ruby/object:RI::MethodSummary 
  name: lazy_initialize
- !ruby/object:RI::MethodSummary 
  name: list_panel
- !ruby/object:RI::MethodSummary 
  name: list_scrolled_window
- !ruby/object:RI::MethodSummary 
  name: main_panel
- !ruby/object:RI::MethodSummary 
  name: main_window
- !ruby/object:RI::MethodSummary 
  name: outer_detail_sub_panel
- !ruby/object:RI::MethodSummary 
  name: output_status
- !ruby/object:RI::MethodSummary 
  name: progress_panel
- !ruby/object:RI::MethodSummary 
  name: raw_show_fault
- !ruby/object:RI::MethodSummary 
  name: red_style
- !ruby/object:RI::MethodSummary 
  name: reset_ui
- !ruby/object:RI::MethodSummary 
  name: result_changed
- !ruby/object:RI::MethodSummary 
  name: run_button
- !ruby/object:RI::MethodSummary 
  name: run_count_label
- !ruby/object:RI::MethodSummary 
  name: run_test
- !ruby/object:RI::MethodSummary 
  name: setup_mediator
- !ruby/object:RI::MethodSummary 
  name: setup_ui
- !ruby/object:RI::MethodSummary 
  name: show_fault
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_ui
- !ruby/object:RI::MethodSummary 
  name: started
- !ruby/object:RI::MethodSummary 
  name: status_entry
- !ruby/object:RI::MethodSummary 
  name: status_panel
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: suite_name_entry
- !ruby/object:RI::MethodSummary 
  name: suite_panel
- !ruby/object:RI::MethodSummary 
  name: test_finished
- !ruby/object:RI::MethodSummary 
  name: test_progress_bar
- !ruby/object:RI::MethodSummary 
  name: test_started
name: TestRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#suite_panel
is_singleton: false
name: suite_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#setup_ui
is_singleton: false
name: setup_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#attach_to_mediator
is_singleton: false
name: attach_to_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#finished
is_singleton: false
name: finished
params: (elapsed_time)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#main_window
is_singleton: false
name: main_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#test_finished
is_singleton: false
name: test_finished
params: (test_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#run_button
is_singleton: false
name: run_button
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#detail_scrolled_window
is_singleton: false
name: detail_scrolled_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#assertion_count_label
is_singleton: false
name: assertion_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#status_panel
is_singleton: false
name: status_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#setup_mediator
is_singleton: false
name: setup_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#start_ui
is_singleton: false
name: start_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#suite_name_entry
is_singleton: false
name: suite_name_entry
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#clear_fault
is_singleton: false
name: clear_fault
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#failure_count_label
is_singleton: false
name: failure_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Begins the test run.
full_name: Test::Unit::UI::GTK::TestRunner#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#red_style
is_singleton: false
name: red_style
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#run_count_label
is_singleton: false
name: run_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK::TestRunner#list_panel
is_singleton: false
name: list_panel
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::GTK2
includes: []

instance_methods: []

name: GTK2
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::FaultList#get_fault
is_singleton: false
name: get_fault
params: (iter)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::FaultList#clear
is_singleton: false
name: clear
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::FaultList::new
is_singleton: true
name: new
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::FaultList#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::UI::GTK2::FaultList
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: clear
- !ruby/object:RI::MethodSummary 
  name: get_fault
name: FaultList
superclass: Gtk::TreeView
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::EnhancedLabel#set_text
is_singleton: false
name: set_text
params: (text)
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::GTK2::EnhancedLabel
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: set_text
name: EnhancedLabel
superclass: Gtk::Label
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#result_changed
is_singleton: false
name: result_changed
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#main_panel
is_singleton: false
name: main_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#test_progress_bar
is_singleton: false
name: test_progress_bar
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#raw_show_fault
is_singleton: false
name: raw_show_fault
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#info_panel
is_singleton: false
name: info_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#started
is_singleton: false
name: started
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#status_entry
is_singleton: false
name: status_entry
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#lazy_initialize
is_singleton: false
name: lazy_initialize
params: (symbol) {|| ...}
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#error_count_label
is_singleton: false
name: error_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#detail_panel
is_singleton: false
name: detail_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#fault_list
is_singleton: false
name: fault_list
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#stop
is_singleton: false
name: stop
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#outer_detail_sub_panel
is_singleton: false
name: outer_detail_sub_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#test_started
is_singleton: false
name: test_started
params: (test_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#progress_panel
is_singleton: false
name: progress_panel
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#green_style
is_singleton: false
name: green_style
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#inner_detail_sub_panel
is_singleton: false
name: inner_detail_sub_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#output_status
is_singleton: false
name: output_status
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#list_scrolled_window
is_singleton: false
name: list_scrolled_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#run_test
is_singleton: false
name: run_test
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#fault_detail_label
is_singleton: false
name: fault_detail_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner::new
is_singleton: true
name: new
params: (suite, output_level = NORMAL)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#reset_ui
is_singleton: false
name: reset_ui
params: (count)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#show_fault
is_singleton: false
name: show_fault
params: (fault)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
constants: []

full_name: Test::Unit::UI::GTK2::TestRunner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: assertion_count_label
- !ruby/object:RI::MethodSummary 
  name: attach_to_mediator
- !ruby/object:RI::MethodSummary 
  name: clear_fault
- !ruby/object:RI::MethodSummary 
  name: detail_panel
- !ruby/object:RI::MethodSummary 
  name: detail_scrolled_window
- !ruby/object:RI::MethodSummary 
  name: error_count_label
- !ruby/object:RI::MethodSummary 
  name: failure_count_label
- !ruby/object:RI::MethodSummary 
  name: fault_detail_label
- !ruby/object:RI::MethodSummary 
  name: fault_list
- !ruby/object:RI::MethodSummary 
  name: finished
- !ruby/object:RI::MethodSummary 
  name: green_style
- !ruby/object:RI::MethodSummary 
  name: info_panel
- !ruby/object:RI::MethodSummary 
  name: inner_detail_sub_panel
- !ruby/object:RI::MethodSummary 
  name: lazy_initialize
- !ruby/object:RI::MethodSummary 
  name: list_panel
- !ruby/object:RI::MethodSummary 
  name: list_scrolled_window
- !ruby/object:RI::MethodSummary 
  name: main_panel
- !ruby/object:RI::MethodSummary 
  name: main_window
- !ruby/object:RI::MethodSummary 
  name: outer_detail_sub_panel
- !ruby/object:RI::MethodSummary 
  name: output_status
- !ruby/object:RI::MethodSummary 
  name: progress_panel
- !ruby/object:RI::MethodSummary 
  name: raw_show_fault
- !ruby/object:RI::MethodSummary 
  name: red_style
- !ruby/object:RI::MethodSummary 
  name: reset_ui
- !ruby/object:RI::MethodSummary 
  name: result_changed
- !ruby/object:RI::MethodSummary 
  name: run_button
- !ruby/object:RI::MethodSummary 
  name: run_count_label
- !ruby/object:RI::MethodSummary 
  name: run_test
- !ruby/object:RI::MethodSummary 
  name: setup_mediator
- !ruby/object:RI::MethodSummary 
  name: setup_ui
- !ruby/object:RI::MethodSummary 
  name: show_fault
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_ui
- !ruby/object:RI::MethodSummary 
  name: started
- !ruby/object:RI::MethodSummary 
  name: status_entry
- !ruby/object:RI::MethodSummary 
  name: status_panel
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: suite_name_entry
- !ruby/object:RI::MethodSummary 
  name: suite_panel
- !ruby/object:RI::MethodSummary 
  name: test_finished
- !ruby/object:RI::MethodSummary 
  name: test_progress_bar
- !ruby/object:RI::MethodSummary 
  name: test_started
name: TestRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#suite_panel
is_singleton: false
name: suite_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#setup_ui
is_singleton: false
name: setup_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#attach_to_mediator
is_singleton: false
name: attach_to_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#finished
is_singleton: false
name: finished
params: (elapsed_time)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#main_window
is_singleton: false
name: main_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#test_finished
is_singleton: false
name: test_finished
params: (result)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#run_button
is_singleton: false
name: run_button
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#detail_scrolled_window
is_singleton: false
name: detail_scrolled_window
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#assertion_count_label
is_singleton: false
name: assertion_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#status_panel
is_singleton: false
name: status_panel
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#setup_mediator
is_singleton: false
name: setup_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#start_ui
is_singleton: false
name: start_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#suite_name_entry
is_singleton: false
name: suite_name_entry
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#clear_fault
is_singleton: false
name: clear_fault
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#failure_count_label
is_singleton: false
name: failure_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#red_style
is_singleton: false
name: red_style
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#run_count_label
is_singleton: false
name: run_count_label
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::GTK2::TestRunner#list_panel
is_singleton: false
name: list_panel
params: ()
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::Console
includes: []

instance_methods: []

name: Console
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#output?
is_singleton: false
name: output?
params: (level)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#create_mediator
is_singleton: false
name: create_mediator
params: (suite)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#started
is_singleton: false
name: started
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#output_single
is_singleton: false
name: output_single
params: (something, level=NORMAL)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#test_started
is_singleton: false
name: test_started
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#start_mediator
is_singleton: false
name: start_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#nl
is_singleton: false
name: nl
params: (level=NORMAL)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunner for running the passed suite. If quiet_mode is true, the output while running is limited to progress dots, errors and failures, and the final result. io specifies where runner output should go to; defaults to STDOUT.
full_name: Test::Unit::UI::Console::TestRunner::new
is_singleton: true
name: new
params: (suite, output_level=NORMAL, io=STDOUT)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs a Test::Unit::TestSuite on the console.
constants: []

full_name: Test::Unit::UI::Console::TestRunner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: attach_to_mediator
- !ruby/object:RI::MethodSummary 
  name: create_mediator
- !ruby/object:RI::MethodSummary 
  name: finished
- !ruby/object:RI::MethodSummary 
  name: nl
- !ruby/object:RI::MethodSummary 
  name: output
- !ruby/object:RI::MethodSummary 
  name: output?
- !ruby/object:RI::MethodSummary 
  name: output_single
- !ruby/object:RI::MethodSummary 
  name: setup_mediator
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_mediator
- !ruby/object:RI::MethodSummary 
  name: started
- !ruby/object:RI::MethodSummary 
  name: test_finished
- !ruby/object:RI::MethodSummary 
  name: test_started
name: TestRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#attach_to_mediator
is_singleton: false
name: attach_to_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#output
is_singleton: false
name: output
params: (something, level=NORMAL)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#finished
is_singleton: false
name: finished
params: (elapsed_time)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#test_finished
is_singleton: false
name: test_finished
params: (name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Console::TestRunner#setup_mediator
is_singleton: false
name: setup_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Begins the test run.
full_name: Test::Unit::UI::Console::TestRunner#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: []

full_name: Test::Unit::UI::Tk
includes: []

instance_methods: []

name: Tk
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#result_changed
is_singleton: false
name: result_changed
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#create_count_label
is_singleton: false
name: create_count_label
params: (parent, label)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#raw_show_fault
is_singleton: false
name: raw_show_fault
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#started
is_singleton: false
name: started
params: (result)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#stop
is_singleton: false
name: stop
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#test_started
is_singleton: false
name: test_started
params: (test_name)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#output_status
is_singleton: false
name: output_status
params: (string)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#run_test
is_singleton: false
name: run_test
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunner for running the passed suite.
full_name: Test::Unit::UI::Tk::TestRunner::new
is_singleton: true
name: new
params: (suite, output_level = NORMAL)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#reset_ui
is_singleton: false
name: reset_ui
params: (count)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#show_fault
is_singleton: false
name: show_fault
params: (fault)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#add_fault
is_singleton: false
name: add_fault
params: (fault)
visibility: private
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs a Test::Unit::TestSuite in a Tk UI. Obviously, this one requires you to have Tk and the Ruby Tk extension installed.
constants: []

full_name: Test::Unit::UI::Tk::TestRunner
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: add_fault
- !ruby/object:RI::MethodSummary 
  name: attach_to_mediator
- !ruby/object:RI::MethodSummary 
  name: clear_fault
- !ruby/object:RI::MethodSummary 
  name: create_count_label
- !ruby/object:RI::MethodSummary 
  name: finished
- !ruby/object:RI::MethodSummary 
  name: output_status
- !ruby/object:RI::MethodSummary 
  name: raw_show_fault
- !ruby/object:RI::MethodSummary 
  name: reset_ui
- !ruby/object:RI::MethodSummary 
  name: result_changed
- !ruby/object:RI::MethodSummary 
  name: run_test
- !ruby/object:RI::MethodSummary 
  name: setup_mediator
- !ruby/object:RI::MethodSummary 
  name: setup_ui
- !ruby/object:RI::MethodSummary 
  name: show_fault
- !ruby/object:RI::MethodSummary 
  name: start
- !ruby/object:RI::MethodSummary 
  name: start_ui
- !ruby/object:RI::MethodSummary 
  name: started
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: test_started
name: TestRunner
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#setup_ui
is_singleton: false
name: setup_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#attach_to_mediator
is_singleton: false
name: attach_to_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#finished
is_singleton: false
name: finished
params: (elapsed_time)
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#setup_mediator
is_singleton: false
name: setup_mediator
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#start_ui
is_singleton: false
name: start_ui
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
full_name: Test::Unit::UI::Tk::TestRunner#clear_fault
is_singleton: false
name: clear_fault
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Begins the test run.
full_name: Test::Unit::UI::Tk::TestRunner#start
is_singleton: false
name: start
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SILENT
  value: "0"
- !ruby/object:RI::Constant 
  comment: 
  name: PROGRESS_ONLY
  value: "1"
- !ruby/object:RI::Constant 
  comment: 
  name: NORMAL
  value: "2"
- !ruby/object:RI::Constant 
  comment: 
  name: VERBOSE
  value: "3"
full_name: Test::Unit::UI
includes: []

instance_methods: []

name: UI
superclass: 
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Runs the suite the TestRunnerMediator was created with.
full_name: Test::Unit::UI::TestRunnerMediator#run_suite
is_singleton: false
name: run_suite
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Provides an interface to write any given UI against, hopefully making it easy to write new UIs.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: RESET
  value: name + "::RESET"
- !ruby/object:RI::Constant 
  comment: 
  name: STARTED
  value: name + "::STARTED"
- !ruby/object:RI::Constant 
  comment: 
  name: FINISHED
  value: name + "::FINISHED"
full_name: Test::Unit::UI::TestRunnerMediator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Util::Observable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: create_result
- !ruby/object:RI::MethodSummary 
  name: run_suite
name: TestRunnerMediator
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new TestRunnerMediator initialized to run the passed suite.
full_name: Test::Unit::UI::TestRunnerMediator::new
is_singleton: true
name: new
params: (suite)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: A factory method to create the result the mediator should run with. Can be overridden by subclasses if one wants to use a different result.
full_name: Test::Unit::UI::TestRunnerMediator#create_result
is_singleton: false
name: create_result
params: ()
visibility: private
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a single character representation of a failure.
full_name: Test::Unit::Failure#single_character_display
is_singleton: false
name: single_character_display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Creates a new Failure with the given location and message.
full_name: Test::Unit::Failure::new
is_singleton: true
name: new
params: (test_name, location, message)
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Overridden to return long_display.
full_name: Test::Unit::Failure#to_s
is_singleton: false
name: to_s
params: ()
visibility: public
--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: location
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: message
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: test_name
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Encapsulates a test failure. Created by Test::Unit::TestCase when an assertion fails.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: SINGLE_CHARACTER
  value: "'F'"
full_name: Test::Unit::Failure
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: long_display
- !ruby/object:RI::MethodSummary 
  name: short_display
- !ruby/object:RI::MethodSummary 
  name: single_character_display
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Failure
superclass: Object
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a brief version of the error description.
full_name: Test::Unit::Failure#short_display
is_singleton: false
name: short_display
params: ()
visibility: public
--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Returns a verbose version of the error description.
full_name: Test::Unit::Failure#long_display
is_singleton: false
name: long_display
params: ()
visibility: public


📤 Upload File


📁 Create Folder